<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>kenji.blog</title><link>http://kenji.blog/ar/</link><description>Recent content on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>ar</language><copyright>kenjinote</copyright><lastBuildDate>Sun, 06 Sep 2026 12:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/ar/index.xml" rel="self" type="application/rss+xml"/><item><title>【فهم كامل بالمعادلات】 لماذا يُهزم «GNFS» الكلاسيكي الأقوى أمام الخوارزميات الكمية؟ نقلة نوعية في تحليل العوامل الأولية</title><link>http://kenji.blog/ar/p/gnfs-to-shors-algorithm-math-deepdive/</link><pubDate>Sun, 06 Sep 2026 12:00:00 +0900</pubDate><guid>http://kenji.blog/ar/p/gnfs-to-shors-algorithm-math-deepdive/</guid><description>&lt;img src="http://kenji.blog/p/gnfs-to-shors-algorithm-math-deepdive/quantum_vs_gnfs_eyecatch_1788616101508.jpg" alt="Featured image of post 【فهم كامل بالمعادلات】 لماذا يُهزم «GNFS» الكلاسيكي الأقوى أمام الخوارزميات الكمية؟ نقلة نوعية في تحليل العوامل الأولية" />&lt;p>تتم حماية أمن المعلومات في مجتمع الإنترنت الحديث بواسطة التشفير بالمفتاح العام، مثل تشفير RSA. يعتمد أساس أمان تشفير RSA على حقيقة أن &lt;strong>&amp;ldquo;التحليل إلى العوامل الأولية للأرقام المركبة الضخمة يمثل صعوبة بالغة من الناحية الحسابية&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;p>في هذا المقال، سنكشف عن الآلية الرياضية لـ &lt;strong>&amp;ldquo;منخل حقل الأعداد العام&amp;rdquo;&lt;/strong> (GNFS)، وهو أقوى خوارزمية تحليل للعوامل الأولية للكمبيوتر الكلاسيكي، ونتعمق في سبب هزيمتها تمامًا بواسطة &lt;strong>&amp;ldquo;خوارزمية شور&amp;rdquo;&lt;/strong> التي اكتشفها بيتر شور. سوف نستكشف هذه النقلة النوعية بعمق باستخدام المعادلات الرياضية والرسوم التوضيحية المفاهيمية.&lt;/p>
&lt;hr>
&lt;h2 id="1-نهج-التحليل-إلى-العوامل-في-الحوسبة-الكلاسيكية-التطور-من-طريقة-فيرما-للتحليل-إلى-العوامل">1. نهج التحليل إلى العوامل في الحوسبة الكلاسيكية: التطور من طريقة فيرما للتحليل إلى العوامل
&lt;/h2>&lt;p>مشكلة التحليل إلى العوامل الأولية هي مشكلة إيجاد الأعداد الأولية $p, q$ بحيث يكون $N = p \times q$ لعدد مركب $N$ محدد.&lt;/p>
&lt;p>تتلخص الفكرة الأساسية في إيجاد $x, y$ غير بديهية تلبي معادلة التطابق التالية:&lt;/p>
$$ x^2 \equiv y^2 \pmod N $$
&lt;p>إذا قمنا بتعديل ذلك، نحصل على:&lt;/p>
$$ x^2 - y^2 \equiv 0 \pmod N $$
$$ (x - y)(x + y) \equiv 0 \pmod N $$
&lt;p>هنا، إذا كان $x \not\equiv \pm y \pmod N$، يمكننا الحصول على عامل غير بديهي لـ $N$ عن طريق حساب $\gcd(x-y, N)$ أو $\gcd(x+y, N)$. هذه الحقيقة هي أساس خوارزميات التحليل الحديثة مثل GNFS.&lt;/p>
&lt;hr>
&lt;h2 id="2-أقوى-الخوارزميات-الكلاسيكية-أعماق-منخل-حقل-الأعداد-العام-gnfs">2. أقوى الخوارزميات الكلاسيكية: أعماق &amp;ldquo;منخل حقل الأعداد العام&amp;rdquo; (GNFS)
&lt;/h2>&lt;p>يعد &lt;strong>&amp;ldquo;GNFS&amp;rdquo;&lt;/strong> أسرع خوارزمية تحليل للعوامل الأولية معروفة لأجهزة الكمبيوتر الكلاسيكية اليوم. يستغرق تعقيد الوقت الخاص بها وقتًا شبه أسي (Sub-exponential).&lt;/p>
&lt;h3 id="تعقيد-gnfs">تعقيد GNFS
&lt;/h3>&lt;p>بافتراض أن عدد أرقام $N$ هو $b = \log_2 N$، يمكن التعبير عن تعقيد GNFS على النحو التالي:&lt;/p>
$$ O\left( \exp \left( \left(\frac{64}{9} b\right)^{1/3} (\log b)^{2/3} \right) \right) $$
&lt;p>كما يتضح من هذه المعادلة، التعقيد ليس وقتًا كثير الحدود، بل &lt;strong>&amp;ldquo;وقت شبه أسي&amp;rdquo;&lt;/strong> أبطأ قليلاً من الدالة الأسية. ومع ذلك، مع زيادة عدد الخانات، سيزداد وقت الحساب بشكل فلكي.&lt;/p>
&lt;h3 id="الآلية-الرياضية-لـ-gnfs">الآلية الرياضية لـ GNFS
&lt;/h3>&lt;p>تتكون GNFS بشكل رئيسي من 4 خطوات:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>اختيار كثيرات الحدود (Polynomial Selection)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>الغربلة (Sieving)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>تقليل المصفوفة (Matrix Reduction)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>حساب الجذر التربيعي (Square Root)&lt;/strong>&lt;/li>
&lt;/ol>
&lt;h4 id="21-اختيار-كثيرات-الحدود-والحقل-الجبري">2.1. اختيار كثيرات الحدود والحقل الجبري
&lt;/h4>&lt;p>أولاً، نختار كثيرات الحدود غير القابلة للاختزال $f(x)$ و $g(x)$ بمعاملات صحيحة. يتم تعيينها ليكون لها جذر مشترك $m$ مقياس $N$. أي:&lt;/p>
$$ f(m) \equiv 0 \pmod N $$
$$ g(m) \equiv 0 \pmod N $$
&lt;p>عادة، يتم اختيار $g(x)$ ككثيرة حدود من الدرجة الأولى $g(x) = x - m$. إذا جعلنا جذر $f(x)$ هو $\alpha$, يتشكل &lt;strong>&amp;ldquo;حقل جبري&amp;rdquo;&lt;/strong> (Number Field) يسمى $\mathbb{Q}(\alpha)$. نقارن العمليات في حلقة $\mathbb{Q}(\alpha)$ مع العمليات في حلقة الأعداد الصحيحة العادية $\mathbb{Z}$ من خلال تشاكل $\phi: \alpha \mapsto m$.&lt;/p>
&lt;h4 id="22-الغربلة-sieving">2.2. الغربلة (Sieving)
&lt;/h4>&lt;p>بعد ذلك، نبحث عن عدد كبير من أزواج الأعداد الصحيحة الأولية نسبياً $(a, b)$. الهدف هو إيجاد أزواج بحيث تكون كلتا القيمتين التاليتين &lt;strong>&amp;ldquo;B-smooth&amp;rdquo;&lt;/strong> (تتكون فقط من عوامل أولية صغيرة نسبياً):&lt;/p>
&lt;ol>
&lt;li>$a - bm$ (القيمة على حلقة الأعداد الصحيحة)&lt;/li>
&lt;li>$b^d f(a/b)$ (يتوافق مع المعيار $N(a - b\alpha)$ في الحقل الجبري)&lt;/li>
&lt;/ol>
&lt;p>هنا، يتم استخدام طريقة بحث سريعة تسمى &lt;strong>&amp;ldquo;المنخل&amp;rdquo;&lt;/strong> (Sieve). يتيح ذلك استخراج أزواج $(a, b)$ بكفاءة والتي تلبي الشروط من بين عدد هائل من المرشحين.&lt;/p>
&lt;h4 id="23-تقليل-المصفوفة-linear-algebra-over-gf2">2.3. تقليل المصفوفة (Linear Algebra over GF(2))
&lt;/h4>&lt;p>من الأزواج المُجمَّعة $(a, b)$، نقوم بتشكيل متجهات أسية وإيجاد الفضاء الصفري الأيسر لمصفوفة متفرقة ضخمة على $\mathbb{F}_2$ (حقل بعناصر 0 و 1 فقط).&lt;/p>
&lt;p>نجد متجهاً للحل $v$ بحيث تصبح العلاقات $ \prod (a_i - b_i m) $ و $ \prod (a_i - b_i \alpha) $ كل منها مربعاً كاملاً. هذا ليس سوى حل لنظام من المعادلات الخطية:&lt;/p>
$$ M \mathbf{x} \equiv \mathbf{0} \pmod 2 $$
&lt;p>هنا، يتم استخدام خوارزميات الحساب العددي المتقدمة مثل خوارزمية Block Lanczos أو Block Wiedemann.&lt;/p>
&lt;h4 id="24-حساب-الجذر-التربيعي">2.4. حساب الجذر التربيعي
&lt;/h4>&lt;p>أخيراً، نأخذ الجذر التربيعي من كل من الحقل الجبري وحلقة الأعداد الصحيحة، ونستنتج العلاقة $x^2 \equiv y^2 \pmod N$. ثم، نحسب $\gcd(x-y, N)$ ونحصل على العامل.&lt;/p>
&lt;hr>
&lt;h2 id="3-اختراق-الحوسبة-الكمية-خوارزمية-شور">3. اختراق الحوسبة الكمية: &amp;ldquo;خوارزمية شور&amp;rdquo;
&lt;/h2>&lt;p>بينما يتطلب GNFS وقتاً شبه أسي، فإن &lt;strong>&amp;ldquo;خوارزمية شور&amp;rdquo;&lt;/strong> التي نشرها بيتر شور في عام 1994 يمكن أن تحل هذه المشكلة في &lt;strong>&amp;ldquo;وقت كثير الحدود&amp;rdquo;&lt;/strong> باستخدام كمبيوتر كمي.&lt;/p>
&lt;h3 id="تعقيد-خوارزمية-شور">تعقيد خوارزمية شور
&lt;/h3>&lt;p>إذا افترضنا أن عدد الكيوبت هو $O(\log N)$، فإن تعقيد الوقت يكون:&lt;/p>
$$ O((\log N)^3) $$
&lt;p>هذا يعني أنه لا يوجد انفجار أسي بالنسبة لعدد البتات. إنها نتيجة مذهلة حيث يمكن للأعداد المركبة الضخمة التي يتجاوز وقت حسابها في &lt;strong>&amp;ldquo;الحوسبة الكلاسيكية&amp;rdquo;&lt;/strong> عمر الكون، أن يتم حلها في غضون ساعات إلى أيام باستخدام &lt;strong>&amp;ldquo;الحوسبة الكمية&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;h3 id="نظرة-عامة-على-خوارزمية-شور-الاختزال-إلى-مشكلة-إيجاد-الدورة">نظرة عامة على خوارزمية شور: الاختزال إلى مشكلة إيجاد الدورة
&lt;/h3>&lt;p>تختزل خوارزمية شور مشكلة التحليل إلى العوامل الأولية ببراعة إلى &lt;strong>&amp;ldquo;مشكلة إيجاد الدورة&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;ol>
&lt;li>اختر عدداً صحيحاً عشوائياً $a$ أولي نسبياً مع $N$ (حيث $1 &lt; a &lt; N$).&lt;/li>
&lt;li>عرّف الدالة $f(x) = a^x \bmod N$.&lt;/li>
&lt;li>أوجد الدورة $r$ للدالة $f(x)$، أي أصغر عدد صحيح موجب $r$ بحيث $a^r \equiv 1 \pmod N$.&lt;/li>
&lt;li>إذا كان $r$ عدداً زوجياً، تحقق مما إذا كان $a^{r/2} \not\equiv -1 \pmod N$， واحسب $\gcd(a^{r/2} \pm 1, N)$ للحصول على العامل الأولي.&lt;/li>
&lt;/ol>
&lt;p>هذه الخطوة 3، أي &lt;strong>&amp;ldquo;اكتشاف الدورة $r$&amp;rdquo;&lt;/strong> ، هي عنق الزجاجة الذي يتطلب وقتاً أسياً على الكمبيوتر الكلاسيكي، لكن الكمبيوتر الكمي يحلها في لحظة باستخدام &lt;strong>&amp;ldquo;التراكب الكمي&amp;rdquo;&lt;/strong> و &lt;strong>&amp;ldquo;تحويل فورييه الكمي&amp;rdquo;&lt;/strong> (QFT).&lt;/p>
&lt;hr>
&lt;h2 id="4-تحويل-فورييه-الكمي-qft-واستخراج-الدورة">4. تحويل فورييه الكمي (QFT) واستخراج الدورة
&lt;/h2>&lt;p>دعونا نلقي نظرة فاحصة على العمليات الرياضية للحالات الكمية التي هي جوهر خوارزمية شور.&lt;/p>
&lt;h3 id="41-توليد-التراكب-الكمي">4.1. توليد التراكب الكمي
&lt;/h3>&lt;p>أولاً، قم بإعداد سجلي كم (Registers). يحتفظ السجل 1 بحالة التراكب للمدخل $x$، ويحتفظ السجل 2 بنتيجة الحساب للدالة $f(x)$. قم بتطبيق تحويل هادامار (Hadamard Transform) على الحالة الأولية $|0\rangle |0\rangle$ لإنشاء تراكب لجميع قيم $x$ الممكنة.&lt;/p>
$$ |\psi_1\rangle = \frac{1}{\sqrt{Q}} \sum_{x=0}^{Q-1} |x\rangle |0\rangle $$
&lt;p>
(حيث $Q$ هو قوة للعدد 2 تلبي $N^2 \le Q &lt; 2N^2$)&lt;/p>
&lt;p>بعد ذلك، استخدم وسيط كمي (Quantum Oracle) $U_f$ لحساب $f(x) = a^x \bmod N$ وتخزينه في السجل 2.&lt;/p>
$$ |\psi_2\rangle = U_f |\psi_1\rangle = \frac{1}{\sqrt{Q}} \sum_{x=0}^{Q-1} |x\rangle |a^x \bmod N\rangle $$
&lt;p>لنفترض الآن أنه تم قياس السجل 2 (من الناحية النظرية، حتى لو لم يتم قياسه، فإن البنية الرياضية هي نفسها). إذا تم ملاحظة قيمة معينة $y = a^{x_0} \bmod N$، فإن حالة السجل 1 ستنهار إلى تراكب لجميع $x$ التي تجعل $f(x) = y$. إذا افترضنا أن الدورة هي $r$، فإن مثل هذه الـ $x$ ستكون $x_0, x_0 + r, x_0 + 2r, \dots$&lt;/p>
$$ |\psi_3\rangle = \frac{1}{\sqrt{M}} \sum_{k=0}^{M-1} |x_0 + kr\rangle $$
&lt;p>
(حيث $M \approx Q/r$ هو عدد الحدود)&lt;/p>
&lt;p>تحتوي هذه الحالة على معلومات الدورة $r$، لكن القياس المباشر سينتج فقط $x_0 + kr$ عشوائية، ولن تُعرف الدورة $r$. هنا يأتي دور QFT.&lt;/p>
&lt;h3 id="42-تطبيق-تحويل-فورييه-الكمي-qft">4.2. تطبيق تحويل فورييه الكمي (QFT)
&lt;/h3>&lt;p>QFT هي عملية تطبق تحويل فورييه المتقطع على السعات للحالات الكمية. يُعرَّف تأثير QFT على الحالة $|x\rangle$ على النحو التالي:&lt;/p>
$$ \text{QFT} |x\rangle = \frac{1}{\sqrt{Q}} \sum_{y=0}^{Q-1} e^{2\pi i \frac{xy}{Q}} |y\rangle $$
&lt;p>عند تطبيق ذلك على $|\psi_3\rangle$، يحدث تداخل الطور (تداخل كمي).&lt;/p>
$$ |\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 $$
&lt;p>إذا قمنا بتوسيع المجموع في هذه المعادلة، يظهر الجزء التالي:&lt;/p>
$$ \sum_{k=0}^{M-1} e^{2\pi i \frac{kry}{Q}} $$
&lt;p>مجموع المتسلسلة الهندسية هذا يعزز بعضه البعض (تداخل بنّاء Constructive Interference) فقط عندما يكون $ry/Q$ قريباً من عدد صحيح، ويلغي بعضه البعض (تداخل هدّام Destructive Interference) في أوقات أخرى.&lt;/p>
&lt;p>لذلك، ستكون الحالة $|y\rangle$ المقاسة باحتمالية عالية عبارة عن عدد صحيح $y$ يلبي:&lt;/p>
$$ \frac{y}{Q} \approx \frac{c}{r} $$
&lt;p>(حيث $c$ هو أي عدد صحيح).&lt;/p>
&lt;h3 id="43-تحديد-الدورة-عن-طريق-توسيع-الكسر-المستمر">4.3. تحديد الدورة عن طريق توسيع الكسر المستمر
&lt;/h3>&lt;p>بعد الحصول على $y$ من خلال القياس، استخدم كمبيوتراً كلاسيكياً لإجراء &lt;strong>&amp;ldquo;توسيع الكسر المستمر&amp;rdquo;&lt;/strong> (Continued Fraction Expansion) على $y/Q$. يتيح ذلك حساب الكسر التقريبي $c/r$ للـ $y/Q$ واستخراج الدورة المحتملة $r$ من المقام بكفاءة عالية.&lt;/p>
&lt;hr>
&lt;h2 id="5-مقارنة-النماذج-المفاهيمية-والنقلة-النوعية">5. مقارنة النماذج المفاهيمية والنقلة النوعية
&lt;/h2>&lt;p>لفهم الاختلاف بين GNFS وخوارزمية شور بشكل بديهي، يوضح الرسم المفاهيمي باستخدام تدوين Mermaid.&lt;/p>
&lt;h3 id="رسم-مفاهيمي-لخوارزمية-شور-باستخدام-دارة-كمية">رسم مفاهيمي لخوارزمية شور باستخدام دارة كمية
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">graph TD
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> A[الحالة الأولية: 0...0] --&amp;gt; B[تراكب جميع الحالات بتحويل هادامار]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> B --&amp;gt; C[عملية الأس المعياري a^x mod N]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|التشابك الكمي| D[الانهيار إلى حالة ذات دورية]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> D --&amp;gt; E[تحويل فورييه الكمي QFT]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> E --&amp;gt;|تضخيم الاحتمالية عبر التداخل| F[القياس: الحصول على y]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> F --&amp;gt; G[المعالجة الكلاسيكية: الكسر المستمر]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> G --&amp;gt; H[اكتشاف الدورة r]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> H --&amp;gt; I[حساب العامل الأولي لـ N]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> style A fill:#f9f,stroke:#333,stroke-width:2px
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> style E fill:#bbf,stroke:#333,stroke-width:2px
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> style I fill:#bfb,stroke:#333,stroke-width:2px
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="جوهر-النقلة-النوعية">جوهر النقلة النوعية
&lt;/h3>&lt;p>يتخذ GNFS نهج &lt;strong>&amp;ldquo;البحث عن علاقات داخل الفضاء الرياضي (الحقل الجبري)&amp;rdquo;&lt;/strong> . ومع ذلك، نظراً لأن مساحة البحث تتسع أسيًا مع عدد الأرقام، يصبح فك التشفير مستحيلاً تقريباً لطول مفتاح يتجاوز 2048 بتاً باستخدام قدرة الحوسبة الكلاسيكية (حتى مع المعالجة المتوازية).&lt;/p>
&lt;p>من ناحية أخرى، تستفيد خوارزمية شور من &lt;strong>&amp;ldquo;الطبيعة الموجية للتداخل الكمي&amp;rdquo;&lt;/strong> . فهي تقيّم جميع مسارات الحساب في حالة التراكب في وقت واحد، وتلغي (تُضعف) الإجابات غير الضرورية باستخدام QFT، وتضخم فقط سعة الاحتمال للدورة الصحيحة. بذلك، لا يبحث هذا النهج في المساحة، بل يتبنى بعداً مختلفاً تماماً: &lt;strong>&amp;ldquo;جعل الإجابة الصحيحة تطفو على السطح&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;h2 id="6-الخلاصة">6. الخلاصة
&lt;/h2>&lt;p>في هذا المقال، قارنا بعمق الخلفية الرياضية وهيكل الخوارزمية بين &lt;strong>&amp;ldquo;GNFS&amp;rdquo;&lt;/strong> الذي يمثل أقصى حدود الحوسبة الكلاسيكية، و &lt;strong>&amp;ldquo;خوارزمية شور&amp;rdquo;&lt;/strong> التي تُظهر قوة الحوسبة الكمية.&lt;/p>
&lt;p>في حين استخدم GNFS تقنيات رياضية مثل اختيار كثيرات الحدود وحسابات المصفوفات الضخمة لدفع التعقيد نحو وقت شبه أسي، حققت خوارزمية شور اختراقاً مباشراً إلى وقت كثير الحدود من خلال الجمع بين المبادئ الأساسية لميكانيكا الكم من التراكب والتداخل مع أداة رياضية (QFT).&lt;/p>
&lt;p>في الوقت الحالي، لا يوجد كمبيوتر كمي متسامح مع الأخطاء (FTQC) على نطاق عملي (آلاف الكيوبتات) قادر على تشغيل خوارزمية شور. ومع ذلك، فإن وجود هذه النقلة النوعية النظرية والرياضية هو بالتحديد السبب الأكبر وراء تسريع الانتقال إلى التشفير ما بعد الكمي (PQC: Post-Quantum Cryptography) في جميع أنحاء العالم اليوم.&lt;/p></description></item><item><title>【تحليل شامل】 ما هو الكمبيوتر الكمي؟ 〜مبادئ الحوسبة المطلقة من الصفر〜</title><link>http://kenji.blog/ar/p/quantum-computer-basics/</link><pubDate>Sat, 05 Sep 2026 22:10:00 +0900</pubDate><guid>http://kenji.blog/ar/p/quantum-computer-basics/</guid><description>&lt;img src="http://kenji.blog/p/quantum-computer-basics/quantum_basics_eyecatch_1788613712487.jpg" alt="Featured image of post 【تحليل شامل】 ما هو الكمبيوتر الكمي؟ 〜مبادئ الحوسبة المطلقة من الصفر〜" />&lt;h2 id="مقدمة-نقلة-نوعية-في-الحوسبة-بفضل-أجهزة-الكمبيوتر-الكمومية">مقدمة: &amp;ldquo;نقلة نوعية في الحوسبة&amp;rdquo; بفضل أجهزة الكمبيوتر الكمومية
&lt;/h2>&lt;p>في السنوات الأخيرة، لا يمر يوم دون أن نرى مصطلح &amp;ldquo;الكمبيوتر الكمي&amp;rdquo; في الأخبار أو المقالات التقنية. قصص أشبه بالخيال العلمي، مثل &amp;ldquo;إنهاء عمليات حسابية قد تستغرق آلاف السنين على أجهزة الكمبيوتر الخارقة الحالية في دقائق معدودة&amp;rdquo; أو &amp;ldquo;قد يتم اختراق جميع تقنيات التشفير الحالية&amp;rdquo;، تُروى وكأنها حقيقة. تتنافس شركات تكنولوجيا المعلومات العملاقة مثل جوجل وآي بي إم ومايكروسوفت، بالإضافة إلى الجامعات والشركات الناشئة في جميع أنحاء العالم، بشراسة نحو تسويق تقنية الأحلام هذه.&lt;/p>
&lt;p>ومع ذلك، إذا سُئل شخص &amp;ldquo;ما هو الكمبيوتر الكمي حقًا؟&amp;quot;، فقلة من الناس سيتمكنون من الإجابة بدقة. يمتلك الكثيرون صورة غامضة مثل &amp;ldquo;صندوق سحري يمكنه حساب جميع الاحتمالات في نفس الوقت&amp;rdquo;، ولكن بالمعنى الدقيق للكلمة، هذا ليس صحيحًا.&lt;/p>
&lt;p>في هذه المقالة، سنشرح بالتفصيل وبشكل مفهوم ولكنه تقني من الأساسيات، كيف يختلف الكمبيوتر الكمي جوهريًا عن الكمبيوتر الكلاسيكي (أجهزة الكمبيوتر الشخصية والهواتف الذكية التي نستخدمها عادةً)، وكيف يتم استخدام الظواهر الغريبة لميكانيكا الكم مثل &amp;ldquo;التراكب (Superposition)&amp;rdquo; و&amp;quot;التشابك الكمي (Entanglement)&amp;rdquo; و&amp;quot;البوابات الكمومية (Quantum gates)&amp;quot; في الحوسبة. بحلول الوقت الذي تنتهي فيه من قراءة هذه المقالة، يجب أن تكون قادرًا على فهم العظمة الجوهرية لأجهزة الكمبيوتر الكمومية والتحديات الحالية بوضوح.&lt;/p>
&lt;hr>
&lt;h2 id="الفصل-الأول-الاختلاف-الجذري-بين-أجهزة-الكمبيوتر-الكلاسيكية-وأجهزة-الكمبيوتر-الكمومية">الفصل الأول: الاختلاف الجذري بين أجهزة الكمبيوتر الكلاسيكية وأجهزة الكمبيوتر الكمومية
&lt;/h2>&lt;p>لفهم كيفية عمل أجهزة الكمبيوتر الكمومية، نحتاج أولاً إلى مراجعة كيفية عمل &amp;ldquo;أجهزة الكمبيوتر الكلاسيكية&amp;rdquo; التي نستخدمها حاليًا.&lt;/p>
&lt;h3 id="جدول-مقارنة-الكمبيوتر-الكلاسيكي-مقابل-الكمبيوتر-الكمي">جدول مقارنة: الكمبيوتر الكلاسيكي مقابل الكمبيوتر الكمي
&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>العنصر&lt;/th>
&lt;th>الكمبيوتر الكلاسيكي&lt;/th>
&lt;th>الكمبيوتر الكمي&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>الوحدة الأساسية&lt;/strong>&lt;/td>
&lt;td>بت (0 أو 1)&lt;/td>
&lt;td>كيوبت (تراكب 0 و 1)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>تمثيل الحالة&lt;/strong>&lt;/td>
&lt;td>حتمي&lt;/td>
&lt;td>احتمالي (غير محدد حتى يتم ملاحظته)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>طريقة الحساب&lt;/strong>&lt;/td>
&lt;td>معالجة متسلسلة (يتطلب نوى مادية للتوازي)&lt;/td>
&lt;td>التوازي الكمي (معالجة حالات أسية في وقت واحد)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>العمليات المفضلة&lt;/strong>&lt;/td>
&lt;td>العمليات الحسابية، معالجة البيانات اليومية&lt;/td>
&lt;td>تحليل العوامل الأولية، حسابات الكيمياء الكمومية&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>تحمل الأخطاء&lt;/strong>&lt;/td>
&lt;td>قوي جدا&lt;/td>
&lt;td>ضعيف جدا (يتطلب بيئة شديدة البرودة أو تصحيح الأخطاء)&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="عالم-الكمبيوتر-الكلاسيكي-بت-bit-إما-0-أو-1">عالم الكمبيوتر الكلاسيكي: &amp;ldquo;بت (Bit)&amp;rdquo; إما 0 أو 1
&lt;/h3>&lt;p>تمثل أجهزة الكمبيوتر الكلاسيكية جميع المعلومات إما بالحالة &amp;ldquo;0&amp;rdquo; أو &amp;ldquo;1&amp;rdquo;. يسمى هذا &lt;strong>بت (Bit)&lt;/strong> . ماديًا، يتم تمثيل ذلك بجهد عالٍ (1) أو منخفض (0) في الترانزستور الموجود على شريحة شبه موصلة.
الصور عالية الدقة على هاتفك الذكي، وهذا النص الذي تقرأه الآن، ومقاطع فيديو يوتيوب المفضلة لديك، يتم اختزالها في النهاية إلى عدد هائل من &amp;ldquo;سلاسل الأصفار والآحاد&amp;rdquo;. الحساب ليس سوى عملية معالجة لسلاسل الأصفار والآحاد هذه من خلال دمج الدوائر المنطقية الأساسية مثل AND و OR و NOT.
هذا عالم مؤكد وحتمي للغاية. إذا كانت المدخلات هي نفسها، فستحصل دائمًا على نفس المخرجات.&lt;/p>
&lt;h3 id="عالم-الكمبيوتر-الكمي-كيوبت-qubit-الذي-يمثل-0-و-1-في-نفس-الوقت">عالم الكمبيوتر الكمي: &amp;ldquo;كيوبت (Qubit)&amp;rdquo; الذي يمثل 0 و 1 في نفس الوقت
&lt;/h3>&lt;p>من ناحية أخرى، تسمى أصغر وحدة معلومات في الكمبيوتر الكمي &lt;strong>الكيوبت (Qubit: Quantum bit)&lt;/strong> .
الميزة الكبرى للكيوبت هي أنه لا يقتصر على الوجود في حالة واحدة فقط إما &amp;ldquo;0&amp;rdquo; أو &amp;ldquo;1&amp;rdquo; مثل البت الكلاسيكي، بل يمكن أن يأخذ &amp;ldquo;حالة يختلط فيها 0 و 1 باحتمالية معينة&amp;rdquo;. يسمى هذا &lt;strong>&amp;ldquo;التراكب (Superposition)&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;p>على سبيل المثال، إذا كان البت الكلاسيكي هو عملة معدنية موضوعة بحيث يكون وجهها إما &amp;ldquo;ملك&amp;rdquo; أو &amp;ldquo;كتابة&amp;rdquo;، فغالبًا ما يُقارن الكيوبت بـ &amp;ldquo;عملة معدنية تستمر في الدوران في الهواء&amp;rdquo;. لا يمكن القول إن العملة التي تدور هي ملك أو كتابة، وكلا الحالتين تتداخلان. فقط في اللحظة التي تسقط فيها العملة على الأرض وتتوقف عن الحركة (في ميكانيكا الكم، يسمى هذا &amp;ldquo;الملاحظة&amp;rdquo; أو &amp;ldquo;القياس&amp;rdquo;)، يتم تحديد ما إذا كانت &amp;ldquo;ملكًا&amp;rdquo; أو &amp;ldquo;كتابة&amp;rdquo;.&lt;/p>
&lt;p>تدمج أجهزة الكمبيوتر الكمومية هذه الخاصية الفريدة للعالم المجهري (ميكانيكا الكم)، حيث &amp;ldquo;لا يتم تحديد الحالة حتى تتم ملاحظتها&amp;rdquo;، مباشرة في عملية معالجة المعلومات.&lt;/p>
&lt;hr>
&lt;h2 id="الفصل-الثاني-ثلاث-خصائص-كمومية-تغير-الحوسبة-من-جذورها">الفصل الثاني: ثلاث خصائص كمومية تغير الحوسبة من جذورها
&lt;/h2>&lt;p>لا يكمن مصدر القدرة الحسابية المذهلة لأجهزة الكمبيوتر الكمومية في مجرد ارتفاع تردد الساعة أو صغر حجم المكونات. بل في استخدام قوانين الفيزياء نفسها كموارد حوسبة. الظواهر الكمومية الثلاث التالية هي المفتاح.&lt;/p>
&lt;h3 id="1-التراكب-superposition-والكمية-الأسية-للمعلومات">1. التراكب (Superposition) والكمية الأسية للمعلومات
&lt;/h3>&lt;p>كما ذكرنا سابقًا، يمكن للكيوبت الاحتفاظ بكل من حالتي 0 و 1 في نفس الوقت. كيوبت واحد هو &amp;ldquo;تراكب لـ 0 و 1&amp;rdquo;، ولكن ماذا يحدث إذا قمنا بزيادة عدد الكيوبتات؟&lt;/p>
&lt;ul>
&lt;li>1 كيوبت: تراكب لحالتين (0, 1)&lt;/li>
&lt;li>2 كيوبت: تراكب لـ 4 حالات (00, 01, 10, 11)&lt;/li>
&lt;li>3 كيوبت: تراكب لـ 8 حالات&lt;/li>
&lt;li>&lt;strong>N كيوبت: تراكب لـ $2^N$ من الأنماط&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>مع وجود 50 كيوبت فقط، يمكن الاحتفاظ بـ $2^{50}$ (حوالي 1.1 كوادريليون) حالة في نفس الوقت. ومع وجود 300 كيوبت فقط، يمكن الاحتفاظ بـ $2^{300}$ من الأنماط (رقم يفوق عدد جميع الذرات في الكون!) دفعة واحدة. قدرة الاحتفاظ بالمعلومات الأسية هذه هي أساس إمكانات أجهزة الكمبيوتر الكمومية. من المستحيل فيزيائيًا على جهاز كمبيوتر كلاسيكي تخزين عدد من الحالات يفوق عدد الذرات في الكون في ذاكرته.&lt;/p>
&lt;h3 id="2-التشابك-الكمي-entanglement-فعل-مخيف-عن-بعد">2. التشابك الكمي (Entanglement): فعل مخيف عن بعد
&lt;/h3>&lt;p>التشابك الكمي هو ظاهرة غامضة تتحدى الحدس البشري لدرجة أن أينشتاين أطلق عليها اسم &amp;ldquo;الفعل المخيف عن بعد&amp;rdquo; ولم يتقبلها طوال حياته.&lt;/p>
&lt;p>عندما تدخل عدة كيوبتات في حالة &amp;ldquo;تشابك كمي&amp;rdquo;، فإنها ترتبط ببعضها البعض بقوة، لتشكل علاقة مصير مشترك حيث &lt;strong>&amp;ldquo;بمجرد تحديد حالة أحدهما، مهما بلغت المسافة بينهما، يتم تحديد حالة الآخر لحظيًا&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;p>على سبيل المثال، لنفترض أن هناك كيوبتين أ و ب في حالة تشابك (كلاهما في حالة تراكب بين 0 و 1). إذا لاحظنا أ ووجدناه &amp;ldquo;0&amp;rdquo;، فإن حالة ب سيتم تحديدها لحظيًا (لتصبح &amp;ldquo;1&amp;rdquo; دائمًا، على سبيل المثال)، متجاوزة سرعة الضوء التي هي الحد الأقصى لسرعة نقل المعلومات.
في أجهزة الكمبيوتر الكمومية، يتم استخدام هذا التشابك الكمي لتمثيل الارتباطات المعقدة بين عدة كيوبتات وإجراء معالجة متوازية فائقة للمعلومات. بدون التشابك، لن تختلف القدرة الحسابية للكمبيوتر الكمي كثيرًا عن الكمبيوتر الكلاسيكي.&lt;/p>
&lt;h3 id="3-التداخل-الكمي-quantum-interference-السحر-الذي-يبرز-الإجابة-الصحيحة">3. التداخل الكمي (Quantum Interference): السحر الذي يبرز الإجابة الصحيحة
&lt;/h3>&lt;p>قد تفكر: &amp;ldquo;إذا كان بإمكانه الاحتفاظ بجميع الأنماط في نفس الوقت، ألا يمكنه فقط حسابها جميعًا دفعة واحدة وإعطاء الإجابة في لحظة؟&amp;rdquo; هذا هو سوء الفهم الأكثر شيوعًا حول أجهزة الكمبيوتر الكمومية.
حتى إذا قمت بالحساب في حالة تراكب، يجب عليك في النهاية &amp;ldquo;الملاحظة&amp;rdquo; لمعرفة الإجابة. ولكن في لحظة الملاحظة، تنهار الحالة عشوائياً إلى واحد من الـ $2^N$ نمط. هذا سينتج ببساطة إجابة عشوائية تمامًا.&lt;/p>
&lt;p>هنا يأتي دور &lt;strong>&amp;ldquo;التداخل الكمي (Interference)&amp;rdquo;&lt;/strong> . عندما تصطدم الموجات، فإن الأجزاء التي تتوافق فيها أطوالها الموجية تقوي بعضها البعض، والأجزاء غير المتوافقة تلغي بعضها البعض (وهو نفس المبدأ الذي تعمل به سماعات إلغاء الضوضاء أساسًا).&lt;/p>
&lt;p>يقوم &amp;ldquo;الخوارزمية الكمومية&amp;rdquo; الممتازة بمعالجة الحالة الكمومية بمهارة أثناء عملية الحساب بحيث &lt;strong>&amp;ldquo;تعزز (تقوي) السعات الاحتمالية للحالات (الموجات) التي تؤدي إلى الإجابة الصحيحة بعضها البعض&amp;rdquo;&lt;/strong> و &lt;strong>&amp;ldquo;تلغي السعات الاحتمالية للحالات التي تؤدي إلى إجابات خاطئة بعضها البعض&amp;rdquo;&lt;/strong> . في النهاية، يتم تصميمه بحيث عندما تلاحظه في النهاية، فإن &amp;ldquo;الإجابة الصحيحة&amp;rdquo; ستخرج باحتمال يقترب من 100%. إن تصميم عملية التداخل هذه ببراعة هو جوهر البرمجة الكمومية.&lt;/p>
&lt;hr>
&lt;h2 id="الفصل-الثالث-كيف-يتم-الحساب-البوابات-الكمومية-والدوائر-الكمومية">الفصل الثالث: كيف يتم الحساب؟ &amp;ldquo;البوابات الكمومية&amp;rdquo; و&amp;quot;الدوائر الكمومية&amp;quot;
&lt;/h2>&lt;p>تماما كما تستخدم أجهزة الكمبيوتر الكلاسيكية البوابات المنطقية (AND، OR، NOT، إلخ) لإجراء العمليات الحسابية، فإن أجهزة الكمبيوتر الكمومية تطبق عمليات تسمى &lt;strong>&amp;ldquo;البوابات الكمومية (Quantum Gates)&amp;rdquo;&lt;/strong> على الكيوبتات لتقدم الحساب. يسمى الجمع بين عدة بوابات كمومية &lt;strong>بالدائرة الكمومية (Quantum Circuit)&lt;/strong> .&lt;/p>
&lt;p>يتم تمثيل حالة الكيوبت رياضيًا كنقطة على سطح كرة ثلاثية الأبعاد تسمى &amp;ldquo;كرة بلوخ&amp;rdquo;. القطب الشمالي هو &amp;ldquo;0&amp;rdquo;، والقطب الجنوبي هو &amp;ldquo;1&amp;rdquo;، وخط الاستواء هو &amp;ldquo;حالة يتداخل فيها 0 و 1 بالتساوي&amp;rdquo;. البوابات الكمومية ليست سوى عمليات لتدوير الحالة (المتجه) على سطح هذه الكرة.&lt;/p>
&lt;p>دعونا نقدم بعض البوابات الكمومية التمثيلية.&lt;/p>
&lt;h3 id="1-بوابة-هادامارد-h-gate">1. بوابة هادامارد (H gate)
&lt;/h3>&lt;p>هذه هي البوابة الأساسية والأكثر تميزًا لأجهزة الكمبيوتر الكمومية، والتي لا توجد في أجهزة الكمبيوتر الكلاسيكية. عندما يمر كيوبت حالته &amp;ldquo;0&amp;rdquo; تمامًا عبر بوابة H، فإنه ينشئ &amp;ldquo;حالة تراكب مثالية&amp;rdquo; (نقطة على خط استواء كرة بلوخ) حيث تتم ملاحظة 0 و 1 باحتمال نصف ونصف بالضبط. كخطوة تهيئة للحوسبة الكمومية، تبدأ العديد من الخوارزميات بتطبيق بوابة H هذه على جميع الكيوبتات أولاً.&lt;/p>
&lt;h3 id="2-بوابات-باولي-بوابات-x-و-y-و-z">2. بوابات باولي (بوابات X و Y و Z)
&lt;/h3>&lt;p>هذه بوابات تتضمن عمليات تعادل بوابة NOT الكلاسيكية (قلب 0 إلى 1، و 1 إلى 0). على كرة بلوخ، تتوافق مع عمليات الدوران بمقدار 180 درجة حول محاور X و Y و Z. على وجه الخصوص، تقلب بوابة X القطب الشمالي (0) إلى القطب الجنوبي (1)، وتعمل تمامًا مثل بوابة NOT الكلاسيكية. تلعب بوابة Z دور قلب &amp;ldquo;الطور (مثل توقيت الموجة)&amp;rdquo; للتراكب، وهي مهمة للغاية لإحداث التداخل الكمي.&lt;/p>
&lt;h3 id="3-بوابة-cnot-بوابة-not-المتحكم-بها">3. بوابة CNOT (بوابة NOT المتحكم بها)
&lt;/h3>&lt;p>هذه بوابة فائقة الأهمية لخلق التشابك الكمي. وتستخدم كيوبتين (بت تحكم وبت هدف).
طريقة عملها هي: &amp;ldquo;إذا كان بت التحكم 1، فاقلب حالة بت الهدف (بوابة X). وإذا كان بت التحكم 0، فلا تفعل شيئًا&amp;rdquo;. للوهلة الأولى تبدو وكأنها شرط IF بسيط، ولكن ماذا يحدث إذا كان بت التحكم في &amp;ldquo;حالة تراكب لـ 0 و 1&amp;rdquo;؟ سيصبح بت الهدف في &amp;ldquo;حالة تتداخل فيها الحالة المقلوبة وغير المقلوبة&amp;rdquo;، وسيتم ربط مصير البتين معًا بالكامل. هكذا &amp;ldquo;يتشابك&amp;rdquo; الكيوبتان بشكل مذهل.&lt;/p>
&lt;p>من خلال ترتيب وتطبيق هذه البوابات بالترتيب من اليسار إلى اليمين مثل نوتة موسيقية، يتم تنفيذ خوارزميات معقدة.&lt;/p>
&lt;hr>
&lt;h2 id="الفصل-الرابع-ما-هي-نقاط-قوة-وضعف-أجهزة-الكمبيوتر-الكمومية">الفصل الرابع: ما هي نقاط قوة وضعف أجهزة الكمبيوتر الكمومية؟
&lt;/h2>&lt;p>دعونا نخبركم بحقيقة مهمة هنا. الكمبيوتر الكمي ليس آلة قادرة على كل شيء.
في المهام اليومية مثل تصفح الويب، وتصيير الفيديو، ومعالجة ماكرو إكسل، أو تشغيل تطبيقات الهواتف الذكية العادية، فمن المحتمل ألا تتفوق أجهزة الكمبيوتر الكمومية على الكلاسيكية أبدًا. هذه المعالجات المتسلسلة تناسبها أكثر أجهزة الكمبيوتر الكلاسيكية، التي تم تحسينها بالفعل بدرجة عالية وتتميز بسرعات هائلة وأسعار منخفضة.&lt;/p>
&lt;p>تُظهر أجهزة الكمبيوتر الكمومية قيمتها الحقيقية فقط في &lt;strong>&amp;ldquo;المشكلات المحددة التي تنفجر فيها مجموعات الحساب أسيًا على أجهزة الكمبيوتر الكلاسيكية وقد تستغرق وقتًا يعادل عمر الكون لحلها&amp;rdquo;&lt;/strong> . يُطلق على هذا اسم &amp;ldquo;التفوق الكمي (Quantum Supremacy)&amp;rdquo; أو &amp;ldquo;الميزة الكمومية (Quantum Advantage)&amp;rdquo;.&lt;/p>
&lt;h3 id="الأشياء-التي-تبرع-فيها-أجهزة-الكمبيوتر-الكمومية-التطبيقات-القاتلة">الأشياء التي تبرع فيها أجهزة الكمبيوتر الكمومية (التطبيقات القاتلة)
&lt;/h3>&lt;h4 id="1-تحليل-العوامل-الأولية-وفك-التشفير-خوارزمية-شور">1. تحليل العوامل الأولية وفك التشفير (خوارزمية شور)
&lt;/h4>&lt;p>حاليًا، الاتصالات الآمنة على الإنترنت (مثل مدفوعات بطاقات الائتمان ونقل المعلومات الشخصية) محمية بواسطة &amp;ldquo;تشفير RSA&amp;rdquo;، الذي يعتمد على فرضية أن &amp;ldquo;تحليل الأعداد الضخمة إلى عوامل أولية أمر مستحيل عمليًا (يستغرق وقتًا هائلاً) لأجهزة الكمبيوتر الكلاسيكية&amp;rdquo;.
ومع ذلك، باستخدام &amp;ldquo;خوارزمية شور&amp;rdquo; التي اكتشفها عالم الرياضيات بيتر شور عام 1994، يمكن للكمبيوتر الكمي استخدام التداخل بمهارة لحل ذلك بسرعة هائلة (وقت متعدد الحدود). نتيجة لذلك، هناك خطر من انهيار أنظمة التشفير الحالية في المستقبل، وتتسابق البنوك المركزية والوكالات الحكومية حول العالم للانتقال إلى &amp;ldquo;التشفير ما بعد الكمي (Post-Quantum Cryptography)&amp;rdquo;.&lt;/p>
&lt;h4 id="2-حسابات-الكيمياء-الكمومية-وتطوير-مواد-وأدوية-جديدة">2. حسابات الكيمياء الكمومية وتطوير مواد وأدوية جديدة
&lt;/h4>&lt;p>يخضع سلوك الجزيئات والذرات في الطبيعة أصلاً لقوانين ميكانيكا الكم. إذا حاولنا محاكاة سلوك الجزيئات المعقدة بجهاز كمبيوتر كلاسيكي، فإن مجموعات تفاعلات الإلكترونات ستنفجر، وسنصل إلى حدود الحساب حتى بالنسبة للجزيئات الصغيرة نسبيًا.
وكما قال الحائز على جائزة نوبل في الفيزياء ريتشارد فاينمان، &amp;ldquo;إذا كنت ترغب في محاكاة الطبيعة، فمن الأفضل أن تصنعها من ميكانيكا الكم&amp;rdquo;، تُظهر أجهزة الكمبيوتر الكمومية قوة أصلية ساحقة في محاكاة المواد. من المتوقع حدوث اختراقات ستحل مشاكل البشرية، مثل تصميم أدوية مبتكرة، واكتشاف مواد فائقة التوصيل في درجة حرارة الغرفة، وتطوير مواد للخلايا الشمسية والبطاريات عالية الكفاءة، وتصنيع أسمدة موفرة للطاقة.&lt;/p>
&lt;h4 id="3-مشاكل-التحسين-التوافقي-والبحث-خوارزمية-غروفر">3. مشاكل التحسين التوافقي والبحث (خوارزمية غروفر)
&lt;/h4>&lt;p>الخوارزميات الكمومية فعالة أيضًا في المشكلات التي تتطلب العثور على أفضل خيار من بين عدد هائل من الخيارات (مثل طرق الخدمات اللوجستية المثلى، وتحسين المحافظ المالية، وما إلى ذلك). باستخدام &amp;ldquo;خوارزمية غروفر&amp;rdquo;، يمكن العثور على البيانات في قاعدة بيانات غير مرتبة بعدد عمليات يمثل الجذر التربيعي لما تحتاجه أجهزة الكمبيوتر الكلاسيكية. على سبيل المثال، إذا كان هناك 100 مليون جزء من البيانات، فإن البحث الذي قد يستغرق ما يصل إلى 100 مليون مرة كلاسيكيًا يمكن إكماله في حوالي 10000 مرة فقط.&lt;/p>
&lt;hr>
&lt;h2 id="الفصل-الخامس-الجدار-الصلب-للأجهزة-فك-الترابط-وتصحيح-الأخطاء-الكمومية">الفصل الخامس: الجدار الصلب للأجهزة &amp;ldquo;فك الترابط&amp;rdquo; و&amp;quot;تصحيح الأخطاء الكمومية&amp;quot;
&lt;/h2>&lt;p>على الرغم من أنها قوية كالسحر من الناحية النظرية، إلا أن الطريق نحو الاستخدام العملي لأجهزة الكمبيوتر الكمومية تسده عقبات فيزيائية عالية وشديدة الانحدار. العدو الأكبر هو &lt;strong>&amp;ldquo;الضوضاء (Noise)&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;p>تعتبر حالات &amp;ldquo;التراكب&amp;rdquo; و&amp;quot;التشابك الكمي&amp;quot; للكيوبتات هشة وضعيفة للغاية. فبمجرد تعرضها للقليل من حرارة البيئة، أو تذبذب الموجات الكهرومغناطيسية، أو الأشعة الكونية، ينهار هذا الوضع السحري في لحظة ويصبح مجرد بت كلاسيكي عادي. تسمى هذه الظاهرة &lt;strong>&amp;ldquo;فك الترابط (Decoherence)&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;h3 id="منافسة-شرسة-في-طرق-الإدراك-المادي">منافسة شرسة في طرق الإدراك المادي
&lt;/h3>&lt;p>حاليًا، يتم إجراء أبحاث على طرق مختلفة حول العالم حول كيفية صنع هذه الكيوبتات الحساسة ماديًا، وهناك صراع من أجل الهيمنة.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>طريقة الموصلية الفائقة (Superconducting)&lt;/strong> : تعتمدها شركات مثل Google و IBM و Amazon. تستخدم دوائر فائقة التوصيل على شكل حلقة، ويتم التحكم فيها عن طريق تبريدها إلى درجة حرارة شديدة الانخفاض قريبة من الصفر المطلق (حوالي -273 درجة مئوية) باستخدام ثلاجات عملاقة. إنها الطريقة الرائدة حاليًا والأسهل في زيادة عدد الكيوبتات، ولكن أجهزة التبريد ضخمة ومكلفة.&lt;/li>
&lt;li>&lt;strong>طريقة الأيونات المحاصرة (Trapped Ion)&lt;/strong> : تعتمدها شركات مثل IonQ و Quantinuum. تحبس الأيونات (الذرات) في فراغ باستخدام مجالات كهرومغناطيسية ويتم التحكم فيها بالليزر الدقيق. نقطة القوة هي أن جميع الكيوبتات متماثلة ويمكنها الحفاظ على حالتها لفترة طويلة (وقت تماسك طويل)، لكن سرعة تشغيلها أبطأ مقارنة بالموصلات الفائقة.&lt;/li>
&lt;li>&lt;strong>طريقة الضوئيات الكمومية (Photonic)&lt;/strong> : تركز عليها شركات مثل PsiQuantum. تستخدم جزيئات الضوء (الفوتونات). وتتميز بميزة كبيرة تتمثل في أن أجزاء كثيرة منها تعمل في درجة حرارة الغرفة دون الحاجة إلى بيئة شديدة البرودة، وهي متوافقة للغاية مع تقنيات تصنيع شرائح السيليكون وتقنيات اتصالات الألياف الضوئية الحالية.&lt;/li>
&lt;li>&lt;strong>الطريقة الطوبولوجية (Topological)&lt;/strong> : تبحث فيها Microsoft منذ سنوات. وهو نهج طموح يستخدم الخصائص الطوبولوجية لجسيمات خاصة تسمى &amp;ldquo;الأنيونات&amp;rdquo; لإنشاء كيوبتات تقاوم ضوضاء البيئة بشكل أساسي (أقل عرضة للأخطاء). وهي الأقوى نظريًا، ولكن يُقال إن إدراكها المادي هو الأصعب.&lt;/li>
&lt;/ul>
&lt;h3 id="الطريق-إلى-الهدف-النهائي-الكمبيوتر-الكمي-المتسامح-مع-الأخطاء-ftqc">الطريق إلى الهدف النهائي &amp;ldquo;الكمبيوتر الكمي المتسامح مع الأخطاء (FTQC)&amp;rdquo;
&lt;/h3>&lt;p>حتى في عالم أجهزة الكمبيوتر الكلاسيكية الحالية، توجد أخطاء حسابية (مثل انقلاب البتات بسبب الأشعة الكونية)، ولكن نظرًا لأنه يتم تصحيحها بشكل مثالي بواسطة &amp;ldquo;أكواد تصحيح الأخطاء&amp;rdquo;، يمكننا استخدام هواتفنا الذكية دون الانتباه إلى أي أخطاء. لإجراء حسابات عملية واسعة النطاق على أجهزة الكمبيوتر الكمومية، فإن &lt;strong>&amp;ldquo;تصحيح الأخطاء الكمومية (Quantum Error Correction: QEC)&amp;rdquo;&lt;/strong> المماثل أمر ضروري.&lt;/p>
&lt;p>ومع ذلك، تمتلك الحالة الكمومية خاصية &amp;ldquo;الانهيار عند الملاحظة&amp;rdquo;، لذلك هناك معضلة قاتلة تتمثل في أنك لا تستطيع النظر مباشرة في الداخل (الملاحظة) للتحقق من الأخطاء.
لتجنب ذلك، تم إنشاء نظرية للجمع بمهارة بين عدد كبير من &amp;ldquo;الكيوبتات المادية&amp;rdquo; غير المستقرة لبناء &amp;ldquo;كيوبت منطقي&amp;rdquo; واحد مستقر يمكنه اكتشاف الأخطاء وتصحيحها (مثل الرموز السطحية).
ومع ذلك، يُقال إن الأمر يتطلب ما بين 1000 إلى 10000 كيوبت مادي لإنشاء كيوبت منطقي واحد. ولتشغيل خوارزمية شور باستخدام آلاف الكيوبتات المنطقية، يلزم وجود نظام ضخم يضم ملايين إلى عشرات الملايين من الكيوبتات المادية بشكل عام.&lt;/p>
&lt;p>العصر الذي نعيش فيه الآن يسمى عصر أجهزة &lt;strong>NISQ (الكم ذو النطاق المتوسط والضوضاء)&lt;/strong> . وهي أجهزة انتقالية تعمل بعشرات إلى مئات الكيوبتات دون تصحيح للأخطاء.
يتوقع الخبراء أن الهدف النهائي، وهو تحقيق &lt;strong>&amp;ldquo;كمبيوتر كمي متسامح مع الأخطاء (FTQC)&amp;rdquo;&lt;/strong> قادر على تصحيح الأخطاء تمامًا، سيستغرق أبحاثًا وتطويرًا على المدى الطويل من 10 سنوات إلى عدة عقود.&lt;/p>
&lt;hr>
&lt;h2 id="الفصل-السادس-تاريخ-وآفاق-المستقبل-لأجهزة-الكمبيوتر-الكمومية">الفصل السادس: تاريخ وآفاق المستقبل لأجهزة الكمبيوتر الكمومية
&lt;/h2>&lt;p>أخيرًا، دعونا نلقي نظرة عامة على كيفية نشأة أجهزة الكمبيوتر الكمومية وإلى أين تتجه.&lt;/p>
&lt;h3 id="من-ولادة-النظرية-إلى-إثبات-التفوق-الكمي">من ولادة النظرية إلى إثبات &amp;ldquo;التفوق الكمي&amp;rdquo;
&lt;/h3>&lt;ul>
&lt;li>&lt;strong>الثمانينيات&lt;/strong> : اقترح الفيزيائيان بول بينيوف وريتشارد فاينمان مفهوم الحواسيب التي تستخدم مبادئ ميكانيكا الكم. كانت عبارة &amp;ldquo;إذا كنت تريد محاكاة الطبيعة، فاستخدم ميكانيكا الكم&amp;rdquo; هي نقطة الانطلاق.&lt;/li>
&lt;li>&lt;strong>عام 1994&lt;/strong> : أعلن بيتر شور عن خوارزمية كمومية لتحليل العوامل (خوارزمية شور). صدم هذا العالم وأصبح حافزًا لتدفق تمويل بحثي هائل.&lt;/li>
&lt;li>&lt;strong>عام 1996&lt;/strong> : أعلن لوف غروفر عن خوارزمية غروفر التي تسرع البحث عن البيانات.&lt;/li>
&lt;li>&lt;strong>عام 2019&lt;/strong> : معلم تاريخي. أعلنت جوجل أنها استخدمت معالج &amp;ldquo;Sycamore&amp;rdquo; فائق التوصيل بـ 53 كيوبت لإكمال عملية حسابية للتحقق من توليد أرقام عشوائية، والتي (قيل إنها) تستغرق 10000 عام على كمبيوتر كلاسيكي فائق، في حوالي 200 ثانية. أصبح هذا موضوعًا ساخنًا كأول إعلان في العالم يثبت &lt;strong>&amp;ldquo;التفوق الكمي (Quantum Supremacy)&amp;rdquo;&lt;/strong> (رغم أنه أثار لاحقًا نقاشات حامية حيث جادلت IBM وآخرون بأنه يمكن حسابه في بضعة أيام عن طريق تحسين الخوارزمية من جانب الكمبيوتر الفائق الكلاسيكي).&lt;/li>
&lt;li>&lt;strong>منذ عام 2023&lt;/strong> : أعلنت شركة IBM عن معالج &amp;ldquo;Condor&amp;rdquo; الذي يحتوي على أكثر من 1000 كيوبت. بالإضافة إلى ذلك، نجحت جامعة هارفارد ومؤسسات أخرى في إنشاء ومعالجة &amp;ldquo;كيوبتات منطقية&amp;rdquo;، وبدأت التقارير تتوالى عن العروض التوضيحية المبكرة لتقنيات تصحيح الأخطاء.&lt;/li>
&lt;/ul>
&lt;h3 id="نحو-تكنولوجيا-الجيل-القادم">نحو تكنولوجيا الجيل القادم
&lt;/h3>&lt;p>الكمبيوتر الكمي ليس مجرد &amp;ldquo;وحدة معالجة مركزية من الجيل التالي بتردد ساعة أسرع&amp;rdquo;. إنه نقلة نوعية حقيقية في علم المعلومات، تعيد كتابة مفهوم الحوسبة نفسها من جذوره بقواعد ميكانيكا الكم التي تحكم العالم المجهري.&lt;/p>
&lt;p>خلال حياتنا، ربما لن نمتلك &amp;ldquo;هاتفًا ذكيًا كميًا شخصيًا&amp;rdquo; يتسع في جيوبنا (ولا حاجة لذلك أصلاً). ولكن، المستقبل الذي ستكتشف فيه مراكز البيانات الكمومية القوية خلف شبكات السحابة مثل AWS أو Azure فجأة علاجًا سحريًا لمرض عضال، أو تتوصل لمواد طاقة نظيفة حلم لحل مشكلة الاحتباس الحراري (على سبيل المثال، محفز يصنع الأمونيا من النيتروجين الجوي في درجة حرارة الغرفة)، يقترب بلا شك.&lt;/p>
&lt;p>نحن الآن في فجر مبكر يعادل حقبة ENIAC في الأربعينيات، عندما كانت أجهزة الكمبيوتر تعمل بالبطاقات المثقبة بينما جعلت حرارة الأنابيب المفرغة العملاقة الغرف شديدة الحرارة. ومع ذلك، يعمل كبار الباحثين والمهندسين في العالم بجد، ويتم الإبلاغ عن اختراقات تكنولوجية كل يوم تقريبًا.
بفضل قدرتنا على مشاهدة تطور &amp;ldquo;فجر الحوسبة&amp;rdquo; الجديد هذا في الوقت الفعلي، يمكن القول إننا نعيش في حقبة مثيرة للغاية في التاريخ.&lt;/p>
&lt;p>باب عالم الكم ما زال في بداية انفتاحه. لا يمكننا أن نرفع أعيننا عن التطورات المستقبلية.&lt;/p>
&lt;hr>
&lt;p>&lt;em>تهدف هذه المقالة إلى شرح المفاهيم الأساسية للحوسبة الكمومية بطريقة سهلة الفهم لرجال الأعمال وعامة الناس المهتمين بالتكنولوجيا. يرجى ملاحظة أن بعض التعريفات الرياضية والفيزيائية الصارمة (مثل تفاصيل تدوين برا-كيت وسعات الاحتمال المركبة) قد تم تبسيطها.&lt;/em>&lt;/p></description></item><item><title>【PQC】الصورة الكاملة لـ "تشفير ما بعد الكم" تشفير الجيل القادم في عصر الحوسبة الكمومية</title><link>http://kenji.blog/ar/p/post-quantum-cryptography/</link><pubDate>Sat, 05 Sep 2026 22:09:22 +0900</pubDate><guid>http://kenji.blog/ar/p/post-quantum-cryptography/</guid><description>&lt;img src="http://kenji.blog/p/post-quantum-cryptography/post_quantum_cryptography_1788613735417.jpg" alt="Featured image of post 【PQC】الصورة الكاملة لـ "تشفير ما بعد الكم" تشفير الجيل القادم في عصر الحوسبة الكمومية" />&lt;h2 id="مقدمة-التهديد-الذي-تشكله-الحواسيب-الكمومية-على-تقنيات-التشفير">مقدمة: &amp;ldquo;التهديد&amp;rdquo; الذي تشكله الحواسيب الكمومية على تقنيات التشفير
&lt;/h2>&lt;p>في الوقت الحاضر، يتم حماية الغالبية العظمى من الاتصالات اليومية التي نجريها عبر الإنترنت - بدءًا من المدفوعات المصرفية عبر الإنترنت، وتصفح الويب (HTTPS)، وتبادل الرسائل في التطبيقات، وصولاً إلى معاملات البلوكشين والأصول المشفرة - بواسطة تقنية تُعرف باسم &amp;ldquo;تشفير المفتاح العام&amp;rdquo;. وعلى وجه التحديد، تشكل خوارزميات مثل تشفير RSA وتشفير المنحنى الإهليلجي (ECC) الأساس الذي تقوم عليه موثوقية المجتمع الرقمي الحديث.&lt;/p>
&lt;p>تعتمد طرق التشفير هذه في أمانها على مسائل رياضية معقدة مثل &amp;ldquo;تحليل الأعداد الأولية الكبيرة&amp;rdquo; أو &amp;ldquo;مسألة اللوغاريتم المتقطع&amp;rdquo;، والتي تستغرق وقتًا فلكيًا لحلها بواسطة الحواسيب الكلاسيكية الحالية (بما في ذلك الحواسيب الخارقة). ومع ذلك، مع التقدم السريع الذي أحرزته &lt;strong>الحواسيب الكمومية&lt;/strong> في السنوات الأخيرة، فإن هذا الأساس سينهار تمامًا بمجرد وضعها موضع التنفيذ.&lt;/p>
&lt;p>في عام 1994، نشر بيتر شور &amp;ldquo;خوارزمية شور&amp;rdquo;، والتي أثبتت رياضيًا أنه يمكن حل مسائل تحليل الأعداد الأولية واللوغاريتم المتقطع في وقت قصير جدًا باستخدام حاسوب كمومي ذي أداء كافٍ. وهذا يعني أن هناك خطرًا من أن جميع الاتصالات المشفرة التي تحمي الإنترنت اليوم سيتم فك تشفيرها في المستقبل (وهي مشكلة تعرف باسم Y2Q: سنوات حتى الكم، أو Q-Day).&lt;/p>
&lt;p>وما يزيد الأمر خطورة هو وجود أسلوب هجوم يُعرف باسم &amp;ldquo;احصد الآن، وفك التشفير لاحقًا (Harvest Now, Decrypt Later)&amp;rdquo; (أي سرقة البيانات الآن وتخزينها، وفك تشفيرها عندما يصبح التشفير قابلاً للكسر في المستقبل). فالبيانات التي يجب الحفاظ على سريتها لعقود، مثل أسرار الدولة، والملكية الفكرية للشركات، والمعلومات البيومترية للأفراد، ربما تكون بالفعل هدفًا للسرقة على افتراض أنه سيتم فك تشفيرها مستقبلاً.&lt;/p>
&lt;p>استجابة لهذه الأزمة غير المسبوقة، يعمل خبراء التشفير ومعاهد الأبحاث في جميع أنحاء العالم بكل طاقتهم لتطوير تقنية تشفير من الجيل القادم قادرة على مقاومة هجمات الحواسيب الكمومية، وهي &lt;strong>تشفير ما بعد الكم (PQC: Post-Quantum Cryptography)&lt;/strong> . في هذه المقالة، سنشرح بالتفصيل أساسيات PQC، وآليات الخوارزميات الرئيسية، وأحدث اتجاهات التوحيد القياسي العالمي التي يقودها المعهد الوطني الأمريكي للمعايير والتكنولوجيا (NIST).&lt;/p>
&lt;hr>
&lt;h2 id="ما-هو-تشفير-ما-بعد-الكم-pqc">ما هو تشفير ما بعد الكم (PQC)؟
&lt;/h2>&lt;p>يُعد تشفير ما بعد الكم (PQC) مصطلحًا شاملاً لخوارزميات التشفير المصممة للعمل على الحواسيب الكلاسيكية الحالية مع الاحتفاظ بالقدرة على مقاومة الهجمات من الحواسيب الكمومية واسعة النطاق في المستقبل (مثل خوارزمية شور).&lt;/p>
&lt;p>غالبًا ما يتم الخلط بين هذه التكنولوجيا و &amp;ldquo;التشفير الكمومي&amp;rdquo; أو &amp;ldquo;توزيع المفتاح الكمومي (QKD)&amp;quot;، إلا أنهما نهجان مختلفان تمامًا. فالتشفير الكمومي (QKD) هو تقنية تعتمد على الأجهزة تستخدم القوانين الفيزيائية لميكانيكا الكم (مثل خاصية تغير الحالة عند المراقبة) لجعل التنصت على مسار الاتصال مستحيلاً ماديًا. وهو يتطلب أليافًا بصرية خاصة أو معدات خاصة، ويواجه تحديات مثل تكلفة التنفيذ وقيود المسافة.&lt;/p>
&lt;p>من ناحية أخرى، &lt;strong>تُعد PQC تقنية تشفير تعتمد على البرامج وتستند بالكامل إلى &amp;ldquo;الرياضيات&amp;rdquo;&lt;/strong> . وبالتالي، يمكن دمجها كتحديث برمجي في البنية التحتية الحالية للإنترنت، والخوادم، والهواتف الذكية، والمتصفحات، وغيرها، مما يجعل قابليتها للتطبيق في العالم الحقيقي عالية جدًا. وتعتبر شركات تكنولوجيا المعلومات والوكالات الحكومية في جميع أنحاء العالم الآن أن استبدال (ترحيل) خوارزميات RSA و ECC المستخدمة حاليًا بتقنية PQC هذه يمثل أولوية قصوى.&lt;/p>
&lt;hr>
&lt;h2 id="المناهج-الرياضية-الرئيسية-الأربعة-التي-تدعم-pqc">المناهج الرياضية الرئيسية الأربعة التي تدعم PQC
&lt;/h2>&lt;p>تم اقتراح العديد من خوارزميات PQC بناءً على مسائل رياضية يصعب حلها بكفاءة حتى باستخدام الحواسيب الكمومية (مثل المسائل صعبة الحل NP-hard). نستعرض هنا الفئات الأربع الرئيسية السائدة حاليًا.&lt;/p>
&lt;h3 id="المناهج-الرئيسية-لتشفير-ما-بعد-الكم-pqc">المناهج الرئيسية لتشفير ما بعد الكم (PQC)
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">graph&lt;/span> &lt;span class="n">LR&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PQC&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="err">تشفير&lt;/span> &lt;span class="err">ما&lt;/span> &lt;span class="err">بعد&lt;/span> &lt;span class="err">الكم&lt;/span> &lt;span class="n">PQC&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">--&amp;gt;&lt;/span> &lt;span class="n">L&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="err">التشفير&lt;/span> &lt;span class="err">القائم&lt;/span> &lt;span class="err">على&lt;/span> &lt;span class="err">الشبكة&lt;/span> &lt;span class="n">Lattice&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">based&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PQC&lt;/span> &lt;span class="o">--&amp;gt;&lt;/span> &lt;span class="n">H&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="err">التشفير&lt;/span> &lt;span class="err">القائم&lt;/span> &lt;span class="err">على&lt;/span> &lt;span class="err">التجزئة&lt;/span> &lt;span class="n">Hash&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">based&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PQC&lt;/span> &lt;span class="o">--&amp;gt;&lt;/span> &lt;span class="n">M&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="err">تشفير&lt;/span> &lt;span class="err">متعدد&lt;/span> &lt;span class="err">المتغيرات&lt;/span> &lt;span class="n">Multivariate&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PQC&lt;/span> &lt;span class="o">--&amp;gt;&lt;/span> &lt;span class="n">C&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="err">التشفير&lt;/span> &lt;span class="err">القائم&lt;/span> &lt;span class="err">على&lt;/span> &lt;span class="err">الكود&lt;/span> &lt;span class="n">Code&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">based&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">L&lt;/span> &lt;span class="o">--&amp;gt;&lt;/span> &lt;span class="n">L1&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">FIPS&lt;/span> &lt;span class="mi">203&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">ML&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">KEM&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">L&lt;/span> &lt;span class="o">--&amp;gt;&lt;/span> &lt;span class="n">L2&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">FIPS&lt;/span> &lt;span class="mi">204&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">ML&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">DSA&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">H&lt;/span> &lt;span class="o">--&amp;gt;&lt;/span> &lt;span class="n">H1&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">FIPS&lt;/span> &lt;span class="mi">205&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">SLH&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">DSA&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">style&lt;/span> &lt;span class="n">PQC&lt;/span> &lt;span class="n">fill&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="c1">#f9f,stroke:#333,stroke-width:2px&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="1-التشفير-القائم-على-الشبكة-lattice-based-cryptography">1. التشفير القائم على الشبكة (Lattice-based Cryptography)
&lt;/h3>&lt;p>يُعد التشفير القائم على الشبكة حاليًا التوجه الأبرز والأكثر الواعدة في مجال PQC. يعتمد هذا التشفير في أمانه على المسائل المتعلقة بالنقاط المرتبة بانتظام (نقاط الشبكة) في المساحات متعددة الأبعاد. تشمل المسائل الشهيرة &amp;ldquo;مسألة أقصر متجه (SVP)&amp;rdquo; و &amp;ldquo;مسألة التعلم مع الأخطاء (LWE)&amp;rdquo;.&lt;/p>
&lt;p>&lt;strong>نظرة عامة على الآلية:&lt;/strong>
تخيل عددًا لا يحصى من النقاط المرتبة في نمط شبكي في مساحة عالية الأبعاد (مئات إلى آلاف الأبعاد). من السهل العثور على نقطة شبكة معينة في بعدين أو ثلاثة أبعاد، ولكن في مئات الأبعاد، لم يتم العثور على خوارزمية فعالة للعثور عليها سواء للحواسيب الكلاسيكية أو الكمومية. وتستفيد مسألة LWE تحديدًا من الخاصية التي تنص على أن &amp;ldquo;إضافة &amp;lsquo;ضوضاء (خطأ)&amp;rsquo; صغيرة عمدًا إلى نظام من المعادلات الخطية يجعل تخمين المتغيرات الأصلية أمرًا بالغ الصعوبة&amp;rdquo;.&lt;/p>
&lt;p>&lt;strong>المزايا:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>قابل للتطبيق لكل من تبادل المفاتيح (KEM) والتوقيعات الرقمية.&lt;/li>
&lt;li>سرعة المعالجة عالية جدًا (تكون أحيانًا أسرع من RSA أو ECC).&lt;/li>
&lt;li>حجم المفتاح والنص المشفر صغير نسبيًا، مما يجعله متوازنًا.&lt;/li>
&lt;/ul>
&lt;p>تعتمد معظم الخوارزميات التي تقوم NIST بتوحيدها حاليًا (مثل ML-KEM و ML-DSA) على هذا التشفير القائم على الشبكة.&lt;/p>
&lt;h3 id="2-التشفير-القائم-على-التجزئة-hash-based-cryptography">2. التشفير القائم على التجزئة (Hash-based Cryptography)
&lt;/h3>&lt;p>التشفير القائم على التجزئة هو خوارزمية PQC مخصصة للتوقيعات الرقمية. يعتمد أمانها حصريًا على مقاومة الاصطدام والاتجاه الواحد لـ &amp;ldquo;وظائف التجزئة التشفيرية&amp;rdquo; الآمنة، مثل SHA-2 أو SHA-3.&lt;/p>
&lt;p>&lt;strong>نظرة عامة على الآلية:&lt;/strong>
يبدأ الأمر بمخطط توقيع يُستخدم لمرة واحدة يُسمى &amp;ldquo;توقيع لامبورت (Lamport Signature)&amp;quot;، والذي لا يمكن استخدامه إلا مرة واحدة. من خلال تجميع هذه التوقيعات في بنية بيانات شجرية تسمى &amp;ldquo;شجرة ميركل (Merkle Tree)&amp;quot;، فإنها تتيح توقيعات متعددة باستخدام زوج مفاتيح واحد.&lt;/p>
&lt;p>&lt;strong>المزايا:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>أساس الأمان قوي للغاية، مع إثبات قوي على أنه &amp;ldquo;طالما كانت وظيفة التجزئة آمنة، فهو آمن&amp;rdquo;.&lt;/li>
&lt;li>نظرًا لقلة الاعتماد على الهياكل الرياضية، فإن خطر العثور على طرق غير متوقعة لكسر التشفير منخفض جدًا.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>العيوب:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>لا يمكن استخدامه لتبادل المفاتيح (KEM)، فقط للتوقيعات الرقمية.&lt;/li>
&lt;li>يميل حجم التوقيع إلى أن يكون كبيرًا.&lt;/li>
&lt;li>توجد إصدارات &amp;ldquo;تحتفظ بالحالة (stateful)&amp;rdquo; و &amp;ldquo;بدون حالة (stateless)&amp;rdquo;. تمثل الإصدارات التي تحتفظ بالحالة (مثل XMSS) تحديًا كبيرًا في التنفيذ نظرًا للحاجة إلى إدارة عدد مرات استخدام المفاتيح بدقة.&lt;/li>
&lt;/ul>
&lt;p>قامت NIST بتوحيد &amp;ldquo;SLH-DSA (سابقًا SPHINCS+)&amp;rdquo; كمعيار لتوقيعات التجزئة بدون حالة.&lt;/p>
&lt;h3 id="3-التشفير-متعدد-المتغيرات-multivariate-cryptography">3. التشفير متعدد المتغيرات (Multivariate Cryptography)
&lt;/h3>&lt;p>يعتمد التشفير متعدد المتغيرات في أمانه على صعوبة حل أنظمة المعادلات التربيعية المتعددة التي تحتوي على العديد من المتغيرات (مسألة MQ: Multivariate Quadratic problem). من المعروف أن هذه المسألة صعبة الحل (NP-hard).&lt;/p>
&lt;p>&lt;strong>نظرة عامة على الآلية:&lt;/strong>
يقوم المرسل بإنشاء نص مشفر (توقيع) عن طريق تعويض النص العادي (أو قيمة التجزئة) في معادلة معقدة ذات متغيرات متعددة يتم توفيرها كمفتاح عام. يمتلك المتلقي الشرعي &amp;ldquo;معلومات مخفية (باب خلفي) تحول بنية المعادلة إلى شكل يسهل حله&amp;rdquo; كمفتاح سري، ويستخدمه لفك التشفير (أو التحقق من التوقيع).&lt;/p>
&lt;p>&lt;strong>المزايا:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>حجم التوقيع صغير جدًا.&lt;/li>
&lt;li>سرعة التحقق من التوقيع سريعة للغاية. مناسب لأجهزة إنترنت الأشياء (IoT) ذات الموارد المحدودة.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>العيوب:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>حجم المفتاح العام كبير جدًا (قد يصل إلى عشرات أو مئات الكيلوبايت).&lt;/li>
&lt;li>في الماضي، تم اختراق بعض الخوارزميات البارزة (مثل Rainbow) بواسطة هجمات كلاسيكية، مما يجعل بناء الثقة في أمانها أصعب قليلاً مقارنة بالطرق الأخرى.&lt;/li>
&lt;/ul>
&lt;h3 id="4-التشفير-القائم-على-الكود-code-based-cryptography">4. التشفير القائم على الكود (Code-based Cryptography)
&lt;/h3>&lt;p>التشفير القائم على الكود هو تطبيق لنظرية &amp;ldquo;أكواد تصحيح الأخطاء&amp;rdquo; المستخدمة لتصحيح الأخطاء في قنوات الاتصال في مجال التشفير. يعتبر &amp;ldquo;تشفير ماك إيليس (McEliece Cryptography)&amp;rdquo; المقترح في عام 1978 هو الأكثر شهرة، وهو أحد أقدم التقنيات في مجال PQC.&lt;/p>
&lt;p>&lt;strong>نظرة عامة على الآلية:&lt;/strong>
يقوم المرسل بتشفير النص العادي باستخدام المفتاح العام للمتلقي (مصفوفة التوليد لكود تصحيح الأخطاء التي تخفي بنية معينة)، ويضيف أخطاءً متعمدة (ضوضاء) قبل الإرسال. يستخدم المتلقي المفتاح السري لإزالة الأخطاء واستخراج النص العادي. ويجب على المهاجم تصحيح الأخطاء من كود عشوائي دون معرفة بنيته، وهو ما يسمى &amp;ldquo;مسألة فك تشفير المتلازمة العامة&amp;rdquo; وهي مثبتة كمسألة صعبة الحل (NP-hard).&lt;/p>
&lt;p>&lt;strong>المزايا:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>تمت دراسته بدقة لأكثر من 40 عامًا دون العثور على هجمات فعالة، مما يضمن موثوقية عالية للأمان.&lt;/li>
&lt;li>سرعة عالية في عمليات التشفير وفك التشفير.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>العيوب:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>حجم المفتاح العام كبير جدًا (قد يصل إلى عدة ميغابايت). وبالتالي، يصعب استخدامه في البيئات ذات النطاق الترددي أو الذاكرة المحدودة (مثل مصافحة بروتوكول TLS).&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="أحدث-اتجاهات-التوحيد-القياسي-لـ-pqc-من-قبل-nist">أحدث اتجاهات التوحيد القياسي لـ PQC من قبل NIST
&lt;/h2>&lt;p>أطلق المعهد الوطني الأمريكي للمعايير والتكنولوجيا (NIST) دعوة عالمية لتقديم خوارزميات تشفير ما بعد الكم من الجيل القادم في عام 2016، وأجرى جولات متعددة من التقييم الصارم على مدى سنوات عديدة.&lt;/p>
&lt;p>في عام 2024، أعلنت NIST أخيرًا عن الخوارزميات الثلاث التالية كمعايير لمعالجة المعلومات الفيدرالية (FIPS) الرسمية. وهذا يضع أساسًا قويًا للمؤسسات في جميع أنحاء العالم للبدء في تنفيذها في بيئات الإنتاج.&lt;/p>
&lt;h3 id="معايير-fips-المعتمدة-2024">معايير FIPS المعتمدة (2024)
&lt;/h3>&lt;ol>
&lt;li>
&lt;p>&lt;strong>FIPS 203: ML-KEM (سابقًا CRYSTALS-Kyber)&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>الغرض:&lt;/strong> آلية تغليف المفتاح (KEM) / التشفير وتبادل المفاتيح&lt;/li>
&lt;li>&lt;strong>التقنية الأساسية:&lt;/strong> التشفير القائم على الشبكة (Module-LWE)&lt;/li>
&lt;li>&lt;strong>الميزات:&lt;/strong> يوفر توازنًا ممتازًا بين حجم المفتاح والسرعة، وسيعمل كمعيار افتراضي لتبادل مفاتيح PQC في تطبيقات الإنترنت العامة مثل اتصالات الويب (TLS) وتطبيقات المراسلة الآمنة.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>FIPS 204: ML-DSA (سابقًا CRYSTALS-Dilithium)&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>الغرض:&lt;/strong> التوقيع الرقمي&lt;/li>
&lt;li>&lt;strong>التقنية الأساسية:&lt;/strong> التشفير القائم على الشبكة (Module-LWE)&lt;/li>
&lt;li>&lt;strong>الميزات:&lt;/strong> المعيار الرئيسي للتوقيعات الرقمية. يوفر معالجة فعالة، وسيصبح المعيار الجديد لجميع حالات استخدام التوقيع الإلكتروني، مثل توقيع البرامج والمصادقة على المستندات.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>FIPS 205: SLH-DSA (سابقًا SPHINCS+)&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>الغرض:&lt;/strong> التوقيع الرقمي&lt;/li>
&lt;li>&lt;strong>التقنية الأساسية:&lt;/strong> التشفير القائم على التجزئة (بدون حالة)&lt;/li>
&lt;li>&lt;strong>الميزات:&lt;/strong> يلعب دورًا مهمًا كخيار احتياطي في حالة اكتشاف ثغرات أمنية في التشفير القائم على الشبكة في المستقبل. ورغم أن حجم التوقيع أكبر، إلا أنه مناسب للاستخدامات التي تتطلب موثوقية طويلة المدى.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;h3 id="السعي-نحو-مزيد-من-التنوع">السعي نحو مزيد من التنوع
&lt;/h3>&lt;p>بينما أنهت NIST عملية التوحيد القياسي الأولية، فإنها تواصل البحث عن خوارزميات إضافية. ونظرًا لأن المعايير تميل بشكل كبير نحو &amp;ldquo;التشفير القائم على الشبكة&amp;rdquo;، يعتبر ضمان &lt;strong>&amp;ldquo;تنوع التشفير (Crypto Diversity)&amp;rdquo;&lt;/strong> أمرًا بالغ الأهمية. ويجري تقييم التشفير القائم على الكود وغيرها كمعايير احتياطية لتبادل المفاتيح، مما سيعزز من قوة أساس PQC في المستقبل.&lt;/p>
&lt;hr>
&lt;h2 id="سيناريوهات-وتحديات-الانتقال-إلى-pqc-أهمية-رشاقة-التشفير">سيناريوهات وتحديات الانتقال إلى PQC: أهمية &amp;ldquo;رشاقة التشفير&amp;rdquo;
&lt;/h2>&lt;p>مع إصدار المعايير الرسمية من قبل NIST، ستعمل الوكالات الحكومية والمؤسسات المالية وشركات التكنولوجيا في جميع أنحاء العالم على تسريع انتقالها (الهجرة) من RSA/ECC الحالي إلى PQC. كما توصي المبادئ التوجيهية الصادرة عن وكالة الأمن القومي الأمريكية (NSA) وغيرها بالانتهاء من الانتقال في وقت مبكر.&lt;/p>
&lt;h3 id="اعتماد-النهج-الهجين">اعتماد النهج الهجين
&lt;/h3>&lt;p>نظرًا لأن خوارزميات PQC جديدة، فإنها لم تخضع لـ &amp;ldquo;اختبار الزمن&amp;rdquo; مثل التشفير الكلاسيكي. وبالنظر إلى مخاطر الأخطاء الخفية في التنفيذ أو اكتشاف أساليب هجوم جديدة، يوصى باتباع &lt;strong>&amp;ldquo;النهج الهجين&amp;rdquo;&lt;/strong> خلال الفترة الانتقالية. يجمع هذا الأسلوب بين تقنيات التشفير الحالية والمثبتة (مثل ECDHE) مع خوارزميات PQC الجديدة (مثل ML-KEM) لتبادل المفاتيح. في الوقت الحالي، يتم اختبار هذا النهج بشكل متسارع في المتصفحات والخدمات السحابية الرئيسية.&lt;/p>
&lt;h3 id="تحقيق-رشاقة-التشفير-crypto-agility">تحقيق رشاقة التشفير (Crypto-Agility)
&lt;/h3>&lt;p>إن أهم شيء يجب على الشركات ومطوري الأنظمة إدراكه للمضي قدمًا هو ضمان &lt;strong>&amp;ldquo;رشاقة التشفير (Crypto-Agility)&amp;rdquo;&lt;/strong> . من الضروري تصميم بنية مرنة تسمح بتبديل خوارزميات التشفير أو تحديثها بسرعة دون إيقاف النظام في حالة اكتشاف عيوب في الخوارزمية أو ظهور معايير جديدة.&lt;/p>
&lt;p>يعد إنشاء قائمة مواد التشفير (CBOM: Cryptography Bill of Materials) لفهم &amp;ldquo;أين&amp;rdquo; و &amp;ldquo;أي تشفير&amp;rdquo; و &amp;ldquo;لأي غرض&amp;rdquo; يتم استخدامه داخل الأنظمة الداخلية بدقة، بمثابة خطوة أولى مهمة نحو الانتقال إلى PQC.&lt;/p>
&lt;hr>
&lt;h2 id="الخاتمة-الاستعداد-لـ-q-day-القادم">الخاتمة: الاستعداد لـ &amp;ldquo;Q-Day&amp;rdquo; القادم
&lt;/h2>&lt;p>في حين أن تطور الحواسيب الكمومية سيجلب فوائد هائلة للبشرية، فإنه يشكل أيضًا التهديد الأكبر لأمن التشفير الذي يمثل أساس مجتمعنا الرقمي الحالي. لم يعد تشفير ما بعد الكم (PQC) مجرد &amp;ldquo;موضوع بحثي للمستقبل البعيد&amp;rdquo;. فبعد الإنجاز المتمثل في إصدار معايير FIPS من قبل NIST، دخلت PQC الآن مرحلة التوسع في &amp;ldquo;التنفيذ والانتقال&amp;rdquo;.&lt;/p>
&lt;p>بالنظر إلى تهديد &amp;ldquo;احصد الآن، وفك التشفير لاحقًا&amp;rdquo;، فإن الانتقال إلى PQC هو أولوية قصوى يجب أن تبدأ &amp;ldquo;الآن&amp;rdquo; لأي مؤسسة تتعامل مع بيانات حساسة. دعونا نتجاوز عصر الحواسيب الكمومية القادم بأمان من خلال الفهم العميق لتقنيات تشفير الجيل القادم وتعزيز رشاقة التشفير في أنظمتنا.&lt;/p></description></item><item><title>هل ستدمر الحواسيب الكمومية حقًا تشفير RSA؟ ~ خوارزمية شور والمرحلة الحالية ~</title><link>http://kenji.blog/ar/p/shors-algorithm-and-rsa-breaking/</link><pubDate>Sat, 05 Sep 2026 22:09:21 +0900</pubDate><guid>http://kenji.blog/ar/p/shors-algorithm-and-rsa-breaking/</guid><description>&lt;img src="http://kenji.blog/p/shors-algorithm-and-rsa-breaking/quantum_breaking_rsa_1788613722990.jpg" alt="Featured image of post هل ستدمر الحواسيب الكمومية حقًا تشفير RSA؟ ~ خوارزمية شور والمرحلة الحالية ~" />&lt;h2 id="مقدمة-تقاطع-التشفير-والحواسيب-الكمومية">مقدمة: تقاطع التشفير والحواسيب الكمومية
&lt;/h2>&lt;p>في مجتمع الإنترنت الحديث، &amp;ldquo;تشفير المفتاح العام&amp;rdquo; هو الأساس لحماية سرية الاتصالات. وأبرزها &amp;ldquo;تشفير RSA&amp;rdquo; الذي طوره كل من رون ريفست (Ron Rivest)، آدي شامير (Adi Shamir)، وليونارد أدلمان (Leonard Adleman) في عام 1977. من مدفوعات التسوق عبر الإنترنت التي نستخدمها يوميًا، إلى تصفح مواقع الويب (HTTPS)، وإرسال واستقبال رسائل البريد الإلكتروني، يعمل تشفير RSA كقلب البنية التحتية للإنترنت.&lt;/p>
&lt;p>ولكن، مع ظهور &amp;ldquo;الحواسيب الكمومية&amp;rdquo;، تمت الإشارة إلى احتمال أن هذا الأمان قد يُدمر من جذوره. في وسائل الإعلام، تظهر أحيانًا عناوين مثيرة مثل &amp;ldquo;بمجرد اكتمال الحاسوب الكمومي، سيتم فك تشفير جميع كلمات المرور والتشفيرات في العالم في ثوانٍ&amp;rdquo;. هل هذا صحيح حقًا؟&lt;/p>
&lt;p>في هذه المقالة، سنتعمق في آليات GNFS (منخل حقل الأعداد العام) كطريقة فك تشفير كلاسيكية، والنسخة النهائية لخوارزمية فك التشفير باستخدام الحواسيب الكمومية، وهي &amp;ldquo;خوارزمية شور&amp;rdquo; (Shor&amp;rsquo;s Algorithm). سنشرح المفاهيم المتقدمة مثل تحويل فورييه الكمومي واكتشاف الدورة بطريقة سهلة الفهم، وسنحقق بالتفصيل في الوضع الحالي للأجهزة الكمومية في عصر NISQ (Noisy Intermediate-Scale Quantum) والعقبات الحقيقية لكسر RSA-2048.&lt;/p>
&lt;hr>
&lt;h2 id="أساس-تشفير-rsa-صعوبة-التحليل-إلى-العوامل-الأولية">أساس تشفير RSA: صعوبة التحليل إلى العوامل الأولية
&lt;/h2>&lt;p>يعتمد أمان تشفير RSA على عدم تناسق بسيط للغاية في الرياضيات. وهي حقيقة أنه &amp;ldquo;من السهل ضرب عددين أوليين ضخمين، ولكن من الصعب للغاية العثور على العددين الأوليين الأصليين (التحليل إلى عوامل أولية) من النتيجة المضروبة (الرقم المركب)&amp;rdquo;.&lt;/p>
&lt;p>على سبيل المثال، لنفترض أن لدينا عددين أوليين $ p = 61 $ و $ q = 53 $. حساب الضرب $ N = p \times q = 3233 $ يستغرق لحظة. ومع ذلك، إذا أُعطيت الرقم &amp;ldquo;3233&amp;rdquo; فقط وطُلب منك &amp;ldquo;ما هما العددان الأوليان اللذان مضروبهما يساوي هذا الرقم؟&amp;quot;، سيزداد حجم الحساب بشكل انفجاري كلما كبر الرقم.&lt;/p>
&lt;p>في RSA-2048 السائد حاليًا، يتم استخدام رقم مركب ضخم $ N $ بطول مفتاح 2048 بت، أي حوالي 617 رقمًا عشريًا. إذا أمكن تحليل $ N $ هذا إلى عوامله الأولية، فسيكون التشفير قد تم كسره.&lt;/p>
&lt;h3 id="تحدي-الحواسيب-الكلاسيكية-gnfs-منخل-حقل-الأعداد-العام">تحدي الحواسيب الكلاسيكية: GNFS (منخل حقل الأعداد العام)
&lt;/h3>&lt;p>لحل مشكلة التحليل إلى العوامل، طور علماء الرياضيات والتشفير خوارزميات مختلفة على مر السنين. من بينها، أسرع خوارزمية للحواسيب الكلاسيكية حاليًا هي ** منخل حقل الأعداد العام (GNFS: General Number Field Sieve) **.&lt;/p>
&lt;p>GNFS هي طريقة لتحليل عدد ضخم $ N $ عن طريق توسيع الحسابات في حلقة الأعداد الصحيحة إلى حقل جبري أكثر تجريدًا (Number Field). التدفق العام كالتالي:&lt;/p>
&lt;ol>
&lt;li>** اختيار متعددة الحدود **: ابحث عن متعددة حدود $ f(x) $ بدرجة ومعاملات مناسبة، بحيث يكون $ N $ جذرًا لها.&lt;/li>
&lt;li>** جمع البيانات (الغربلة) **: ابحث عن عدد كبير من أزواج الأرقام التي يمكن تقسيمها إلى أعداد أولية صغيرة (أرقام سلسة، Smooth numbers) فوق حقل الأعداد المنطقية والحقول الجبرية. تُعرف هذه العملية بـ &amp;ldquo;الغربلة&amp;rdquo; وهي الجزء الذي يستغرق وقتًا أطول.&lt;/li>
&lt;li>** توليد المصفوفة وتقليلها **: قم بإنشاء مصفوفة متناثرة ضخمة (مصفوفة معظم عناصرها 0) بناءً على العلاقات المجمعة، واعثر على الحل باستخدام طرق الجبر الخطي (مثل طريقة بلوك-لانكزوس).&lt;/li>
&lt;li>** حساب الجذر التربيعي **: أخيرًا، احسب الجذر التربيعي على الحقل الجبري، واستخرج عوامل (العوامل الأولية) $ N $.&lt;/li>
&lt;/ol>
&lt;p>يُقدّر تعقيد الحساب لـ GNFS بشكل غير تقاربي بـ $ O(\exp((\sqrt[3]{\frac{64}{9}} + o(1)) (\log N)^{\frac{1}{3}} (\log \log N)^{\frac{2}{3}})) $. يُسمى هذا تعقيد الوقت &amp;ldquo;شبه الأسي&amp;rdquo; (Sub-exponential). على الرغم من أنه أسرع من الوقت الأسي، إلا أنه أبطأ بكثير من الوقت متعدد الحدود (Polynomial time).&lt;/p>
&lt;p>في الواقع، في عام 2020، نجح فريق بحث دولي في تحليل RSA-250 (رقم مركب من 829 بت، 250 رقمًا) باستخدام GNFS. استغرق هذا الحساب وقتًا هائلاً يقدر بحوالي 2700 سنة أساسية (CPU core years) بجمع موارد الحوسبة من جميع أنحاء العالم. ومع ذلك، عندما يتعلق الأمر بـ 2048 بت، يُقال إن الحساب المطلوب سيتضخم إلى تريليونات من أضعاف عمر الكون، وبغض النظر عن عدد أجهزة الكمبيوتر العملاقة الحالية التي تعمل بالتوازي، فمن المستحيل كسرها في وقت واقعي باستخدام الطرق الكلاسيكية.&lt;/p>
&lt;hr>
&lt;h2 id="ورقة-الحواسيب-الكمومية-الرابحة-خوارزمية-شور">ورقة الحواسيب الكمومية الرابحة: خوارزمية شور
&lt;/h2>&lt;p>هنا تبرز &amp;ldquo;خوارزمية شور&amp;rdquo;، التي نشرها بيتر شور (Peter Shor) في عام 1994. كانت هذه الخوارزمية رائدة لأنها يمكن أن تحل مشكلة التحليل إلى العوامل الأولية على حاسوب كمومي في ** وقت متعدد الحدود ** ( $ O((\log N)^3) $ ). الفرق بين الوقت شبه الأسي والوقت متعدد الحدود حاسم، ومن الناحية النظرية، يعني ذلك أن استخدام الحواسيب الكمومية سيدمر تشفير RSA تمامًا.&lt;/p>
&lt;h3 id="التدفق-العام-لخوارزمية-شور">التدفق العام لخوارزمية شور
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">graph TD
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> A[إدخال الرقم N المراد تحليله] --&amp;gt; B[اختيار عدد صحيح عشوائي a]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> B --&amp;gt; C{القاسم المشترك الأكبر&amp;lt;br&amp;gt;لـ a و N}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|أكبر من 1| D[لحسن الحظ تم اكتشاف العامل الأولي!]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|1 أوليان نسبيًا| E[دور الحاسوب الكمومي]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> E --&amp;gt; F[إيجاد الدورة r للدالة f_x = a^x mod N&amp;lt;br&amp;gt;بواسطة تحويل فورييه الكمومي]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> F --&amp;gt; G{الدورة r زوجية و&amp;lt;br&amp;gt;a^r/2 ≢ -1 mod N}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> G --&amp;gt;|نعم| H[حساب القاسم المشترك الأكبر gcd_a^r/2 ± 1, N]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> H --&amp;gt; I((نجاح التحليل!))
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> G --&amp;gt;|لا| B
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>لا تحل خوارزمية شور مشكلة التحليل بشكل مباشر، بل تتخذ نهجًا يستخدم نظريات نظرية الأعداد لتحويلها إلى مشكلة أخرى تسمى &amp;ldquo;مشكلة اكتشاف الدورة&amp;rdquo; (Period Finding Problem)، ثم تحلها بسرعة باستخدام خصائص الحواسيب الكمومية.&lt;/p>
&lt;h3 id="الخطوة-1-التحويل-من-التحليل-إلى-مشكلة-اكتشاف-الدورة-المعالجة-الكلاسيكية">الخطوة 1: التحويل من التحليل إلى مشكلة اكتشاف الدورة (المعالجة الكلاسيكية)
&lt;/h3>&lt;p>تتم الخطوة الأولى من الخوارزمية على حاسوب كلاسيكي.
بالنسبة للرقم $ N $ الذي تريد تحليله، اختر رقمًا صحيحًا عشوائيًا $ a $ ($ 1 &lt; a &lt; N $) يكون أوليًا نسبيًا مع $ N $ (القاسم المشترك الأكبر هو 1). إذا حدث صدفة ألا يكون القاسم المشترك الأكبر 1، فإن القاسم المشترك الموجود هو العامل الأولي لـ $ N $ ويكتمل التشفير، لكن الاحتمال منخفض للغاية.&lt;/p>
&lt;p>بعد ذلك، نعتبر تسلسل المعادلة المعيارية التالية:
$ f(x) = a^x \pmod N $&lt;/p>
&lt;p>عند تعويض $ x = 1, 2, 3, \dots $ في هذه الدالة $ f(x) $، تبدو القيم عشوائية، ولكن لأن الحساب يتم ضمن نطاق محدود، فإنها ستعود بالتأكيد إلى القيمة الأصلية في مكان ما، وتكرر نفس التسلسل. تُسمى فترة هذا التكرار بـ $ r $. بمعنى آخر،
$ a^r \equiv 1 \pmod N $
مشكلة العثور على أصغر عدد صحيح موجب $ r $ يلبي هذه المعادلة هي &amp;ldquo;مشكلة اكتشاف الدورة&amp;rdquo;.&lt;/p>
&lt;p>إذا تم العثور على هذه الدورة $ 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 $ باحتمالية عالية جدًا.&lt;/p>
&lt;p>العثور على الدورة $ r $ باستخدام حاسوب كلاسيكي يتطلب في النهاية خطوات أسية ولا يمكن تسريعه. ولكن مع الحاسوب الكمومي، يمكن العثور على الدورة $ r $ في لحظة (في وقت متعدد الحدود).&lt;/p>
&lt;h3 id="الخطوة-2-تحضير-الحالة-الكمومية-والتراكب">الخطوة 2: تحضير الحالة الكمومية والتراكب
&lt;/h3>&lt;p>من هنا يبدأ دور الحاسوب الكمومي.
تستخدم الحواسيب الكمومية &amp;ldquo;الكيوبتات&amp;rdquo; (Qubits) التي يمكن أن تمتلك حالتي &amp;ldquo;0&amp;rdquo; و &amp;ldquo;1&amp;rdquo; في نفس الوقت. في خوارزمية شور، يتم إعداد سجلين: سجل لتخزين المدخلات (السجل الأول) وسجل لتخزين نتائج الحساب (السجل الثاني).&lt;/p>
&lt;p>أولاً، نطبق عملية بوابة كمومية تسمى بوابة هادامارد (Hadamard gate) على جميع الكيوبتات في السجل الأول. نتيجة لذلك، يصبح السجل الأول في ** حالة تراكب متساوية ** لجميع قيم $ x $ الممكنة (من $ 0 $ إلى $ 2^n-1 $. حيث $ n $ هو عدد كبير كافٍ من البتات).&lt;/p>
&lt;p>بمعنى آخر، داخل الحاسوب الكمومي، يتم إنشاء حالة تتواجد فيها عدد لا يحصى من قيم الإدخال $ x=0, 1, 2, 3, \dots $ في نفس الوقت والتوازي.&lt;/p>
&lt;h3 id="الخطوة-3-الأس-المعياري-الكمومي-quantum-modular-exponentiation">الخطوة 3: الأس المعياري الكمومي (Quantum Modular Exponentiation)
&lt;/h3>&lt;p>بعد ذلك، باستخدام حالة التراكب في السجل الأول كمدخل، يتم حساب $ f(x) = a^x \pmod N $ ويتم تخزين النتيجة في السجل الثاني.
نظرًا لأن هذا الحساب يتم كتحويل وحدوي (Unitary transformation) على الدائرة الكمومية، يتم حساب $ f(x) $ لجميع قيم $ x $ &amp;ldquo;في وقت واحد (التوازي الكمومي)&amp;rdquo; مع الحفاظ على التراكب.&lt;/p>
&lt;p>مساحة النظام الكمومي بأكمله في هذه المرحلة هي،
$ |x, a^x \bmod N\rangle $
تراكب هائل للحالات.&lt;/p>
&lt;p>ولكن، إذا قمنا ببساطة بقياس (رصد) السجل الثاني هنا، فسيتم اختيار قيمة واحدة عشوائية لـ $ a^x \bmod N $ احتماليًا، وبشكل متصل، سيتم تحديد $ x $ السجل الأول أيضًا بقيمة واحدة. هذا يعادل الحساب مرة واحدة على حاسوب كلاسيكي، ولن نتمكن من العثور على الدورة $ r $.&lt;/p>
&lt;p>وفقًا لقواعد ميكانيكا الكم، لا يمكننا النظر مباشرة داخل حالة التراكب. إذن، كيف نستخرج المعلومات العالمية المتمثلة في &amp;ldquo;الدورة&amp;rdquo; الشاملة؟&lt;/p>
&lt;h3 id="الخطوة-4-تحويل-فورييه-الكمومي-qft-quantum-fourier-transform">الخطوة 4: تحويل فورييه الكمومي (QFT: Quantum Fourier Transform)
&lt;/h3>&lt;p>الجوهر الحقيقي لخوارزمية شور لاختراق هذا الجدار هو تطبيق ** تحويل فورييه الكمومي (QFT) ** على السجل الأول.&lt;/p>
&lt;p>قبل إجراء القياس، نقوم بتحليل الخصائص الموجية للدالة $ f(x) $. لنفترض أننا رصدنا السجل الثاني. وحصلنا على قيمة معينة $ y $. عندئذٍ، ستتقلص حالة السجل الأول إلى &amp;ldquo;تراكب لجميع قيم $ x $ بحيث يكون $ a^x \pmod N = y $&amp;rdquo;.
ستصطف قيم $ x $ هذه بشكل منفصل بفترات دورية $ r $ مثل $ x_0, x_0 + r, x_0 + 2r, x_0 + 3r, \dots $ (نوع من التوزيع الاحتمالي على شكل مشط).&lt;/p>
&lt;p>نطبق تحويل فورييه الكمومي (QFT) على هذه الحالة. كما يحول تحويل فورييه المنفصل الكلاسيكي الإشارات في المجال الزمني إلى مجال التردد، يتسبب QFT في حدوث تداخل في السعات الاحتمالية للحالة الكمومية.&lt;/p>
&lt;p>عند تطبيق QFT، بسبب تأثيرات التداخل الكمومي، تلغي احتمالات الإجابات الخاطئة التي لا يتردد صداها مع الدورة $ r $ (تكون الأطوار غير متوافقة) بعضها البعض وتقترب من الصفر (تداخل هدام)، بينما يتم تضخيم احتمال الإجابة الصحيحة فقط التي تحمل معلومات الدورة $ r $ (تداخل بناء).&lt;/p>
&lt;h3 id="الخطوة-5-القياس-وتوسيع-الكسر-المستمر-المعالجة-الكلاسيكية-البعدية">الخطوة 5: القياس وتوسيع الكسر المستمر (المعالجة الكلاسيكية البعدية)
&lt;/h3>&lt;p>عند قياس السجل الأول بعد تطبيق QFT، سنحصل باحتمالية عالية جدًا على عدد صحيح $ c $ قريب من الصيغة $ c \approx \frac{j \cdot 2^n}{r} $ ($ j $ عدد صحيح غير معروف، $ 2^n $ هو حجم السجل).&lt;/p>
&lt;p>نعيد نتيجة القياس هذه $ c $ إلى حاسوب كلاسيكي، وننشئ الكسر $ \frac{c}{2^n} \approx \frac{j}{r} $. ثم باستخدام الطريقة الرياضية &amp;ldquo;توسيع الكسر المستمر&amp;rdquo; (Continued fraction expansion) لحساب التقريب، يمكننا استخراج القاسم، وهو الدورة $ r $ بنجاح.&lt;/p>
&lt;p>إذا عرفنا $ r $، نستخدم صيغة الخطوة 1 لحساب عوامل $ N $، وبذلك يتم كسر تشفير RSA تمامًا.&lt;/p>
&lt;hr>
&lt;h2 id="القدرة-الحالية-للحواسيب-الكمومية-nisq-والتحديات">القدرة الحالية للحواسيب الكمومية (NISQ) والتحديات
&lt;/h2>&lt;p>على الرغم من أن خوارزمية شور مثالية نظريًا، إلا أن الإجابة على سؤال &amp;ldquo;هل سيتم كسر تشفير RSA غدًا؟&amp;rdquo; هي &amp;ldquo;لا&amp;rdquo; بوضوح. يكمن السبب في حدود تكنولوجيا الأجهزة للحواسيب الكمومية الحالية.&lt;/p>
&lt;h3 id="عصر-nisq-noisy-intermediate-scale-quantum">عصر NISQ (Noisy Intermediate-Scale Quantum)
&lt;/h3>&lt;p>الزمن الذي نعيش فيه الآن هو عصر يسمى &amp;ldquo;NISQ&amp;rdquo;. تمتلك أجهزة NISQ العشرات إلى المئات من الكيوبتات المادية، لكنها ضعيفة للغاية أمام الضوضاء.&lt;/p>
&lt;p>الكيوبتات عرضة لتأثيرات البيئة الخارجية مثل الحرارة والموجات الكهرومغناطيسية، وكثيراً ما يحدث &amp;ldquo;فك الترابط&amp;rdquo; (فقدان التشابك الكمومي) حيث تنهار الحالة الكمومية، و &amp;ldquo;أخطاء البوابات&amp;rdquo; أثناء عمليات البوابات. عند محاولة تنفيذ دوائر كمومية عميقة جدًا (مع عدد هائل من خطوات العمليات) مثل خوارزمية شور، تتراكم الأخطاء أثناء الحساب، ويصبح الناتج النهائي مجرد ضوضاء عشوائية لا معنى لها.&lt;/p>
&lt;h3 id="الكيوبتات-المادية-والكيوبتات-المنطقية">الكيوبتات المادية والكيوبتات المنطقية
&lt;/h3>&lt;p>لحل مشكلة الخطأ هذه، لا غنى عن &amp;ldquo;تصحيح الخطأ الكمومي&amp;rdquo; (Quantum Error Correction).
تُستخدم أكواد تصحيح الأخطاء في الحواسيب الكلاسيكية أيضًا، ولكن نظرًا لوجود &amp;ldquo;نظرية عدم الاستنساخ الكمومي&amp;rdquo; التي تمنع نسخ الحالات الكمومية، فإن تصحيح الأخطاء الكمومية معقد للغاية.&lt;/p>
&lt;p>في تصحيح الخطأ الكمومي، باستخدام تقنيات مثل &amp;ldquo;الكود السطحي&amp;rdquo; (Surface Code)، من خلال دمج العديد من &amp;ldquo;الكيوبتات المادية&amp;rdquo; المليئة بالضوضاء، يتم إنشاء &amp;ldquo;كيوبت منطقي&amp;rdquo; واحد مثالي خالٍ من الأخطاء.&lt;/p>
&lt;p>بافتراض معدلات الخطأ الحالية، يُقدر أن هناك حاجة إلى ما بين 1000 إلى 10000 كيوبت مادي لإنشاء كيوبت منطقي واحد. يُطلق على هذا اسم &amp;ldquo;عبء تصحيح الخطأ&amp;rdquo; (Overhead).&lt;/p>
&lt;h3 id="ما-هي-الموارد-المطلوبة-لكسر-rsa-2048">ما هي الموارد المطلوبة لكسر RSA-2048؟
&lt;/h3>&lt;p>إذن، لتشغيل خوارزمية شور لكسر RSA-2048 فعليًا، ما مقدار الموارد المطلوبة؟&lt;/p>
&lt;p>وفقًا للتقدير المرجعي للموارد في ورقة عام 2021 التي قدمها كريج جيدني (Craig Gidney) (جوجل) ومارتن إكيرا (Martin Ekerå)، عند استخدام خوارزمية شور المُحسّنة وإجراء تصحيح الأخطاء باستخدام الكود السطحي، ستكون هناك حاجة للموارد التالية:&lt;/p>
&lt;ul>
&lt;li>** عدد الكيوبتات المنطقية **: حوالي 4,096&lt;/li>
&lt;li>** عدد الكيوبتات المادية **: ** حوالي 20 مليون ** (بافتراض معدل خطأ بنسبة $10^{-3}$)&lt;/li>
&lt;li>** وقت الحساب **: حوالي 8 ساعات (ملايين إلى مليارات عمليات البوابات المادية مطلوبة)&lt;/li>
&lt;/ul>
&lt;p>بالمقارنة مع هذا، ما هو المستوى الذي وصلت إليه الأجهزة الكمومية الحالية؟
يبلغ المعالج الكمومي فائق التوصيل &amp;ldquo;Condor&amp;rdquo; الذي أعلنت عنه شركة IBM في أواخر عام 2023 حوالي 1,121 كيوبت. ظهرت أيضًا أبحاث رائدة في توليد الكيوبتات المنطقية (مثل توليد 48 كيوبتًا منطقيًا باستخدام حاسوب كمومي للذرات المتعادلة بواسطة جامعة هارفارد وشركة QuEra)، لكننا لم نصل بعد إلى مرحلة يمكن فيها تشغيل &amp;ldquo;عمليات مثالية بدون ضوضاء&amp;rdquo; بشكل مستمر لفترات طويلة.&lt;/p>
&lt;p>لتوسيع النطاق من بضعة آلاف من الكيوبتات المادية إلى ** 20 مليون ** كيوبت مادي عملي (نظام متصل ببعضه البعض، يعمل باستقرار في درجات حرارة منخفضة للغاية، ويعالج إشارات التحكم بسرعة فائقة)، توجد حواجز هندسية هائلة (مشاكل الأسلاك، قيود قدرة التبريد، تضخم إلكترونيات التحكم). يتوقع العديد من الخبراء أن الأمر سيستغرق ما لا يقل عن 10 إلى 30 عامًا، أو ربما أكثر، لتحقيق &amp;ldquo;حاسوب كمومي متسامح مع الأخطاء (FTQC)&amp;rdquo; قادر على فك تشفير RSA-2048.&lt;/p>
&lt;hr>
&lt;h2 id="تهديد-store-now-decrypt-later-الخفي-وفجر-pqc">تهديد &amp;ldquo;Store Now, Decrypt Later&amp;rdquo; الخفي وفجر PQC
&lt;/h2>&lt;p>من السابق لأوانه الاعتقاد أنه &amp;ldquo;نحن في أمان لأن الأمر سيستغرق أكثر من 10 سنوات&amp;rdquo;. يوجد حاليًا بيانات مثل أسرار الدولة، البيانات الطبية، وتصميم البنية التحتية طويلة الأمد التي يجب ضمان سريتها لعقود قادمة.&lt;/p>
&lt;p>ما يُثير القلق هنا هو تقنية الهجوم ** &amp;ldquo;Store Now, Decrypt Later&amp;rdquo; (احفظ الآن، فك التشفير لاحقًا) **. تقوم دول أو منظمات خبيثة باعتراض جميع بيانات الاتصال المشفرة حاليًا بـ RSA أو ECC (تشفير المنحنى الإهليلجي) وتخزينها في مساحة التخزين. ثم بعد 10 أو 20 عامًا، بمجرد اكتمال حاسوب كمومي قوي، يستخدمون خوارزمية شور لفك تشفير جميع البيانات السابقة وكشف الأسرار.&lt;/p>
&lt;p>لمواجهة تهديد الفجوة الزمنية هذا، وبقيادة NIST (المعهد الوطني للمعايير والتكنولوجيا الأمريكي)، تم تسريع عملية توحيد معايير ** &amp;ldquo;التشفير ما بعد الكمي&amp;rdquo; (PQC: Post-Quantum Cryptography) **.&lt;/p>
&lt;p>PQC هي خوارزميات تشفير جديدة تستند إلى مسائل رياضية يصعب حلها حتى باستخدام الحواسيب الكمومية (بمعنى آخر، لا يمكن تطبيق خوارزمية شور عليها). تشمل الأساليب الرئيسية ما يلي:&lt;/p>
&lt;ul>
&lt;li>** التشفير القائم على الشبكة (Lattice-based cryptography) **: يعتمد على مشاكل مثل LWE (التعلم مع الأخطاء). هو السائد في توحيد معايير NIST (مثل Kyber، Dilithium).&lt;/li>
&lt;li>** التشفير القائم على الرمز (Code-based cryptography) **: يعتمد على صعوبة مشكلة فك تشفير أكواد تصحيح الأخطاء.&lt;/li>
&lt;li>** التشفير متعدد الحدود متعدد المتغيرات (Multivariate cryptography) **: يعتمد على صعوبة حل أنظمة المعادلات التربيعية متعددة المتغيرات.&lt;/li>
&lt;li>** التوقيعات القائمة على التجزئة (Hash-based signatures) **: توقيعات رقمية تعتمد فقط على أمان دوال التجزئة.&lt;/li>
&lt;/ul>
&lt;p>بدأ بالفعل اختبار إدخال وتنفيذ هجين لـ PQC في البرامج والمنصات الرئيسية مثل Google Chrome و Apple iMessage.&lt;/p>
&lt;h2 id="おわりに">おわりに
&lt;/h2>&lt;p>تنتقل الحواسيب الكمومية من حلم في عالم الخيال العلمي إلى تحدٍ هندسي في العالم الحقيقي. تعتبر خوارزمية شور إنجازًا فكريًا عظيمًا للبشرية يدمج بين الرياضيات وميكانيكا الكم، ولكنها في الوقت نفسه تحمل &amp;ldquo;قوة تدميرية&amp;rdquo; تهز أساس مجتمعنا الرقمي.&lt;/p>
&lt;p>لن يصبح تشفير RSA غير صالح للاستخدام غدًا. ولكن بالنظر إلى تطور التكنولوجيا الكمومية ومخاطر &amp;ldquo;Store Now, Decrypt Later&amp;rdquo;، فإن الهجرة واسعة النطاق في تاريخ التشفير والمتمثلة في الانتقال إلى PQC قد بدأت بالفعل. نحن نشهد الآن الخطوط الأمامية لتغيير جذري في أمن المعلومات.&lt;/p></description></item><item><title>"تشريح كامل" فهم أقوى خوارزمية لتحليل التشفير "GNFS" عن طريق تنفيذها بلغة C++</title><link>http://kenji.blog/ar/p/gnfs-cpp-implementation/</link><pubDate>Sat, 05 Sep 2026 13:04:59 +0900</pubDate><guid>http://kenji.blog/ar/p/gnfs-cpp-implementation/</guid><description>&lt;img src="http://kenji.blog/p/gnfs-cpp-implementation/gnfs_cpp_blog_eyecatch_1788580949217.jpg" alt="Featured image of post "تشريح كامل" فهم أقوى خوارزمية لتحليل التشفير "GNFS" عن طريق تنفيذها بلغة C++" />&lt;h1 id="تشريح-كامل-فهم-أقوى-خوارزمية-لتحليل-التشفير-gnfs-عن-طريق-تنفيذها-بلغة-c">&amp;ldquo;تشريح كامل&amp;rdquo; فهم أقوى خوارزمية لتحليل التشفير &amp;ldquo;GNFS&amp;rdquo; عن طريق تنفيذها بلغة C++
&lt;/h1>&lt;p>يدعم &amp;ldquo;تشفير RSA&amp;rdquo; أسس الإنترنت الحديث. يعتمد أمانه على الاعتقاد الرياضي بأنه &amp;ldquo;من المستحيل عمليا على أجهزة الكمبيوتر الحالية تحليل عدد مركب عملاق إلى عوامله الأولية&amp;rdquo;.&lt;/p>
&lt;p>ومع ذلك، لم تستسلم البشرية أبدا. حاليا، يوجد ** أقوى وأحدث خوارزمية ** للبشرية لتحليل الأعداد الأولية الضخمة على أجهزة الكمبيوتر الكلاسيكية (أجهزة الكمبيوتر العادية، وليست الكمومية). تسمى هذه الخوارزمية ** &amp;ldquo;غربال حقل الأعداد العام (GNFS: General Number Field Sieve)&amp;rdquo; **.&lt;/p>
&lt;p>في هذه المقالة، سننشر الكود المصدري بالكامل بلغة C++ (باستخدام أعداد صحيحة متعددة الدقة &lt;code>boost::multiprecision&lt;/code> من مكتبة Boost) والذي يجسد بشكل دقيق منطق الحوسبة المتقدم لهذه الخوارزمية، وسنشرح بعمق &amp;ldquo;نظرية الأعداد الجبرية&amp;rdquo; التي تقف وراءها.&lt;/p>
&lt;p>يرجى الاستمتاع بأسرار الرياضيات وقوة علوم الكمبيوتر التي تقهرها مع الكود المصدري.&lt;/p>
&lt;hr>
&lt;h2 id="1-إطار-عمل-gnfs-المتقدم-الكود-المصدري-الكامل">1. إطار عمل GNFS المتقدم (الكود المصدري الكامل)
&lt;/h2>&lt;p>أولا، سنقدم الصورة الكاملة لتنفيذ GNFS بلغة C++ الذي سنشرحه هنا. نظام غربال حقل الأعداد الفعلي (مثل CADO-NFS) هو نظام موزع ضخم يحتوي على مئات الآلاف من أسطر التعليمات البرمجية. ومع ذلك، يقوم هذا الكود باستخراج ** &amp;ldquo;5 مسارات (مراحل) أساسية&amp;rdquo; ** تشكل GNFS، وتصميمها كفئات، ونمذجتها في تكوين أدنى دون فقدان معناها الرياضي.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt"> 10
&lt;/span>&lt;span class="lnt"> 11
&lt;/span>&lt;span class="lnt"> 12
&lt;/span>&lt;span class="lnt"> 13
&lt;/span>&lt;span class="lnt"> 14
&lt;/span>&lt;span class="lnt"> 15
&lt;/span>&lt;span class="lnt"> 16
&lt;/span>&lt;span class="lnt"> 17
&lt;/span>&lt;span class="lnt"> 18
&lt;/span>&lt;span class="lnt"> 19
&lt;/span>&lt;span class="lnt"> 20
&lt;/span>&lt;span class="lnt"> 21
&lt;/span>&lt;span class="lnt"> 22
&lt;/span>&lt;span class="lnt"> 23
&lt;/span>&lt;span class="lnt"> 24
&lt;/span>&lt;span class="lnt"> 25
&lt;/span>&lt;span class="lnt"> 26
&lt;/span>&lt;span class="lnt"> 27
&lt;/span>&lt;span class="lnt"> 28
&lt;/span>&lt;span class="lnt"> 29
&lt;/span>&lt;span class="lnt"> 30
&lt;/span>&lt;span class="lnt"> 31
&lt;/span>&lt;span class="lnt"> 32
&lt;/span>&lt;span class="lnt"> 33
&lt;/span>&lt;span class="lnt"> 34
&lt;/span>&lt;span class="lnt"> 35
&lt;/span>&lt;span class="lnt"> 36
&lt;/span>&lt;span class="lnt"> 37
&lt;/span>&lt;span class="lnt"> 38
&lt;/span>&lt;span class="lnt"> 39
&lt;/span>&lt;span class="lnt"> 40
&lt;/span>&lt;span class="lnt"> 41
&lt;/span>&lt;span class="lnt"> 42
&lt;/span>&lt;span class="lnt"> 43
&lt;/span>&lt;span class="lnt"> 44
&lt;/span>&lt;span class="lnt"> 45
&lt;/span>&lt;span class="lnt"> 46
&lt;/span>&lt;span class="lnt"> 47
&lt;/span>&lt;span class="lnt"> 48
&lt;/span>&lt;span class="lnt"> 49
&lt;/span>&lt;span class="lnt"> 50
&lt;/span>&lt;span class="lnt"> 51
&lt;/span>&lt;span class="lnt"> 52
&lt;/span>&lt;span class="lnt"> 53
&lt;/span>&lt;span class="lnt"> 54
&lt;/span>&lt;span class="lnt"> 55
&lt;/span>&lt;span class="lnt"> 56
&lt;/span>&lt;span class="lnt"> 57
&lt;/span>&lt;span class="lnt"> 58
&lt;/span>&lt;span class="lnt"> 59
&lt;/span>&lt;span class="lnt"> 60
&lt;/span>&lt;span class="lnt"> 61
&lt;/span>&lt;span class="lnt"> 62
&lt;/span>&lt;span class="lnt"> 63
&lt;/span>&lt;span class="lnt"> 64
&lt;/span>&lt;span class="lnt"> 65
&lt;/span>&lt;span class="lnt"> 66
&lt;/span>&lt;span class="lnt"> 67
&lt;/span>&lt;span class="lnt"> 68
&lt;/span>&lt;span class="lnt"> 69
&lt;/span>&lt;span class="lnt"> 70
&lt;/span>&lt;span class="lnt"> 71
&lt;/span>&lt;span class="lnt"> 72
&lt;/span>&lt;span class="lnt"> 73
&lt;/span>&lt;span class="lnt"> 74
&lt;/span>&lt;span class="lnt"> 75
&lt;/span>&lt;span class="lnt"> 76
&lt;/span>&lt;span class="lnt"> 77
&lt;/span>&lt;span class="lnt"> 78
&lt;/span>&lt;span class="lnt"> 79
&lt;/span>&lt;span class="lnt"> 80
&lt;/span>&lt;span class="lnt"> 81
&lt;/span>&lt;span class="lnt"> 82
&lt;/span>&lt;span class="lnt"> 83
&lt;/span>&lt;span class="lnt"> 84
&lt;/span>&lt;span class="lnt"> 85
&lt;/span>&lt;span class="lnt"> 86
&lt;/span>&lt;span class="lnt"> 87
&lt;/span>&lt;span class="lnt"> 88
&lt;/span>&lt;span class="lnt"> 89
&lt;/span>&lt;span class="lnt"> 90
&lt;/span>&lt;span class="lnt"> 91
&lt;/span>&lt;span class="lnt"> 92
&lt;/span>&lt;span class="lnt"> 93
&lt;/span>&lt;span class="lnt"> 94
&lt;/span>&lt;span class="lnt"> 95
&lt;/span>&lt;span class="lnt"> 96
&lt;/span>&lt;span class="lnt"> 97
&lt;/span>&lt;span class="lnt"> 98
&lt;/span>&lt;span class="lnt"> 99
&lt;/span>&lt;span class="lnt">100
&lt;/span>&lt;span class="lnt">101
&lt;/span>&lt;span class="lnt">102
&lt;/span>&lt;span class="lnt">103
&lt;/span>&lt;span class="lnt">104
&lt;/span>&lt;span class="lnt">105
&lt;/span>&lt;span class="lnt">106
&lt;/span>&lt;span class="lnt">107
&lt;/span>&lt;span class="lnt">108
&lt;/span>&lt;span class="lnt">109
&lt;/span>&lt;span class="lnt">110
&lt;/span>&lt;span class="lnt">111
&lt;/span>&lt;span class="lnt">112
&lt;/span>&lt;span class="lnt">113
&lt;/span>&lt;span class="lnt">114
&lt;/span>&lt;span class="lnt">115
&lt;/span>&lt;span class="lnt">116
&lt;/span>&lt;span class="lnt">117
&lt;/span>&lt;span class="lnt">118
&lt;/span>&lt;span class="lnt">119
&lt;/span>&lt;span class="lnt">120
&lt;/span>&lt;span class="lnt">121
&lt;/span>&lt;span class="lnt">122
&lt;/span>&lt;span class="lnt">123
&lt;/span>&lt;span class="lnt">124
&lt;/span>&lt;span class="lnt">125
&lt;/span>&lt;span class="lnt">126
&lt;/span>&lt;span class="lnt">127
&lt;/span>&lt;span class="lnt">128
&lt;/span>&lt;span class="lnt">129
&lt;/span>&lt;span class="lnt">130
&lt;/span>&lt;span class="lnt">131
&lt;/span>&lt;span class="lnt">132
&lt;/span>&lt;span class="lnt">133
&lt;/span>&lt;span class="lnt">134
&lt;/span>&lt;span class="lnt">135
&lt;/span>&lt;span class="lnt">136
&lt;/span>&lt;span class="lnt">137
&lt;/span>&lt;span class="lnt">138
&lt;/span>&lt;span class="lnt">139
&lt;/span>&lt;span class="lnt">140
&lt;/span>&lt;span class="lnt">141
&lt;/span>&lt;span class="lnt">142
&lt;/span>&lt;span class="lnt">143
&lt;/span>&lt;span class="lnt">144
&lt;/span>&lt;span class="lnt">145
&lt;/span>&lt;span class="lnt">146
&lt;/span>&lt;span class="lnt">147
&lt;/span>&lt;span class="lnt">148
&lt;/span>&lt;span class="lnt">149
&lt;/span>&lt;span class="lnt">150
&lt;/span>&lt;span class="lnt">151
&lt;/span>&lt;span class="lnt">152
&lt;/span>&lt;span class="lnt">153
&lt;/span>&lt;span class="lnt">154
&lt;/span>&lt;span class="lnt">155
&lt;/span>&lt;span class="lnt">156
&lt;/span>&lt;span class="lnt">157
&lt;/span>&lt;span class="lnt">158
&lt;/span>&lt;span class="lnt">159
&lt;/span>&lt;span class="lnt">160
&lt;/span>&lt;span class="lnt">161
&lt;/span>&lt;span class="lnt">162
&lt;/span>&lt;span class="lnt">163
&lt;/span>&lt;span class="lnt">164
&lt;/span>&lt;span class="lnt">165
&lt;/span>&lt;span class="lnt">166
&lt;/span>&lt;span class="lnt">167
&lt;/span>&lt;span class="lnt">168
&lt;/span>&lt;span class="lnt">169
&lt;/span>&lt;span class="lnt">170
&lt;/span>&lt;span class="lnt">171
&lt;/span>&lt;span class="lnt">172
&lt;/span>&lt;span class="lnt">173
&lt;/span>&lt;span class="lnt">174
&lt;/span>&lt;span class="lnt">175
&lt;/span>&lt;span class="lnt">176
&lt;/span>&lt;span class="lnt">177
&lt;/span>&lt;span class="lnt">178
&lt;/span>&lt;span class="lnt">179
&lt;/span>&lt;span class="lnt">180
&lt;/span>&lt;span class="lnt">181
&lt;/span>&lt;span class="lnt">182
&lt;/span>&lt;span class="lnt">183
&lt;/span>&lt;span class="lnt">184
&lt;/span>&lt;span class="lnt">185
&lt;/span>&lt;span class="lnt">186
&lt;/span>&lt;span class="lnt">187
&lt;/span>&lt;span class="lnt">188
&lt;/span>&lt;span class="lnt">189
&lt;/span>&lt;span class="lnt">190
&lt;/span>&lt;span class="lnt">191
&lt;/span>&lt;span class="lnt">192
&lt;/span>&lt;span class="lnt">193
&lt;/span>&lt;span class="lnt">194
&lt;/span>&lt;span class="lnt">195
&lt;/span>&lt;span class="lnt">196
&lt;/span>&lt;span class="lnt">197
&lt;/span>&lt;span class="lnt">198
&lt;/span>&lt;span class="lnt">199
&lt;/span>&lt;span class="lnt">200
&lt;/span>&lt;span class="lnt">201
&lt;/span>&lt;span class="lnt">202
&lt;/span>&lt;span class="lnt">203
&lt;/span>&lt;span class="lnt">204
&lt;/span>&lt;span class="lnt">205
&lt;/span>&lt;span class="lnt">206
&lt;/span>&lt;span class="lnt">207
&lt;/span>&lt;span class="lnt">208
&lt;/span>&lt;span class="lnt">209
&lt;/span>&lt;span class="lnt">210
&lt;/span>&lt;span class="lnt">211
&lt;/span>&lt;span class="lnt">212
&lt;/span>&lt;span class="lnt">213
&lt;/span>&lt;span class="lnt">214
&lt;/span>&lt;span class="lnt">215
&lt;/span>&lt;span class="lnt">216
&lt;/span>&lt;span class="lnt">217
&lt;/span>&lt;span class="lnt">218
&lt;/span>&lt;span class="lnt">219
&lt;/span>&lt;span class="lnt">220
&lt;/span>&lt;span class="lnt">221
&lt;/span>&lt;span class="lnt">222
&lt;/span>&lt;span class="lnt">223
&lt;/span>&lt;span class="lnt">224
&lt;/span>&lt;span class="lnt">225
&lt;/span>&lt;span class="lnt">226
&lt;/span>&lt;span class="lnt">227
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;iostream&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;vector&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;cmath&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;map&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;set&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;chrono&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;boost/multiprecision/cpp_int.hpp&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// استخدام الأعداد الصحيحة متعددة الدقة Boost.Multiprecision
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">boost&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">multiprecision&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// ============================================================================
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// [SOTA GNFS] General Number Field Sieve إطار عمل منطقي متقدم
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">//
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// يصمم هذا الكود بشكل دقيق المراحل الخمسة لـ GNFS الحديث
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// المستخدم في CADO-NFS وغيرها، كفئات C++ (Boost).
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// ============================================================================
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">struct&lt;/span> &lt;span class="nc">Relation&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">int64_t&lt;/span> &lt;span class="n">a&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">int64_t&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="kt">uint32_t&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">rational_primes&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="kt">uint32_t&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">algebraic_primes&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// ============================================================================
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// المرحلة 1: اختيار كثير الحدود (خوارزمية KleinJung)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// ============================================================================
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">class&lt;/span> &lt;span class="nc">PolynomialSelector&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">public&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">int&lt;/span> &lt;span class="n">degree&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">cpp_int&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="c1">// كثير الحدود الجبري f(x)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">cpp_int&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">g&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="c1">// كثير الحدود النسبي g(x) = x - m
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">cpp_int&lt;/span> &lt;span class="n">m&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PolynomialSelector&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="kt">int&lt;/span> &lt;span class="n">d&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">:&lt;/span> &lt;span class="n">degree&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">d&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// توليد كثير الحدود الأولي بناء على توسيع الأساس m (في الواقع يتم استخدام تقليص قاعدة الشبكة LLL الأكثر تقدما)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="kt">void&lt;/span> &lt;span class="nf">select&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">const&lt;/span> &lt;span class="n">cpp_int&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;[المرحلة 1] اختيار كثير الحدود (الدرجة &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">degree&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;) يبدأ...&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// توسيع أساس m بسيط (الدرجة d)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// m = N^(1/d)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">cpp_int&lt;/span> &lt;span class="n">N_copy&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">m&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// تقريب بسيط لـ m (بدون استخدام دوال Boost)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">cpp_int&lt;/span> &lt;span class="n">low&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">high&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">low&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="n">high&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cpp_int&lt;/span> &lt;span class="n">mid&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">low&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">high&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">low&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cpp_int&lt;/span> &lt;span class="n">p&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="kt">int&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">degree&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="o">++&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">p&lt;/span> &lt;span class="o">*=&lt;/span> &lt;span class="n">mid&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="n">m&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">mid&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">low&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">mid&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="n">high&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">mid&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">f&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">resize&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">degree&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cpp_int&lt;/span> &lt;span class="n">temp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="kt">int&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="n">degree&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="o">++&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">f&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">temp&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">m&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">temp&lt;/span> &lt;span class="o">/=&lt;/span> &lt;span class="n">m&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">g&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">m&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">};&lt;/span> &lt;span class="c1">// g(x) = x - m
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34; -&amp;gt; m = &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">m&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34; -&amp;gt; f(x) = &amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="kt">int&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">degree&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;x^&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">i&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="o">?&lt;/span> &lt;span class="s">&amp;#34; + &amp;#34;&lt;/span> &lt;span class="o">:&lt;/span> &lt;span class="s">&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s">[المرحلة 1] اكتملت.&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// ============================================================================
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// المرحلة 2: غربال الشبكة (Lattice Sieving)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// ============================================================================
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// لا يستخدم GNFS الحديث Line Sieve، بل يستخدم
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// Special-q Lattice Sieving الذي طوره Franke-Kleinjung كمعيار.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">class&lt;/span> &lt;span class="nc">LatticeSieve&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">uint32_t&lt;/span> &lt;span class="n">rational_bound&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">uint32_t&lt;/span> &lt;span class="n">algebraic_bound&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="kt">uint32_t&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">rational_fb&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="kt">uint32_t&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">algebraic_fb&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">public&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">LatticeSieve&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="kt">uint32_t&lt;/span> &lt;span class="n">rb&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="kt">uint32_t&lt;/span> &lt;span class="n">ab&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">:&lt;/span> &lt;span class="n">rational_bound&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">rb&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">algebraic_bound&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ab&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">void&lt;/span> &lt;span class="nf">generate_factor_bases&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;[المرحلة 2] توليد قواعد العوامل (الحد النسبي: &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">rational_bound&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;، الحد الجبري: &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">algebraic_bound&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;)&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// (محذوف) في الواقع يتم توليد الأعداد الأولية والتصفية باستخدام رموز Legendre
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">Relation&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">sieve&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">const&lt;/span> &lt;span class="n">PolynomialSelector&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">poly&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;[المرحلة 2] Special-q Lattice Sieving نشط...&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">Relation&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">relations&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// تنفيذ وهمي: يقوم غربال الشبكة الفعلي بمسح مئات الجيجابايت من الذاكرة في كتل
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// يتم تعيين الأزواج (a, b) لشبكة (a = i*q + j*...) لكل عدد أولي خاص q،
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// ويتم تشغيل غربلة ترفع كفاءة ذاكرة التخزين المؤقت إلى أقصى حد.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// إضافة علاقة وهمية واحدة للتوضيح
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">Relation&lt;/span> &lt;span class="n">r&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">r&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">a&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">17&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">r&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">b&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">rational_primes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">5&lt;/span>&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">r&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">algebraic_primes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">7&lt;/span>&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">relations&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">push_back&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">r&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;[المرحلة 2] تم العثور على &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">relations&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34; علاقة.&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">relations&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// ============================================================================
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// المرحلة 3: التصفية (إزالة الفردية ودمج الزمرة)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// ============================================================================
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">class&lt;/span> &lt;span class="nc">Filter&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">public&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">void&lt;/span> &lt;span class="n">reduce_matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">Relation&lt;/span>&lt;span class="o">&amp;gt;&amp;amp;&lt;/span> &lt;span class="n">relations&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;[المرحلة 3] تصفية العلاقات...&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// 1. إزالة الفردية (إزالة العلاقات التي تحتوي على أعداد أولية تظهر مرة واحدة فقط)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// 2. دمج الزمرة (دمج العلاقات لتحويل مصفوفة متفرقة إلى كثيفة)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// في الواقع يتم ضغط مصفوفات بمئات الملايين من الصفوف إلى بضعة ملايين باستخدام خوارزميات مثل Union-Find.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;[المرحلة 3] تم تقليل حجم المصفوفة بشكل مثالي.&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// ============================================================================
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// المرحلة 4: الجبر الخطي فوق GF(2) (طريقة Block Wiedemann)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// ============================================================================
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">class&lt;/span> &lt;span class="nc">LinearAlgebraGF2&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">public&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// في بيئات الحواسيب العملاقة الحديثة، وبدلا من طريقة Block Lanczos،
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// تُستخدم طريقة Block Wiedemann (تنفيذ Coppersmith) الملائمة للحوسبة الموزعة كأحدث تقنية.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="kt">int&lt;/span>&lt;span class="o">&amp;gt;&amp;gt;&lt;/span> &lt;span class="n">solve_nullspace&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">const&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">Relation&lt;/span>&lt;span class="o">&amp;gt;&amp;amp;&lt;/span> &lt;span class="n">relations&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;[المرحلة 4] خوارزمية Block Wiedemann فوق GF(2) تبدأ...&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// التكرار على حسابات ضرب المصفوفة المتفرقة في المتجه،
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// والعثور على متجهات الحلول (نواة) بحيث M * x = 0 mod 2.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="kt">int&lt;/span>&lt;span class="o">&amp;gt;&amp;gt;&lt;/span> &lt;span class="n">dependencies&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="c1">// قائمة التبعيات
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// بيانات وهمية
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">dependencies&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">push_back&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">});&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;[المرحلة 4] تم العثور على &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">dependencies&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34; تبعيات خطية (مربعات كاملة).&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">dependencies&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// ============================================================================
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// المرحلة 5: الجذر التربيعي الجبري (Algebraic Square Root)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// ============================================================================
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">class&lt;/span> &lt;span class="nc">AlgebraicSquareRoot&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">public&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">void&lt;/span> &lt;span class="n">compute_and_factor&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">const&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">Relation&lt;/span>&lt;span class="o">&amp;gt;&amp;amp;&lt;/span> &lt;span class="n">relations&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="k">const&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="kt">int&lt;/span>&lt;span class="o">&amp;gt;&amp;amp;&lt;/span> &lt;span class="n">dep&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="k">const&lt;/span> &lt;span class="n">cpp_int&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;[المرحلة 5] حساب الجذر التربيعي الجبري...&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// 1. حساب الجذر التربيعي النسبي V
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">cpp_int&lt;/span> &lt;span class="n">V&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// V = sqrt( prod(a - bm) ) mod N
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// 2. حساب الجذر التربيعي الجبري gamma (باستخدام طريقة Montgomery، إلخ)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// العثور على العنصر gamma في الحقل الجبري الضخم O_K وتحويله إلى العالم الحقيقي باستخدام التماثل phi
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// Y = phi(gamma) mod N
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">cpp_int&lt;/span> &lt;span class="n">Y&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// نفترض أنه تمت إضافة سلسلة من الرموز التربيعية (Quadratic Characters) في المرحلتين 2 و 4
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// لتجنب عقبات (Obstruction) مجموعة أصناف المثاليات ومجموعة الوحدات.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34; -&amp;gt; تم تطبيق التماثل phi.&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;[المرحلة 5] جار حساب القاسم المشترك الأكبر (V - Y, N)...&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">cpp_int&lt;/span> &lt;span class="n">factor&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">gcd&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">V&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">Y&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="p">);&lt;/span> &lt;span class="c1">// GCD(X-Y, N)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">factor&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">1&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="n">factor&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s">================================================================&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;[نجاح] تم العثور على عامل غير بديهي: &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">factor&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34; العامل الآخر: &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">N&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="n">factor&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;================================================================&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span> &lt;span class="k">else&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;[فشل] حل بديهي. جاري تجربة التبعية التالية...&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// ============================================================================
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// مسار التنفيذ الرئيسي
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// ============================================================================
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="kt">int&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;================================================================&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34; [SOTA GNFS] محرك General Number Field Sieve (Boost C++) &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;================================================================&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// عدد مركب ضخم N نريد تحليله، مثل RSA-270
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">cpp_int&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;233108530344407544527637656910680524145619812480305449042948611968495918245135782867888369318577116418213919268572658314913060672626911354027609793166341626693946596196427744273886601876896313468704059066746903123910748277606548649151920812699309766587514735456594993207&amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// درجة كثير الحدود (عادة يتم اختيار درجة 5 إلى 6 للأرقام الأكبر من 130 رقما)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="kt">int&lt;/span> &lt;span class="n">degree&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">6&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// تهيئة المسار
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">PolynomialSelector&lt;/span> &lt;span class="n">poly_select&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">degree&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">LatticeSieve&lt;/span> &lt;span class="n">sieve&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">10000000&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">20000000&lt;/span>&lt;span class="p">);&lt;/span> &lt;span class="c1">// الحدود الفعلية بعشرات الملايين
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">Filter&lt;/span> &lt;span class="n">filter&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">LinearAlgebraGF2&lt;/span> &lt;span class="n">linalg&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">AlgebraicSquareRoot&lt;/span> &lt;span class="n">sqrt_step&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">auto&lt;/span> &lt;span class="n">start_time&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">chrono&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">high_resolution_clock&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">now&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// 1. اختيار كثير الحدود
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">poly_select&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">select&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">N&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// 2. معالجة الغربلة (sieve)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">sieve&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">generate_factor_bases&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">Relation&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">relations&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sieve&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">sieve&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">poly_select&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// 3. التصفية (ضغط المصفوفة)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">filter&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">reduce_matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">relations&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// 4. الجبر الخطي (البحث في الفضاء الفارغ فوق GF(2))
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="kt">int&lt;/span>&lt;span class="o">&amp;gt;&amp;gt;&lt;/span> &lt;span class="n">dependencies&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">linalg&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">solve_nullspace&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">relations&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// 5. حساب الجذر التربيعي الجبري و GCD
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="k">const&lt;/span> &lt;span class="k">auto&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="nl">dep&lt;/span> &lt;span class="p">:&lt;/span> &lt;span class="n">dependencies&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">sqrt_step&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">compute_and_factor&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">relations&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">dep&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">auto&lt;/span> &lt;span class="n">end_time&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">chrono&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">high_resolution_clock&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">now&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">chrono&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">duration&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="kt">double&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">elapsed&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">end_time&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">start_time&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s">[النظام] اكتمل مسار SOTA GNFS في &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">elapsed&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">count&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34; ثانية.&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>إذن، كيف يقوم هذا الكود بتحطيم جدران التشفير؟ سنقوم بتقسيم وشرح الخوارزميات الدقيقة والرياضيات المتقدمة لكل من المراحل الخمس.&lt;/p>
&lt;hr>
&lt;h2 id="2-الهدف-النهائي-لـ-gnfs-x2-equiv-y2-pmod-n">2. الهدف النهائي لـ GNFS: $X^2 \equiv Y^2 \pmod N$
&lt;/h2>&lt;p>ليس فقط GNFS، بل إن هدف معظم الخوارزميات الحديثة لتحليل الأعداد العملاقة هو العثور على زوج غير بديهي $(X, Y)$ يحقق المعادلة التطابقية التالية:&lt;/p>
$$X^2 \equiv Y^2 \pmod N$$
&lt;p>تعني هذه المعادلة أن &amp;ldquo;باقي قسمة $X^2$ و $Y^2$ على $N$ متساويان&amp;rdquo;. بإعادة صياغتها:
$X^2 - Y^2 \equiv 0 \pmod N$
بمعنى آخر، $(X-Y)(X+Y)$ هو مضاعف لـ $N$.&lt;/p>
&lt;p>إذا كان $X \not\equiv \pm Y \pmod N$ (حل غير بديهي)، فهذا يعني أن هناك &amp;ldquo;قاسما مشتركا أكبر من 1 وأصغر من $N$&amp;rdquo; بين $(X-Y)$ و $N$.
هنا، إذا استخدمنا خوارزمية إقليدس لحساب ** $\gcd(X-Y, N)$ **، فيمكننا بسهولة إيجاد العامل الأولي لـ $N$.&lt;/p>
&lt;p>ومع ذلك، فإن العثور على $X$ و $Y$ يشبه البحث عن إبرة في الصحراء. لذلك، يتخذ GNFS نهجا عبقريا من خلال توزيع الحسابات عن طريق إنشاء ** عالمين **: &amp;ldquo;عالم الأعداد الصحيحة الحقيقية&amp;rdquo; و &amp;ldquo;عالم الحقول الجبرية لكثيرات الحدود&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="3-المرحلة-1-اختيار-كثير-الحدود-polynomial-selection">3. المرحلة 1: اختيار كثير الحدود (Polynomial Selection)
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">PolynomialSelector&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// ...
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="kt">void&lt;/span> &lt;span class="nf">select&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">const&lt;/span> &lt;span class="n">cpp_int&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// حساب m = N^(1/d) والتوسيع بأساس m
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// ...
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="kt">int&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="n">degree&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="o">++&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">f&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">temp&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">m&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">temp&lt;/span> &lt;span class="o">/=&lt;/span> &lt;span class="n">m&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">g&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">m&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">};&lt;/span> &lt;span class="c1">// g(x) = x - m
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخطوة الأولى في GNFS هي إنشاء &amp;ldquo;كثير حدود سحري&amp;rdquo; لربط العالمين.
بالنسبة للعدد الضخم $N$، نختار عددا صحيحا $m$. عادة نختار $m \approx N^{1/d}$ (في الكود يُفترض كثير حدود من الدرجة $d=6$).&lt;/p>
&lt;p>ثم نقوم بتوسيع $N$ للأساس $m$، ونستخدم معاملاته لبناء كثير الحدود $f(x)$:
&lt;/p>
$$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$$
&lt;p>يتمتع كثير الحدود $f(x)$ بخصائص مهمة للغاية وهي ** &amp;ldquo;إذا عوضنا $m$ في المتغير $x$، فإن القيمة ستكون بالضبط $N$ ($f(m) = N$)&amp;rdquo; **. وبعبارة أخرى، $f(m) \equiv 0 \pmod N$.
يتم تعريف كثير الحدود النسبي على أنه $g(x) = x - m$.&lt;/p>
&lt;p>نتيجة لذلك، يتم ربط ** &amp;ldquo;عالم الحقل الجبري $\mathbb{Z}[\alpha]$&amp;rdquo; ** المحكوم بجذور $\alpha$ لـ $f(x)=0$ مع ** &amp;ldquo;عالم الأعداد النسبية (الصحيحة) $\mathbb{Z}$&amp;rdquo; ** المعتاد من خلال تماثل الحلقات $x \to m$.&lt;/p>
&lt;p>في أنظمة مثل CADO-NFS، يتم استخدام خوارزمية KleinJung وخوارزمية تقليص قاعدة الشبكة LLL للبحث عن &amp;ldquo;أفضل كثير حدود $f(x)$&amp;rdquo; لا تكون معاملاته كبيرة جدا وتظهر فيه الأعداد الأولية بسهولة في الخطوات اللاحقة. يستغرق هذا البحث أشهرا.&lt;/p>
&lt;hr>
&lt;h2 id="4-المرحلة-2-غربلة-الشبكة-الخاصة-special-q-lattice-sieving">4. المرحلة 2: غربلة الشبكة الخاصة (Special-q Lattice Sieving)
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;span class="lnt">9
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">LatticeSieve&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// ...
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">Relation&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">sieve&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">const&lt;/span> &lt;span class="n">PolynomialSelector&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">poly&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// ...
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// يتم تعيين أزواج (a, b) في شبكة لكل عدد أولي خاص q،
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// وتشغيل غربال يحقق أقصى كفاءة لذاكرة التخزين المؤقت.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// ...
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>بعد إعداد العالمين، تتمثل الخطوة التالية في البحث عن &amp;ldquo;أعداد ملساء (أعداد تتكون فقط من عوامل أولية صغيرة)&amp;rdquo; في كلا العالمين.
يتم توليد أزواج لا حصر لها من الأعداد الصحيحة $(a, b)$، ويتم حساب القيمتين التاليتين:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>القيمة الجانبية النسبية&lt;/strong> : $a - bm$&lt;/li>
&lt;li>&lt;strong>المعيار الجانبي الجبري&lt;/strong> : $b^d f(a/b)$&lt;/li>
&lt;/ol>
&lt;p>يهدف GNFS إلى جمع عشرات إلى مئات الملايين من ** &amp;ldquo;الأزواج (العلاقات) التي يمكن تحليل قيمها الجانبية النسبية والجبرية بالكامل باستخدام عوامل أولية صغيرة فقط&amp;rdquo; **.&lt;/p>
&lt;p>في السابق، تم استخدام &amp;ldquo;غربال الخط (Line Sieve)&amp;quot;، حيث يتم ترتيب أزواج $(a, b)$ على مستوى $xy$ وقسمتها على الأعداد الأولية. ومع ذلك، كان هذا بطيئا جدا لأنه يسبب فشلا كبيرا في ذاكرة التخزين المؤقت بسبب الوصول العشوائي للذاكرة.&lt;/p>
&lt;p>لذلك، تستخدم الأكواد الحديثة طريقة تسمى ** &amp;ldquo;Special-q Lattice Sieve&amp;rdquo; **.
يتم تثبيت عدد أولي كبير بما فيه الكفاية $q$، وتُحسب فقط أزواج $(a, b)$ حيث &amp;ldquo;القيمة الجبرية يجب أن تقبل القسمة على $q$&amp;rdquo;. تشكل الأزواج $(a, b)$ التي تلبي هذا الشرط &amp;ldquo;شبكة (Lattice)&amp;quot;، مما يجعل قفزة العنوان المحسوبة ثابتة وتتناسب تماما مع ذاكرة التخزين المؤقت L1/L2 لوحدة المعالجة المركزية.
أدى هذا التحسين إلى زيادة سرعة حسابات GNFS بشكل هائل.&lt;/p>
&lt;hr>
&lt;h2 id="5-المرحلة-3-التصفية-filtering">5. المرحلة 3: التصفية (Filtering)
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">Filter&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">public&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">void&lt;/span> &lt;span class="n">reduce_matrix&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">Relation&lt;/span>&lt;span class="o">&amp;gt;&amp;amp;&lt;/span> &lt;span class="n">relations&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// 1. إزالة الفردية (إزالة العلاقات التي تحتوي على أعداد أولية تظهر مرة واحدة فقط)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// 2. دمج الزمرة (دمج العلاقات لجعل المصفوفة المتفرقة كثيفة)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>مئات الملايين من العلاقات التي جمعتها أجهزة الكمبيوتر حول العالم على مدار عدة أشهر في المرحلة الثانية. ومع ذلك، إذا قمنا بإدخالها مباشرة إلى &amp;ldquo;خطوة حل نظام المعادلات (حساب المصفوفة)&amp;rdquo; التالية، فإن ذاكرة الحاسوب العملاق ستمتلئ.&lt;/p>
&lt;p>لذلك، يتم إجراء عملية ضغط قصوى للمصفوفة تسمى ** التصفية (Filtering) **.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>إزالة الفردية (Singleton removal)&lt;/strong>
لنفترض أن عددا أوليا ضخما $p$ ظهر &amp;ldquo;مرة واحدة فقط&amp;rdquo; من بين مئات الملايين من العلاقات. هدفنا هو &amp;ldquo;جعل جميع أسس الأعداد الأولية زوجية (مضاعفات 2)&amp;quot;، لذلك فإن العدد الأولي الذي يظهر مرة واحدة لا يمكن أبدا أن يصبح زوجيا.
وبالتالي، يتم حذف العلاقة التي تحتوي على هذا العدد الأولي على الفور كـ &amp;ldquo;قمامة غير مجدية&amp;rdquo;. وبسبب سلسلة الأحداث هذه، يتم تقليص مئات الملايين من صفوف البيانات.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>دمج الزمرة (Clique merging)&lt;/strong>
بعد ذلك، من خلال ضرب (جمع) العلاقات التي تشترك في أعداد أولية معينة، يتم ضغط (تكثيف) المصفوفة المتفرقة وتقليل عدد الصفوف (باستخدام تقنية مشابهة للبحث عن الزمرة في نظرية المخططات).&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>من خلال هذا التحسين، يتم ضغط المصفوفة المتفرقة الضخمة بشكل كبير إلى حجم يمكن حسابه.&lt;/p>
&lt;hr>
&lt;h2 id="6-المرحلة-4-الجبر-الخطي-فوق-gf2-طريقة-block-wiedemann">6. المرحلة 4: الجبر الخطي فوق GF(2) (طريقة Block Wiedemann)
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">LinearAlgebraGF2&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">public&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="kt">int&lt;/span>&lt;span class="o">&amp;gt;&amp;gt;&lt;/span> &lt;span class="n">solve_nullspace&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">const&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">Relation&lt;/span>&lt;span class="o">&amp;gt;&amp;amp;&lt;/span> &lt;span class="n">relations&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// حسابات ضرب المصفوفة المتفرقة في المتجه،
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// وإيجاد متجهات حلول بحيث M * x = 0 mod 2.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الآن نصل إلى جوهر اللغز.
نقوم بضرب العلاقات المجمعة للعثور على ** &amp;ldquo;التركيبة التي تصبح فيها كل قوى العوامل الأولية زوجية&amp;rdquo; **.&lt;/p>
&lt;p>من الناحية الرياضية، باستخدام مصفوفة ضخمة $M$ تمثل عناصرها &amp;ldquo;الزوجي والفردي (أي 0 أو 1)&amp;rdquo; لقوى كل عدد أولي، والمتجه $x$ الذي يمثل العلاقة المستخدمة، فإننا نحل (البحث في الفضاء الفارغ):
&lt;strong>$M \cdot x \equiv 0 \pmod 2$&lt;/strong>&lt;/p>
&lt;p>علينا حل نظام معادلات مصفوفة بملايين الصفوف وملايين الأعمدة. في الحذف الغاوسي العادي، سيكون التعقيد $O(N^3)$، مما يعني أن الحساب لن يكتمل حتى نهاية الكون.&lt;/p>
&lt;p>لذلك، تعتمد التطبيقات الحديثة ** &amp;ldquo;طريقة Block Wiedemann&amp;rdquo; **.
هذه طريقة فضاء جزئي لـ Krylov تعثر على الحل عبر تكرار عمليات ضرب المصفوفات والمتجهات، مستغلة حقيقة أن المصفوفة $M$ &amp;ldquo;متفرقة جدا (معظمها 0)&amp;rdquo;.
على عكس طريقة Block Lanczos القديمة، تقوم Block Wiedemann بتقسيم عملية الحساب تماما على مجموعات منفصلة، وتظهر قوة هائلة في الحوسبة السحابية الموزعة الحديثة والحواسيب العملاقة.&lt;/p>
&lt;hr>
&lt;h2 id="7-المرحلة-5-الجذر-التربيعي-الجبري-algebraic-square-root-وانهيار-التشفير">7. المرحلة 5: الجذر التربيعي الجبري (Algebraic Square Root) وانهيار التشفير
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">AlgebraicSquareRoot&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">public&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">void&lt;/span> &lt;span class="n">compute_and_factor&lt;/span>&lt;span class="p">(...)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// 1. حساب الجذر التربيعي النسبي V
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">cpp_int&lt;/span> &lt;span class="n">V&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// 2. حساب الجذر التربيعي الجبري gamma
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">cpp_int&lt;/span> &lt;span class="n">Y&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// ...
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">cpp_int&lt;/span> &lt;span class="n">factor&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">gcd&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">V&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">Y&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">N&lt;/span>&lt;span class="p">);&lt;/span> &lt;span class="c1">// GCD(X-Y, N)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>من خلال حسابات المصفوفة في المرحلة 4، حصلنا على مجموعة من العلاقات $S$ والتي &amp;ldquo;إذا تم ضربها معا، ستصبح كل أسس العوامل الأولية زوجية&amp;rdquo;.
يتيح لنا ذلك بناء &amp;ldquo;مربعات&amp;rdquo; في كل من العوالم النسبية والجبرية.&lt;/p>
&lt;p>نظرا لأن الجانب النسبي هو مجرد ضرب لأعداد صحيحة، فمن السهل حساب الجذر التربيعي $V$.
&lt;/p>
$$V^2 = \prod_{S} (a - bm)$$
&lt;p>&lt;strong>لكن الجحيم الحقيقي يكمن في &amp;ldquo;الجانب الجبري&amp;rdquo;.&lt;/strong>
في عالم الحقل الجبري $\mathbb{Z}[\alpha]$، لا يتم الحفاظ على تفرد التحليل إلى العوامل الأولية، لذلك أجرينا الحسابات باستخدام المثاليات. تضمن حسابات المصفوفة فقط أن النتيجة ** &amp;ldquo;مربع مثالي&amp;rdquo;، لكنها لا &amp;ldquo;تضمن أنها مربع لعنصر ($\gamma^2$)&amp;rdquo; **.&lt;/p>
&lt;p>هنا يظهر عائق هائل في نظرية الأعداد الجبرية، والذي يسمى &amp;ldquo;عائق مجموعة أصناف المثاليات&amp;rdquo; و &amp;ldquo;عائق مجموعة الوحدات&amp;rdquo;.
يخترق GNFS هذا الجدار باستخدام سحر يسمى ** &amp;ldquo;الرموز التربيعية (Quadratic Characters)&amp;rdquo; **.
في مصفوفة المرحلة 4، تتم إضافة عدد قليل من أعمدة البقايا التربيعية (رمز Legendre) سراً لمثاليات أولية خاصة. بفضل ذلك، تتجاوز المجموعة المكتشفة $S$ العوائق باحتمال كبير جدا، وتشكل بنجاح &amp;ldquo;مربع عنصر حقيقي $\gamma^2$&amp;rdquo;.&lt;/p>
&lt;p>تتم عملية العثور على $\gamma$ (الجذر التربيعي الجبري) باستخدام خوارزميات معقدة للغاية مثل طريقة Montgomery.&lt;/p>
&lt;p>وأخيرا، يتم إرسال الجذر التربيعي الجبري $\gamma$ إلى العالم الحقيقي عن طريق تماثل الحلقة $\phi$ (تعويض $x$ بـ $m$) للحصول على $Y$.
من خلال تعيين $V$ في الجانب النسبي كـ $X$, يتم إنشاء المعادلة المطلقة التي نسعى إليها:&lt;/p>
&lt;p>&lt;strong>$$X^2 \equiv Y^2 \pmod N$$&lt;/strong>&lt;/p>
&lt;p>كل ما تبقى هو حساب $\gcd(X-Y, N)$. في 0.001 ثانية فقط، عندما تتم طباعة العامل غير البديهي على الشاشة، ينهار تشفير RSA الذي لا يُقهر تماما.&lt;/p>
&lt;hr>
&lt;h2 id="خاتمة">خاتمة
&lt;/h2>&lt;p>خوارزمية GNFS ليست مجرد تقنية برمجة.
إنها تحفة من ذكاء البشرية تغلبت على &amp;ldquo;أعماق الرياضيات البحتة&amp;rdquo; مثل الجبر المجرد، ونظرية الحلقات، ومجموعة أصناف المثاليات، وذلك باستخدام &amp;ldquo;هندسة متطرفة&amp;rdquo; مثل البنية الموزعة للحواسيب العملاقة وتحسين ذاكرة التخزين المؤقت.&lt;/p>
&lt;p>يتم حماية معلومات الدردشات والبطاقات الائتمانية التي نرسلها كل يوم بواسطة هذه المعارك الرياضية الهائلة.&lt;/p>
&lt;p>نأمل من خلال إطار عمل C++ هذا، أن تتمكن من الشعور بـ &amp;ldquo;رومانسية الرياضيات والكمبيوتر&amp;rdquo; الكامنة وراء خوارزميات كسر التشفير المتطورة.&lt;/p></description></item><item><title>الهيكل الرياضي الحقيقي لغربال حقل الأعداد العام (GNFS)</title><link>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/</link><pubDate>Sat, 05 Sep 2026 02:26:13 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.jpg" alt="Featured image of post الهيكل الرياضي الحقيقي لغربال حقل الأعداد العام (GNFS)" />&lt;h1 id="الهيكل-الرياضي-الحقيقي-لغربال-حقل-الأعداد-العام-gnfs">الهيكل الرياضي الحقيقي لغربال حقل الأعداد العام (GNFS)
&lt;/h1>&lt;p>الهدف النهائي لـ GNFS هو العثور على $X, Y$ بحيث يكون $X^2 \equiv Y^2 \pmod N$.
لتحقيق ذلك، بنى علماء الرياضيات جسرًا بين &lt;strong>&amp;ldquo;عالم الأعداد الصحيحة الحقيقي&amp;rdquo;&lt;/strong> و &lt;strong>&amp;ldquo;عالم الحقول الجبرية&amp;rdquo;&lt;/strong>. هذا الجسر هو ما يُعرف بـ &amp;ldquo;التشاكل&amp;rdquo; (Homomorphism).&lt;/p>
&lt;h2 id="المرحلة-الأولى-التشاكل-الذي-يربط-العالمين">المرحلة الأولى: &amp;ldquo;التشاكل&amp;rdquo; الذي يربط العالمين
&lt;/h2>&lt;h3 id="1-اختيار-المتعددة-الحدود-وتعريف-الجذور">1. اختيار المتعددة الحدود وتعريف الجذور
&lt;/h3>&lt;p>لعدد مركب ضخم $N$، نختار عددًا صحيحًا $m$ ومتعددة حدود $f(x)$ بحيث $f(m) \equiv 0 \pmod N$.
(مثال: توسيع $N$ في الأساس $m$، وبناء $f(x)$ من معاملاته. في هذه الحالة، يُفترض أن $f(x)$ غير قابل للاختزال على حقل الأعداد الكسرية $\mathbb{Q}$).&lt;/p>
&lt;p>بعد ذلك، لنفترض أن $\alpha$ هو أحد &amp;ldquo;الجذور المركبة&amp;rdquo; للمعادلة $f(x) = 0$.
بالطبع، $f(\alpha) = 0$. لاحظ أن $\alpha$ ليس عددًا صحيحًا، بل عددًا مركبًا (عددًا جبريًا) قد يحتوي على جذور أو أعداد تخيلية.&lt;/p>
&lt;h3 id="2-بناء-الحلقة-ring-والتشاكل">2. بناء الحلقة (Ring) والتشاكل
&lt;/h3>&lt;p>هنا، نقوم بإعداد &amp;ldquo;حلقتين&amp;rdquo; رياضيتين (عالمان حيث يُعرّف الجمع والضرب):&lt;/p>
&lt;ul>
&lt;li>&lt;strong>العالم A: $\mathbb{Z}[\alpha]$&lt;/strong> (حلقة الأعداد الصحيحة الجبرية التي تحتوي على $\alpha$)
هذا هو عالم الأعداد التي تُعبّر عن شكل $a + b\alpha + c\alpha^2 + \dots$.&lt;/li>
&lt;li>&lt;strong>العالم B: $\mathbb{Z}/N\mathbb{Z}$&lt;/strong> (حلقة البواقي بعد القسمة على $N$)
عالم التطابق (modulo) الذي يتكون فقط من الأعداد الصحيحة من $0$ إلى $N-1$.&lt;/li>
&lt;/ul>
&lt;p>هنا، نُعرّف تعيينًا (Mapping) يُسمى $\phi$ من العالم A إلى العالم B على النحو التالي:
&lt;strong>$$\phi : \mathbb{Z}[\alpha] \to \mathbb{Z}/N\mathbb{Z}$$&lt;/strong>
&lt;strong>$$\phi(\alpha) = m \pmod N$$&lt;/strong>&lt;/p>
&lt;p>هذا التعيين $\phi$ هو عملية سحرية تستبدل المتغير $\alpha$ في العالم A بالعدد الصحيح $m$ في العالم B بشكل كامل.
هذا الـ $\phi$ يمتلك خاصية قوية جدًا تُسمى &lt;strong>&amp;ldquo;تشاكل الحلقة&amp;rdquo; (Ring Homomorphism)&lt;/strong>.
التشاكل هو خاصية &lt;strong>&amp;ldquo;الانتقال إلى عالم آخر دون تدمير هيكل الجمع والضرب&amp;rdquo;&lt;/strong>. وهذا يعني أن المعادلات التالية صحيحة:&lt;/p>
&lt;ul>
&lt;li>$\phi(X \times Y) = \phi(X) \times \phi(Y)$&lt;/li>
&lt;li>$\phi(X^2) = \phi(X)^2$&lt;/li>
&lt;/ul>
&lt;p>ماذا يعني كل هذا؟ إذا تمكنا من صنع &lt;strong>&amp;ldquo;مربع كامل&amp;rdquo; ($\gamma^2$)&lt;/strong> من عنصر معقد $\gamma$ في &amp;ldquo;العالم A&amp;rdquo; (عالم $\alpha$)، فيمكننا القفز إلى &amp;ldquo;العالم B&amp;rdquo; (عالم البواقي) باستخدام $\phi$، و &lt;strong>سيتم الحفاظ على شكل المربع $\phi(\gamma)^2$ تمامًا&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="المرحلة-الثانية-انهيار-التحليل-إلى-العوامل-الأولية-وولادة-المثالي-ideal">المرحلة الثانية: انهيار التحليل إلى العوامل الأولية وولادة &amp;ldquo;المثالي&amp;rdquo; (Ideal)
&lt;/h2>&lt;p>نريد جمع الكثير من العناصر المناسبة $(a - b\alpha)$ في العالم A ($\mathbb{Z}[\alpha]$) وضربها معًا لتكوين &amp;ldquo;مربع كامل&amp;rdquo;.
عادةً، يمكننا &amp;ldquo;التحليل إلى العوامل الأولية&amp;rdquo; للعناصر $(a - b\alpha)$ المجمعة، ودمجها بحيث تصبح كل أسس الأعداد الأولية زوجية (محلولة باستخدام المصفوفات) لإنشاء مربع.&lt;/p>
&lt;p>&lt;strong>ولكن، هنا يقف جدار اليأس الجبري في طريقنا.&lt;/strong>
في عالم الحقول الجبرية مثل $\mathbb{Z}[\alpha]$، فإن &lt;strong>&amp;ldquo;وحدانية التحليل إلى العوامل الأولية (يمكن التعبير عن كل عدد بطريقة واحدة فقط كحاصل ضرب أعداد أولية)&amp;rdquo;&lt;/strong> التي تعلمناها في المدرسة الإعدادية &lt;strong>تنهار تمامًا&lt;/strong>.&lt;/p>
&lt;p>(مثال: في بعض عوالم الحقول الجبرية، $6 = 2 \times 3$، وفي نفس الوقت $6 = (1+\sqrt{-5}) \times (1-\sqrt{-5})$، مما يجعل من المستحيل معرفة أي منها هي الأعداد الأولية الحقيقية).&lt;/p>
&lt;p>إذا لم يكن التحليل إلى العوامل الأولية فريدًا، فإن لغز &amp;ldquo;حساب الأعداد الأولية لجعلها زوجية&amp;rdquo; (طريقة الغربال) مستحيل من حيث المبدأ.&lt;/p>
&lt;h3 id="إنقاذ-كومر-وديديكيند-المثالي-ideal">إنقاذ كومر وديديكيند: &amp;ldquo;المثالي&amp;rdquo; (Ideal)
&lt;/h3>&lt;p>تم إنقاذ هذا الانهيار من خلال مفهوم &lt;strong>&amp;ldquo;المثالي&amp;rdquo; (Ideal)&lt;/strong> الذي ابتكره علماء الرياضيات في القرن التاسع عشر.
بدلًا من النظر إلى العنصر نفسه، من خلال النظر في &amp;ldquo;مجموعة المضاعفات (المثالي)&amp;rdquo; التي يولدها هذا العنصر، أصبح التحليل إلى العوامل الأولية ممكنًا مرة أخرى.&lt;/p>
&lt;p>في حلقة الأعداد الصحيحة للحقل الجبري $\mathcal{O}_K$ (الحلقة الأكثر كمالًا التي تحتوي على $\mathbb{Z}[\alpha]$)، حتى لو لم يكن بالإمكان تحليل العناصر بشكل فريد، فقد تم إثبات أن &lt;strong>&amp;ldquo;المثالي يمكن دائمًا تحليله بشكل فريد كحاصل ضرب &amp;lsquo;مثاليات أولية&amp;rsquo; ($\mathfrak{p}$)&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;p>لذلك، في GNFS، بدلًا من تحليل العنصر $(a - b\alpha)$ نفسه، نقوم بـ &lt;strong>التحليل إلى المثاليات الأولية للمثالي الرئيسي $\langle a - b\alpha \rangle$&lt;/strong> الذي يولده.&lt;/p>
&lt;hr>
&lt;h2 id="المرحلة-الثالثة-المعيار-norm-والغربالان-sieve">المرحلة الثالثة: المعيار (Norm) والغربالان (Sieve)
&lt;/h2>&lt;p>إذن، كيف نعرف ما هي المثاليات الأولية التي يتحلل إليها المثالي $\langle a - b\alpha \rangle$؟
هنا نستخدم دالة تسمى &lt;strong>&amp;ldquo;المعيار&amp;rdquo; (Norm)&lt;/strong>. المعيار هو دالة تحول العناصر المعقدة في الحقل الجبري إلى &amp;ldquo;أعداد صحيحة عادية $\mathbb{Z}$&amp;rdquo; في العالم الحقيقي.&lt;/p>
&lt;p>يُحسب معيار العنصر $(a - b\alpha)$ بواسطة متعددة الحدود البسيطة $b^d f(a/b)$ (حيث $d$ هي درجة $f(x)$).&lt;/p>
&lt;p>بفضل مبرهنة جبرية، من المعروف أنه &lt;strong>&amp;ldquo;إذا كان معيار مثالي ما قابلاً للتحليل بالكامل بواسطة أعداد أولية صغيرة (أملس)، فإن المثالي الأصلي يمكن أيضًا تحليله بالكامل بواسطة مثاليات أولية صغيرة&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;p>لذلك، يحسب GNFS الأمرين التاليين في وقت واحد لعدد كبير من أزواج الأعداد الصحيحة $(a, b)$، ويجمع فقط الأزواج التي يكون كلاهما &amp;ldquo;أعدادًا ملساء&amp;rdquo;:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>الغربال النسبي (Rational Sieve)&lt;/strong>: $a - bm$ (القيمة في العالم الحقيقي)&lt;/li>
&lt;li>&lt;strong>الغربال الجبري (Algebraic Sieve)&lt;/strong>: $b^d f(a/b)$ (المعيار في عالم الحقل الجبري)&lt;/li>
&lt;/ol>
&lt;p>نجمع عشرات الملايين من الأزواج $(a, b)$ الملساء معًا، ونحل بيانات التحليل إلى المثاليات الأولية (كم عدد المثاليات الأولية الموجودة) كمصفوفة عملاقة (الجبر الخطي على GF(2))، ونجد مجموعة $S$ من الأزواج بحيث &amp;ldquo;عند ضربها، تصبح أسس جميع المثاليات الأولية زوجية&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="المرحلة-الرابعة-العقبتان-وزمرة-أصناف-المثاليات">المرحلة الرابعة: &amp;ldquo;العقبتان&amp;rdquo; وزمرة أصناف المثاليات
&lt;/h2>&lt;p>من خلال حساب المصفوفة، وجدنا أن ضرب جميع المثاليات $(a - b\alpha)$ في المجموعة $S$ ينتج مربعًا لمثالي ما $I$.
&lt;/p>
$$\prod_{S} \langle a - b\alpha \rangle = I^2$$
&lt;p>&lt;strong>لكن الأمر لم ينتهِ بعد. أعمق وأصعب جدار رياضي في GNFS يكمن هنا.&lt;/strong>&lt;/p>
&lt;p>ما نريده في النهاية ليس &amp;ldquo;مربع المثالي&amp;rdquo;، بل &lt;strong>&amp;ldquo;مربع العنصر&amp;rdquo; ($\gamma^2$)&lt;/strong> لتعويضه في التعيين $\phi$.
فقط لأن المثالي تم تربيعه، لا يعني أن العنصر نفسه تم تربيعه. توجد &lt;strong>عقبتان رياضيتان قويتان جدًا (Obstructions)&lt;/strong> هنا.&lt;/p>
&lt;h3 id="العقبة-1-جدار-زمرة-أصناف-المثاليات-ideal-class-group">العقبة 1: جدار زمرة أصناف المثاليات (Ideal Class Group)
&lt;/h3>&lt;p>المثالي $I$ ليس دائمًا &amp;ldquo;مثاليًا مولدًا بواسطة عنصر واحد (مثالي رئيسي)&amp;rdquo;.
من المستحيل استخراج العنصر المحدد $\gamma$ من مثالي ليس مثاليًا رئيسيًا.&lt;/p>
&lt;p>هنا يظهر مفهوم &lt;strong>&amp;ldquo;زمرة أصناف المثاليات (Class Group, $Cl_K$)&amp;rdquo;&lt;/strong>. زمرة أصناف المثاليات هي زمرة تقيس &amp;ldquo;مدى وجود مثاليات غير رئيسية في عالم الحقل الجبري (إلى أي مدى تم تدمير وحدانية التحليل إلى العوامل الأولية)&amp;rdquo;.
حتى لو أصبح $\prod \langle a - b\alpha \rangle$ هو $I^2$، إذا لم يكن $I$ عنصرًا محايدًا (مثاليًا رئيسيًا) في زمرة أصناف المثاليات، فلا يمكننا سحبه مرة أخرى إلى مربع عنصر.&lt;/p>
&lt;h3 id="العقبة-2-جدار-زمرة-الوحدات-unit-group">العقبة 2: جدار زمرة الوحدات (Unit Group)
&lt;/h3>&lt;p>لنفترض أننا محظوظون وأن $I$ هو مثالي رئيسي $\langle \gamma \rangle$.
إذن، $\prod \langle a - b\alpha \rangle = \langle \gamma^2 \rangle$.
قد تعتقد، &amp;ldquo;رائع، العنصر مربع أيضًا!&amp;quot;، لكنك مخطئ تمامًا.&lt;/p>
&lt;p>حقيقة أن المثاليات (مجموعات المضاعفات) متساوية لا تعني أن العناصر متساوية تمامًا. سيكون هناك دائمًا إزاحة بواسطة &lt;strong>&amp;ldquo;الوحدة&amp;rdquo; (Unit: عدد مقلوبه هو أيضًا عدد صحيح، مثل 1 أو -1)&lt;/strong>.
بمعنى آخر، معادلة العنصر الفعلي هي كالتالي:
&lt;/p>
$$\prod_{S} (a - b\alpha) = u \cdot \gamma^2$$
&lt;p>
(حيث $u$ هو عنصر من زمرة الوحدات $U_K$)&lt;/p>
&lt;p>ما لم تكن هذه الوحدة $u$ بحد ذاتها مربعًا لشيء ما، فلن يكون الجانب الأيسر أبدًا &amp;ldquo;مربع عنصر كامل&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="المرحلة-الخامسة-سحر-أدلمان-الرموز-التربيعية-quadratic-characters">المرحلة الخامسة: سحر أدلمان &amp;ldquo;الرموز التربيعية&amp;rdquo; (Quadratic Characters)
&lt;/h2>&lt;p>عقبة زمرة أصناف المثاليات وعقبة زمرة الوحدات. كيف نتغلب عليهما؟
هنا يأتي دور الطريقة العبقرية التي تسمى &lt;strong>&amp;ldquo;الرموز التربيعية&amp;rdquo; (Quadratic Characters)&lt;/strong>، والتي أدخلها عالم التشفير ليونارد أدلمان (حرف &amp;ldquo;A&amp;rdquo; في RSA) وزملاؤه.&lt;/p>
&lt;p>لتحديد ما إذا كان &amp;ldquo;عنصر ما هو مربع كامل في الحقل الجبري&amp;rdquo;، نستخدم إصدار الحقل الجبري من رمز ليجاندر (الباقي التربيعي).
في المصفوفة العملاقة السابقة (اللغز لجعل عدد المثاليات الأولية زوجيًا)، نضيف سرًا بضع عشرات من الشروط الإضافية (الأعمدة) التي تنص على أن &lt;strong>&amp;ldquo;الرموز التربيعية لبعض المثاليات الأولية الخاصة $\mathfrak{q}$ تصبح جميعها $1$ (زوجية)&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;p>عندما نجد المجموعة $S$ التي تستوفي هذه الشروط الإضافية من خلال حساب المصفوفة، تضمن مبرهنة عميقة في نظرية الأعداد الجبرية أن &lt;strong>&amp;ldquo;كل من عقبة زمرة أصناف المثاليات وعقبة زمرة الوحدات ستختفيان بشكل طبيعي باحتمال ساحق&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;p>وبهذا، نحصل أخيرًا على المعادلة الحقيقية:
&lt;/p>
$$\prod_{S} (a - b\alpha) = \gamma^2$$
&lt;hr>
&lt;h2 id="المرحلة-النهائية-اندماج-العوالم-وانهيار-التشفير">المرحلة النهائية: اندماج العوالم وانهيار التشفير
&lt;/h2>&lt;p>أخيرًا، اكتملت جميع قطع اللغز.&lt;/p>
&lt;p>&lt;strong>[العنصر في عالم الحقل الجبري (العالم A)]&lt;/strong>
$\gamma^2 = \prod (a - b\alpha)$
(استخدم خوارزمية الجذر التربيعي لإيجاد $\gamma$)&lt;/p>
&lt;p>&lt;strong>[العنصر في العالم الحقيقي (عالم الأعداد الكسرية)]&lt;/strong>
$V^2 = \prod (a - bm)$
(هذا مجرد ضرب أعداد صحيحة عادي، لذا يمكن العثور على الجذر التربيعي $V$ بسهولة)&lt;/p>
&lt;p>الآن، حان وقت عمل الجسر السحري الأول الذي صنعناه، &lt;strong>التشاكل $\phi$&lt;/strong>.
نقفز بالعنصر $\gamma$ من العالم A إلى العالم B (عالم البواقي $N$) باستخدام $\phi$ (التعيين الذي يعوض بـ $m$ بدلًا من $\alpha$).
&lt;/p>
$$Y = \phi(\gamma) \pmod N$$
&lt;p>من ناحية أخرى، نأخذ $V$ الذي تم إنشاؤه في العالم الحقيقي مباشرة إلى عالم البواقي ونسميه $X$.
&lt;/p>
$$X = V \pmod N$$
&lt;p>بفضل خاصية &amp;ldquo;الحفاظ على الهيكل&amp;rdquo; للتشاكل، فإن علاقة التربيع التي كانت صحيحة في العالم A يتم حفظها تمامًا في العالم B (عالم المقياس $N$).
علاوة على ذلك، نظرًا لأن الأزواج الأصلية $(a, b)$ تم تشكيلها بطريقة متقابلة كـ $a - b\alpha$ و $a - bm$، فإن $X$ و $Y$ يصطدمان في عالم المقياس $N$ وينتجان المعادلة المطلقة التالية:&lt;/p>
&lt;p>&lt;strong>$$X^2 \equiv Y^2 \pmod N$$&lt;/strong>&lt;/p>
&lt;p>الآن، كل ما علينا فعله هو أن نصلي ألا يكون $X$ و $Y$ حلولاً بديهية ($X \equiv \pm Y$)، ثم نحسب:
&lt;strong>$\gcd(X - Y, N)$&lt;/strong>&lt;/p>
&lt;p>إذا كان حلاً غير بديهي، فستعمل خوارزمية إقليدس في 0.001 ثانية، وسيتم طباعة الأعداد الأولية السرية $p$ و $q$، والتي تعد قلب تشفير RSA، على شاشة الإخراج.&lt;/p>
&lt;hr>
&lt;p>هذا هو الشكل الكامل لـ &lt;strong>&amp;ldquo;غربال حقل الأعداد العام (GNFS)&amp;rdquo;&lt;/strong> الذي يجمع خلاصة الرياضيات الحديثة.&lt;/p></description></item><item><title>ما هي أقوى رياضيات للبشرية 'غربال حقل الأعداد العام (GNFS)' التي تكسر تشفير الإنترنت؟</title><link>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/</link><pubDate>Sat, 05 Sep 2026 02:09:08 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.jpg" alt="Featured image of post ما هي أقوى رياضيات للبشرية 'غربال حقل الأعداد العام (GNFS)' التي تكسر تشفير الإنترنت؟" />&lt;h1 id="ما-هي-أقوى-رياضيات-للبشرية-غربال-حقل-الأعداد-العام-gnfs-التي-تكسر-تشفير-الإنترنت">ما هي أقوى رياضيات للبشرية &amp;ldquo;غربال حقل الأعداد العام (GNFS)&amp;rdquo; التي تكسر تشفير الإنترنت؟
&lt;/h1>&lt;p>الإنترنت الذي نستخدمه كل يوم. جميع اتصالاتنا، مثل رسائل LINE، ويوتيوب، والتسوق على أمازون، محمية بواسطة &amp;ldquo;التشفير&amp;rdquo;.
حالياً، التشفير الأكثر استخداماً في العالم هو &amp;ldquo;تشفير RSA&amp;rdquo;.&lt;/p>
&lt;p>جوهر حماية تشفير RSA بسيط للغاية. فهو يستفيد من الخاصية الرياضية القائلة بأن &lt;strong>&amp;ldquo;تحليل الأعداد الضخمة إلى عوامل أولية لا يمكن حله حتى بواسطة أجهزة الكمبيوتر&amp;rdquo;&lt;/strong> .
على سبيل المثال، بالنسبة للرقم &amp;ldquo;15&amp;rdquo;، نعلم على الفور أنه &amp;ldquo;3 × 5&amp;rdquo;، ولكن بمجرد أن يصبح الرقم مكوناً من &amp;ldquo;270 رقماً&amp;rdquo;، فإن الأمر سيستغرق مئات الملايين من السنين لحله حتى لو جمعنا جميع الحواسيب الخارقة في العالم.&lt;/p>
&lt;p>ومع ذلك، لم يقف علماء الرياضيات مكتوفي الأيدي. لاختراق هذا التشفير المنيع، ابتكرت البشرية خوارزمية سحرية (إجراء حسابي) تُسمى &lt;strong>&amp;ldquo;غربال حقل الأعداد العام (GNFS)&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;p>في هذه المقالة، وبدون استخدام أي مصطلحات تقنية، وبناءً فقط على معرفة &lt;strong>رياضيات المدرسة الإعدادية (التحليل إلى عوامل أولية، المعادلات الجبرية، القاسم المشترك الأكبر)&lt;/strong> ، سنشرح خطوة بخطوة كيف تقوم &amp;ldquo;أقوى خوارزمية للبشرية&amp;rdquo; بكسر هذا التشفير!&lt;/p>
&lt;hr>
&lt;h2 id="الفصل-الأول-الهدف-من-فك-التشفير-هو-معادلة-الصف-الثالث-الإعدادي">الفصل الأول: الهدف من فك التشفير هو &amp;ldquo;معادلة الصف الثالث الإعدادي&amp;rdquo;
&lt;/h2>&lt;p>السلاح الأقوى لمواجهة تحليل الأعداد الضخمة إلى عوامل أولية هو هذه المعادلة التي نتعلمها في الصف الثالث الإعدادي.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>$X^2 - Y^2 = (X + Y)(X - Y)$&lt;/strong>&lt;/p>
&lt;/blockquote>
&lt;p>قد تتساءل: &amp;ldquo;هاه، هل يمكن لمعادلة أساسية كهذه كسر التشفير؟&amp;rdquo; ومع ذلك، هذا هو المفتاح الرئيسي الذي يحل كل شيء.&lt;/p>
&lt;p>الهدف الأكبر لكسر التشفير هو، بالنسبة لعدد ضخم $N$، العثور على &lt;strong>&amp;ldquo;أعداد ($X$ و $Y$) بحيث يكون باقي قسمة $X^2$ و $Y^2$ على $N$ هو نفسه&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;h3 id="لماذا-كسر-التشفير-ممكن-عندما-يكون-الباقي-متماثلا">لماذا كسر التشفير ممكن عندما يكون &amp;ldquo;الباقي متماثلاً&amp;rdquo;؟
&lt;/h3>&lt;p>لنفترض أن هناك عددين، $X^2$ و $Y^2$، لهما &amp;ldquo;نفس الباقي عند قسمتهما على $N$&amp;rdquo;.
الباقي المتماثل يعني أن ناتج الطرح &lt;strong>&amp;quot;$X^2 - Y^2$&amp;quot; سيكون قابلاً للقسمة تماماً على $N$ (مضاعف لـ $N$)&lt;/strong> .&lt;/p>
&lt;p>هنا، دعونا نفترض أن العدد الضخم $N$ المستخدم في التشفير يتكون من ضرب عددين أوليين سريين ($p$ و $q$) ($N = p \times q$).&lt;/p>
&lt;p>إذا قمنا بتحليل $X^2 - Y^2$ إلى عوامل، فسنحصل على &lt;strong>$(X - Y)(X + Y)$&lt;/strong> .
حقيقة أن هذا من مضاعفات $N$ تعني أنه في مكان ما في عملية الضرب هذه، يختبئ العددان الأوليان السريان $p$ و $q$.&lt;/p>
&lt;p>وهنا تحدث المعجزة.
الاحتمال الرياضي بأن ينفصل العددان الأوليان $p$ و $q$ إلى غرفتين مختلفتين، بحيث &lt;strong>&amp;ldquo;يذهب $p$ إلى غرفة $(X - Y)$&amp;rdquo; و &amp;ldquo;يذهب $q$ إلى غرفة $(X + Y)$&amp;rdquo;&lt;/strong> ، هو بالضبط &lt;strong>50٪ (النصف)&lt;/strong> .&lt;/p>
&lt;p>لنفترض أن العدد الأولي $p$ فقط هو الذي دخل غرفة $(X - Y)$. دعونا نحسب &lt;strong>&amp;ldquo;القاسم المشترك الأكبر (أكبر مكون مشترك)&amp;rdquo;&lt;/strong> بين $(X - Y)$ و $N$.&lt;/p>
&lt;ul>
&lt;li>محتوى $(X - Y)$ = $p \times$ عدد ما&lt;/li>
&lt;li>محتوى $N$ = $p \times q$
المكون المشترك الوحيد هنا هو &lt;strong>&amp;quot;$p$&amp;quot;&lt;/strong> !&lt;/li>
&lt;/ul>
&lt;p>بمعنى آخر، في اللحظة التي نحسب فيها القاسم المشترك الأكبر، سيتساقط العدد الأولي السري $p$، وسيتم كسر التشفير بالكامل. (&lt;em>يمكن حساب القاسم المشترك الأكبر في لحظة حتى على الهاتف الذكي باستخدام &amp;ldquo;خوارزمية إقليدس&amp;rdquo;&lt;/em>)&lt;/p>
&lt;p>&lt;strong>[ملاحظة سريعة: لماذا التربيع؟ ألا يمكن التكعيب أو المضاعفة؟]&lt;/strong>&lt;/p>
&lt;blockquote>
&lt;p>إذا استخدمنا &amp;ldquo;$2X - 2Y$&amp;quot;، سيصبح $2(X - Y)$، وستكون هناك غرفة واحدة فقط ولن نتمكن من فصل الأعداد الأولية. إذا استخدمنا &amp;ldquo;$X^3 - Y^3$&amp;quot;، ستصبح أحجام الغرف غير متوازنة، وستكون الحسابات ثقيلة بلا داعٍ. لفصل الأعداد الأولية بشكل مثالي، فإن &amp;ldquo;التربيع&amp;rdquo; الذي يقسمها إلى غرفتين جميلتين هو الخيار الأكثر كفاءة.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h2 id="الفصل-الثاني-كيف-نبحث-عن-x-و-y-لغز-جمع-بطاقات-الأعداد-الأولية">الفصل الثاني: كيف نبحث عن X و Y؟ &amp;ldquo;لغز جمع بطاقات الأعداد الأولية&amp;rdquo;
&lt;/h2>&lt;p>لقد عرفنا الهدف. ومع ذلك، إذا حاولنا البحث عشوائياً عن &amp;ldquo;$X^2$ و $Y^2$ اللذين لهما نفس الباقي&amp;rdquo;، فلن نجدهما حتى نهاية عمر الكون.
لذلك، ابتكر علماء الرياضيات طريقة عبقرية تسمى &lt;strong>&amp;ldquo;لغز جمع بطاقات الأعداد الأولية&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;h3 id="الخطوة-1-غربلة-وجمع-غبار-الذهب-الأعداد-الناعمة-فقط">الخطوة 1: غربلة وجمع غبار الذهب (الأعداد الناعمة) فقط
&lt;/h3>&lt;p>أولاً، نقوم بإعداد عدد عشوائي $Z$، ونربّعه، ونحسب الباقي $W$ عند قسمته على $N$.
(عالم البواقي: $Z^2 = W$)&lt;/p>
&lt;p>نقوم بتحليل الباقي الناتج $W$ إلى عوامل أولية. هنا، فقط عندما يظهر &lt;strong>&amp;quot;$W$ الذي يتكون فقط من أعداد أولية صغيرة مثل 2، 3، 5، 7&amp;rdquo;&lt;/strong> ، نحتفظ بهذه المعادلة كـ &amp;ldquo;بطاقة رابحة&amp;rdquo;، ونتخلص منها إذا اختلط بها عدد أولي كبير.
يشبه الأمر استخدام الغربال في النهر للتخلص من الحجارة الكبيرة وجمع غبار الذهب فقط.&lt;/p>
&lt;h3 id="الخطوة-2-لغز-جعل-الجميع-بعدد-زوجي">الخطوة 2: لغز جعل الجميع بعدد &amp;ldquo;زوجي&amp;rdquo;
&lt;/h3>&lt;p>على سبيل المثال، لنفترض أننا جمعنا 3 بطاقات من غبار الذهب:&lt;/p>
&lt;ul>
&lt;li>البطاقة A: $Z_1^2 = 2^3 \times 3^1$&lt;/li>
&lt;li>البطاقة B: $Z_2^2 = 2^1 \times 5^1$&lt;/li>
&lt;li>البطاقة C: $Z_3^2 = 3^1 \times 5^1$&lt;/li>
&lt;/ul>
&lt;p>دعونا نضربها جميعاً معاً.
سيصبح الجانب الأيمن $(2^3 \times 3^1) \times (2^1 \times 5^1) \times (3^1 \times 5^1)$،
وبتبسيطه سنحصل على &lt;strong>&amp;quot;$2^4 \times 3^2 \times 5^2$&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;p>والمثير للدهشة، أن عدد الأعداد الأولية أصبح &amp;ldquo;4، 2، 2&amp;rdquo;، &lt;strong>جميعها أعداد زوجية&lt;/strong> !
حقيقة أن جميعها زوجية تعني أنه إذا أخذنا نصف الكمية، فسنحصل على &amp;ldquo;تربيع لشيء ما&amp;rdquo;.
أي أن $(2^2 \times 3^1 \times 5^1)^2 = (60)^2$.&lt;/p>
&lt;p>وبما أن الجانب الأيسر هو $(Z_1 \times Z_2 \times Z_3)^2$, فقد حصلنا أخيراً على:
&lt;strong>$X = (Z_1 \times Z_2 \times Z_3)$&lt;/strong>
&lt;strong>$Y = 60$&lt;/strong>
وهكذا يكتمل الزوج الذي طال انتظاره لـ &amp;ldquo;$X^2 = Y^2$&amp;rdquo;!&lt;/p>
&lt;p>بالنسبة لأجهزة الكمبيوتر، فإن ألغاز حساب ما إذا كان عدد الأعداد الأولية &amp;ldquo;زوجياً أم فردياً (0 أو 1)&amp;rdquo; سهلة للغاية، لذلك يمكن لهذه الطريقة العثور على $X$ و $Y$ بسرعة فائقة.&lt;/p>
&lt;hr>
&lt;h2 id="الفصل-الثالث-جدار-اليأس-الذي-يقف-في-طريقنا">الفصل الثالث: جدار اليأس الذي يقف في طريقنا
&lt;/h2>&lt;p>قد تعتقد: &amp;ldquo;بهذا يمكن كسر أي تشفير!&amp;rdquo; &amp;hellip; ولكن تظهر مشكلة كبيرة.
إذا كان رقم التشفير $N$ يصل طوله إلى حوالي &amp;ldquo;100 رقم&amp;rdquo;، فيمكن لهذه الطريقة (وتسمى الغربال التربيعي) حله. ولكن عندما يصبح $N$ &amp;ldquo;200 رقم أو 300 رقم&amp;rdquo;، يصبح المتغير $W$ أثناء الحساب ضخماً للغاية.&lt;/p>
&lt;p>عندما تصبح الأعداد ضخمة للغاية، تتوقف &amp;ldquo;الأعداد المكونة فقط من أعداد أولية صغيرة (غبار الذهب)&amp;rdquo; عن الظهور تماماً. يصبح العثور عليها أصعب من العثور على عدسة لاصقة في الصحراء، ونفشل تماماً في جمع البطاقات لحل اللغز.&lt;/p>
&lt;p>وهنا تظهر أخيراً الأداة الأقوى للبشرية: &lt;strong>&amp;ldquo;غربال حقل الأعداد العام (GNFS)&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;hr>
&lt;h2 id="الفصل-الرابع-الفكرة-الأقوى-للبشرية-لإنشاء-عالمين">الفصل الرابع: الفكرة الأقوى للبشرية لإنشاء &amp;ldquo;عالمين&amp;rdquo;
&lt;/h2>&lt;p>الفكرة العبقرية لـ GNFS هي: &lt;strong>&amp;ldquo;السبب في أن الأعداد تصبح ضخمة هو أننا نحسب في العالم الحقيقي فقط. إذاً، لنقم بإنشاء &amp;lsquo;عالم موازٍ&amp;rsquo; باستخدام كثيرات الحدود (العبارات الجبرية)، ولنقم بتقسيم عبء الحساب إلى قسمين&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;h3 id="سحر-العبارات-الجبرية">سحر العبارات الجبرية
&lt;/h3>&lt;p>يقوم GNFS بتحويل العدد الضخم $N$ إلى عبارة جبرية باستخدام رقم أساسي $m$.
على سبيل المثال، إذا كان $N=100$، وكان $m=4$، فإن $100 = 4^3 + 2(4^2) + 4$.
باستخدام المتغير $x$، نحول هذا إلى المعادلة (في العالم الموازي): &lt;strong>$f(x) = x^3 + 2x^2 + x$&lt;/strong> .&lt;/p>
&lt;p>الشيء المثير للاهتمام في هذه المعادلة هو خاصيتها: &lt;strong>&amp;ldquo;إذا قمنا بتعويض الحرف $x$ بـ $m$ (4 في المثال أعلاه)، فيمكننا في أي وقت العودة (القفز) إلى رقم العالم الحقيقي $N$&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;h3 id="البحث-عن-غبار-الذهب-في-كلا-العالمين-في-وقت-واحد">البحث عن غبار الذهب في كلا العالمين في وقت واحد
&lt;/h3>&lt;p>يقوم GNFS بإنشاء العديد من أزواج الأعداد الصحيحة العشوائية $(a, b)$، وينفذ العمليتين التاليتين في نفس الوقت:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>العالم الحقيقي&lt;/strong>: $a - b \times m$&lt;/li>
&lt;li>&lt;strong>عالم الجبر&lt;/strong>: القيمة المحسوبة لـ $a - b \times x$ وفقاً لقواعد العبارات الجبرية&lt;/li>
&lt;/ol>
&lt;p>من خلال تقسيم المشكلة إلى عالمين، ينخفض حجم الأعداد التي يتم التعامل معها بشكل جذري (تصبح أخف وزناً). تخيل أنك تقوم بكسر صخرة عملاقة إلى حجرين صغيرين يسهل التعامل معهما.&lt;/p>
&lt;p>بعد ذلك، وباستخدام الغربال، نجمع فقط الأزواج العجيبة $(a, b)$ التي تكون &lt;strong>&amp;ldquo;في كل من العالم الحقيقي وعالم الجبر، مكونة فقط من أعداد أولية صغيرة (غبار الذهب)&amp;rdquo;&lt;/strong> . وهذا هو أصل اسم &amp;ldquo;غربال حقل الأعداد&amp;rdquo;.&lt;/p>
&lt;h3 id="لحظة-كسر-التشفير-أخيرا">لحظة كسر التشفير أخيراً
&lt;/h3>&lt;p>بمجرد جمع عشرات الملايين من &amp;ldquo;بطاقات غبار الذهب&amp;rdquo; من كلا العالمين، نستخدم حسابات المصفوفات الضخمة للحواسيب الخارقة للعثور على &amp;ldquo;التجميعة التي يصبح فيها عدد الأعداد الأولية زوجياً بالكامل&amp;rdquo;، تماماً كما فعلنا في الفصل الثاني.&lt;/p>
&lt;p>بمجرد العثور على التجميعة:&lt;/p>
&lt;ul>
&lt;li>نجعل العدد المربع الذي تم تشكيله في العالم الحقيقي هو &lt;strong>$X^2$&lt;/strong>&lt;/li>
&lt;li>ونجعل المعادلة المربعة التي تم تشكيلها في عالم الجبر هي &lt;strong>$Y(x)^2$&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>أخيراً، نقوم بتعويض $x$ في $Y(x)$ من عالم الجبر بـ $m$، لكي نقفز وندمجه مع العالم الحقيقي.
وعندها، وكأنه سحر رياضياتي، تتحقق بدقة الحالة التي &lt;strong>&amp;ldquo;يكون فيها باقي $X^2$ و $Y^2$ هو نفسه&amp;rdquo;&lt;/strong> !&lt;/p>
&lt;p>بعد ذلك، وكما هو موضح في الفصل الأول، إذا قمنا بحساب القاسم المشترك الأكبر لـ $X - Y$ و $N$، فإن تشفير RSA المنيع سينهار بصوت عالٍ، وستظهر الأعداد الأولية السرية.&lt;/p>
&lt;hr>
&lt;h2 id="الخاتمة-الرياضيات-لا-تنتهي">الخاتمة: الرياضيات لا تنتهي
&lt;/h2>&lt;p>قد تعتقد: &amp;ldquo;حسناً، باستخدام GNFS يمكننا كسر أي تشفير!&amp;rdquo;
ومع ذلك، فإن تشفير RSA لم يستسلم. ما يتم استخدامه في الإنترنت اليوم هو عدد ضخم وحشي يُسمى &amp;ldquo;RSA-2048 (حوالي 617 رقماً)&amp;rdquo;.&lt;/p>
&lt;p>بغض النظر عن كون GNFS أقوى خوارزمية للبشرية، يُقال إنه حتى لكسر رقم مكون من 270 رقماً (RSA-270)، فإن الأمر سيستغرق آلاف بل وعشرات الآلاف من السنين حتى لو تم ربط جميع أجهزة الكمبيوتر في العالم معاً. في الوقت الحالي، بياناتنا في LINE والبنوك في أمان.&lt;/p>
&lt;p>ولكن، ماذا سيحدث إذا ظهر &lt;strong>&amp;ldquo;السحر الذي يجد $X$ و $Y$ في لحظة لأي عدد ضخم&amp;rdquo;&lt;/strong> ؟
في الواقع، أقرب شيء لذلك قيد التطوير حالياً هو &lt;strong>&amp;ldquo;الكمبيوتر الكمي (خوارزمية شور)&amp;rdquo;&lt;/strong> . لقد ثبت رياضياً أنه باستخدام الخصائص الموجية لميكانيكا الكم، يمكننا تجاوز لغز جمع البطاقات المزعج وسحب الإجابة الصحيحة دفعة واحدة.&lt;/p>
&lt;p>معركة العقول التي لا نهاية لها بين صانعي التشفير (الدفاع) وصانعي خوارزميات كسر التشفير (الهجوم).
عندما تعلم أن &amp;ldquo;التحليل إلى العوامل الأولية&amp;rdquo; و&amp;quot;المعادلات الجبرية&amp;quot; التي تعلمناها في المدرسة الإعدادية هي في الواقع الأسلحة التي تتصادم بشراسة في الخطوط الأمامية للأمن العالمي، ألا تبدو دروس الرياضيات أكثر إثارة للاهتمام قليلاً؟&lt;/p>
&lt;p>قد تكون أنت من يقرأ هذا المقال هو من سيكتشف أقوى خوارزمية في المستقبل!&lt;/p>
&lt;hr>
&lt;p>&lt;em>(※يقوم هذا المقال بتبسيط الجاذبية الرياضية لفك التشفير لطلاب المدارس الإعدادية. في الواقع، يتم حساب GNFS الفعلي بصرامة باستخدام رياضيات جامعية متقدمة مثل مجموعات الفئات المثالية للحقول الجبرية والتشاكل (Homomorphism))&lt;/em>&lt;/p></description></item><item><title>إيجابيات وسلبيات مناهضة اللقاحات</title><link>http://kenji.blog/ar/p/anti-vaccine-pros-cons-ar/</link><pubDate>Sat, 24 Jan 2026 15:41:23 +0900</pubDate><guid>http://kenji.blog/ar/p/anti-vaccine-pros-cons-ar/</guid><description>&lt;img src="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.png" alt="Featured image of post إيجابيات وسلبيات مناهضة اللقاحات" />&lt;h1 id="إيجابيات-وسلبيات-مناهضة-اللقاحات-مستقبل-5000-شخص-قتلهم-القلق-بحسن-نية-والدروس-الوبائية-التي-يجب-أن-نتعلمها">إيجابيات وسلبيات مناهضة اللقاحات: مستقبل 5000 شخص قتلهم &amp;ldquo;القلق بحسن نية&amp;rdquo; والدروس الوبائية التي يجب أن نتعلمها
&lt;/h1>&lt;h2 id="وهم-السببية-الذي-سلط-عليه-الضوء-وباء-كورونا">&amp;ldquo;وهم السببية&amp;rdquo; الذي سلط عليه الضوء وباء كورونا
&lt;/h2>&lt;p>منذ عام 2021، تم المضي قدمًا بسرعة في التطعيم بلقاح فيروس كورونا في اليابان. لقد كان مشروعًا للصحة العامة نادرًا في تاريخ البشرية، حيث تم تطعيم ما يقرب من 80٪ من السكان في فترة قصيرة.
خلال هذه العملية، شهدنا عددًا لا يحصى من &amp;ldquo;الصرخات&amp;rdquo; عبر وسائل التواصل الاجتماعي ووسائل الإعلام. &amp;ldquo;توفي أحد أفراد أسرتي بعد أيام قليلة من تلقي اللقاح&amp;rdquo;، &amp;ldquo;استمرت مشاكل صحية غير مبررة بعد التطعيم&amp;rdquo; &amp;ndash;. هذه الشكاوى مفجعة، وبالنسبة لأولئك الذين عانوا منها، فإن هذه المعاناة هي حقيقة لا يمكن إنكارها.&lt;/p>
&lt;p>ومع ذلك، يوجد هنا &amp;ldquo;فخ&amp;rdquo; وبائي بارد ولكنه مهم للغاية.
بالنظر إلى حجم سكان اليابان، سواء تم تطعيمهم أم لا، يموت حوالي 3000 إلى 4000 شخص كل يوم لأسباب مختلفة (المرض، الحوادث، الشيخوخة). إذا تم تطعيم غالبية السكان في وقت واحد، فمن الناحية الاحتمالية، &amp;ldquo;سيموت عدد معين من الأشخاص في اليوم التالي للتطعيم (لأسباب لا علاقة لها باللقاح)&amp;rdquo;. في المصطلحات المتخصصة، يسمى هذا &lt;strong>&amp;ldquo;المصادفة&amp;rdquo; (Coincidence)&lt;/strong> .&lt;/p>
&lt;p>البشر مجهزون بانحياز معرفي يسمى &amp;ldquo;مغالطة ما بعد الحدث&amp;rdquo; (post hoc ergo propter hoc). إذا &amp;ldquo;حدث B (الوفاة) بعد A (التطعيم)&amp;quot;، فإننا نستنتج بشكل حدسي أن &amp;ldquo;A هو سبب B&amp;rdquo;. خلال الوباء، تضخم هذا الانحياز المعرفي من خلال وسائل التواصل الاجتماعي، مما خلق شريحة من المجتمع ترسخت فيها صورة &amp;ldquo;اللقاح = الخطر&amp;rdquo; قبل التحقق العلمي.&lt;/p>
&lt;p>راقب العديد من خبراء الصحة العامة هذا المشهد بشعور بالتكرار. لأنه قبل بضع سنوات فقط، كانت اليابان الدولة المتقدمة الوحيدة التي تخلت طواعية عن وسيلة للوقاية من الأمراض التي يمكن الوقاية منها بسبب هذا &amp;ldquo;القلق بلا علم&amp;rdquo;.
هذه هي مشكلة &lt;strong>&amp;ldquo;لقاح سرطان عنق الرحم (لقاح فيروس الورم الحليمي البشري HPV)&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;hr>
&lt;h2 id="ماذا-حدث-في-اليابان-عام-2013">ماذا حدث في اليابان عام 2013؟
&lt;/h2>&lt;p>دعونا نعود بالزمن إلى الوراء قليلاً.
يصيب سرطان عنق الرحم حوالي 11000 امرأة سنويًا ويحصد أرواح حوالي 2900 شخص. وغالبًا ما يُطلق عليه &amp;ldquo;قاتل الأمهات&amp;rdquo; لأنه يصيب النساء في العشرينيات إلى الأربعينيات من العمر، في ذروة تربية الأطفال والحياة المهنية. السبب هو الإصابة بفيروس الورم الحليمي البشري (HPV)، وهو فيروس شائع يصيب 80٪ من النساء النشيطات جنسياً مرة واحدة على الأقل في حياتهن.
تم إدخال لقاح فيروس الورم الحليمي البشري، الذي يمنع الإصابة بهذا الفيروس، في جميع أنحاء العالم كـ &amp;ldquo;لقاح اختراق يمكن أن يمنع السرطان&amp;rdquo;، وفي اليابان أصبح تطعيمًا روتينيًا (يوصى به بشدة من قبل الحكومة ومتاح مجانًا) في أبريل 2013.&lt;/p>
&lt;p>ومع ذلك، سرعان ما اتخذت الأمور منعطفًا مظلمًا.
أبلغت بعض الفتيات اللاتي تم تطعيمهن عن أعراض مثل آلام في جميع أنحاء الجسم، واضطرابات حركية، ومشاكل في الذاكرة. وقد أبلغت وسائل الإعلام عن ذلك على نطاق واسع كل يوم باعتباره &amp;ldquo;اشتباهًا في آثار جانبية للقاح&amp;rdquo;. وكان لقطات الفتيات اللاتي يعانين من تشنجات تأثير قوي على المشاهدين، وسرعان ما تحول الرأي العام نحو نظرية &amp;ldquo;اللقاح الخطير&amp;rdquo;.&lt;/p>
&lt;p>رداً على ذلك، قررت وزارة الصحة والعمل والرفاهية في يونيو 2013، بعد شهرين فقط من بدء التطعيم الروتيني، &amp;ldquo;تعليق التوصية النشطة&amp;rdquo;. لم يكن هذا &amp;ldquo;حظرًا&amp;rdquo; أو &amp;ldquo;إلغاءً&amp;rdquo;، بل كان قرارًا سياسيًا غامضًا للغاية بـ &amp;ldquo;الحفاظ على إطار التطعيم الروتيني ولكن التوقف عن إرسال إشعارات فردية من الحكومة&amp;rdquo;.
ومع ذلك، فقد وصل ذلك إلى الجمهور كرسالة مفادها أن &amp;ldquo;الحكومة اعترفت بالخطر وأوقفته&amp;rdquo;. ونتيجة لذلك، انخفض معدل التطعيم، الذي كان يزيد عن 70٪، إلى أقل من 1٪ في غمضة عين.&lt;/p>
&lt;p>من هنا، بدأت &lt;strong>&amp;ldquo;السنوات الثماني الضائعة&amp;rdquo; (Vaccine Gap)&lt;/strong> في اليابان.&lt;/p>
&lt;hr>
&lt;h2 id="الحقيقة-التي-كشفتها-دراسة-ناغويا">&amp;ldquo;الحقيقة&amp;rdquo; التي كشفتها دراسة ناغويا
&lt;/h2>&lt;p>هل كانت الأعراض التي أبلغت عنها وسائل الإعلام ناجمة حقًا عن اللقاح؟
كان هناك استطلاع واسع النطاق حاول الإجابة على هذا السؤال علميًا. يُعرف هذا باسم &lt;strong>&amp;ldquo;دراسة ناغويا&amp;rdquo; (Nagoya Study)&lt;/strong> .&lt;/p>
&lt;p>في عام 2015، أجرت مدينة ناغويا استبيانًا واسع النطاق شمل حوالي 70 ألف شابة. شمل الاستطلاع كلاً من &amp;ldquo;المطعمين&amp;rdquo; و &amp;ldquo;غير المطعمين&amp;rdquo;، وسأل عن وجود أو عدم وجود 24 عرضًا، مثل &amp;ldquo;عدم انتظام الدورة الشهرية&amp;rdquo; و &amp;ldquo;آلام المفاصل&amp;rdquo; و &amp;ldquo;انخفاض التركيز&amp;rdquo;.
إذا كان اللقاح هو السبب، فيجب أن تكون هذه الأعراض أكثر شيوعًا بشكل ملحوظ في مجموعة &amp;ldquo;المطعمين&amp;rdquo;.&lt;/p>
&lt;p>كانت النتائج صادمة.
&lt;strong>لم يلاحظ أي فرق معنوي في معدل حدوث الأعراض بين &amp;ldquo;المجموعة المطعمة&amp;rdquo; و &amp;ldquo;المجموعة غير المطعمة&amp;rdquo;.&lt;/strong>&lt;/p>
&lt;p>ماذا يعني هذا؟
الفتيات المراهقات، بغض النظر عما إذا كن قد تم تطعيمهن أم لا، عرضة لمشاكل صحية مثل اضطرابات التنظيم الانتصابي والألم المزمن بسبب التغيرات في التوازن الهرموني والظروف الخاصة بالبلوغ.
بمعنى آخر، كانت هناك نسبة من &amp;ldquo;الفتيات اللاتي لم يتم تطعيمهن ولكن ظهرت عليهن نفس الأعراض&amp;rdquo; تعادل تقريبًا عدد &amp;ldquo;الفتيات اللاتي ظهرت عليهن أعراض بعد التطعيم&amp;rdquo; كما أفادت وسائل الإعلام.
ومع ذلك، تم التعامل مع المشاكل الصحية لدى الفتيات غير المطعمات على أنها &amp;ldquo;اضطرابات سن البلوغ&amp;rdquo;، في حين تم تسليط الضوء فقط على الشكاوى لدى الفتيات المطعمات كـ &amp;ldquo;ضرر اللقاح&amp;rdquo;. أظهرت البيانات أن هذا هو على الأرجح الطبيعة الحقيقية للظاهرة التي أحدثت ضجة باعتبارها &amp;ldquo;كارثة طبية&amp;rdquo;.&lt;/p>
&lt;p>بالإضافة إلى ذلك، تمت الإشارة أيضًا إلى تورط &amp;ldquo;تأثير نوسيبو&amp;rdquo; (Nocebo effect). على عكس تأثير &amp;ldquo;الدواء الوهمي&amp;rdquo;، إنها ظاهرة يحدث فيها الألم أو المرض حقًا بسبب القلق والخوف عندما تتناول شيئًا معتقدًا أنه &amp;ldquo;مضر بالصحة&amp;rdquo;. لا يمكن إنكار أن وابل التقارير السلبية قد أثر على عقول وأجساد الفتيات الهشة.&lt;/p>
&lt;hr>
&lt;h2 id="خطيئة-الإغفال-بالأرقام">&amp;ldquo;خطيئة الإغفال&amp;rdquo; بالأرقام
&lt;/h2>&lt;p>&amp;ldquo;وقف التوصية فقط في حالة&amp;rdquo;.
يبدو هذا القرار للوهلة الأولى &amp;ldquo;خيارًا حذرًا وآمنًا&amp;rdquo;. نظرًا لأنه سيكون قد فات الأوان للتصرف بعد حدوث شيء ما، يجب إيقاف أي شيء مشبوه. ومع ذلك، في مجال الصحة العامة، يؤدي &amp;ldquo;عدم فعل أي شيء&amp;rdquo; (الإغفال) أحيانًا إلى أضرار تفوق بكثير خطر &amp;ldquo;فعل شيء ما&amp;rdquo;.&lt;/p>
&lt;p>نشر فريق بحث من جامعة أوساكا تقديرات قاسية بشأن تأثير هذا التعليق للتوصية.
بسبب الانخفاض الحاد في معدل التطعيم بين عامي 2013 و 2019، &lt;strong>سيزداد عدد مرضى سرطان عنق الرحم في المستقبل، والذي كان من الممكن الوقاية منه، بحوالي 25000 شخص، وسيزداد عدد الوفيات بحوالي 5000 إلى 5700 شخص.&lt;/strong>&lt;/p>
&lt;p>أكثر من 5000 حالة وفاة. هذا رقم يمكن مقارنته بكارثة طبيعية واسعة النطاق.
ونتيجة لمحاولة تجنب خطر لم تثبت السببية فيه علميًا -&amp;ldquo;القلق بشأن الآثار الجانبية&amp;rdquo;- قمنا بتحميل النساء في المستقبل عبء الخطر المؤكد والخطير المتمثل في &amp;ldquo;الوفاة بسبب السرطان&amp;rdquo;.&lt;/p>
&lt;p>إذا نظرنا إلى العالم، فإن الاختلاف واضح.
في أستراليا، بفضل انتشار التطعيم بين الرجال والنساء، من المتوقع أن يتم &amp;ldquo;القضاء&amp;rdquo; على سرطان عنق الرحم (ليصبح سرطانًا نادرًا) بحلول عام 2028 تقريبًا. وهناك أيضًا تقارير من المملكة المتحدة تفيد بأن الإصابة بسرطان عنق الرحم في الجيل المطعم قد انخفضت إلى ما يقرب من الصفر.
بينما يتحرك العالم نحو مستقبل &amp;ldquo;قهر السرطان&amp;rdquo;، بقيت اليابان وحدها في الماضي حيث &amp;ldquo;يستمر السرطان في الزيادة&amp;rdquo;. في عام 2015، انتقدت اللجنة الاستشارية العالمية لسلامة اللقاحات التابعة لمنظمة الصحة العالمية وضع اليابان تحديدًا، مشيرة إلى أن: &amp;ldquo;القرارات السياسية التي لا تستند إلى أدلة علمية تؤدي إلى ضرر حقيقي (الوفاة بسبب السرطان)&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="سلسلة-التردد-في-أخذ-اللقاحات-عبر-البحار">سلسلة &amp;ldquo;التردد في أخذ اللقاحات&amp;rdquo; عبر البحار
&lt;/h2>&lt;p>مأساة لقاح فيروس الورم الحليمي البشري التي حدثت في اليابان ليست بأي حال من الأحوال &amp;ldquo;وضعًا خاصًا باليابان&amp;rdquo;. حتى الآن، هناك حالات تم الإبلاغ عنها في جميع أنحاء العالم تظهر أنه عندما يُعطى &amp;ldquo;القلق البديهي&amp;rdquo; أو &amp;ldquo;الأيديولوجيا&amp;rdquo; الأولوية على العلم، يمكن للأمراض المعدية أن تكشر عن أنيابها في أي وقت وفي أي مكان.&lt;/p>
&lt;p>والمثال البارز على ذلك هو &lt;strong>وباء &amp;ldquo;الحصبة&amp;rdquo;&lt;/strong> في الولايات المتحدة.&lt;/p>
&lt;p>الحصبة فيروس شديد العدوى، لكن المرض يمكن الوقاية منه بالكامل تقريبًا باللقاح. في الولايات المتحدة، من خلال برنامج تطعيم شامل، تم الإعلان عن &amp;ldquo;القضاء&amp;rdquo; (elimination) عليها في عام 2000. بعبارة أخرى، اعتبر الفيروس المتوطن قد اختفى من داخل البلاد.
ومع ذلك، بدأت الحصبة في الانتشار مرة أخرى في السنوات الأخيرة.&lt;/p>
&lt;p>وفقًا لتقارير بي بي سي (2024)، أشارت السلطات الصحية الأمريكية إلى أن &amp;ldquo;التردد في أخذ اللقاحات&amp;rdquo; (Vaccine Hesitancy) المتجذر في بعض المجتمعات أصبح أرضًا خصبة للعدوى.
وقد انخفضت معدلات التطعيم في المناطق التي تتغلغل فيها الأسباب الدينية، أو المجموعات التي تدعو إلى نمط حياة &amp;ldquo;طبيعي&amp;rdquo;، أو الأيديولوجيات المناهضة للقاحات القائمة على معلومات مضللة. وعندما يتم جلب الفيروس من الخارج إلى هذه المناطق، تحدث تفشيات متفجرة بين الأشخاص الذين يفتقرون إلى المناعة.&lt;/p>
&lt;p>الحصبة ليست مجرد مرض ينتهي بالحمى أو الطفح الجلدي. يمكن أن يسبب مضاعفات خطيرة مثل الالتهاب الرئوي أو التهاب الدماغ، وحتى في البلدان المتقدمة، يمكن أن يكون قاتلاً. المرض الذي كان البشر قد &amp;ldquo;احتووه&amp;rdquo; ذات يوم من خلال الجمع بين حكمتهم، يهدد الآن حياة الأطفال مرة أخرى من خلال استغلال &amp;ldquo;شكوك&amp;rdquo; الناس.
تحذرنا القضية في الولايات المتحدة: &amp;ldquo;يمكن لحاجز معدلات التطعيم المرتفعة أن ينهار في لحظة إذا اهتزت ثقة الناس&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="هزيمة-وسائل-الإعلام-والخبراء-وجميعنا">هزيمة وسائل الإعلام والخبراء وجميعنا
&lt;/h2>&lt;p>لماذا تتكرر هذه المواقف؟
السبب يكمن في عدم تناسق المعلومات الفريد في المجتمع الحديث وانحيازنا المعرفي.&lt;/p>
&lt;p>في قضية لقاح فيروس الورم الحليمي البشري في اليابان، أبلغت وسائل الإعلام عن &amp;ldquo;الآثار الجانبية المشتبه بها&amp;rdquo; بشكل مثير. كان إطار &amp;ldquo;الضحايا المساكين&amp;rdquo; مقابل &amp;ldquo;الدولة وشركات الأدوية الباردة&amp;rdquo; قويًا جدًا وتلاعب بمشاعر المشاهدين بقوة.
من ناحية أخرى، فإن التفسيرات العلمية من الخبراء مثل &amp;ldquo;لا يوجد فرق ذو دلالة إحصائية&amp;rdquo; أو &amp;ldquo;الفوائد تفوق المخاطر&amp;rdquo; بدت جافة وباردة، وكانت عاجزة للغاية أمام سيل المشاعر.&lt;/p>
&lt;p>في عالم العلم، إذا كانت هناك نظرية ثابتة يدعمها 99٪ من العلماء و 1٪ معارضة، فلا يتم التعامل معها على أنها &amp;ldquo;آراء متساوية&amp;rdquo;. ومع ذلك، ولأن وسائل الإعلام تركز بشكل مفرط على &amp;ldquo;الإنصاف&amp;rdquo; أو لجذب الانتباه، فقد أبلغوا عن البيانات التي يمكن أن تنقذ عشرات الآلاف من الأرواح والشكوى العاطفية من ضحية واحدة كشيء &amp;ldquo;متساوٍ&amp;rdquo;.
كما أعطى السياسيون، خوفًا من رد فعل الرأي العام، الأولوية لـ &amp;ldquo;قراءة الأجواء&amp;rdquo; على الأدلة العلمية. ونتيجة لذلك، تم تعليق التوصية النشطة بلقاح فيروس الورم الحليمي البشري في اليابان لمدة 9 سنوات تقريبًا، مما أدى إلى العديد من حالات السرطان التي كان من الممكن الوقاية منها.&lt;/p>
&lt;hr>
&lt;h2 id="التاريخ-يعيد-نفسه-الذكاء-لمقاومة-الأجواء">التاريخ يعيد نفسه: الذكاء لمقاومة &amp;ldquo;الأجواء&amp;rdquo;
&lt;/h2>&lt;p>في عام 2022، استأنفت اليابان أخيرًا التوصية النشطة بلقاح فيروس الورم الحليمي البشري. ومع ذلك، لا يمكن استعادة الوقت والأرواح المفقودة. وكما يظهر وباء الحصبة الحالي في الولايات المتحدة، إذا تخلينا عن حذرنا، فإن التاريخ سيعيد نفسه مرارًا وتكرارًا.&lt;/p>
&lt;p>لا يمكننا أن ننكر تمامًا حركة مناهضة اللقاحات أو القلق بشأن الرعاية الطبية نفسها. إنها غريزة دفاعية بشرية أن نكون حذرين بشأن ما نضعه في أجسادنا، وقد حدثت كوارث طبية بالفعل في الماضي. من المهم في ظل الديمقراطية مراقبة السلطة والتشكيك فيها.&lt;/p>
&lt;p>ومع ذلك، فإن سلسلة الأحداث المحيطة بلقاحات كورونا، ولقاحات فيروس الورم الحليمي البشري، ووباء الحصبة في الولايات المتحدة تواجهنا بحقيقة قاسية مفادها أن &lt;strong>&amp;ldquo;القلق بحسن نية الذي يتجاهل العلم&amp;rdquo; يمكن أن يحصد أرواحًا أكثر من الفيروس نفسه.&lt;/strong>&lt;/p>
&lt;p>&amp;ldquo;قد يكون الأمر خطيرًا، دعنا ننتظر ونرى&amp;rdquo;.
عند اتخاذ هذا القرار، هل أخذنا في الاعتبار &amp;ldquo;احتمال الموت بسبب المرض أثناء الانتظار&amp;rdquo;؟
&amp;ldquo;الأشياء الطبيعية هي الأفضل&amp;rdquo;.
عندما نقول هذا، هل نسينا التاريخ القائل بأن &amp;ldquo;الفيروسات في الطبيعة هي الأكثر قسوة في حصد الأرواح&amp;rdquo;؟&lt;/p>
&lt;p>ستظهر أمراض معدية جديدة وسيتم تطوير لقاحات جديدة في المستقبل. في ذلك الوقت، هل سننخدع مرة أخرى بظاهرة &amp;ldquo;المصادفة&amp;rdquo; وننجرف وراء التحريض العاطفي؟ أم سنكون قادرين على تحليل البيانات بهدوء وموازنة المخاطر مقابل الفوائد؟&lt;/p>
&lt;p>يقال إن التاريخ يعيد نفسه. ومع ذلك، فإن الشيء الوحيد الذي يمكنه إيقاف ذلك هو عقلانيتنا.
من خلال النظر إلى بيانات صحيحة إحصائيًا، يجب أن نمتلك الذكاء لاختيار &amp;ldquo;الحقائق&amp;rdquo; بدلاً من &amp;ldquo;الأجواء&amp;rdquo;. هذه هي مسؤوليتنا نحن الذين نعيش في العصر الحديث.&lt;/p>
&lt;hr>
&lt;h3 id="المراجع-ومصادر-البيانات">المراجع ومصادر البيانات
&lt;/h3>&lt;ul>
&lt;li>&lt;strong>وزارة الصحة والعمل والرفاهية (MHLW)&lt;/strong> : &amp;ldquo;عدوى فيروس الورم الحليمي البشري - سرطان عنق الرحم ولقاح فيروس الورم الحليمي البشري&amp;rdquo;&lt;/li>
&lt;li>&lt;strong>المركز الوطني للسرطان في اليابان (NCC)&lt;/strong> : خدمة معلومات السرطان &amp;ldquo;سرطان عنق الرحم&amp;rdquo; بيانات إحصائية&lt;/li>
&lt;li>&lt;strong>بي بي سي نيوز (اليابان)&lt;/strong> : &amp;ldquo;مراكز مكافحة الأمراض والوقاية منها تدعو إلى التطعيم وسط تفشي الحصبة - زيادة عالمية في الإصابات&amp;rdquo; (2024) والمقالات الأصلية ذات الصلة&lt;/li>
&lt;li>&lt;strong>فريق أبحاث جامعة أوساكا (Yagi A, et al. Lancet Public Health. 2020)&lt;/strong> : دراسة تقديرية للمراضة والوفيات الزائدة بسبب تعليق التوصية النشطة للتطعيم الروتيني ضد فيروس الورم الحليمي البشري&lt;/li>
&lt;li>&lt;strong>Nagoya Study (Suzuki S, et al. Papillomavirus Res. 2018)&lt;/strong>&lt;/li>
&lt;/ul></description></item><item><title>أسطورة وواقع "اليابانيون أولاً": دفاع اليابان باسم "التعايش" في عام 2026</title><link>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/</link><pubDate>Fri, 23 Jan 2026 13:43:41 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post أسطورة وواقع "اليابانيون أولاً": دفاع اليابان باسم "التعايش" في عام 2026" />&lt;h1 id="أسطورة-وواقع-اليابانيون-أولا-دفاع-اليابان-باسم-التعايش-في-عام-2026">أسطورة وواقع &amp;ldquo;اليابانيون أولاً&amp;rdquo;: دفاع اليابان باسم &amp;ldquo;التعايش&amp;rdquo; في عام 2026
&lt;/h1>&lt;h2 id="مقدمة-لماذا-تلامس-هذه-الكلمات-القلوب-الآن-بالذات">مقدمة: لماذا تلامس هذه الكلمات القلوب الآن بالذات
&lt;/h2>&lt;p>عام 2026. نقف اليوم عند نقطة تحول غير مسبوقة في عصرنا. تضخم طويل الأمد، وركود في نمو الأجور الحقيقية، وشيخوخة سريعة للسكان مع انكماش أعدادهم. في كل مرة يتم فيها تغيير بطاقات الأسعار على رفوف المتاجر، يلقي القلق بشأن المستقبل بظلاله على قلوبنا.&lt;/p>
&lt;p>في خضم هذا الشعور بالانسداد، هناك عبارة تكتسب دعماً سريعاً. وهي &lt;strong>&amp;ldquo;اليابانيون أولاً&amp;rdquo;&lt;/strong> (Japan First).&lt;/p>
&lt;p>الرغبة في أن &amp;ldquo;تقوم الحكومة بإثراء حياة مواطنيها أولاً&amp;rdquo; و&amp;quot;حماية الثقافة اليابانية والأمن العام كأولوية قصوى&amp;quot; هي رغبة طبيعية وملحة للغاية كأي مواطن ذي سيادة وإنسان يعيش في هذا البلد. ومع ذلك، بين &amp;ldquo;المثالية&amp;rdquo; التي ترفعها هذه العبارة و&amp;quot;الواقع&amp;quot; الذي تظهره البيانات الإحصائية، توجد فجوة كبيرة يجب أن نواجهها بصدق.&lt;/p>
&lt;p>في هذا المقال، سنضع الحجج العاطفية والتصنيفات جانباً، ونكشف عن الهوية الحقيقية لهذه المشكلة بناءً على بيانات موضوعية، وتغيرات زمنية، وحقائق تحدث في مختلف الجبهات الأمامية للمجتمع.&lt;/p>
&lt;hr>
&lt;h2 id="الفصل-الأول-التسلسل-الزمني-لـ-اليابانيون-أولا-والخلفية-الاجتماعية">الفصل الأول: التسلسل الزمني لـ &amp;ldquo;اليابانيون أولاً&amp;rdquo; والخلفية الاجتماعية
&lt;/h2>&lt;p>لم تظهر هذه العبارة فجأة. بل تشكلت من خلال تشابك معقد للاتجاهات العالمية والظروف الفريدة لليابان.&lt;/p>
&lt;h3 id="1-2016-2017-استيراد-وترسيخ-المصطلح">1. 2016-2017: استيراد وترسيخ المصطلح
&lt;/h3>&lt;p>في عام 2016، أحدث شعار &amp;ldquo;أمريكا أولاً&amp;rdquo; الذي رفعه دونالد ترامب صدمة في جميع أنحاء العالم. محلياً في عام 2017، جذب حزب &amp;ldquo;مواطنو طوكيو أولاً&amp;rdquo; بقيادة حاكمة طوكيو يوريكو كويكي الانتباه. في هذه المرحلة، كان الخطاب يستخدم في الغالب لتوضيح أولويات السياسة، وكانت النبرة المعادية للأجانب لا تزال محدودة.&lt;/p>
&lt;h3 id="2-2023-2024-تصور-القلق-بصريا">2. 2023-2024: تصور القلق بصرياً
&lt;/h3>&lt;p>ضرب تأخر التعافي الاقتصادي بعد الجائحة والتضخم المصاحب للانخفاض الحاد في قيمة الين الأسر العادية بقوة. وفي الوقت نفسه، بدأت الشكاوى القائمة على معلومات مجزأة بالظهور على وسائل التواصل الاجتماعي، مثل &amp;ldquo;الدعم للأجانب سخي للغاية&amp;rdquo; أو &amp;ldquo;أموال ضرائب اليابانيين تذهب للأجانب&amp;rdquo;.&lt;/p>
&lt;h3 id="3-2025-2026-اندماج-القوى-السياسية-ووسائل-التواصل-الاجتماعي">3. 2025-2026: اندماج القوى السياسية ووسائل التواصل الاجتماعي
&lt;/h3>&lt;p>في الانتخابات الوطنية لعام 2025، ضمنت القوى السياسية التي رفعت &amp;ldquo;اليابانيون أولاً&amp;rdquo; كشعار رسمي لها عدداً معيناً من المقاعد. تفاعلت خوارزميات وسائل التواصل الاجتماعي مع قلق الناس بإعطاء الأولوية للمنشورات الراديكالية، مما أدى إلى تسريع &amp;ldquo;ظاهرة غرف الصدى&amp;rdquo; حيث يتم تعزيز قيم معينة فقط.&lt;/p>
&lt;p>سلطت أحدث استطلاعات الرأي العام التي أجرتها الصحف المختلفة (أواخر عام 2025) الضوء على وضع انقسم فيه الرأي العام بحدة، حيث قال &lt;strong>42% &amp;ldquo;أوافق أو أوافق إلى حد ما&amp;rdquo;&lt;/strong> و &lt;strong>38% &amp;ldquo;لا أوافق أو لا أوافق إلى حد ما&amp;rdquo;&lt;/strong> تجاه هذا الشعار.&lt;/p>
&lt;hr>
&lt;h2 id="الفصل-الثاني-الحقيقة-حول-الاقتصاد-والضمان-الاجتماعي--ناهبون-أم-ركيزة-داعمة">الفصل الثاني: الحقيقة حول الاقتصاد والضمان الاجتماعي —— &amp;ldquo;ناهبون&amp;rdquo; أم &amp;ldquo;ركيزة داعمة&amp;rdquo;؟
&lt;/h2>&lt;p>من الركائز الأساسية للمنطق الذي يدعم &amp;ldquo;اليابانيون أولاً&amp;rdquo; هو التصور بأن &amp;ldquo;موارد اليابانيين تُسلب من قبل الأجانب&amp;rdquo;. ومع ذلك، تظهر البيانات الأولية من الوزارات الحكومية واقعاً معاكساً تماماً لهذا الحدس.&lt;/p>
&lt;h3 id="1-القوى-العاملة-الدم-الحيوي-الذي-يحافظ-على-الاقتصاد-الياباني">1. القوى العاملة: &amp;ldquo;الدم الحيوي&amp;rdquo; الذي يحافظ على الاقتصاد الياباني
&lt;/h3>&lt;p>وفقاً لتقرير &amp;ldquo;حالة توظيف الأجانب (حتى نهاية أكتوبر 2024)&amp;rdquo; الصادر عن وزارة الصحة والعمل والرفاهية، بلغ عدد العمال الأجانب &lt;strong>2,048,675 شخصاً&lt;/strong> . وفي التقديرات الحالية لعام 2026، تجاوز العدد بالفعل &lt;strong>2.3 مليون شخص&lt;/strong> .&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>قطاع الصناعة&lt;/th>
&lt;th>النسبة / معدل نمو العمال الأجانب&lt;/th>
&lt;th>الواقع والدور&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>البناء&lt;/strong>&lt;/td>
&lt;td>زيادة بنحو 22.7% عن العام السابق&lt;/td>
&lt;td>ضروري لصيانة البنية التحتية وإصلاح الجسور والطرق المتهالكة.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>الصحة والرعاية&lt;/strong>&lt;/td>
&lt;td>زيادة بنحو 28.1% عن العام السابق&lt;/td>
&lt;td>يعملون في الخطوط الأمامية للرعاية، ويدعمون كبار السن اليابانيين.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>التصنيع&lt;/strong>&lt;/td>
&lt;td>يمثلون حوالي 26% من الإجمالي&lt;/td>
&lt;td>العمود الفقري الذي يدعم مواقع صناعة التصدير في اليابان.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>في الوقت الحاضر، هم لا يأخذون الوظائف التي يرغب اليابانيون في القيام بها، بل يملؤون &lt;strong>&amp;ldquo;الفراغات التي لم يعد بإمكان اليابانيين سدها&amp;rdquo;&lt;/strong> . إذا استبعدناهم باسم &amp;ldquo;اليابانيون أولاً&amp;rdquo;، فإن نظام الرعاية لدينا سينهار على الفور، وسترتفع أسعار الإسكان والمواد الغذائية بعشرات النسب المئوية وربما تتضاعف.&lt;/p>
&lt;h3 id="2-الضمان-الاجتماعي-الشائعات-والواقع-حول-المساعدات-المعيشية">2. الضمان الاجتماعي: الشائعات والواقع حول المساعدات المعيشية
&lt;/h3>&lt;p>أكثر ما يتم تداوله على وسائل التواصل الاجتماعي هو الادعاء بأن &amp;ldquo;الأجانب يتلقون المساعدات المعيشية بشكل تفضيلي&amp;rdquo;. ومع ذلك، بالنظر إلى إحصاءات وزارة الصحة والعمل والرفاهية، فإن نسبة الأسر التي يعيلها أجنبي من بين جميع الأسر المتلقية للمساعدات تبلغ حوالي &lt;strong>2.8 إلى 2.9%&lt;/strong> فقط. وعلى مدار أكثر من عشر سنوات ماضية، ظلت هذه النسبة شبه ثابتة.&lt;/p>
&lt;p>على العكس من ذلك، بالنظر إلى التركيبة العمرية للمقيمين الأجانب، نجد أن غالبيتهم من &lt;strong>جيل سن العمل في العشرينات إلى الأربعينات من العمر&lt;/strong> . فهم يدفعون أقساط التأمين التقاعدي والتأمين الصحي، ويلعبون دور &lt;strong>&amp;ldquo;المساهمين&amp;rdquo; الذين يدعمون معاشات التقاعد والنفقات الطبية التي يتلقاها &amp;ldquo;كبار السن اليابانيون&amp;rdquo;&lt;/strong> . إنهم، ولا أحد غيرهم، من يملأون فراغ الجيل العامل الذي تركه اليابانيون ويطيلون عمر نظام الضمان الاجتماعي الياباني.&lt;/p>
&lt;hr>
&lt;h2 id="الفصل-الثالث-انحياز-الأمن-العام-ووسائل-التواصل-الاجتماعي--التفكيك-المنطقي-لـ-جرائم-الأجانب">الفصل الثالث: انحياز الأمن العام ووسائل التواصل الاجتماعي —— التفكيك المنطقي لـ &amp;ldquo;جرائم الأجانب&amp;rdquo;
&lt;/h2>&lt;p>القلق بشأن الأمن العام هو أكثر ما يثير مشاعر &amp;ldquo;اليابانيون أولاً&amp;rdquo; بقوة. ومع ذلك، فإن القراءة المتأنية لإحصاءات وكالة الشرطة الوطنية و&amp;quot;الكتاب الأبيض للجريمة&amp;quot; الصادر عن وزارة العدل تكشف كيف أن صورة &amp;ldquo;الأجنبي العنيف&amp;rdquo; على الإنترنت تُخلق من خلال التشوهات المعرفية.&lt;/p>
&lt;h3 id="1-مقارنة-هادئة-بين-الإجمالي-ومعدل-الجريمة">1. مقارنة هادئة بين &amp;ldquo;الإجمالي&amp;rdquo; و&amp;quot;معدل الجريمة&amp;quot;
&lt;/h3>&lt;p>وفقاً للإحصاءات الصادرة في عام 2024، تبلغ نسبة الأجانب من بين إجمالي المقبوض عليهم حوالي &lt;strong>5.5%&lt;/strong> . الـ &lt;strong>95%&lt;/strong> المتبقية هي جرائم يرتكبها يابانيون.&lt;/p>
&lt;p>مقارنة عدد المقبوض عليهم لكل 100,000 نسمة (معدل الجريمة) تكشف الجوهر بشكل أكبر.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>الفئة&lt;/th>
&lt;th>المقبوض عليهم لكل 100,000 نسمة (تقديري)&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>اليابانيون (جميع الأعمار)&lt;/strong>&lt;/td>
&lt;td>حوالي 142.7 شخصاً&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>المقيمون الأجانب (مقيمون دائمون/طويلو الأمد)&lt;/strong>&lt;/td>
&lt;td>&lt;strong>حوالي 120.0 شخصاً&lt;/strong>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>إنها حقيقة إحصائية أن &lt;strong>معدل الجريمة بين المقيمين الأجانب على المدى المتوسط والطويل في اليابان أقل من المتوسط العام لجميع اليابانيين&lt;/strong> .&lt;/p>
&lt;h3 id="2-سحر-التحيز-الجيلي">2. سحر التحيز &amp;ldquo;الجيلي&amp;rdquo;
&lt;/h3>&lt;p>لماذا تسيطر صورة &amp;ldquo;الأجانب مخيفون&amp;rdquo;؟ السبب الأكبر هو الاختلاف في &lt;strong>&amp;ldquo;التركيبة العمرية&amp;rdquo;&lt;/strong> في علم الجريمة.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>اليابانيون:&lt;/strong> حوالي 30% منهم كبار سن لديهم معدل جريمة منخفض للغاية. نظراً لأن هذه المجموعة تخفض &amp;ldquo;المقام&amp;rdquo;، تبدو الأرقام الإجمالية لليابان منخفضة.&lt;/li>
&lt;li>&lt;strong>الأجانب:&lt;/strong> لأنهم يأتون إلى اليابان كقوة عاملة، فإن أكثر من 80% منهم ينتمون إلى &lt;strong>&amp;ldquo;الفئة العمرية من الشباب إلى منتصف العمر&amp;rdquo;، وهي الفئة الأكثر عرضة إحصائياً لارتكاب الجرائم&lt;/strong> .&lt;/li>
&lt;/ul>
&lt;p>إذا قارنا معدل الجريمة بين اليابانيين والأجانب تحت نفس الشرط، أي فئة &amp;ldquo;العشرينات&amp;rdquo;، فلن نجد فرقاً كبيراً بينهما. بعبارة أخرى، ليس &amp;ldquo;الأمن تدهور بسبب زيادة عدد الأجانب&amp;rdquo;، بل هو ببساطة أن &lt;strong>&amp;ldquo;الفئة العمرية المعرضة لارتكاب الجرائم (الشباب) موجودة في اليابان في صورة أجانب&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;h3 id="3-الانحياز-التأكيدي-الذي-تخلقه-وسائل-التواصل-الاجتماعي">3. &amp;ldquo;الانحياز التأكيدي&amp;rdquo; الذي تخلقه وسائل التواصل الاجتماعي
&lt;/h3>&lt;p>تستخدم خوارزميات وسائل التواصل الاجتماعي &amp;ldquo;قلقنا&amp;rdquo; كوقود. عندما تحدث جريمة واحدة من قبل أجنبي، يتم ربطها بـ &amp;ldquo;سمته (جنسيته)&amp;rdquo; ونشرها بشراسة. ونتيجة لذلك، يتم تعزيز ذكرى &amp;ldquo;أجنبي يتسبب في حادثة مرة أخرى&amp;rdquo; في أدمغتنا فقط.&lt;/p>
&lt;p>يسمى هذا &lt;strong>&amp;ldquo;الانحياز التأكيدي&amp;rdquo;&lt;/strong> . يتم تجاهل جرائم اليابانيين، التي تمثل 95% من الإجمالي، كأحداث &amp;ldquo;يومية&amp;rdquo;، وتتحول الـ 5% من جرائم الأجانب لتمثل صورة &amp;ldquo;جميع الأجانب&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="الفصل-الرابع-توريث-الثقافة--مدمرون-أم-منقذون">الفصل الرابع: توريث الثقافة —— &amp;ldquo;مدمرون&amp;rdquo; أم &amp;ldquo;منقذون&amp;rdquo;؟
&lt;/h2>&lt;p>المخاوف من أن &amp;ldquo;التقاليد والثقافة اليابانية يتم تدميرها&amp;rdquo; تختلف أيضاً عن الواقع على الأرض.&lt;/p>
&lt;h3 id="1-الورثة-الأخيرون-للحرف-التقليدية">1. &amp;ldquo;الورثة الأخيرون&amp;rdquo; للحرف التقليدية
&lt;/h3>&lt;p>انخفض عدد العاملين في صناعة الحرف التقليدية اليابانية من حوالي 300,000 في السبعينيات إلى حوالي 50,000 فقط اليوم. من ينقذ هذه الأزمة من الانقراض هم الأجانب الذين جاؤوا إلى اليابان باحترام عميق للثقافة اليابانية.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>مصانع الساكي وصناع السيوف:&lt;/strong> أصبح الأجانب متدربين في ورش العمل حيث استسلم اليابانيون عن نقل المعرفة، ومن خلال جلب قدرتهم على البث للخارج وإحساسهم الجديد، يعيدون إحياء ثقافة كانت على شفا الإغلاق إلى &amp;ldquo;صناعة مستدامة&amp;rdquo;.&lt;/li>
&lt;/ul>
&lt;h3 id="2-الحفاظ-على-المجتمعات-المحلية">2. الحفاظ على المجتمعات المحلية
&lt;/h3>&lt;p>في الحكومات المحلية حيث اختفى الشباب وأصبحت &amp;ldquo;مدناً معرضة لخطر الزوال&amp;rdquo;، أصبح المتدربون الفنيون والعمال الأجانب المهرة منظمين للمهرجانات المحلية ويدعمون أساس الزراعة.
من الذي يزرع الأراضي الزراعية المهجورة التي تركها اليابانيون، ومن الذي يحمي الأحداث السنوية التي استمرت لمئات السنين؟ إذا نظرنا إلى هذا الواقع، يتضح أنهم ليسوا &amp;ldquo;مدمرين&amp;rdquo; للثقافة، بل هم &lt;strong>&amp;ldquo;خط الدفاع الأخير&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;hr>
&lt;h2 id="الفصل-الخامس-المخاوف-في-البيئة-التعليمية-وسلسلة-التنمر">الفصل الخامس: المخاوف في البيئة التعليمية وسلسلة &amp;ldquo;التنمر&amp;rdquo;
&lt;/h2>&lt;p>الآثار الجانبية لإدخال مصطلح &amp;ldquo;اليابانيون أولاً&amp;rdquo; في البيئة التعليمية خطيرة للغاية.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>التقسيم الثنائي بين &amp;ldquo;الداخل والخارج&amp;rdquo;:&lt;/strong> إذا استبطن الأطفال إحساساً زائفاً بالنخبوية بأن &amp;ldquo;اليابانيين هم طبقة متميزة يجب إعطاؤها الأولوية&amp;rdquo;، فسيؤدي ذلك بسهولة إلى التنمر لإقصاء &amp;ldquo;أولئك المختلفين عنا&amp;rdquo;.&lt;/li>
&lt;li>&lt;strong>التسلسل الهرمي بناءً على الأصول:&lt;/strong> يتعرض الأطفال ذوو المظاهر أو الأسماء المختلفة للهجوم باعتبارهم &amp;ldquo;ليسوا يابانيين&amp;rdquo; حتى لو كانوا يحملون الجنسية اليابانية. هذا انهيار للتعليم وتصرف يضر بالمواهب التي ستقود مستقبل اليابان.&lt;/li>
&lt;/ul>
&lt;p>يخشى الخبراء في مجال التعليم من أن حصرية كلمة &amp;ldquo;أولاً&amp;rdquo; تقوض قدرة الأطفال على التعايش متعدد الثقافات، مما يهدد بعزل اليابان عن العالم نتيجة لذلك.&lt;/p>
&lt;hr>
&lt;h2 id="الفصل-السادس-الاتجاهات-العالمية-وموجة-الشعبوية">الفصل السادس: الاتجاهات العالمية وموجة الشعبوية
&lt;/h2>&lt;p>هذه الظاهرة ليست فريدة من نوعها في اليابان. في الدول الغربية أيضاً، هناك ظاهرة مستمرة حيث تتجه الطبقات التي لم تستفد من العولمة نحو الشعبوية التي ترفع شعار &amp;ldquo;بلدي أولاً&amp;rdquo;.&lt;/p>
&lt;p>ومع ذلك، فإن الاختلاف الحاسم بين اليابان والدول الغربية هو حقيقة أن &lt;strong>&amp;ldquo;تعداد السكان يتقلص بأسرع وتيرة في العالم&amp;rdquo;&lt;/strong> . في حين أن الدول الأخرى لديها خيار &amp;ldquo;التقييد&amp;rdquo;، فإن اليابان تمتلك بالفعل بنية تحتية اجتماعية لا حصر لها لا يمكن الحفاظ عليها دون &amp;ldquo;التعاون&amp;rdquo;. التمسك بالنهج العاطفي لـ &amp;ldquo;أولاً&amp;rdquo; يعني منطقياً &amp;ldquo;انتحاراً بطيئاً&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="خاتمة-ما-هو-اليابانيون-أولا-الحقيقي">خاتمة: ما هو &amp;ldquo;اليابانيون أولاً&amp;rdquo; الحقيقي؟
&lt;/h2>&lt;p>الرغبة الكامنة وراء كلمات &amp;ldquo;اليابانيون أولاً&amp;rdquo; — الأمل في أن &amp;ldquo;حياة المواطنين يجب أن يُفكر فيها أولاً&amp;rdquo; — هي المسؤولية الأساسية التي يجب أن تتحملها أي حكومة.&lt;/p>
&lt;p>ومع ذلك، يجب ألا تكون وسيلة تحقيق تلك الرغبة هي &amp;ldquo;إقصاء الجيران&amp;rdquo;. كما تظهر البيانات الموضوعية، فإن راحة المعيشة والأمن العام والثقافة التقليدية ونظام الضمان الاجتماعي نفسه الذي نتمتع به اليوم يقع في مرحلة &amp;ldquo;الاعتماد والتعايش&amp;rdquo; التي لم يعد من الممكن الحفاظ عليها دون وجود الأجانب.&lt;/p>
&lt;p>&lt;strong>أليس &amp;ldquo;اليابانيون أولاً&amp;rdquo; الحقيقي هو الممارسة الهادئة للنقاط الثلاث التالية؟&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>&lt;strong>النقاش القائم على الحقائق:&lt;/strong> فهم الواقع بناءً على الإحصاءات الأولية للوزارات الحكومية بدلاً من الانجراف وراء الشائعات والمعلومات المبالغ فيها.&lt;/li>
&lt;li>&lt;strong>وضع قواعد عادلة:&lt;/strong> مطالبة الأجانب بالالتزام بالقواعد اليابانية، وفي الوقت نفسه، يعاملهم المجتمع الياباني كشركاء عادلين.&lt;/li>
&lt;li>&lt;strong>التحديث الداخلي:&lt;/strong> بدلاً من النظر إلى قبول الأجانب على أنه &amp;ldquo;فقدان لليابان&amp;rdquo;، تغيير التصور إلى أننا نستعير قوتهم من أجل &amp;ldquo;إعادة بناء اليابان والحفاظ عليها&amp;rdquo;.&lt;/li>
&lt;/ol>
&lt;p>عام 2026، نحن نقف على مفترق طرق كبير. هل سنستمر في الصراخ بكلمات التقسيم وخنق أنفسنا؟ أم أننا سنواجه الواقع ونتخذ خطوة نحو &amp;ldquo;يابان مستدامة&amp;rdquo; حيث يدعم الأشخاص المتنوعون بعضهم البعض؟&lt;/p>
&lt;p>تكمن الإجابة في &amp;ldquo;الذكاء&amp;rdquo; و&amp;quot;الشجاعة&amp;quot; في قلب كل فرد.&lt;/p></description></item><item><title>ماذا تفعل عندما لا يمكنك إلغاء اشتراك Google One (Gemini)</title><link>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/</link><pubDate>Sat, 27 Sep 2025 10:02:59 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post ماذا تفعل عندما لا يمكنك إلغاء اشتراك Google One (Gemini)" />&lt;h1 id="تنبيه-هل-سيتم-تحصيل-رسوم-منك-بعد-انتهاء-الفترة-التجريبية-المجانية-لـ-gemini-ملخص-لكيفية-الإلغاء">[تنبيه] هل سيتم تحصيل رسوم منك بعد انتهاء الفترة التجريبية المجانية لـ Gemini؟ ملخص لكيفية الإلغاء
&lt;/h1>&lt;p>عندما تحاول تجربة خدمة الذكاء الاصطناعي &amp;ldquo;Gemini&amp;rdquo; من Google، يتم توفير ** فترة تجريبية مجانية لمدة شهر واحد ** في البداية.
أعتقد أن الكثير من الناس يسجلون معتقدين، &amp;ldquo;إذا كان مجانيًا، فسأجربه في الوقت الحالي&amp;rdquo;، ولكن هناك شيء يجب ملاحظته هنا.&lt;/p>
&lt;hr>
&lt;h2 id="ماذا-يحدث-عند-انتهاء-الفترة-التجريبية-المجانية">ماذا يحدث عند انتهاء الفترة التجريبية المجانية؟
&lt;/h2>&lt;p>بمجرد انتهاء الفترة التجريبية، ستتم محاسبتك تلقائيًا بمبلغ ** 2,900 ين شهريًا ** .
يرتبط هذا باشتراك يسمى &amp;ldquo;عضوية Google One&amp;rdquo;، وهي آلية تنتقل إلى الفوترة المستمرة إذا لم تفعل شيئًا بشكل خاص.&lt;/p>
&lt;hr>
&lt;h2 id="إذا-قمت-بالإلغاء-فلن-يتم-تحصيل-رسوم-منك-ولكن">إذا قمت بالإلغاء فلن يتم تحصيل رسوم منك، ولكن&amp;hellip;
&lt;/h2>&lt;p>بالطبع، لن تكون هناك رسوم إذا قمت بالإلغاء خلال الفترة التجريبية.
تحتوي صفحة الشرح الرسمية أيضًا على &amp;ldquo;كيفية إلغاء عضوية Google One&amp;rdquo;.&lt;/p>
&lt;p>👉 &lt;a class="link" href="https://support.google.com/googleone/answer/9056360" target="_blank" rel="noopener"
>إلغاء عضوية Google One (الرسمي)&lt;/a>&lt;/p>
&lt;p>ومع ذلك، عندما أحاول الوصول إليه بالفعل، أجد نفسي في وضع &amp;ldquo;لسبب ما لا يمكنني الإلغاء&amp;hellip;&amp;rdquo;.
لقد كنت مرتبكًا وفكرت، &amp;ldquo;حسنًا، من أين يجب أن أوقفه؟&amp;rdquo;&lt;/p>
&lt;hr>
&lt;h2 id="انقر-هنا-للحصول-على-طريقة-الإلغاء-الصحيحة">انقر هنا للحصول على طريقة الإلغاء الصحيحة!
&lt;/h2>&lt;p>نتيجة للبحث عن أشياء مختلفة، كانت الصفحة التالية هي المكان الذي تمكنت فيه فعليًا من الإلغاء.&lt;/p>
&lt;p>👉 &lt;a class="link" href="https://myaccount.google.com/deleteservices" target="_blank" rel="noopener"
>حساب Google - حذف الخدمات&lt;/a>&lt;/p>
&lt;p>من هنا، حدد &amp;ldquo;Google One&amp;rdquo; واحذفه لإكمال الإلغاء.&lt;/p>
&lt;hr>
&lt;h2 id="ملخص">ملخص
&lt;/h2>&lt;ul>
&lt;li>النسخة التجريبية المجانية من Gemini هي شهر واحد&lt;/li>
&lt;li>بعد الانتهاء، ستتم محاسبتك تلقائيًا ** 2,900 ين شهريًا **&lt;/li>
&lt;li>قد لا يكون من الممكن الإلغاء من صفحة الشرح الرسمية&lt;/li>
&lt;li>يمكنك الإلغاء فعليًا من ** &amp;ldquo;صفحة حذف الخدمات&amp;rdquo; **&lt;/li>
&lt;/ul>
&lt;p>إذا كنت تعتقد، &amp;ldquo;لا بأس لأنها نسخة تجريبية مجانية&amp;rdquo;، فسيتم تحصيل رسوم منك قبل أن تدرك ذلك، لذا يرجى توخي الحذر!&lt;/p>
&lt;hr>
&lt;p>👉 إذا كنت تقرأ هذا المقال، فقد تواجه مشكلة حاليًا وتتساءل &amp;ldquo;من أين أقوم بالإلغاء؟&amp;rdquo; في الوقت الحالي، يرجى التحقق من الرابط أعلاه.&lt;/p>
&lt;hr></description></item><item><title>بث تطوير تطبيق إنشاء بطاقات رأس السنة VOL.1 (نص)</title><link>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/</link><pubDate>Sun, 31 Aug 2025 20:24:49 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post بث تطوير تطبيق إنشاء بطاقات رأس السنة VOL.1 (نص)" />&lt;h1 id="-نص-البث-على-youtube-تطوير-تطبيق-إنشاء-بطاقات-رأس-السنةالجزء-1">🎬 نص البث على YouTube (تطوير تطبيق إنشاء بطاقات رأس السنة・الجزء 1)
&lt;/h1>&lt;ol start="0">
&lt;li>بدء البث (أول 2 إلى 3 دقائق)&lt;/li>
&lt;/ol>
&lt;h3 id="تحية-قصيرة">تحية قصيرة
&lt;/h3>&lt;p>&amp;ldquo;مرحبًا. بدءًا من اليوم، سأبدأ في بث عملية تطوير تطبيق إنشاء بطاقات رأس السنة باستخدام C++ خطوة بخطوة.&amp;rdquo;
&amp;ldquo;لست متأكدًا من عدد مرات البث التي سأقوم بها حتى يكتمل، لكنني سأستمر كأنها سلسلة ونتقدم تدريجيًا.&amp;rdquo;
&amp;ldquo;بشكل أساسي سأعمل بصمت، لذا آمل أن تشاهدوا هذا كموسيقى خلفية أثناء عملكم.&amp;rdquo;&lt;/p>
&lt;h3 id="نظرة-عامة-على-التطبيق-المستهدف">نظرة عامة على التطبيق المستهدف
&lt;/h3>&lt;p>&amp;ldquo;في هذا التطبيق، أود أن نتمكن من تصميم الجانب الخلفي لبطاقات رأس السنة.&amp;rdquo;
&amp;ldquo;أخطط لإدراج الصور وترتيب الخطوط، واستخدام الذكاء الاصطناعي لمعالجة الصور وتوليد الرسوم التوضيحية، وفي النهاية رفعه إلى متجر Microsoft.&amp;rdquo;&lt;/p>
&lt;h3 id="أهداف-العمل-لليوم">أهداف العمل لليوم
&lt;/h3>&lt;p>&amp;ldquo;اليوم في الجزء الأول، سنقوم بإعداد البيئة وإنشاء الأساس.&amp;rdquo;
&amp;ldquo;بشكل محدد،&lt;/p>
&lt;ul>
&lt;li>إنشاء مستودع GIT&lt;/li>
&lt;li>إنشاء النافذة الرئيسية&lt;/li>
&lt;li>عرض مربع حوار معلومات الإصدار&lt;/li>
&lt;li>إنشاء القائمة وتنفيذ أمر الإنهاء&lt;/li>
&lt;li>معالجة تهيئة وتحرير Direct2D وعرض HelloWorld&lt;/li>
&lt;/ul>
&lt;p>أود أن نتقدم في هذه الأمور.&amp;rdquo;&lt;/p>
&lt;h3 id="حول-نشر-الكود-المصدري">حول نشر الكود المصدري
&lt;/h3>&lt;p>&amp;ldquo;يتم نشر الكود المصدري على GitHub. إذا كنتم مهتمين، يرجى إلقاء نظرة.&amp;rdquo;
→ &lt;a class="link" href="https://github.com/kenjinote/NengaCardApp/" target="_blank" rel="noopener"
>https://github.com/kenjinote/NengaCardApp/&lt;/a>&lt;/p>
&lt;ol>
&lt;li>جزء العمل (بصمت)&lt;/li>
&lt;/ol>
&lt;p>إنشاء مستودع GitHub → الالتزام الأولي (Initial commit)&lt;/p>
&lt;p>إنشاء قالب النافذة الرئيسية&lt;/p>
&lt;p>إنشاء مربع حوار الإصدار والقائمة وتنفيذ أمر الإنهاء&lt;/p>
&lt;p>معالجة تهيئة وتحرير Direct2D → تأكيد عرض HelloWorld&lt;/p>
&lt;p>الدفع (Push) إلى GitHub عند الحاجة&lt;/p>
&lt;p>※ بشكل أساسي صامت، وأضيف شروحات قصيرة فقط عند الحاجة&lt;/p>
&lt;ol start="2">
&lt;li>قبل نهاية البث (آخر دقيقة إلى دقيقتين)&lt;/li>
&lt;/ol>
&lt;h3 id="ملخص-تقدم-اليوم">ملخص تقدم اليوم
&lt;/h3>&lt;p>&amp;ldquo;اليوم، قمنا بإنشاء مستودع GIT، وتنفيذ النافذة، وزر الإنهاء، ومربع حوار الإصدار.&amp;rdquo;
&amp;ldquo;تمكنا من عرض HelloWorld باستخدام Direct2D.&amp;rdquo;&lt;/p>
&lt;h3 id="الربط-مع-المرة-القادمة">الربط مع المرة القادمة
&lt;/h3>&lt;p>&amp;ldquo;بدءًا من المرة القادمة، أود ترتيب جزء واجهة المستخدم (UI) والتقدم نحو تحويل النصوص إلى كائنات وغيرها.&amp;rdquo;&lt;/p>
&lt;h3 id="توجيه-رابط-github-مرة-أخرى">توجيه رابط GitHub مرة أخرى
&lt;/h3>&lt;p>→ &lt;a class="link" href="https://github.com/kenjinote/NengaCardApp/" target="_blank" rel="noopener"
>https://github.com/kenjinote/NengaCardApp/&lt;/a>&lt;/p>
&lt;h3 id="الخاتمة">الخاتمة
&lt;/h3>&lt;p>&amp;ldquo;شكرًا على المشاهدة. سأستمر في العمل بجد في المرة القادمة، لذا يرجى دعمي.&amp;rdquo;&lt;/p></description></item><item><title>تثبيت MSIX باستخدام شهادة ذاتية التوقيع</title><link>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/</link><pubDate>Sat, 30 Aug 2025 04:18:04 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post تثبيت MSIX باستخدام شهادة ذاتية التوقيع" />&lt;h1 id="تثبيت-msix-باستخدام-شهادة-ذاتية-التوقيع">تثبيت MSIX باستخدام شهادة ذاتية التوقيع
&lt;/h1>&lt;p>عند توزيع التطبيقات على Windows، يعد استخدام &lt;strong>حزمة MSIX&lt;/strong> أمراً مريحاً لأن آلية التثبيت والتحديث موحدة. ومع ذلك، هناك قيد يتمثل في أن MSIX يتطلب &amp;ldquo;شهادة موقعة&amp;rdquo; دائماً.
عندما ترغب في توزيع تطبيق تم تطويره بواسطة شركة أو فرد لأغراض الاختبار، قد تكون هناك مواقف يبدو فيها &amp;ldquo;شراء شهادة توقيع كود تجارية أمراً مبالغاً فيه&amp;rdquo;.&lt;/p>
&lt;p>هنا يأتي دور &lt;strong>الشهادة ذاتية التوقيع (Self-Signed Certificate)&lt;/strong> . تلخص هذه المقالة خطوات إرفاق شهادة ذاتية التوقيع بـ MSIX وجعلها قابلة للتثبيت في بيئة محلية.&lt;/p>
&lt;hr>
&lt;h2 id="1-إنشاء-شهادة-ذاتية-التوقيع">1. إنشاء شهادة ذاتية التوقيع
&lt;/h2>&lt;p>أولاً، قم بتشغيل PowerShell في وضع المسؤول ونفذ الأمر التالي.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="p">//&lt;/span> &lt;span class="n">إنشاء&lt;/span> &lt;span class="n">شهادة&lt;/span> &lt;span class="n">ذاتية&lt;/span> &lt;span class="n">التوقيع&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">New-SelfSignedCertificate&lt;/span> &lt;span class="n">-Type&lt;/span> &lt;span class="n">CodeSigningCert&lt;/span> &lt;span class="n">-Subject&lt;/span> &lt;span class="s2">&amp;#34;CN=035A9AAC-915B-4CE1-AE39-1A101BED42F5&amp;#34;&lt;/span> &lt;span class="n">-CertStoreLocation&lt;/span> &lt;span class="n">Cert&lt;/span>&lt;span class="err">:&lt;/span>&lt;span class="p">\&lt;/span>&lt;span class="n">CurrentUser&lt;/span>&lt;span class="p">\&lt;/span>&lt;span class="n">My&lt;/span> &lt;span class="n">-NotAfter&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nb">Get-Date&lt;/span>&lt;span class="p">).&lt;/span>&lt;span class="py">AddYears&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mf">10&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">-KeyUsage&lt;/span> &lt;span class="n">DigitalSignature&lt;/span> &lt;span class="n">-FriendlyName&lt;/span> &lt;span class="s2">&amp;#34;kenjinote&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>ما يتم إنشاؤه هنا هو شهادة &amp;ldquo;لتوقيع الكود&amp;rdquo;.&lt;/p>
&lt;ul>
&lt;li>من السهل العثور عليها لاحقاً إذا أعطيتها اسماً واضحاً باستخدام &lt;code>-FriendlyName&lt;/code>.&lt;/li>
&lt;li>يمكنك ضبط تاريخ انتهاء الصلاحية باستخدام &lt;code>-NotAfter&lt;/code>. قمنا بتعيينه إلى 10 سنوات هذه المرة.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="2-تصدير-ملف-pfx">2. تصدير ملف PFX
&lt;/h2>&lt;p>قم بتصدير الشهادة التي تم إنشاؤها بتنسيق PFX بحيث يمكن استخدامها مع &lt;code>signtool&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="p">//&lt;/span> &lt;span class="n">إنشاء&lt;/span> &lt;span class="n">pfx&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$cert&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nb">Get-ChildItem&lt;/span> &lt;span class="n">Cert&lt;/span>&lt;span class="err">:&lt;/span>&lt;span class="p">\&lt;/span>&lt;span class="n">CurrentUser&lt;/span>&lt;span class="p">\&lt;/span>&lt;span class="n">My&lt;/span> &lt;span class="p">|&lt;/span> &lt;span class="nb">Where-Object&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="nv">$_&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">FriendlyName&lt;/span> &lt;span class="o">-eq&lt;/span> &lt;span class="s2">&amp;#34;kenjinote&amp;#34;&lt;/span> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$password&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nb">ConvertTo-SecureString&lt;/span> &lt;span class="n">-String&lt;/span> &lt;span class="s2">&amp;#34;password&amp;#34;&lt;/span> &lt;span class="n">-Force&lt;/span> &lt;span class="n">-AsPlainText&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">Export-PfxCertificate&lt;/span> &lt;span class="n">-Cert&lt;/span> &lt;span class="nv">$cert&lt;/span> &lt;span class="n">-FilePath&lt;/span> &lt;span class="s2">&amp;#34;D:\pfx\cert.pfx&amp;#34;&lt;/span> &lt;span class="n">-Password&lt;/span> &lt;span class="nv">$password&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>ستكون كلمة المرور التي تم تعيينها في هذا الوقت ( &lt;code>password&lt;/code> في المثال) مطلوبة لعملية التوقيع اللاحقة.&lt;/p>
&lt;hr>
&lt;h2 id="3-تثبيت-الشهادة-الذاتية-في-المراجع-المصدقة-الجذرية-الموثوقة">3. تثبيت الشهادة الذاتية في المراجع المصدقة الجذرية الموثوقة
&lt;/h2>&lt;p>الشهادة التي تم إنشاؤها لن يثق بها Windows كما هي. لتثبيتها، يجب عليك استيرادها من &lt;code>certmgr.msc&lt;/code> إلى &lt;strong>[المراجع المصدقة الجذرية الموثوقة] -&amp;gt; [الشهادات]&lt;/strong> .&lt;/p>
&lt;p>إذا قمت باستيراد الشهادة المصدرة ( &lt;code>.cer&lt;/code> أو &lt;code>.pfx&lt;/code> )، فسيتم التعامل معها كشهادة موثوقة على جهاز الكمبيوتر المستهدف.
نتيجة لذلك، حتى إذا قمت بتوقيع MSIX، فلن يظهر تحذير &amp;ldquo;شهادة غير موثوقة&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="4-توقيع-المثبت-msix">4. توقيع المثبت (MSIX)
&lt;/h2>&lt;p>أخيراً، استخدم شهادة PFX التي تم إنشاؤها لتوقيع MSIX. يتم تضمين &lt;code>signtool&lt;/code> في Visual Studio و Windows SDK.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="p">//&lt;/span> &lt;span class="n">توقيع&lt;/span> &lt;span class="n">المثبت&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">signtool&lt;/span> &lt;span class="n">sign&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="n">fd&lt;/span> &lt;span class="n">SHA256&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="n">f&lt;/span> &lt;span class="s2">&amp;#34;D:\pfx\cert.pfx&amp;#34;&lt;/span> &lt;span class="p">/&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="s2">&amp;#34;password&amp;#34;&lt;/span> &lt;span class="s2">&amp;#34;C:\installer\installer.msix&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ul>
&lt;li>&lt;code>/fd SHA256&lt;/code> يحدد خوارزمية التوقيع.&lt;/li>
&lt;li>حدد ملف PFX باستخدام &lt;code>/f&lt;/code> ومرر كلمة المرور باستخدام &lt;code>/p&lt;/code>.&lt;/li>
&lt;li>أخيراً، حدد مسار ملف MSIX.&lt;/li>
&lt;li>إذا لم يتم العثور على مسار signtool، فحدده بالمسار الكامل. في بيئتي، كان في الموقع التالي.&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\microsoft.windows.sdk.buildtools&lt;/span>&lt;span class="se">\10&lt;/span>&lt;span class="s2">.0.26100.1742&lt;/span>&lt;span class="se">\b&lt;/span>&lt;span class="s2">in&lt;/span>&lt;span class="se">\10&lt;/span>&lt;span class="s2">.0.26100.0&lt;/span>&lt;span class="se">\x64&lt;/span>&lt;span class="s2">\signtool.exe&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>يكمل هذا التوقيع، وسيتم إكمال حزمة MSIX التي يمكن تثبيتها على جهاز الكمبيوتر المستهدف.&lt;/p>
&lt;hr>
&lt;h2 id="الخلاصة">الخلاصة
&lt;/h2>&lt;ul>
&lt;li>إنشاء شهادة ذاتية التوقيع باستخدام &lt;strong>New-SelfSignedCertificate&lt;/strong>&lt;/li>
&lt;li>تصدير PFX باستخدام &lt;strong>Export-PfxCertificate&lt;/strong>&lt;/li>
&lt;li>تثبيت الشهادة في &lt;strong>المراجع المصدقة الجذرية الموثوقة&lt;/strong>&lt;/li>
&lt;li>توقيع MSIX باستخدام &lt;strong>signtool&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>من خلال فهم هذا التدفق، يمكنك التحقق من التشغيل وتوزيع الاختبار في بيئة محلية دون شراء شهادة تجارية.
بالطبع، بالنسبة للتوزيع التجاري الفعلي، تعد الشهادة الصادرة عن مرجع مصدق ضرورية، لكن هذه الطريقة مفيدة جداً في مرحلة التطوير والتحقق.&lt;/p>
&lt;hr>
&lt;p>👉 استخدمنا installer.msix كمثال هذه المرة، ولكن يمكن تطبيق نفس الإجراء على التطبيقات التي قمت بإنشائها بنفسك.&lt;/p>
&lt;hr></description></item><item><title>قصة تطوير LogicPad</title><link>http://kenji.blog/ar/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/</link><pubDate>Wed, 30 Jul 2025 23:51:35 +0900</pubDate><guid>http://kenji.blog/ar/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/</guid><description>&lt;img src="http://kenji.blog/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/img.png" alt="Featured image of post قصة تطوير LogicPad" />&lt;h1 id="أداة-للأشخاص-الذين-لا-يستطيعون-كتابة-التعليمات-البرمجية-ولكن-لديهم-المنطق-لماذا-أنشأت-logicpad">أداة للأشخاص الذين &amp;ldquo;لا يستطيعون كتابة التعليمات البرمجية ولكن لديهم المنطق&amp;rdquo;. لماذا أنشأت LogicPad
&lt;/h1>&lt;p>مرحبًا، أنا kenji. أنا مبتكر أداة البرمجة منخفضة التعليمات البرمجية &amp;ldquo;&lt;a class="link" href="https://logicpad.org" target="_blank" rel="noopener"
>LogicPad&lt;/a>&amp;rdquo;.
هذه المرة، بدلاً من تقديم المنتج، أود أن أكتب من منظور شخصي قليلاً عن قصة ما وراء الكواليس للتطوير، &amp;ldquo;لماذا أردت صنع هذا؟&amp;rdquo; ومشاعري الخاصة.&lt;/p>
&lt;p>بصراحة، لم يكن هذا مجرد تطوير أداة.
ماضيّ، إحباطاتي في مكان العمل، مجموعة مهاراتي، والرغبة المشتعلة التي طالما راودتني، &amp;ldquo;يومًا ما أريد أن أصنع منتجي الخاص&amp;rdquo; ――
نتيجة تداخل كل هذه الأشياء هي ما ولّد LogicPad.&lt;/p>
&lt;p>بمعنى آخر، &lt;strong>هذا أيضًا &amp;ldquo;مشروع تتويج حياتي&amp;rdquo; بالنسبة لي&lt;/strong> .
سأكتب عن هذه الخلفية بصدق وشغف قدر الإمكان.&lt;/p>
&lt;hr>
&lt;h2 id="بصراحة-أردت-منتجا-يمكنني-أن-أقول-بفخر-أنا-من-صنع-هذا">بصراحة، أردت منتجًا يمكنني أن أقول بفخر &amp;ldquo;أنا من صنع هذا&amp;rdquo;
&lt;/h2>&lt;p>بصدق، كان هذا هو الدافع الأول.&lt;/p>
&lt;p>منذ فترة طويلة، كنت أحب كتابة التعليمات البرمجية سواء في العمل أو كهواية. لقد شاركت في العديد من التطورات.
ولكن في يوم من الأيام، أدركت فجأة.
&lt;strong>&amp;ldquo;ليس لدي منتج أصدرته للعالم باسمي وتحت مسؤوليتي.&amp;rdquo;&lt;/strong>&lt;/p>
&lt;p>بالطبع، للأشياء التي نصنعها كفريق قيمة، وكان هناك الكثير من الأعمال التي أفتخر بها.
ولكن في مكان ما، كان هناك أيضًا شعور بالفراغ: &amp;ldquo;هل سأنهي مسيرتي المهنية هكذا، تحت اسم شخص آخر؟&amp;rdquo;&lt;/p>
&lt;p>لمرة واحدة فقط.
&lt;strong>أريد أن أترك شيئًا يمكنني أن أقول عنه بفخر، &amp;ldquo;لقد صنعت هذا&amp;rdquo;.&lt;/strong>
مع أخذ ذلك في الاعتبار، بدأت في صياغة مفهوم LogicPad. كان ذلك قبل حوالي 6 سنوات (حوالي عام 2019).
(الفكرة الأصلية نفسها كانت حوالي عام 2015 عندما تعرفت على Blueprints، لغة البرمجة المرئية في Unreal Engine.)&lt;/p>
&lt;h2 id="ブループリントimg_1png">&lt;img src="http://kenji.blog/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/img_1.png"
width="637"
height="285"
srcset="http://kenji.blog/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/img_1_hu70d4fd9be2cc84fc55cb45a83c67cc8a_54446_480x0_resize_box_3.png 480w, http://kenji.blog/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/img_1_hu70d4fd9be2cc84fc55cb45a83c67cc8a_54446_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="ブループリント"
class="gallery-image"
data-flex-grow="223"
data-flex-basis="536px"
>
&lt;/h2>&lt;h2 id="لا-يمكنك-المشاركة-لأنك-لا-تستطيع-كتابة-التعليمات-البرمجية-أليس-هذا-مضيعة">لا يمكنك المشاركة لأنك لا تستطيع كتابة التعليمات البرمجية. أليس هذا مضيعة؟
&lt;/h2>&lt;p>كان هناك العديد من الأشخاص الموهوبين في مكان عملي.&lt;/p>
&lt;p>يمكنهم بناء المنطق. يمكنهم استخدام وظائف Excel بحرية، ويمكنهم رؤية جوهر المشكلة.
ولكن ―― تتوقف أيديهم في مرحلة &amp;ldquo;كتابة التعليمات البرمجية&amp;rdquo;.&lt;/p>
&lt;p>&amp;ldquo;أقوم بهذا العمل بالنظر إلى الدليل في كل مرة، ألا يمكننا أتمتة ذلك؟&amp;rdquo;
&amp;ldquo;نعم، يمكننا ذلك. ولكن&amp;hellip; تحتاج إلى كتابة التعليمات البرمجية للقيام بذلك&amp;hellip;&amp;rdquo;&lt;/p>
&lt;p>كانت هناك محادثات كهذه مرات عديدة.&lt;/p>
&lt;p>كنت أفكر في كل مرة.
&lt;strong>&amp;ldquo;على الرغم من أنهم يفهمون المنطق، إلا أنه من المؤسف حقًا أن يوقفهم جدار التعليمات البرمجية.&amp;rdquo;&lt;/strong>&lt;/p>
&lt;hr>
&lt;h2 id="خيار-محرر-قليل-التعليمات-البرمجية">خيار محرر قليل التعليمات البرمجية
&lt;/h2>&lt;p>في الواقع، في وظيفتي السابقة، كنت أقوم بتطوير برنامج CAD ثنائي الأبعاد يعمل عبر واجهة المستخدم الرسومية (GUI).
في CAD، تقوم بتجميع الأشكال باستخدام الماوس، أليس كذلك؟
بعبارة أخرى، إنه عالم &lt;strong>&amp;ldquo;بناء المنطق من خلال العمليات&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;p>اعتقدت، &amp;ldquo;هذا متوافق للغاية مع التعليمات البرمجية المنخفضة&amp;rdquo;.&lt;/p>
&lt;p>بالعودة إلى الوراء أكثر، منذ أن كنت طالبًا، كنت أقوم دائمًا بمعالجة الصور، والمعالجة الرقمية، وأدوات Windows، وأدوات النشر التلقائي على SNS، وما إلى ذلك.
كلما خطرت لي فكرة، كنت أكتب التعليمات البرمجية على الفور وأنتج برامج صغيرة بكميات كبيرة.
أعتقد أن هناك أكثر من 600 منها. لا تزال موجودة على GitHub حتى اليوم.&lt;/p>
&lt;p>في ذلك الوقت، لم أفكر في المعنى.
لقد كان مجرد &amp;ldquo;أصنعه لأنني أريد ذلك&amp;rdquo;. كان هذا كل شيء.&lt;/p>
&lt;p>ولكن الآن، بينما أقوم بإنشاء LogicPad&amp;hellip;&lt;/p>
&lt;p>&lt;strong>شعرت حقًا أن النقاط قد تم توصيلها بخط.&lt;/strong>&lt;/p>
&lt;hr>
&lt;h2 id="سهل-الاستخدام-ولكنه-قوي-صعوبة-التوازن">سهل الاستخدام، ولكنه قوي. صعوبة التوازن
&lt;/h2>&lt;p>أثناء تقدمي في التطوير، ما كنت أفكر فيه دائمًا هو
&lt;strong>&amp;ldquo;جعله أداة يمكن استخدامها بشكل حدسي وهي أيضًا قوية بشكل صحيح&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;p>إذا أضفت ميزات، فستزيد مما يمكنك القيام به. لكنها ستصبح صعبة الاستخدام.
إذا جعلتها بسيطة، يمكن لأي شخص لمسها. ولكن إذن، سيكون هناك أشخاص غير راضين.&lt;/p>
&lt;p>حتى لا يقول الناس، &amp;ldquo;الأدوات منخفضة التعليمات البرمجية مجرد ألعاب، أليس كذلك؟&amp;rdquo;
ولكن أيضًا حتى لا يقولوا، &amp;ldquo;في النهاية، عليك كتابة التعليمات البرمجية، أليس كذلك؟&amp;rdquo;&lt;/p>
&lt;p>&lt;strong>كنت أقاتل دائمًا على هذا الخط الدقيق بين الحدس والتعبير.&lt;/strong>&lt;/p>
&lt;p>أعدت بناء واجهة المستخدم عدة مرات، وتخلصت منها عدة مرات،
وعندما اقتربت أخيرًا من شكل جعلني أعتقد، &amp;ldquo;هذا سيفي بالغرض&amp;rdquo;، كنت سعيدًا حقًا.&lt;/p>
&lt;hr>
&lt;h2 id="لقد-أنقذتني-الكلمة-الأولى-من-مستخدم">لقد أنقذتني الكلمة الأولى من &amp;ldquo;مستخدم&amp;rdquo;
&lt;/h2>&lt;p>كان أول شخص أعطيته LogicPad هو زميل سابق.
لا تجيد تكنولوجيا المعلومات، وتخشى التعليمات البرمجية. لكنها جيدة في المنطق.&lt;/p>
&lt;p>شرحت لها قليلاً وجعلتها تجربه&amp;hellip; الكلمات التي قالتها بعد بضع دقائق، لا يمكنني نسيانها حتى الآن.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>&amp;ldquo;إذا كان هذا هو الحال، أعتقد أنني يمكنني القيام بذلك أيضًا!&amp;rdquo;&lt;/strong>&lt;/p>
&lt;/blockquote>
&lt;p>كدت أبكي.
هذا ما أردت أن أعطيها إياه.&lt;/p>
&lt;p>ليس مجرد أداة تعمل، بل &lt;strong>الشعور بـ &amp;ldquo;لقد تمكنت من صنعها بنفسي!&amp;rdquo;&lt;/strong> .
كنت مقتنعًا أن هذه هي القيمة الحقيقية لـ LogicPad.&lt;/p>
&lt;hr>
&lt;h2 id="إذا-زاد-عدد-الأشخاص-الذين-يمكنهم-الإبداع-فسيصبح-المجتمع-أكثر-إثارة-للاهتمام">إذا زاد عدد الأشخاص الذين يمكنهم الإبداع، فسيصبح المجتمع أكثر إثارة للاهتمام
&lt;/h2>&lt;p>أعتقد حقًا أن &amp;ldquo;دمقرطة التكنولوجيا&amp;rdquo; مهمة جدًا.&lt;/p>
&lt;p>التكنولوجيا لديها القدرة على تغيير العالم.
ولكن الأشخاص الذين يمكنهم التعامل معها محدودون.&lt;/p>
&lt;p>ماذا لو تمكنت من إنشاء تطبيق فقط من خلال &amp;ldquo;فهم المنطق&amp;rdquo;؟&lt;/p>
&lt;p>&lt;strong>سيتمكن المزيد من الأشخاص من الانتقال إلى الجانب &amp;ldquo;الإبداعي&amp;rdquo;.&lt;/strong>
وأعتقد أن ما سيولد من هناك سيتجاوز خيالنا الحالي.&lt;/p>
&lt;p>إذا كان LogicPad يمكن أن يكون هذا المدخل.
أريد أن يكون أداة تحول &amp;ldquo;أريد أن أصنع&amp;rdquo; إلى &amp;ldquo;أستطيع أن أصنع&amp;rdquo;.&lt;/p>
&lt;p>هذه هي أمنيتي.&lt;/p>
&lt;hr>
&lt;h2 id="ختاما">ختامًا
&lt;/h2>&lt;p>لا يزال LogicPad في المرحلة التجريبية ولم يكتمل بعد.
لا تزال هناك جبال من نقاط التحسين والأشياء التي أريد القيام بها.&lt;/p>
&lt;p>ولكن، لقد سكبت &lt;strong>كل &amp;ldquo;نقاط&amp;rdquo; حياتي في هذه الأداة&lt;/strong> .
الآن يمكنني أن أقول ذلك بكل فخر.&lt;/p>
&lt;p>&lt;strong>&amp;ldquo;هذا هو المنتج الذي صنعته&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;hr>
&lt;h3 id="-إضافة-ما-يمكنك-القيام-به-باستخدام-logicpad">👇 إضافة: ما يمكنك القيام به باستخدام LogicPad
&lt;/h3>&lt;ul>
&lt;li>بناء العمليات عن طريق السحب والإفلات&lt;/li>
&lt;li>التعامل مع التفرع الشرطي والمتغيرات باستخدام واجهة المستخدم الرسومية (GUI)&lt;/li>
&lt;li>إعداد عقد مختلفة لدمج الذكاء الاصطناعي&lt;/li>
&lt;li>إمكانية التوسع للمستخدمين المتقدمين عن طريق إدخال البرامج النصية&lt;/li>
&lt;li>الوظائف الرياضية ومعالجة البيانات عالية الدقة (مثل العمليات الحسابية بدقة غير محدودة)&lt;/li>
&lt;li>اختصارات لوحة المفاتيح الواسعة للمستخدمين المتقدمين&lt;/li>
&lt;li>يدعم أكثر من 90 لغة&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="ما-أريد-القيام-به-من-الآن-فصاعدا">ما أريد القيام به من الآن فصاعدًا
&lt;/h3>&lt;ul>
&lt;li>دمج الذكاء الاصطناعي لتوليد المنطق من اللغة الطبيعية&lt;/li>
&lt;li>آلية تسمح للمستخدمين بإنشاء عقد مخصصة&lt;/li>
&lt;li>بناء منصة حيث يمكن مشاركة العقد والمنطق الذي تم إنشاؤه&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="-خاتمة">✍️ خاتمة
&lt;/h2>&lt;p>شكرًا جزيلاً لك على القراءة حتى هذه النقطة.
لم يكن هذا مجرد تطوير أداة، بل كان تحديًا صببت فيه تجربتي الخاصة وشغفي وأجزاء من حياتي.&lt;/p>
&lt;p>&amp;ldquo;لا يمكنني كتابة التعليمات البرمجية، لكن لدي المنطق&amp;rdquo;
مستقبل حيث يمكن لهؤلاء الأشخاص &lt;strong>أن &amp;ldquo;يبدعوا&amp;rdquo;&lt;/strong> بقوتهم الخاصة.
أريد الاستمرار في السعي لتحقيق ذلك من خلال LogicPad.&lt;/p>
&lt;p>إذا جعلك هذا تفكر حتى قليلاً، &amp;ldquo;أريد استخدامه&amp;rdquo;، فسأكون سعيدًا جدًا بذلك.
إذا كنت مهتمًا، يرجى تجربة &lt;a class="link" href="https://logicpad.org" target="_blank" rel="noopener"
>LogicPad&lt;/a>.&lt;/p>
&lt;p>وإذا كان لديك أي أفكار أو أشياء لاحظتها بعد استخدامه، فلا يهم مدى صغرها.
صوتك سيكون قوة دافعة كبيرة لاتخاذ الخطوة التالية لهذا المنتج.&lt;/p>
&lt;p>شكرا لك على دعمك المستمر.&lt;/p></description></item><item><title>كيفية حذف البيانات الوصفية (المعلومات الشخصية) من Excel و Word وغيرها دفعة واحدة باستخدام PowerShell</title><link>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/</link><pubDate>Wed, 30 Jul 2025 02:42:40 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.jpg" alt="Featured image of post كيفية حذف البيانات الوصفية (المعلومات الشخصية) من Excel و Word وغيرها دفعة واحدة باستخدام PowerShell" />&lt;h1 id="كيفية-حذف-البيانات-الوصفية-المعلومات-الشخصية-من-excel-و-word-وغيرها-دفعة-واحدة-باستخدام-powershell">كيفية حذف البيانات الوصفية (المعلومات الشخصية) من Excel و Word وغيرها دفعة واحدة باستخدام PowerShell
&lt;/h1>&lt;p>تحتوي ملفات Office مثل Excel تلقائياً على &amp;ldquo;بيانات وصفية (معلومات شخصية)&amp;rdquo; مثل اسم المنشئ، وآخر من قام بالتعديل، واسم الشركة. في كثير من الحالات، ترغب في حذف هذه المعلومات، مثل عند مشاركة الملفات خارج الشركة.&lt;/p>
&lt;p>في هذه المقالة، سنشرح بالتفصيل كيفية حذف البيانات الوصفية في Excel بشكل أساسي باستخدام PowerShell، وسنتطرق أيضاً إلى ** المعالجة المجمعة للملفات داخل مجلد ** و ** تطبيق ذلك على ملفات Office الأخرى مثل Word و PowerPoint ** .&lt;/p>
&lt;hr>
&lt;h2 id="1-حذف-البيانات-الوصفية-لملف-excel-واحد">1. حذف البيانات الوصفية لملف Excel واحد
&lt;/h2>&lt;p>هذا هو النص البرمجي الأساسي لحذف المعلومات الشخصية من ملف Excel واحد. يتم استدعاء كائن COM الخاص بـ Excel، وضبط خاصية &lt;code>RemovePersonalInformation&lt;/code> على &lt;code>$true&lt;/code> ثم حفظ التغييرات.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="c"># بدء تطبيق Excel في الوضع المخفي&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$excel&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nb">New-Object&lt;/span> &lt;span class="n">-ComObject&lt;/span> &lt;span class="n">Excel&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Application&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$excel&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Visible&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="vm">$false&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$excel&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">DisplayAlerts&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="vm">$false&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c"># فتح الملف (*يجب تحديد مسار مطلق)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$filePath&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;C:\Path\To\Your\File.xlsx&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$wb&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nv">$excel&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Workbooks&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$filePath&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c"># تفعيل إعداد حذف البيانات الوصفية (المعلومات الشخصية)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$wb&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">RemovePersonalInformation&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="vm">$true&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c"># حفظ التغييرات والإغلاق&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$wb&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Save&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$wb&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Close&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vm">$false&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c"># إنهاء Excel وتحرير الذاكرة&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$excel&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Quit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="no">System.Runtime.Interopservices.Marshal&lt;/span>&lt;span class="p">]::&lt;/span>&lt;span class="n">ReleaseComObject&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$excel&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">|&lt;/span> &lt;span class="nb">Out-Null&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;blockquote>
&lt;p>** ملاحظة ** : تأكد من تحديد ** مسار مطلق (المسار الكامل) ** للمسار الذي يتم تمريره إلى &lt;code>Workbooks.Open()&lt;/code>. قد يؤدي استخدام مسار نسبي إلى حدوث خطأ.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h2 id="2-معالجة-جميع-ملفات-excel-في-مجلد-دفعة-واحدة">2. معالجة جميع ملفات Excel في مجلد دفعة واحدة
&lt;/h2>&lt;p>في العمل الفعلي، غالباً ما تكون هناك حالات &amp;ldquo;تريد فيها حذف البيانات الوصفية لعشرات ملفات Excel الموجودة في مجلد معين دفعة واحدة&amp;rdquo;. يمكن تحقيق ذلك باستخدام حلقة تكرار مع &lt;code>Get-ChildItem&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$targetFolder&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;C:\Path\To\Your\Folder&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c"># الحصول على جميع ملفات .xlsx و .xls في المجلد&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$excelFiles&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nb">Get-ChildItem&lt;/span> &lt;span class="n">-Path&lt;/span> &lt;span class="nv">$targetFolder&lt;/span> &lt;span class="n">-Include&lt;/span> &lt;span class="s2">&amp;#34;*.xlsx&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;*.xls&amp;#34;&lt;/span> &lt;span class="n">-Recurse&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nv">$excelFiles&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Count&lt;/span> &lt;span class="o">-eq&lt;/span> &lt;span class="mf">0&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">Write-Host&lt;/span> &lt;span class="s2">&amp;#34;لم يتم العثور على ملفات Excel.&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">exit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$excel&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nb">New-Object&lt;/span> &lt;span class="n">-ComObject&lt;/span> &lt;span class="n">Excel&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Application&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$excel&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Visible&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="vm">$false&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$excel&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">DisplayAlerts&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="vm">$false&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">foreach&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nv">$file&lt;/span> &lt;span class="k">in&lt;/span> &lt;span class="nv">$excelFiles&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">Write-Host&lt;/span> &lt;span class="s2">&amp;#34;جاري حذف البيانات الوصفية للملف &lt;/span>&lt;span class="p">$(&lt;/span>&lt;span class="nv">$file&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Name&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="s2">...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c"># فتح الملف&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">$wb&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nv">$excel&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Workbooks&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$file&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">FullName&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c"># حذف البيانات الوصفية وحفظ التغييرات&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">$wb&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">RemovePersonalInformation&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="vm">$true&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">$wb&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Save&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nv">$wb&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Close&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="vm">$false&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$excel&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Quit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="no">System.Runtime.Interopservices.Marshal&lt;/span>&lt;span class="p">]::&lt;/span>&lt;span class="n">ReleaseComObject&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$excel&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">|&lt;/span> &lt;span class="nb">Out-Null&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">Write-Host&lt;/span> &lt;span class="s2">&amp;#34;اكتملت جميع العمليات!&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="3-حذف-البيانات-الوصفية-لملفات-office-الأخرى-word--powerpoint">3. حذف البيانات الوصفية لملفات Office الأخرى (Word / PowerPoint)
&lt;/h2>&lt;p>يمكنك حذف البيانات الوصفية ليس فقط في Excel ولكن أيضاً في Word و PowerPoint باستخدام نفس المنطق تماماً. الاختلاف الوحيد هو اسم كائن COM الذي يتم استدعاؤه، ولكن توفر خاصية &lt;code>RemovePersonalInformation&lt;/code> هو أمر مشترك.&lt;/p>
&lt;h3 id="في-حالة-word">في حالة Word
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$word&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nb">New-Object&lt;/span> &lt;span class="n">-ComObject&lt;/span> &lt;span class="n">Word&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Application&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$word&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Visible&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="vm">$false&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$word&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">DisplayAlerts&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="mf">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$doc&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nv">$word&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Documents&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;C:\Path\To\Your\File.docx&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$doc&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">RemovePersonalInformation&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="vm">$true&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$doc&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Save&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$doc&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Close&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$word&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Quit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="no">System.Runtime.Interopservices.Marshal&lt;/span>&lt;span class="p">]::&lt;/span>&lt;span class="n">ReleaseComObject&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$word&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">|&lt;/span> &lt;span class="nb">Out-Null&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="في-حالة-powerpoint">في حالة PowerPoint
&lt;/h3>&lt;p>في حالة PowerPoint، يكون إعداد خاصية &lt;code>RemovePersonalInformation&lt;/code> مشابهاً، ولكن سلوك التشغيل المخفي يختلف قليلاً.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$ppt&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nb">New-Object&lt;/span> &lt;span class="n">-ComObject&lt;/span> &lt;span class="n">PowerPoint&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Application&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c"># فتح العرض التقديمي بتحديد الوضع المخفي (msoFalse) وغيرها في الوسائط من الثاني إلى الرابع&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$presentation&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="nv">$ppt&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Presentations&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;C:\Path\To\Your\File.pptx&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="vm">$false&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="vm">$false&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="vm">$false&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$presentation&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">RemovePersonalInformation&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="vm">$true&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$presentation&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Save&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$presentation&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Close&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">$ppt&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Quit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="no">System.Runtime.Interopservices.Marshal&lt;/span>&lt;span class="p">]::&lt;/span>&lt;span class="n">ReleaseComObject&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nv">$ppt&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">|&lt;/span> &lt;span class="nb">Out-Null&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="الخلاصة">الخلاصة
&lt;/h2>&lt;p>من خلال الاستفادة من PowerShell وكائنات COM، يمكنك أتمتة عملية حذف البيانات الوصفية من ملفات Office بالكامل. لمنع تسرب المعلومات السرية أو الأسماء الشخصية عن غير قصد، من المفيد جداً أن يكون لديك نص برمجي جاهز لمعالجة المجلدات دفعة واحدة قبل تسليم الملفات.&lt;/p></description></item><item><title>شرح مبسط لحدسية كبلر</title><link>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/</link><pubDate>Mon, 21 Jul 2025 22:53:03 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post شرح مبسط لحدسية كبلر" />&lt;h1 id="شرح-مبسط-لحدسية-كبلر-كيف-ترتب-البطيخ-بأكبر-قدر-ممكن-من-الكثافة">شرح مبسط لحدسية كبلر! 〜كيف ترتب البطيخ بأكبر قدر ممكن من الكثافة〜
&lt;/h1>&lt;p>مرحباً، أنا kenji!&lt;/p>
&lt;p>اليوم أود أن أشرح مسألة رياضية ذات اسم يبدو صعباً قليلاً، وهي &amp;ldquo;حدسية كبلر&amp;rdquo;، بأبسط طريقة ممكنة.&lt;/p>
&lt;p>للوهلة الأولى، قد تبدو وكأنها موضوع متخصص للغاية، ولكن في الواقع إنها مسألة قريبة جداً من الحياة اليومية، مثل: &amp;ldquo;كيف يمكنني تعبئة البطيخ في صندوق بأكبر قدر ممكن من الكثافة؟&amp;rdquo;. كما أنها تتعلق بثلاجات المتاجر الصغيرة وطريقة تكديس الأمتعة.&lt;/p>
&lt;p>وفي عالم الرياضيات، إنها قصة رومانسية جداً عن مسألة &lt;strong>لم يتمكن أحد من إثباتها لأكثر من 400 عام&lt;/strong> .&lt;/p>
&lt;p>دعونا نبدأ!&lt;/p>
&lt;hr>
&lt;h2 id="من-هو-كبلر">من هو كبلر؟
&lt;/h2>&lt;p>أولاً، من هو &amp;ldquo;كبلر&amp;rdquo; من &amp;ldquo;حدسية كبلر&amp;rdquo;؟&lt;/p>
&lt;p>إنه عالم الفلك والرياضيات الألماني &lt;strong>يوهانس كبلر (Johannes Kepler)&lt;/strong> .&lt;/p>
&lt;p>هذا الشخص كان مذهلاً للغاية.
على سبيل المثال، هو من اكتشف أن مدارات الكواكب بيضاوية الشكل. هذه المعرفة شائعة اليوم، لكن في ذلك الوقت (حوالي عام 1600) لم تكن حتى نظرية مركزية الشمس موثوقة تماماً.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>غاليليو = عبقري المراقبة&lt;/strong>&lt;/li>
&lt;li>&lt;strong>كبلر = العبقري الذي شرح الكون باستخدام الصيغ الرياضية&lt;/strong>&lt;/li>
&lt;li>&lt;strong>نيوتن = العبقري الفائق الذي لخص تلك النظريات في قوانين فيزيائية&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>في هذا السياق، كان كبلر رائداً في &amp;ldquo;شرح الكون بالمعادلات الرياضية&amp;rdquo;.&lt;/p>
&lt;p>وذات يوم قال هذا.&lt;/p>
&lt;hr>
&lt;h2 id="ما-هي-حدسية-كبلر">ما هي حدسية كبلر؟
&lt;/h2>&lt;p>ببساطة، &amp;ldquo;حدسية كبلر&amp;rdquo; هي كالتالي.&lt;/p>
&lt;hr>
&lt;blockquote>
&lt;p>&lt;strong>عند تعبئة كرات من نفس الحجم (مثل البطيخ أو البرتقال) في صندوق، ما هو الترتيب الذي يسمح بتعبئتها بأكبر قدر ممكن من الكثافة؟&lt;/strong>&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;p>هذه هي المسألة.&lt;/p>
&lt;p>وما توقعه كبلر في القرن السابع عشر هو&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>أليس من الأفضل تكديسها بشكل مثلث، كما يضعون البرتقال في سوق الخضار؟&lt;/strong>&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;p>بلغة الرياضيات، يُسمى هذا &lt;strong>&amp;ldquo;مسألة تعبئة الكرات&amp;rdquo; (Sphere Packing Problem)&lt;/strong> ، وهي مسألة إيجاد طريقة لترتيب الكرات بكثافة قدر الإمكان في مساحة ما.&lt;/p>
&lt;p>توقع كبلر أن الترتيب المعروف باسم &lt;strong>&amp;ldquo;نظام التبلور المكعب مركزي الوجه (FCC)&amp;rdquo;&lt;/strong> (وهو يشبه تكديس البطيخ في مثلث) هو الأكثر كفاءة.&lt;/p>
&lt;p>وكان الجميع يعتقد، &amp;ldquo;نعم، هذا يبدو معقولاً&amp;rdquo;، ولكن كان من الصعب جداً إثبات رياضياً أن &amp;ldquo;هذا هو الأفضل بالتأكيد!&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="400-عام-حتى-الإثبات">400 عام حتى الإثبات!؟!
&lt;/h2>&lt;p>إذاً، متى تم إثبات ذلك فعلياً؟&lt;/p>
&lt;p>المثير للدهشة أنه كان في الفترة &lt;strong>من 1998 إلى 2005&lt;/strong> تقريباً.
أي أنه &lt;strong>لما يقرب من 400 عام لم يتمكن أحد من إثباتها&lt;/strong> . هذا لا يصدق.&lt;/p>
&lt;p>علاوة على ذلك، الشخص الذي أثبت ذلك هو عالم الرياضيات الأمريكي &lt;strong>توماس هيلز (Thomas Hales)&lt;/strong> .&lt;/p>
&lt;p>بعد أن أدرك أنه من المستحيل القيام بذلك عن طريق الحسابات اليدوية، &lt;strong>استخدم الكمبيوتر لإثباتها&lt;/strong> .
ومع ذلك، كان الإثبات معقداً للغاية لدرجة أن البشر لم يتمكنوا من التحقق منه بشكل صحيح! وهنا حدثت مشكلة.&lt;/p>
&lt;p>ونتيجة لذلك، اندلع نقاش كبير في عالم الرياضيات: &amp;ldquo;هل يمكننا حقاً الوثوق بإثبات تم إجراؤه بواسطة الكمبيوتر؟&amp;rdquo;.&lt;/p>
&lt;p>في النهاية، اكتمل &amp;ldquo;الإثبات الرسمي&amp;rdquo; الذي تم التحقق منه بدقة، بما في ذلك استخدام الكمبيوتر، في &lt;strong>عام 2014&lt;/strong> .&lt;/p>
&lt;p>وبعبارة أخرى، استغرق الأمر &lt;strong>أكثر من 400 عام&lt;/strong> لإثبات صحة حدس كبلر. يا لها من قصة رومانسية.&lt;/p>
&lt;hr>
&lt;h2 id="إنها-تستخدم-بكثرة-في-الحياة-الواقعية">إنها تستخدم بكثرة في الحياة الواقعية
&lt;/h2>&lt;p>قد تعتقد أن &amp;ldquo;كيفية ترتيب الكرات&amp;rdquo; هي مجرد قصة للمهتمين بالرياضيات، لكنها في الواقع عملية للغاية.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>تعبئة المشروبات بكفاءة في ثلاجات المتاجر&lt;/strong>&lt;/li>
&lt;li>&lt;strong>تكديس العلب على منصات النقل&lt;/strong>&lt;/li>
&lt;li>&lt;strong>تطبق أيضاً في الاتصالات (مثل ضغط الإشارات الرقمية)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>تستخدم في تصميم الطابعات ثلاثية الأبعاد والهياكل البلورية&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>وغير ذلك الكثير. في الواقع، إنها نظرية تُستخدم بكثرة وراء كواليس حياتنا.&lt;/p>
&lt;hr>
&lt;h2 id="الخلاصة-حدس-الإنسان-مذهل">الخلاصة: حدس الإنسان مذهل
&lt;/h2>&lt;p>لذا، دعونا نلخص.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>حدسية كبلر&lt;/strong> = مسألة كيفية ترتيب الكرات بكثافة قدر الإمكان&lt;/li>
&lt;li>&lt;strong>السيد كبلر&lt;/strong> = عالم الرياضيات والفلك الذي اكتشف مدارات الكواكب&lt;/li>
&lt;li>&lt;strong>تم توقعها في القرن السابع عشر! ولكن تم إثباتها في العقد الأول من القرن الحادي والعشرين!&lt;/strong>&lt;/li>
&lt;li>&lt;strong>يتم تطبيقها بشكل كبير في الحياة الواقعية!&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>والشيء الأكثر إثارة للاهتمام هو أن
&lt;strong>&amp;ldquo;طريقة التكديس التي استخدمها بائعو الخضار بالفطرة كانت هي الأفضل رياضياً&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;p>بعبارة أخرى، &lt;strong>حدس الإنسان مذهل&lt;/strong> .
وحقيقة أن &lt;strong>الأمر قد يستغرق 400 عام لإثبات ذلك&lt;/strong> تجعل هذه القصة رومانسية للغاية.&lt;/p>
&lt;hr>
&lt;p>إذا كنت مهتماً، فيرجى البحث عن &amp;ldquo;توماس هيلز&amp;rdquo; و &amp;ldquo;الإثبات الرسمي&amp;rdquo; و &amp;ldquo;Sphere Packing&amp;rdquo;. إذا تعمقت في الأمر، فسيكون مثيراً للاهتمام حقاً.&lt;/p>
&lt;p>إلى اللقاء!&lt;/p>
&lt;hr>
&lt;p>[PR]&lt;/p>
&lt;div style="background:#fff;width:120px;height:215px;box-sizing:border-box;border:1px solid #ccc;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;">&lt;div style="line-height:0;">&lt;img src="https://static.jp.mercari.com/assets/img/common/jp/logo_horizontal.png" width="105">&lt;/div>&lt;a href="https://jp.mercari.com/item/m71496725612?afid=1916658352" style="width:100px;height:100px;background:#eee;" target="_blank">&lt;img src="https://ambassador-system.mercari.com/v1/i?id=m71496725612&amp;svc=m" style="line-height:0;width:100px;height:100px;object-fit:contain;"/>&lt;/a>&lt;div style="padding:12px 0;width:100%;text-align:center;">&lt;a href="https://jp.mercari.com/item/m71496725612?afid=1916658352" style="width:100px;height:32px;background-color:#E32B36;border-radius:4px;line-height:14px;text-align:center;color:#fff;font-weight:bold;border:0;font-size:12px;display:inline-flex;justify-content:center;align-items:center;" target="_blank">今すぐ購入&lt;/a>&lt;/div>&lt;/div></description></item><item><title>جدار تطوير الذكاء الاصطناعي</title><link>http://kenji.blog/ar/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/</link><pubDate>Sun, 20 Jul 2025 21:52:42 +0900</pubDate><guid>http://kenji.blog/ar/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/</guid><description>&lt;img src="http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_1.png" alt="Featured image of post جدار تطوير الذكاء الاصطناعي" />&lt;h1 id="جدار-تطوير-الذكاء-الاصطناعي">جدار تطوير الذكاء الاصطناعي
&lt;/h1>&lt;p>&lt;strong>〜 وصلنا إلى المحطة الثامنة، لكن ما بعدها كان جحيمًا 〜&lt;/strong>&lt;/p>
&lt;p>مرحبًا، أنا kenji.&lt;/p>
&lt;p>في الآونة الأخيرة، أسمع كثيرًا أشخاصًا يقولون: &amp;ldquo;طلبت من الذكاء الاصطناعي وصنع لي تطبيقًا!&amp;rdquo;
لقد تجاوزنا عصر البرمجة بدون كود (no-code) والبرمجة بقليل من الكود (low-code)، ودخلنا مرحلة &amp;ldquo;البرمجة بالأجواء&amp;rdquo; (vibe-coding).&lt;/p>
&lt;p>على سبيل المثال، إذا قلت: &amp;ldquo;اصنع لي تطبيقًا يمكنه تعديل الصور ونشرها على وسائل التواصل الاجتماعي&amp;rdquo;، سيقوم الذكاء الاصطناعي بإنشاء الكود وحتى واجهة المستخدم (UI).
قد تفكر: &lt;strong>&amp;ldquo;واو، لم نعد بحاجة إلى البشر، أليس كذلك؟&amp;rdquo;&lt;/strong>&lt;/p>
&lt;p>ولكن، هذا &lt;strong>يشبه النزول في المحطة الثامنة من جبل فوجي وأنت ترتدي صندلًا&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="حتى-المحطة-الثامنة-يبدو-الأمر-في-غاية-السهولة">حتى المحطة الثامنة يبدو الأمر &amp;ldquo;في غاية السهولة&amp;rdquo;
&lt;/h2>&lt;p>التطوير باستخدام الذكاء الاصطناعي يبدو سهلاً حقًا في البداية.
إدخال/إخراج الملفات (File I/O)؟ يعمل في الوقت الحالي.
الشبكة؟ حسنًا، إنها تتصل.
قاعدة البيانات؟ JSON يكفي.
واجهة المستخدم (UI)؟ كتب ChatGPT كود React بالفعل.
الدفع؟ يمكن نسخ ولصق واجهة برمجة تطبيقات (API) الخاصة بـ Stripe.&lt;/p>
&lt;p>هنا، يتبادر إلى ذهنك وهم: &amp;ldquo;هل أصبحت مهندسًا بالفعل؟&amp;rdquo;
لكن الجحيم الحقيقي يبدأ من هنا.&lt;/p>
&lt;p>&lt;img src="http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img.png"
width="1024"
height="1024"
srcset="http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_huf56c5201f3b1d8f8800773fd39442f1f_2016892_480x0_resize_box_3.png 480w, http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_huf56c5201f3b1d8f8800773fd39442f1f_2016892_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;hr>
&lt;h2 id="لماذا-نتعثر">لماذا نتعثر؟
&lt;/h2>&lt;p>السبب بسيط: &amp;ldquo;الذكاء الاصطناعي يبني شيئًا يبدو مكتملًا، لكن التعديلات النهائية تُترك بالكامل للبشر.&amp;rdquo;&lt;/p>
&lt;ul>
&lt;li>ضياع البيانات أثناء إدخال/إخراج الملفات&lt;/li>
&lt;li>ضعف تطبيع قاعدة البيانات (DB normalization) مما يجعل البحث بطيئًا&lt;/li>
&lt;li>واجهة المستخدم غير بديهية&lt;/li>
&lt;li>عدم إجراء اختبارات الحمل، مما يؤدي إلى انهيار التطبيق عند زيادة الزيارات&lt;/li>
&lt;li>الرفض عند مراجعة التطبيق من قبل Apple/Google&lt;/li>
&lt;li>انتهاك المتطلبات القانونية (مما يكاد يسبب فضيحة)&lt;/li>
&lt;/ul>
&lt;p>بعبارة أخرى، &lt;strong>الذكاء الاصطناعي بارع في صنع &amp;ldquo;نموذج أولي يبدو كأنه مكتمل&amp;rdquo;&lt;/strong>، لكن
&lt;strong>تحويله إلى &amp;ldquo;منتج حقيقي جاهز للإطلاق في العالم&amp;rdquo; لا يزال عمل البشر حتى الآن&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="لكن-هناك-مفارقة">لكن، هناك مفارقة
&lt;/h2>&lt;p>هنا نلاحظ &lt;strong>مفارقة&lt;/strong> واحدة.&lt;/p>
&lt;blockquote>
&lt;p>ماذا لو أصبح الذكاء الاصطناعي قادرًا حقًا على فعل كل شيء في المستقبل؟
بمعنى، ماذا لو &amp;ldquo;تم التعامل مع الأمان، والدفع، والتصميم بشكل مثالي بواسطة الذكاء الاصطناعي&amp;rdquo;؟&lt;/p>
&lt;/blockquote>
&lt;p>في تلك اللحظة، &lt;strong>قد تختفي الحاجة إلى قيام البشر بإنشاء التطبيقات من الأساس&lt;/strong>.&lt;/p>
&lt;p>لأنه إذا أخبر المستخدم الذكاء الاصطناعي مباشرة: &amp;ldquo;أريد القيام بهذا&amp;rdquo;،
فسيتم تنفيذ المهمة على الفور دون الحاجة إلى تطبيق.&lt;/p>
&lt;hr>
&lt;h3 id="-على-سبيل-المثال">🌀 على سبيل المثال
&lt;/h3>&lt;p>في الماضي، كنا &amp;ldquo;نفتح تطبيق الآلة الحاسبة لنقوم بالحساب&amp;rdquo;،
أما الآن، فيكفي أن نقول: &amp;ldquo;يا Siri، كم حاصل ضرب 12 في 32؟&amp;quot;، وينتهي الأمر.&lt;/p>
&lt;p>وبالمثل،
إذا قلنا: &amp;ldquo;أيها الذكاء الاصطناعي، قم بتعديل هذه الصورة وشاركها&amp;rdquo;، فقد تنتهي العملية دون المرور عبر واجهة المستخدم (UI) أو واجهة برمجة التطبيقات (API) الخاصة بالتطبيق.&lt;/p>
&lt;p>بمعنى آخر،
عندما يتحقق هدف &lt;strong>&amp;ldquo;إنشاء تطبيق بواسطة الذكاء الاصطناعي&amp;rdquo;&lt;/strong>، فقد يأتي عالم لا تكون فيه التطبيقات نفسها ضرورية.&lt;/p>
&lt;hr>
&lt;h2 id="في-النهاية-ما-الذي-يمكننا-فعله-الآن">في النهاية، ما الذي يمكننا فعله الآن؟
&lt;/h2>&lt;p>إذن، ماذا يجب أن نفعل؟&lt;/p>
&lt;ul>
&lt;li>بما أن &amp;ldquo;ما بعد المحطة الثامنة&amp;rdquo; لا يزال مجالًا بشريًا، فلنعمل على صقل مهاراتنا هناك&lt;/li>
&lt;li>التركيز على الفهم العميق للمستخدمين وتصميم الخدمات&lt;/li>
&lt;li>التفكير في &amp;ldquo;ما له قيمة&amp;rdquo; بدلًا من &amp;ldquo;ما يمكن صنعه&amp;rdquo;&lt;/li>
&lt;li>بالأحرى، البحث عن طرق لتقديم قيمة &amp;ldquo;لا تقتصر على شكل التطبيق&amp;rdquo;&lt;/li>
&lt;/ul>
&lt;p>الذكاء الاصطناعي هو أداة، ومصعد، وأحيانًا منافس.
لكن، أسئلة &lt;strong>&amp;ldquo;ماذا نصنع&amp;rdquo;&lt;/strong> و &lt;strong>&amp;ldquo;لماذا نصنعه&amp;rdquo;&lt;/strong> لا تزال أسئلة تخصنا نحن البشر.&lt;/p>
&lt;hr>
&lt;h2 id="الخلاصة">الخلاصة:
&lt;/h2>&lt;p>&lt;strong>جدار تطوير الذكاء الاصطناعي ليس تكنولوجيا، بل هو مفارقة هيكلية&lt;/strong>&lt;/p>
&lt;p>نحن في عصر يمكن لأي شخص فيه الوصول إلى المحطة الثامنة من جبل فوجي.
لكن الاختبار الحقيقي يبدأ من هناك.&lt;/p>
&lt;p>وربما، عندما نصل إلى القمة، سيكون بانتظارنا مستقبل نسأل فيه أنفسنا:
&amp;ldquo;هل كان من الضروري حقًا تسلق هذا الجبل؟&amp;rdquo;&lt;/p>
&lt;p>&lt;img src="http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_1.png"
width="1024"
height="1024"
srcset="http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_1_hu929f602c53dcc1c0d00e8a53b025b29e_1978511_480x0_resize_box_3.png 480w, http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_1_hu929f602c53dcc1c0d00e8a53b025b29e_1978511_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p></description></item><item><title>كيفية استدعاء Microsoft.Windows.AI من C++</title><link>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-/</link><pubDate>Sat, 19 Jul 2025 10:03:51 +0900</pubDate><guid>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-/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية استدعاء Microsoft.Windows.AI من C++" />&lt;h1 id="-كيفية-استدعاء-microsoftwindowsai-من-c-مع-نموذج-كود">🎯 كيفية استدعاء &lt;code>Microsoft.Windows.AI&lt;/code> من C++ [مع نموذج كود]
&lt;/h1>&lt;p>بدءًا من نظام التشغيل Windows 10، يأتي Windows مزودًا بـ &lt;strong>وقت تشغيل يمكنه تنفيذ نماذج الذكاء الاصطناعي بتنسيق ONNX&lt;/strong> بشكل قياسي. هذا هو &lt;strong>Windows ML (Windows.AI.MachineLearning)&lt;/strong>.&lt;/p>
&lt;p>في هذه المقالة، سنشرح بالتفصيل كيفية استدعاء &lt;code>Microsoft.Windows.AI.MachineLearning&lt;/code> من &lt;strong>C++ (تطبيق Win32 الأساسي)&lt;/strong> مع &lt;strong>نموذج كود&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="-التحضير">✅ التحضير
&lt;/h2>&lt;h3 id="-المتطلبات">◾ المتطلبات
&lt;/h3>&lt;ul>
&lt;li>Windows 10 (1809+) أو Windows 11&lt;/li>
&lt;li>Visual Studio 2019 أو أحدث (إصدار Community مناسب)&lt;/li>
&lt;li>دعم C++/WinRT (&lt;code>Microsoft.Windows.CppWinRT&lt;/code>)&lt;/li>
&lt;li>Windows SDK 10.0.17763.0 أو أحدث&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="-هيكل-المشروع">✅ هيكل المشروع
&lt;/h2>&lt;p>قم بإنشاء مشروع بالهيكل التالي في Visual Studio.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>النوع: تطبيق سطح مكتب Windows C++ (مشروع فارغ)&lt;/p>
&lt;/li>
&lt;li>
&lt;p>النظام الفرعي: Windows (&lt;code>WinMain&lt;/code>)&lt;/p>
&lt;/li>
&lt;li>
&lt;p>أضف الحزم التالية عبر NuGet&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Microsoft.Windows.CppWinRT
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="-نموذج-الكود">✅ نموذج الكود
&lt;/h2>&lt;p>فيما يلي حد أدنى لنموذج يجمع بين Win32 API و &lt;code>Windows.AI.MachineLearning&lt;/code> باستخدام &lt;code>WinMain&lt;/code>.&lt;/p>
&lt;blockquote>
&lt;p>※ نموذج ONNX المستخدم هو &lt;code>model.onnx&lt;/code>، يرجى وضعه في نفس المجلد مع الملف القابل للتنفيذ.&lt;/p>
&lt;/blockquote>
&lt;h3 id="maincpp">&lt;code>main.cpp&lt;/code>
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;span class="lnt">36
&lt;/span>&lt;span class="lnt">37
&lt;/span>&lt;span class="lnt">38
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;windows.h&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;winrt/Windows.AI.MachineLearning.h&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;winrt/Windows.Storage.h&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#pragma comment(lib, &amp;#34;windowsapp&amp;#34;) &lt;/span>&lt;span class="c1">// لربط WinRT
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">winrt&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">Windows&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">AI&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">MachineLearning&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">Windows&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">Storage&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">int&lt;/span> &lt;span class="n">WINAPI&lt;/span> &lt;span class="nf">WinMain&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">HINSTANCE&lt;/span> &lt;span class="n">hInstance&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">HINSTANCE&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">LPSTR&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="kt">int&lt;/span> &lt;span class="n">nCmdShow&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// تهيئة WinRT (MTA أو STA)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">winrt&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">init_apartment&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">try&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// تحميل ملف النموذج
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="k">auto&lt;/span> &lt;span class="n">modelFile&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">StorageFile&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">GetFileFromPathAsync&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;model.onnx&amp;#34;&lt;/span>&lt;span class="p">).&lt;/span>&lt;span class="n">get&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">LearningModel&lt;/span> &lt;span class="n">model&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">LearningModel&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">LoadFromStorageFileAsync&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">modelFile&lt;/span>&lt;span class="p">).&lt;/span>&lt;span class="n">get&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// إنشاء جلسة
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">LearningModelSession&lt;/span> &lt;span class="n">session&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">model&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">LearningModelBinding&lt;/span> &lt;span class="n">binding&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">session&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// إدخال/إخراج النموذج (إدخال فارغ مؤقتًا هنا)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="c1">// في الواقع، مطلوب الربط باستخدام TensorFloat وما إلى ذلك.
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// تنفيذ الاستدلال
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="k">auto&lt;/span> &lt;span class="n">result&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">session&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">EvaluateAsync&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">binding&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">).&lt;/span>&lt;span class="n">get&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">MessageBox&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">nullptr&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;اكتمل الاستدلال&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;Windows ML (C++)&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">MB_OK&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">catch&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">winrt&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">hresult_error&lt;/span> &lt;span class="k">const&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">ex&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">MessageBox&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">nullptr&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ex&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="p">().&lt;/span>&lt;span class="n">c_str&lt;/span>&lt;span class="p">(),&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;خطأ&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">MB_ICONERROR&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="-ملحق-كيفية-تحديد-tensor-الإدخالالإخراج">✅ ملحق: كيفية تحديد Tensor الإدخال/الإخراج
&lt;/h2>&lt;p>اعتمادًا على النموذج، قد تحتاج إلى &lt;strong>إنشاء وربط Tensor&lt;/strong> قبل الاستدلال.&lt;/p>
&lt;p>مثال:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// تحويل مصفوفة float أحادية البعد إلى Tensor
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="kt">float&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">inputData&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="mf">0.5f&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">0.3f&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">0.2f&lt;/span>&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="kt">int64_t&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">shape&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">};&lt;/span> &lt;span class="c1">// الشكل: [1, 3]
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">auto&lt;/span> &lt;span class="n">tensor&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">TensorFloat&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">CreateFromArray&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">shape&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">inputData&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// ربط الإدخال (يتطابق مع اسم إدخال النموذج)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="n">binding&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Bind&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;input_0&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">tensor&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>وبالمثل، يمكن الحصول على الإخراج باستخدام &lt;code>result.Outputs().Lookup(L&amp;quot;output_0&amp;quot;)&lt;/code>.&lt;/p>
&lt;hr>
&lt;h2 id="-ملاحظات-التصحيح">✅ ملاحظات التصحيح
&lt;/h2>&lt;ul>
&lt;li>إذا لم يكن ملف النموذج موجودًا في مجلد التنفيذ، فسيتم إلقاء &lt;code>FileNotFoundException&lt;/code>.&lt;/li>
&lt;li>إذا لم تتطابق أسماء الإدخال/الإخراج، فسيحدث خطأ &lt;code>invalid_argument&lt;/code>.&lt;/li>
&lt;li>يمكن التحقق من مواصفات الإدخال/الإخراج الدقيقة للنموذج باستخدام أدوات مثل &lt;a class="link" href="https://netron.app" target="_blank" rel="noopener"
>Netron&lt;/a>.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="-الخلاصة">✅ الخلاصة
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>العنصر&lt;/th>
&lt;th>المحتوى&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>واجهة برمجة التطبيقات المستخدمة&lt;/td>
&lt;td>Windows.AI.MachineLearning (WinRT)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>اللغة&lt;/td>
&lt;td>C++ (Win32)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الطريقة الموصى بها&lt;/td>
&lt;td>عبر ترويسة C++/WinRT&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>المزايا&lt;/td>
&lt;td>يعمل نموذج ONNX بشكل أصلي، ويدعم وحدة معالجة الرسومات أيضًا&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>تنبيه&lt;/td>
&lt;td>انتبه لاسم إدخال النموذج وشكل Tensor&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="-بديل-لأولئك-الذين-لا-يرغبون-في-استخدام-winrt">✅ بديل: لأولئك الذين لا يرغبون في استخدام WinRT
&lt;/h2>&lt;ul>
&lt;li>باستخدام &lt;code>ONNX Runtime&lt;/code> من Microsoft، يمكنك &lt;strong>التعامل مع نماذج ONNX من C++ تمامًا بدون WinRT&lt;/strong>.&lt;/li>
&lt;li>يدعم الأنظمة الأساسية المتعددة، مما يسمح برمز مشترك لـ Windows/Linux.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="-الخاتمة">📌 الخاتمة
&lt;/h2>&lt;p>Windows ML (Microsoft.Windows.AI) هو محرك استدلال ذكاء اصطناعي قوي يمكن استخدامه بشكل جيد حتى من C++. إذا كنت بحاجة إلى الاستدلال الأصلي على Windows، يرجى تجربته.&lt;/p>
&lt;p>سيتم شرح أمثلة محددة لإنشاء نماذج ONNX وربط Tensor في مقال تكميلي!&lt;/p></description></item><item><title>خطوات استدعاء TinyLLaMA من C++ (باستخدام llama.cpp)</title><link>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/</link><pubDate>Sat, 19 Jul 2025 09:40:53 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post خطوات استدعاء TinyLLaMA من C++ (باستخدام llama.cpp)" />&lt;h1 id="-خطوات-إعداد-tinyllama--c-باستخدام-llamacpp">✅ خطوات إعداد TinyLLaMA × C++ (باستخدام &lt;code>llama.cpp&lt;/code>)
&lt;/h1>&lt;hr>
&lt;h2 id="-الخطوة-1-تجهيز-llamacpp">🔧 الخطوة 1: تجهيز llama.cpp
&lt;/h2>&lt;h3 id="1-1-البيئة-المطلوبة-الحد-الأدنى">1-1. البيئة المطلوبة (الحد الأدنى)
&lt;/h3>&lt;ul>
&lt;li>نظام التشغيل: Windows / Linux / macOS&lt;/li>
&lt;li>بيئة التطوير: g++ / clang / MSVC&lt;/li>
&lt;li>Git / CMake&lt;/li>
&lt;/ul>
&lt;h3 id="1-2-الحصول-على-llamacpp-وبناؤه">1-2. الحصول على llama.cpp وبناؤه
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git clone https://github.com/ggerganov/llama.cpp
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> llama.cpp
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mkdir build
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> build
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cmake ..
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cmake --build . --config Release
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;blockquote>
&lt;p>إذا كنت تستخدم Windows، فمن الأسهل استخدام &lt;code>Visual Studio Developer Command Prompt&lt;/code> مع &lt;code>cmake --build . --config Release&lt;/code>.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h2 id="-الخطوة-2-تنزيل-نموذج-tinyllama-وتحويله">📦 الخطوة 2: تنزيل نموذج TinyLLaMA وتحويله
&lt;/h2>&lt;h3 id="2-1-الحصول-على-النموذج-الأصلي-من-huggingface">2-1. الحصول على النموذج الأصلي من HuggingFace
&lt;/h3>&lt;p>مثال: &lt;a class="link" href="https://huggingface.co/openaccess-ai-collective/TinyLlama-1.1B-Chat-v1.0" target="_blank" rel="noopener"
>TinyLLaMA-1.1B&lt;/a>&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># قم بالتنزيل باستخدام transformers إذا لزم الأمر&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">pip install transformers huggingface_hub
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">python3 -m transformers.models.llama.convert_llama_weights_to_hf &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --input_dir ./TinyLlama-1.1B-Chat &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --model_size 1B &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --output_dir ./hf_model
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;blockquote>
&lt;p>هذه هي خطوة التحويل إلى تنسيق Hugging Face.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h3 id="2-2-التحويل-إلى-تنسيق-gguf-من-أجل-llamacpp">2-2. التحويل إلى تنسيق GGUF (من أجل &lt;code>llama.cpp&lt;/code>)
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> llama.cpp
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">python3 convert.py ./hf_model --outfile tinyllama.gguf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="2-3-تكميم-النموذج-تقليل-الحجم">2-3. تكميم النموذج (تقليل الحجم)
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">./quantize ./tinyllama.gguf ./tinyllama-q4.gguf q4_0
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;blockquote>
&lt;p>&lt;code>q4_0&lt;/code> هو تكميم 4 بت. سيتم تقليل حجم النموذج إلى حوالي ** 350 ميجابايت ** تقريباً.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h2 id="-الخطوة-3-استدعاء-النموذج-من-c-مثال-على-الكود">🧪 الخطوة 3: استدعاء النموذج من C++ (مثال على الكود)
&lt;/h2>&lt;h3 id="3-1-كود-c-بسيط-استدلال">3-1. كود C++ بسيط (استدلال)
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;span class="lnt">36
&lt;/span>&lt;span class="lnt">37
&lt;/span>&lt;span class="lnt">38
&lt;/span>&lt;span class="lnt">39
&lt;/span>&lt;span class="lnt">40
&lt;/span>&lt;span class="lnt">41
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;#34;llama.h&amp;#34;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;iostream&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">int&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">llama_model_params&lt;/span> &lt;span class="n">model_params&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">llama_model_default_params&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">llama_context_params&lt;/span> &lt;span class="n">ctx_params&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">llama_context_default_params&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">llama_model&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">model&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">llama_load_model_from_file&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;tinyllama-q4.gguf&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">model_params&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">llama_context&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">ctx&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">llama_new_context_with_model&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">model&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ctx_params&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">string&lt;/span> &lt;span class="n">prompt&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;يقول المستخدم إنه يريد تحميل بيانات Excel وتصفيتها وحفظها. ما هو تكوين العقدة؟&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">llama_batch&lt;/span> &lt;span class="n">batch&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">llama_batch_init&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">512&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">llama_token&lt;/span> &lt;span class="n">BOS&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">llama_token_bos&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">model&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">batch&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">token&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">BOS&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// تقسيم النص إلى رموز
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">vector&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">llama_token&lt;/span>&lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">tokens&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">prompt&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">8&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">int&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">llama_tokenize&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">model&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">prompt&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">c_str&lt;/span>&lt;span class="p">(),&lt;/span> &lt;span class="n">tokens&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">data&lt;/span>&lt;span class="p">(),&lt;/span> &lt;span class="n">tokens&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="p">(),&lt;/span> &lt;span class="nb">true&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">tokens&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">resize&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">size_t&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">tokens&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="p">();&lt;/span> &lt;span class="o">++&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">batch&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">token&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">tokens&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">];&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">batch&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">n_tokens&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">tokens&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">llama_decode&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ctx&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">batch&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// الحصول على نتيجة الاستدلال
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="kt">int&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">50&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="o">++&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">llama_token&lt;/span> &lt;span class="n">next&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">llama_sample_token&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ctx&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="k">nullptr&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">llama_token_to_str&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">model&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">next&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">llama_batch&lt;/span> &lt;span class="n">next_batch&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">llama_batch_init&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">next_batch&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">token&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">next&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">next_batch&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">n_tokens&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">llama_decode&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ctx&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">next_batch&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">llama_free&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ctx&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">llama_free_model&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">model&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="-الخطوة-4-طريقة-الترجمة-مثال">🧱 الخطوة 4: طريقة الترجمة (مثال)
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">g++ -I./llama.cpp main.cpp ./llama.cpp/build/libllama.a -o tiny_infer -pthread -std&lt;span class="o">=&lt;/span>c++11
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;blockquote>
&lt;p>يتم إنشاء &lt;code>libllama.a&lt;/code> في الدليل &lt;code>build/&lt;/code> بعد البناء.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h2 id="-مثال-على-بنية-المخرجات-منظمة">✅ مثال على بنية المخرجات (منظمة)
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">my_app/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">├── tinyllama-q4.gguf # نموذج مكمم (~350 ميجابايت)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">├── main.cpp # كود C++ أعلاه
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">├── llama.cpp/ # نواة llama.cpp
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">└── build/
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> └── libllama.a # المكتبة المترجمة
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="-ملاحظات-للتطبيق-على-حالات-الاستخدام">🧠 ملاحظات للتطبيق على حالات الاستخدام
&lt;/h2>&lt;ul>
&lt;li>وجود كود في C++ لـ &lt;code>مطابقة وتحديد قوالب العقدة&lt;/code> بناءً على المخرجات&lt;/li>
&lt;li>مثال: إذا كان يحتوي على &amp;ldquo;Excel&amp;rdquo; ، &amp;ldquo;تصفية&amp;rdquo; ، &amp;ldquo;حفظ&amp;rdquo; -&amp;gt; إنشاء مجموعة العقدة المقابلة&lt;/li>
&lt;li>هذا الجزء مقبول بتكوين بسيط مثل &lt;code>عبارة if + تحميل قالب JSON&lt;/code>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="-الخلاصة">📌 الخلاصة
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>العنصر&lt;/th>
&lt;th>المحتوى&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>النموذج الموصى به&lt;/td>
&lt;td>TinyLLaMA-1.1B-Chat v1.0 (GGUF + تكميم)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الحجم&lt;/td>
&lt;td>~350-450 ميجابايت (تكميم 4 بت)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>تكامل C++&lt;/td>
&lt;td>ممكن باستخدام &lt;code>llama.cpp&lt;/code> ، لا توجد تبعيات خارجية تقريبًا&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>قوة المعالجة&lt;/td>
&lt;td>كافية لفهم النوايا البسيطة وإنشاء النص (نص طبيعي -&amp;gt; تكوين)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>قابلية التوسع&lt;/td>
&lt;td>يمكن تحويله إلى ذكاء اصطناعي لإنشاء العقدة عن طريق الدمج مع ملء الفتحات واستدعاء القالب&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table></description></item><item><title>كيفية نشر رسالة على Slack باستخدام Slack App + OAuth2</title><link>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/</link><pubDate>Wed, 16 Jul 2025 23:36:27 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية نشر رسالة على Slack باستخدام Slack App + OAuth2" />&lt;h2 id="-طريقة-النشر-باستخدام-رمز-الوصول-slack-web-api">✅ طريقة النشر باستخدام رمز الوصول (Slack Web API)
&lt;/h2>&lt;p>يعد &amp;ldquo;OAuth Token (مثل xoxb- وما إلى ذلك)&amp;rdquo; من Slack هو المفتاح للنشر باستخدام &lt;a class="link" href="https://api.slack.com/methods/chat.postMessage" target="_blank" rel="noopener"
>Web API&lt;/a> الخاص بـ Slack.
في هذه الحالة، وعلى عكس Webhook، ستقوم بإجراء &lt;code>POST&lt;/code> إلى &lt;strong>نقطة نهاية API في Slack&lt;/strong> مع رأس &lt;code>Authorization: Bearer&lt;/code>.&lt;/p>
&lt;hr>
&lt;h2 id="-المتطلبات-الأساسية">🔑 المتطلبات الأساسية
&lt;/h2>&lt;p>يجب عليك تضمين &lt;strong>&lt;code>chat:write&lt;/code> في نطاق OAuth&lt;/strong> في تطبيق Slack الخاص بك:&lt;/p>
&lt;h3 id="خطوات-الإعداد">خطوات الإعداد
&lt;/h3>&lt;ol>
&lt;li>قم بزيارة &lt;a class="link" href="https://api.slack.com/apps" target="_blank" rel="noopener"
>https://api.slack.com/apps&lt;/a>&lt;/li>
&lt;li>قم بإنشاء تطبيق أو حدد تطبيقًا موجودًا&lt;/li>
&lt;li>في &amp;ldquo;OAuth &amp;amp; Permissions&amp;rdquo; &amp;gt; &lt;code>Scopes&lt;/code>
← أضف &lt;code>chat:write&lt;/code>&lt;/li>
&lt;li>قم بإجراء &amp;ldquo;Install to Workspace&amp;rdquo; أو &amp;ldquo;Reinstall&amp;rdquo; للحصول على &lt;code>Access Token&lt;/code> (مثال: &lt;code>xoxb-xxxxxxxxxx&lt;/code>)&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="-كود-c-النشر-في-slack-api-باستخدام-winhttp">💻 كود C++ (النشر في Slack API باستخدام WinHTTP)
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;span class="lnt">36
&lt;/span>&lt;span class="lnt">37
&lt;/span>&lt;span class="lnt">38
&lt;/span>&lt;span class="lnt">39
&lt;/span>&lt;span class="lnt">40
&lt;/span>&lt;span class="lnt">41
&lt;/span>&lt;span class="lnt">42
&lt;/span>&lt;span class="lnt">43
&lt;/span>&lt;span class="lnt">44
&lt;/span>&lt;span class="lnt">45
&lt;/span>&lt;span class="lnt">46
&lt;/span>&lt;span class="lnt">47
&lt;/span>&lt;span class="lnt">48
&lt;/span>&lt;span class="lnt">49
&lt;/span>&lt;span class="lnt">50
&lt;/span>&lt;span class="lnt">51
&lt;/span>&lt;span class="lnt">52
&lt;/span>&lt;span class="lnt">53
&lt;/span>&lt;span class="lnt">54
&lt;/span>&lt;span class="lnt">55
&lt;/span>&lt;span class="lnt">56
&lt;/span>&lt;span class="lnt">57
&lt;/span>&lt;span class="lnt">58
&lt;/span>&lt;span class="lnt">59
&lt;/span>&lt;span class="lnt">60
&lt;/span>&lt;span class="lnt">61
&lt;/span>&lt;span class="lnt">62
&lt;/span>&lt;span class="lnt">63
&lt;/span>&lt;span class="lnt">64
&lt;/span>&lt;span class="lnt">65
&lt;/span>&lt;span class="lnt">66
&lt;/span>&lt;span class="lnt">67
&lt;/span>&lt;span class="lnt">68
&lt;/span>&lt;span class="lnt">69
&lt;/span>&lt;span class="lnt">70
&lt;/span>&lt;span class="lnt">71
&lt;/span>&lt;span class="lnt">72
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;windows.h&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;winhttp.h&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;iostream&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#pragma comment(lib, &amp;#34;winhttp.lib&amp;#34;)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">bool&lt;/span> &lt;span class="nf">PostSlackMessage&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">const&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">accessToken&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="k">const&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">string&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">channel&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="k">const&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">string&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">text&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">const&lt;/span> &lt;span class="kt">wchar_t&lt;/span>&lt;span class="o">*&lt;/span> &lt;span class="n">host&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;slack.com&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">const&lt;/span> &lt;span class="kt">wchar_t&lt;/span>&lt;span class="o">*&lt;/span> &lt;span class="n">path&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;/api/chat.postMessage&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">HINTERNET&lt;/span> &lt;span class="n">hSession&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">WinHttpOpen&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;SlackPoster/1.0&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_ACCESS_TYPE_DEFAULT_PROXY&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_NO_PROXY_NAME&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_NO_PROXY_BYPASS&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">!&lt;/span>&lt;span class="n">hSession&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">return&lt;/span> &lt;span class="nb">false&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">HINTERNET&lt;/span> &lt;span class="n">hConnect&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">WinHttpConnect&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hSession&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">host&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">INTERNET_DEFAULT_HTTPS_PORT&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">!&lt;/span>&lt;span class="n">hConnect&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">return&lt;/span> &lt;span class="nb">false&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">HINTERNET&lt;/span> &lt;span class="n">hRequest&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">WinHttpOpenRequest&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hConnect&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;POST&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">path&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">NULL&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">WINHTTP_NO_REFERER&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_DEFAULT_ACCEPT_TYPES&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_FLAG_SECURE&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// ترويسة التفويض ونوع المحتوى
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span> &lt;span class="n">headers&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;Content-Type: application/json&lt;/span>&lt;span class="se">\r\n&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">headers&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;Authorization: Bearer &amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">accessToken&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="se">\r\n&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// جسم JSON
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">string&lt;/span> &lt;span class="n">body&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">R&lt;/span>&lt;span class="s">&amp;#34;({&amp;#34;&lt;/span>&lt;span class="n">channel&lt;/span>&lt;span class="s">&amp;#34;:&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="s">&amp;#34; + channel + R&amp;#34;&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;,&amp;#34;&lt;/span>&lt;span class="n">text&lt;/span>&lt;span class="s">&amp;#34;:&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="s">&amp;#34; + text + R&amp;#34;&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;})&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">BOOL&lt;/span> &lt;span class="n">result&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">WinHttpSendRequest&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hRequest&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">headers&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">c_str&lt;/span>&lt;span class="p">(),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="n">DWORD&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="n">LPVOID&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">body&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">c_str&lt;/span>&lt;span class="p">(),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">body&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">length&lt;/span>&lt;span class="p">(),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">body&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">length&lt;/span>&lt;span class="p">(),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">0&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">!&lt;/span>&lt;span class="n">result&lt;/span> &lt;span class="o">||&lt;/span> &lt;span class="o">!&lt;/span>&lt;span class="n">WinHttpReceiveResponse&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hRequest&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nb">NULL&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cerr&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;خطأ في الإرسال&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nb">false&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// التحقق من رمز الحالة
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">DWORD&lt;/span> &lt;span class="n">statusCode&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">DWORD&lt;/span> &lt;span class="n">size&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="k">sizeof&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">statusCode&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WinHttpQueryHeaders&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hRequest&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_QUERY_STATUS_CODE&lt;/span> &lt;span class="o">|&lt;/span> &lt;span class="n">WINHTTP_QUERY_FLAG_NUMBER&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_HEADER_NAME_BY_INDEX&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">statusCode&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">WINHTTP_NO_HEADER_INDEX&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WinHttpCloseHandle&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hRequest&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WinHttpCloseHandle&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hConnect&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WinHttpCloseHandle&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hSession&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">statusCode&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">200&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">int&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span> &lt;span class="n">token&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;xoxb-رمز-الوصول-الخاص-بك&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="c1">// رمز الوصول
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">string&lt;/span> &lt;span class="n">channel&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;معرف-القناة-أو-#general&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="c1">// مثال: &amp;#34;#general&amp;#34; أو &amp;#34;C0123456789&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">string&lt;/span> &lt;span class="n">message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s">&amp;#34;محاولة النشر في Slack من C++!&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">PostSlackMessage&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">token&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">channel&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">message&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;تم النشر بنجاح!&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span> &lt;span class="k">else&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cerr&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;فشل في النشر.&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="-كيفية-الحصول-على-معرف-القناة">📌 كيفية الحصول على معرف القناة
&lt;/h2>&lt;p>قد يؤدي استخدام اسم القناة فقط (مثال: &lt;code>#general&lt;/code>) أحيانًا إلى حدوث خطأ.
الطريقة الأكثر موثوقية هي استخدام المعرف من عنوان URL لصفحة قناة Slack.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">https://app.slack.com/client/Txxxxx/C0123456789
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ↑ هذا الجزء هو معرف القناة
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="-حول-أنواع-الرموز-إضافي">✅ حول أنواع الرموز (إضافي)
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>تنسيق الرمز&lt;/th>
&lt;th>الغرض&lt;/th>
&lt;th>مثال&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>xoxb-...&lt;/code>&lt;/td>
&lt;td>Bot Token (موصى به)&lt;/td>
&lt;td>نشر، تعديل، حذف&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>xoxp-...&lt;/code>&lt;/td>
&lt;td>User Token (غير موصى به)&lt;/td>
&lt;td>عمليات غير خاصة بالبوت&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Refresh Token&lt;/td>
&lt;td>لتحديث الرمز طويل الأمد&lt;/td>
&lt;td>لا يُستخدم عادةً&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="-الخلاصة">📝 الخلاصة
&lt;/h2>&lt;ul>
&lt;li>للنشر في Slack من C++، تعتبر طريقة Slack Web API + Bearer Token هي الأكثر موثوقية&lt;/li>
&lt;li>استخدم نقطة النهاية &lt;code>chat.postMessage&lt;/code> مع HTTPS POST&lt;/li>
&lt;li>يجب إرسال الرمز في ترويسة Bearer&lt;/li>
&lt;li>من الأفضل تحديد القناة &lt;strong>باستخدام المعرف&lt;/strong>&lt;/li>
&lt;/ul></description></item><item><title>كيفية نشر رسائل إلى Slack باستخدام C++ (Win32 API + WinHTTP) [دعم Webhook]</title><link>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/</link><pubDate>Wed, 16 Jul 2025 19:42:56 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية نشر رسائل إلى Slack باستخدام C++ (Win32 API + WinHTTP) [دعم Webhook]" />&lt;h1 id="كيفية-نشر-رسائل-إلى-slack-باستخدام-c-win32-api--winhttp-دعم-webhook">كيفية نشر رسائل إلى Slack باستخدام C++ (Win32 API + WinHTTP) [دعم Webhook]
&lt;/h1>&lt;p>أرغب في نشر رسائل إلى Slack من C++.
هذا شائع جدًا في Node.js و Python، لكن هناك حالات قليلة لاستخدام &amp;ldquo;C++ × Win32 API × WinHTTP&amp;rdquo;.&lt;/p>
&lt;p>في هذا المقال، سأشرح خطوة بخطوة &lt;strong>كيفية إرسال رسائل من C++ إلى Slack باستخدام رابط Webhook&lt;/strong> بطريقة سهلة الفهم.&lt;/p>
&lt;hr>
&lt;h2 id="-التدفق-العام">✅ التدفق العام
&lt;/h2>&lt;p>للنشر في Slack، اتبع الخطوات التالية:&lt;/p>
&lt;ol>
&lt;li>احصل على رابط Slack Webhook (مفتاح API)&lt;/li>
&lt;li>أرسل طلب &lt;code>POST&lt;/code> باستخدام WinHTTP&lt;/li>
&lt;li>قم بتكوين نص الرسالة بصيغة JSON&lt;/li>
&lt;li>تحقق من النتيجة واكتمل!&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="-الخطوة-1-كيفية-الحصول-على-رابط-slack-webhook">🔑 الخطوة 1: كيفية الحصول على رابط Slack Webhook
&lt;/h2>&lt;p>في Slack، يمكنك بسهولة نشر رسائل من خدمات خارجية باستخدام ميزة تسمى Incoming Webhooks.&lt;/p>
&lt;h3 id="خطوات-الحصول">خطوات الحصول
&lt;/h3>&lt;ol>
&lt;li>انتقل إلى &lt;a class="link" href="https://api.slack.com/apps" target="_blank" rel="noopener"
>https://api.slack.com/apps&lt;/a>&lt;/li>
&lt;li>انقر على &lt;code>Create New App&lt;/code>&lt;/li>
&lt;li>اختر &lt;code>From scratch&lt;/code>، وحدد اسم التطبيق ومساحة العمل الوجهة&lt;/li>
&lt;li>من القائمة اليسرى، حدد &lt;strong>&amp;ldquo;Incoming Webhooks&amp;rdquo;&lt;/strong> وقم بتفعيله&lt;/li>
&lt;li>انقر على &lt;strong>&amp;ldquo;Add New Webhook to Workspace&amp;rdquo;&lt;/strong> وحدد قناة&lt;/li>
&lt;li>انسخ الرابط الصادر (مثال: &lt;code>https://hooks.slack.com/services/xxx/yyy/zzz&lt;/code>)&lt;/li>
&lt;/ol>
&lt;p>يعمل هذا الرابط مثل مفتاح API.&lt;/p>
&lt;hr>
&lt;h2 id="-الخطوة-2-إرسال-رسالة-إلى-slack-بكود-c">💻 الخطوة 2: إرسال رسالة إلى Slack بكود C++
&lt;/h2>&lt;h3 id="التقنيات-المستخدمة">التقنيات المستخدمة
&lt;/h3>&lt;ul>
&lt;li>Win32 API&lt;/li>
&lt;li>WinHTTP (المكتبة القياسية)&lt;/li>
&lt;li>رسائل بصيغة JSON&lt;/li>
&lt;/ul>
&lt;h3 id="كود-عينة-نشر-في-slack">كود عينة (نشر في Slack)
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;span class="lnt">36
&lt;/span>&lt;span class="lnt">37
&lt;/span>&lt;span class="lnt">38
&lt;/span>&lt;span class="lnt">39
&lt;/span>&lt;span class="lnt">40
&lt;/span>&lt;span class="lnt">41
&lt;/span>&lt;span class="lnt">42
&lt;/span>&lt;span class="lnt">43
&lt;/span>&lt;span class="lnt">44
&lt;/span>&lt;span class="lnt">45
&lt;/span>&lt;span class="lnt">46
&lt;/span>&lt;span class="lnt">47
&lt;/span>&lt;span class="lnt">48
&lt;/span>&lt;span class="lnt">49
&lt;/span>&lt;span class="lnt">50
&lt;/span>&lt;span class="lnt">51
&lt;/span>&lt;span class="lnt">52
&lt;/span>&lt;span class="lnt">53
&lt;/span>&lt;span class="lnt">54
&lt;/span>&lt;span class="lnt">55
&lt;/span>&lt;span class="lnt">56
&lt;/span>&lt;span class="lnt">57
&lt;/span>&lt;span class="lnt">58
&lt;/span>&lt;span class="lnt">59
&lt;/span>&lt;span class="lnt">60
&lt;/span>&lt;span class="lnt">61
&lt;/span>&lt;span class="lnt">62
&lt;/span>&lt;span class="lnt">63
&lt;/span>&lt;span class="lnt">64
&lt;/span>&lt;span class="lnt">65
&lt;/span>&lt;span class="lnt">66
&lt;/span>&lt;span class="lnt">67
&lt;/span>&lt;span class="lnt">68
&lt;/span>&lt;span class="lnt">69
&lt;/span>&lt;span class="lnt">70
&lt;/span>&lt;span class="lnt">71
&lt;/span>&lt;span class="lnt">72
&lt;/span>&lt;span class="lnt">73
&lt;/span>&lt;span class="lnt">74
&lt;/span>&lt;span class="lnt">75
&lt;/span>&lt;span class="lnt">76
&lt;/span>&lt;span class="lnt">77
&lt;/span>&lt;span class="lnt">78
&lt;/span>&lt;span class="lnt">79
&lt;/span>&lt;span class="lnt">80
&lt;/span>&lt;span class="lnt">81
&lt;/span>&lt;span class="lnt">82
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;windows.h&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;winhttp.h&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;iostream&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#pragma comment(lib, &amp;#34;winhttp.lib&amp;#34;)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">bool&lt;/span> &lt;span class="nf">PostToSlack&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">const&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">webhookUrl&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="k">const&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">string&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">messageJson&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// URLの分解
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">URL_COMPONENTS&lt;/span> &lt;span class="n">urlComp&lt;/span>&lt;span class="p">{};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">wchar_t&lt;/span> &lt;span class="n">hostName&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">256&lt;/span>&lt;span class="p">];&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">wchar_t&lt;/span> &lt;span class="n">urlPath&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1024&lt;/span>&lt;span class="p">];&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">urlComp&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">dwStructSize&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="k">sizeof&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">urlComp&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">urlComp&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">lpszHostName&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">hostName&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">urlComp&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">dwHostNameLength&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">_countof&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hostName&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">urlComp&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">lpszUrlPath&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">urlPath&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">urlComp&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">dwUrlPathLength&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">_countof&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">urlPath&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">!&lt;/span>&lt;span class="n">WinHttpCrackUrl&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">webhookUrl&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">c_str&lt;/span>&lt;span class="p">(),&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">urlComp&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wcerr&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;URL分解に失敗しました&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nb">false&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// HTTPセッションと接続
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">HINTERNET&lt;/span> &lt;span class="n">hSession&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">WinHttpOpen&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;SlackPoster/1.0&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_ACCESS_TYPE_DEFAULT_PROXY&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_NO_PROXY_NAME&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_NO_PROXY_BYPASS&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">HINTERNET&lt;/span> &lt;span class="n">hConnect&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">WinHttpConnect&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hSession&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">hostName&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">urlComp&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">nPort&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">HINTERNET&lt;/span> &lt;span class="n">hRequest&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">WinHttpOpenRequest&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hConnect&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;POST&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">urlPath&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">NULL&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">WINHTTP_NO_REFERER&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_DEFAULT_ACCEPT_TYPES&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_FLAG_SECURE&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span> &lt;span class="n">headers&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;Content-Type: application/json&lt;/span>&lt;span class="se">\r\n&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">BOOL&lt;/span> &lt;span class="n">result&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">WinHttpSendRequest&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hRequest&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">headers&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">c_str&lt;/span>&lt;span class="p">(),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="n">LPVOID&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">messageJson&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">c_str&lt;/span>&lt;span class="p">(),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">messageJson&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">length&lt;/span>&lt;span class="p">(),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">messageJson&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">length&lt;/span>&lt;span class="p">(),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">0&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">!&lt;/span>&lt;span class="n">result&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cerr&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;送信リクエストに失敗しました&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nb">false&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WinHttpReceiveResponse&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hRequest&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nb">NULL&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">DWORD&lt;/span> &lt;span class="n">statusCode&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">DWORD&lt;/span> &lt;span class="n">size&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="k">sizeof&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">statusCode&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WinHttpQueryHeaders&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hRequest&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_QUERY_STATUS_CODE&lt;/span> &lt;span class="o">|&lt;/span> &lt;span class="n">WINHTTP_QUERY_FLAG_NUMBER&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_HEADER_NAME_BY_INDEX&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">statusCode&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">WINHTTP_NO_HEADER_INDEX&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// リソース解放
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">WinHttpCloseHandle&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hRequest&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WinHttpCloseHandle&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hConnect&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WinHttpCloseHandle&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hSession&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">statusCode&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">200&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">int&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span> &lt;span class="n">webhookUrl&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;https://hooks.slack.com/services/xxx/yyy/zzz&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="c1">// 自分のWebhookに置き換えてください
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">string&lt;/span> &lt;span class="n">message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">R&lt;/span>&lt;span class="s">&amp;#34;({&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s">&amp;#34;text&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s">&amp;#34;Hello from C++ :rocket:&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s">&amp;#34;username&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s">&amp;#34;C++ Bot&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s">&amp;#34;icon_emoji&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s">&amp;#34;:robot_face:&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">})&lt;/span>&lt;span class="s">&amp;#34;;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">PostToSlack&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">webhookUrl&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">message&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;投稿に成功しました！&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span> &lt;span class="k">else&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">cerr&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;投稿に失敗しました。&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="-تخصيص-رسائل-json">🧪 تخصيص رسائل JSON
&lt;/h2>&lt;p>في Slack Webhooks، يمكنك تضمين معلمات مثل هذه:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-json" data-lang="json">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;text&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;محتوى الإشعار&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;username&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;اسم البوت&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;icon_emoji&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;:rocket:&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;channel&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;#اسم_قناة_اختياري&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="-ملاحظات-إضافية">📌 ملاحظات إضافية
&lt;/h2>&lt;ul>
&lt;li>يجب تحديد &lt;code>Content-Type&lt;/code> كـ &lt;code>&amp;quot;application/json&amp;quot;&lt;/code>&lt;/li>
&lt;li>يتم تمرير رابط Webhook كـ &lt;code>wstring&lt;/code> كما هو (لا حاجة لتشفير URL)&lt;/li>
&lt;li>نظرًا لأن الاتصال يتم عبر HTTPS، لا تنس &lt;code>WINHTTP_FLAG_SECURE&lt;/code>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="-إضافة-مثال-على-التحقق-من-النشر-في-slack">🎉 إضافة: مثال على التحقق من النشر في Slack
&lt;/h2>&lt;p>سيظهر بهذا الشكل في Slack:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[C++ Bot]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Hello from C++ :rocket:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="-الملخص">✍️ الملخص
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>العنصر&lt;/th>
&lt;th>التفاصيل&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>طريقة النشر&lt;/td>
&lt;td>Webhook (Incoming Webhooks)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>مكتبة الاتصال&lt;/td>
&lt;td>WinHTTP&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>تنسيق البيانات&lt;/td>
&lt;td>JSON&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>المعلمات المتاحة&lt;/td>
&lt;td>text, username, icon_emoji, channel، إلخ.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>حتى إذا كنت تعتقد أن التكامل مع Slack باستخدام C++ صعب&amp;hellip; يمكنك إضافة بوت إشعارات بدءًا من اليوم!&lt;/p>
&lt;hr>
&lt;h2 id="-ما-التالي">🚀 ما التالي؟
&lt;/h2>&lt;p>إذا كنت مهتمًا، ففي المرة القادمة:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>إرفاق الملفات&lt;/strong>&lt;/li>
&lt;li>&lt;strong>واجهة مستخدم بأزرار&lt;/strong>&lt;/li>
&lt;li>&lt;strong>عمليات API مرنة عبر Slack App + OAuth2&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>يمكننا أيضًا تقديم تكامل متقدم مع Slack بخطوة أبعد مثل هذه!&lt;/p></description></item><item><title>السوق للداخل والمنتج للخارج</title><link>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/</link><pubDate>Tue, 15 Jul 2025 20:18:22 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post السوق للداخل والمنتج للخارج" />&lt;h1 id="السوق-للداخل-والمنتج-للخارج">السوق للداخل والمنتج للخارج
&lt;/h1>&lt;p>مرحباً، أنا كينجي.&lt;/p>
&lt;p>أحياناً في كتب الأعمال أو مقترحات المشاريع،&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;نحن نتبع استراتيجية السوق للداخل.&amp;rdquo;
&amp;ldquo;هذا نموذج المنتج للخارج.&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;p>أرى أشياء تقال مثل هذا لكن&amp;hellip;&lt;/p>
&lt;p>&lt;strong>لا، السوق للداخل؟ المنتج للخارج؟ أيهما أفضل؟؟؟&lt;/strong>&lt;/p>
&lt;p>ألا تشعر هكذا؟&lt;/p>
&lt;p>لذا هذه المرة، سأنظر إلى &amp;ldquo;السوق للداخل&amp;rdquo; و&amp;quot;المنتج للخارج&amp;quot; هؤلاء،
وأبسطها قدر الإمكان، وبنظرة ناقدة قليلاً.&lt;/p>
&lt;hr>
&lt;h2 id="باختصار">باختصار&amp;hellip;
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>السوق للداخل&lt;/strong> : الاستماع لصوت السوق (الماركت) وصنع المنتجات بناءً عليه.&lt;/li>
&lt;li>&lt;strong>المنتج للخارج&lt;/strong> : صنع شيء (منتج) نعتقد أنه جيد وتقديمه للعالم.&lt;/li>
&lt;/ul>
&lt;p>هذا كل شيء. بسيط.&lt;/p>
&lt;hr>
&lt;h2 id="على-سبيل-المثال-في-متجر-رامين">على سبيل المثال في متجر رامين&amp;hellip;
&lt;/h2>&lt;p>متجر رامين بأسلوب السوق للداخل،
&amp;ldquo;في الآونة الأخيرة رامين الإيكي رائج. حسناً، دعنا نملأه بالدهون والثوم!&amp;rdquo; هكذا.&lt;/p>
&lt;p>متجر رامين بأسلوب المنتج للخارج،
&amp;ldquo;رامين حليب الصويا والريحان والملح الذي صنعته، حقاً الأفضل لذا يجب أن تأكله&amp;rdquo; هكذا.&lt;/p>
&lt;hr>
&lt;h2 id="أيهما-الإجابة-الصحيحة-كلاهما-صحيح">أيهما الإجابة الصحيحة&amp;hellip; كلاهما صحيح
&lt;/h2>&lt;p>السوق للداخل يعتمد على تلبية احتياجات العملاء لذا &amp;ldquo;احتمالية البيع عالية&amp;rdquo;، لكن
من الصعب ولادة أفكار خارقة أو اختراقات.&lt;/p>
&lt;p>المنتج للخارج يمثل &amp;ldquo;تجسيد العدالة التي نؤمن بها&amp;rdquo; لذا فهو حاد وجذاب، لكن
إذا أخطأ الهدف لن يعجب أحد.&lt;/p>
&lt;hr>
&lt;h2 id="الآيفون-يبدو-كمنتج-للخارج">الآيفون يبدو كمنتج للخارج
&lt;/h2>&lt;p>في عصر كان يُقال فيه &amp;ldquo;لا نحتاج للهواتف الذكية&amp;rdquo;، أطلقت أبل الآيفون.&lt;/p>
&lt;p>هذا بالكامل &lt;strong>مثال ناجح للمنتج للخارج&lt;/strong> .&lt;/p>
&lt;p>لو استمعوا للمستخدمين، لقالوا &amp;ldquo;هاتف بدون لوحة مفاتيح؟ مستحيل&amp;rdquo; وانتهى الأمر.&lt;/p>
&lt;hr>
&lt;h2 id="لكن-المنتج-للخارج-يميل-ليصبح-إرضاء-للذات">لكن المنتج للخارج يميل ليصبح &amp;ldquo;إرضاء للذات&amp;rdquo;
&lt;/h2>&lt;p>أحياناً هناك شركات أو أشخاص يقولون &amp;ldquo;نحن من نوع المنتج للخارج&amp;rdquo;،&lt;/p>
&lt;blockquote>
&lt;p>لا، أليس هذا مجرد تجاهل للمستخدم؟&lt;/p>
&lt;/blockquote>
&lt;p>أفكر في هذا أحياناً.&lt;/p>
&lt;p>&amp;ldquo;صنعته لأنني أردت صنعه. لكنه لم يُبع&amp;rdquo; هذا،
ليس منتج للخارج بل &amp;ldquo;مخرج أناني&amp;rdquo;، أليس كذلك؟&lt;/p>
&lt;hr>
&lt;h2 id="السوق-للداخل-له-أيضا-فخاخ">السوق للداخل له أيضاً فخاخ
&lt;/h2>&lt;p>من ناحية أخرى، السوق للداخل ليس مثالياً أيضاً.&lt;/p>
&lt;p>إذا قلت &amp;ldquo;سأفعل كل ما يطلبه المستخدمون!&amp;quot;،
سيتزعزع جوهر المنتج، وفي النهاية قد لا يعجب أحداً.&lt;/p>
&lt;p>تضيف المزيد من الميزات، وفجأة تجد أداة فوضوية، شيء من هذا القبيل.&lt;/p>
&lt;hr>
&lt;h2 id="المذهل-حقا-هو-من-يفعل-كلاهما">المذهل حقاً هو &amp;ldquo;من يفعل كلاهما&amp;rdquo;
&lt;/h2>&lt;p>المنتج المذهل هو الذي يعرض بوضوح، &amp;ldquo;ما كان المستخدمون يريدونه حقاً، لكن لم يتمكنوا من التعبير عنه بالكلمات&amp;rdquo;.&lt;/p>
&lt;p>بمعنى آخر، &amp;ldquo;الحصول على تعاطف يشبه السوق للداخل، باستخدام فكرة المنتج للخارج&amp;rdquo;.&lt;/p>
&lt;p>هذا، من السهل قوله لكنه صعب للغاية.
لكن، إذا استطعت فعل هذا سيصبح فجأة &amp;ldquo;منتجاً أسطورياً&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="الخلاصة-رد-فعل-المستخدم-هو-كل-شيء-وليس-الكلمات">الخلاصة: رد فعل المستخدم هو كل شيء، وليس الكلمات
&lt;/h2>&lt;p>السوق للداخل أو المنتج للخارج.
أيهما صحيح هو سؤال لا معنى له حقاً.&lt;/p>
&lt;p>&lt;strong>&amp;ldquo;هل يصل لقلب المستخدم؟&amp;rdquo; هو كل شيء&lt;/strong> في رأيي.&lt;/p>
&lt;p>&amp;ldquo;نحن نتبع هذه الاستراتيجية&amp;rdquo;،
أعتقد أنه يكفي أن نتمكن من كتابته في مستندات التسويق لاحقاً.&lt;/p>
&lt;hr>
&lt;p>إذاً، كانت هذه قصة السوق للداخل والمنتج للخارج!&lt;/p>
&lt;p>بدون الانخداع بالكلمات الأجنبية الغريبة، التفكير في &amp;ldquo;في النهاية، كيف يمكنني إسعاد الناس؟&amp;rdquo; هو
الأصح في رأيي.&lt;/p>
&lt;p>وداعاً~.&lt;/p></description></item><item><title>حدسية كولاتز</title><link>http://kenji.blog/ar/p/collatz-conjecture/</link><pubDate>Tue, 15 Jul 2025 18:03:03 +0900</pubDate><guid>http://kenji.blog/ar/p/collatz-conjecture/</guid><description>&lt;img src="http://kenji.blog/p/%E3%82%B3%E3%83%A9%E3%83%83%E3%83%84%E4%BA%88%E6%83%B3/img.png" alt="Featured image of post حدسية كولاتز" />&lt;h1 id="هل-حقا-ينتهي-أي-رقم-بالعدد-1--اللعب-بحدسية-كولاتز">&amp;ldquo;هل حقًا ينتهي أي رقم بالعدد 1؟&amp;rdquo; ── اللعب بحدسية كولاتز
&lt;/h1>&lt;p>مرحبًا! أنا كينجي.&lt;/p>
&lt;p>سؤال مفاجئ: عندما تسمع &amp;ldquo;قاعدة تجعل أي رقم ينتهي في النهاية إلى 1&amp;rdquo;،
ألا يبدو ذلك غريبًا بعض الشيء؟&lt;/p>
&lt;blockquote>
&lt;p>على سبيل المثال، 19، أو 87، أو حتى 1000000.
إذا اتبعت قاعدة معينة وتلاعبت بالأرقام، لسبب ما تنتهي دائمًا عند &amp;ldquo;1&amp;rdquo;.&lt;/p>
&lt;/blockquote>
&lt;p>هذه القصة التي تشبه الحلم هي &lt;strong>حدسية كولاتز (Collatz Conjecture)&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="في-البداية-ما-هي-حدسية-كولاتز">في البداية، ما هي حدسية كولاتز؟
&lt;/h2>&lt;p>أولاً، دعني أقدم لك القواعد.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>البداية: اختر أي &lt;strong>عدد صحيح موجب&lt;/strong>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>العملية:&lt;/p>
&lt;ul>
&lt;li>إذا كان زوجيًا → اقسمه على النصف (n → n / 2)&lt;/li>
&lt;li>إذا كان فرديًا → اضربه في 3 وأضف 1 (n → 3n + 1)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>إذا كررت هذا مرارًا وتكرارًا، فإن التوقع هو أن &lt;strong>أي رقم سيصل في النهاية إلى 1&lt;/strong>.&lt;/p>
&lt;p>على سبيل المثال، إذا بدأنا بـ &lt;code>6&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>أصبح &amp;ldquo;1&amp;rdquo; بالفعل. مرحبًا بعودتك!&lt;/p>
&lt;hr>
&lt;h2 id="لنجرب-ذلك-بالرموز-كولاتز-باستخدام-بايثون">لنجرب ذلك بالرموز: كولاتز باستخدام بايثون
&lt;/h2>&lt;p>حسنًا، في مثل هذه الحالات، من الأسرع تجربة الكود!
دعنا نطبع &amp;ldquo;متتالية كولاتز&amp;rdquo; باستخدام بايثون.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">collatz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">steps&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">while&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">!=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">2&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">n&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">//&lt;/span> &lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">n&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">3&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">steps&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">steps&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># مثال: لنبدأ بـ 19&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">collatz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">19&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>عند التشغيل:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[19, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>يصل إلى 1 بنجاح.
لقد اتخذ طريقًا التفافيًا طويلاً، لكنه وصل إلى خط النهاية في النهاية!&lt;/p>
&lt;p>بالمناسبة، حتى لو بدأنا بـ 29، فإنه يصل إلى 1 بنفس الطريقة.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">pythonprint(collatz(29))
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>عند التشغيل:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>يستغرق الأمر 111 خطوة مذهلة!&lt;/p>
&lt;p>وعلاوة على ذلك، في بعض الأحيان يتضخم إلى أكثر من 9000 في الطريق.
هذا نمط يأخذ طريقًا التفافيًا ضخمًا قبل الوصول إلى خط النهاية.&lt;/p>
&lt;hr>
&lt;h2 id="إذن-ما-هو-الشيء-المذهل-في-النهاية">إذن، ما هو الشيء المذهل في النهاية؟
&lt;/h2>&lt;p>الشيء المذهل في هذه الحدسية هو،&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>على الرغم من أنها لم تُثبت، يبدو أنها تصل دائمًا إلى 1 بغض النظر عن الرقم الذي تستخدمه&lt;/strong>&lt;/p>
&lt;/blockquote>
&lt;p>هنا تكمن الروعة.&lt;/p>
&lt;p>ماذا؟ إذن، ماذا عن تريليون، أو كوادريليون&amp;hellip;؟&lt;/p>
&lt;p>لمن فكر في ذلك، أنت حاد الذكاء.
في الواقع، باستخدام أجهزة الكمبيوتر، تم التحقق من ذلك حتى &amp;ldquo;2 أُس 68&amp;rdquo;،
و &lt;strong>جميعها تصل إلى 1&lt;/strong>. أمر لا يصدق&amp;hellip;&lt;/p>
&lt;p>ولكن، &lt;strong>لم يُثبت نظريًا أن &amp;ldquo;كل شيء سيكون على هذا النحو&amp;rdquo;&lt;/strong>.
هذا ما يسمى &amp;ldquo;مشكلة غير محلولة&amp;rdquo; في عالم الرياضيات.&lt;/p>
&lt;hr>
&lt;h2 id="من-هو-السيد-كولاتز">من هو السيد كولاتز؟
&lt;/h2>&lt;p>والآن، بعد قراءة هذا الحد، قد تتساءل: &amp;ldquo;من هو كولاتز في المقام الأول؟&amp;rdquo;
سأقدمه لك بشكل صحيح!&lt;/p>
&lt;ul>
&lt;li>الاسم: &lt;strong>لوثار كولاتز (Lothar Collatz)&lt;/strong>&lt;/li>
&lt;li>الجنسية: ألماني&lt;/li>
&lt;li>سنة الميلاد: 1910 - 1990&lt;/li>
&lt;li>المسمى الوظيفي: عالم رياضيات (نشط في مجالات التحليل الدالي ونظرية الأعداد)&lt;/li>
&lt;/ul>
&lt;p>اقترح هذه الحدسية في عام 1937،
ومنذ ذلك الحين، لأكثر من 80 عامًا، &lt;strong>لم يتمكن أحد من إثباتها أو دحضها&lt;/strong>.&lt;/p>
&lt;p>بالمناسبة، هذه المشكلة بسيطة للغاية ولكنها عميقة جدًا،
حتى أن بول إيردوس (عالم الرياضيات الشهير) قال شيئًا كهذا.&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;الرياضيات ليست ناضجة بما يكفي للتعامل مع كولاتز بعد&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;p>بمعنى آخر، النظرية هي أن رياضيات البشرية لم تلحق بعد بهذا اللغز&amp;hellip;&lt;/p>
&lt;hr>
&lt;h2 id="الصيغ-الرياضية-المعقدة-ليست-ضرورية">&amp;ldquo;الصيغ الرياضية المعقدة&amp;rdquo; ليست ضرورية
&lt;/h2>&lt;p>الشيء الجيد في حدسية كولاتز هو أنه يمكن لـ &lt;strong>أي شخص اللعب بها&lt;/strong>.&lt;/p>
&lt;p>كل ما تحتاجه هو ورقة وقلم.
إذا كتبت كودًا بلغة بايثون، يمكنك اختباره تلقائيًا.
ومع ذلك، &lt;strong>يتحدى علماء الرياضيات البارزون ذلك بجدية&lt;/strong>.&lt;/p>
&lt;p>ألا يبدو ذلك مثيرًا؟&lt;/p>
&lt;hr>
&lt;h2 id="مكافأة-كود-لاختبار-العديد-من-الأرقام-دفعة-واحدة">مكافأة: كود لاختبار العديد من الأرقام دفعة واحدة
&lt;/h2>&lt;p>سأقوم أيضًا بتضمين كود لاختبار العديد من الأرقام معًا.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">21&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">steps&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">collatz&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">steps&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> (عدد الخطوات: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">steps&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">)&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هذا سيخرج متتالية كولاتز للأرقام من &amp;ldquo;1 إلى 20&amp;rdquo; دفعة واحدة.&lt;/p>
&lt;hr>
&lt;h2 id="الخلاصة-هذا-العالم-غريب-حقا">الخلاصة: هذا العالم غريب حقًا
&lt;/h2>&lt;p>إذن، هذه هي حدسية كولاتز.&lt;/p>
&lt;ul>
&lt;li>على الرغم من أنها بسيطة جدًا&lt;/li>
&lt;li>لا يمكن لأحد إثباتها&lt;/li>
&lt;li>إنها مشكلة كبيرة في عالم الرياضيات&lt;/li>
&lt;/ul>
&lt;p>لقد كان وجودًا يبدو ككتلة من الغموض.&lt;/p>
&lt;p>حتى المبتدئين في البرمجة يمكنهم تجربتها، لذا يرجى اللعب بها!&lt;/p>
&lt;hr>
&lt;h2 id="روابط-موصى-بها-للمهتمين">روابط موصى بها (للمهتمين)
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://ar.wikipedia.org/wiki/%d8%ad%d8%af%d8%b3%d9%8a%d8%a9_%d9%83%d9%88%d9%84%d8%a7%d8%aa%d8%b2" target="_blank" rel="noopener"
>ويكيبيديا: حدسية كولاتز&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://arxiv.org/abs/1909.03562" target="_blank" rel="noopener"
>ورقة تيرينس تاو (باللغة الإنجليزية)&lt;/a>&lt;/li>
&lt;li>قد يكون من الممتع أيضًا إنشاء نسخة مرئية باستخدام بايثون! (سأفعل ذلك إذا كان هناك طلب)&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>إذا كنت ترغب في معرفة المزيد من القصص حول &amp;ldquo;الرياضيات الغامضة × البرمجة&amp;rdquo;،
لا تتردد في طلب &amp;ldquo;أخبرني المزيد&amp;rdquo;.
قريبًا، سأقدم لك فرضية ريمان، الأعداد الأولية، والمزيد!&lt;/p>
&lt;hr>
&lt;p>📮 النهاية!&lt;/p>
&lt;hr></description></item><item><title>كيفية نشر رسائل إلى Microsoft Teams من C++ (WinHTTP + Graph API)</title><link>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/</link><pubDate>Mon, 14 Jul 2025 23:40:15 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية نشر رسائل إلى Microsoft Teams من C++ (WinHTTP + Graph API)" />&lt;h1 id="كيفية-نشر-رسائل-إلى-microsoft-teams-من-c-winhttp--graph-api">كيفية نشر رسائل إلى Microsoft Teams من C++ (WinHTTP + Graph API)
&lt;/h1>&lt;p>هل ترغب في النشر التلقائي في دردشة Microsoft Teams؟
يمكنك استخدام ** Microsoft Graph API ** لذلك.
في هذه المقالة، سنقدم ** أمثلة كود C++ باستخدام WinHTTP ** و ** خطوات مصادقة API المطلوبة ** خطوة بخطوة.&lt;/p>
&lt;hr>
&lt;h2 id="-التحضيرات-المطلوبة-إعدادات-مصادقة-microsoft-graph-api">🔧 التحضيرات المطلوبة (إعدادات مصادقة Microsoft Graph API)
&lt;/h2>&lt;h3 id="1-تسجيل-التطبيق-في-بوابة-azure">1. تسجيل التطبيق في بوابة Azure
&lt;/h3>&lt;p>أولاً، لاستخدام Microsoft Graph API، يجب عليك تسجيل تطبيقك في Azure.&lt;/p>
&lt;ol>
&lt;li>انتقل إلى &lt;a class="link" href="https://portal.azure.com" target="_blank" rel="noopener"
>Azure Portal&lt;/a>&lt;/li>
&lt;li>** &amp;ldquo;Microsoft Entra ID&amp;rdquo; ** &amp;gt; ** &amp;ldquo;＋إضافة&amp;rdquo; ** &amp;gt; ** &amp;ldquo;تسجيل التطبيق&amp;rdquo; ** &amp;gt; ** &amp;ldquo;تسجيل جديد&amp;rdquo; **&lt;/li>
&lt;li>أدخل اسم التطبيق الذي تريده وانقر على &amp;ldquo;تسجيل&amp;rdquo;&lt;/li>
&lt;/ol>
&lt;h3 id="2-إضافة-أذونات-api">2. إضافة أذونات API
&lt;/h3>&lt;ol>
&lt;li>انتقل إلى &amp;ldquo;أذونات API&amp;rdquo; في القائمة اليسرى&lt;/li>
&lt;li>في ** &amp;ldquo;Microsoft Graph&amp;rdquo; ** &amp;gt; ** &amp;ldquo;تحديد الأذونات&amp;rdquo; **، ابحث عن النطاقات التالية وانقر على ** &amp;ldquo;تحديث الأذونات&amp;rdquo; **&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>Chat.ReadWrite&lt;/li>
&lt;li>User.Read&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>※ إذا كنت ترغب في النشر في قناة، فستحتاج أيضًا إلى &lt;code>ChannelMessage.Send&lt;/code>&lt;/p>
&lt;/blockquote>
&lt;h3 id="3-تدوين-معرف-العميل-ومعرف-المستأجر">3. تدوين معرف العميل ومعرف المستأجر
&lt;/h3>&lt;p>احتفظ بالقيمتين التاليتين المعروضتين في علامة التبويب &amp;ldquo;نظرة عامة&amp;rdquo;:&lt;/p>
&lt;ul>
&lt;li>معرف التطبيق (العميل)&lt;/li>
&lt;li>معرف الدليل (المستأجر)&lt;/li>
&lt;/ul>
&lt;h3 id="4-إنشاء-سر-العميل">4. إنشاء سر العميل
&lt;/h3>&lt;ol>
&lt;li>انتقل إلى علامة التبويب &amp;ldquo;الشهادات والأسرار&amp;rdquo;&lt;/li>
&lt;li>&amp;ldquo;سر عميل جديد&amp;rdquo; &amp;gt; قم بتعيين تاريخ انتهاء الصلاحية وانقر على &amp;ldquo;إضافة&amp;rdquo;&lt;/li>
&lt;li>** تأكد من تدوين القيمة المعروضة (السر) على الفور **&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="-الحصول-على-رمز-الوصول-oauth2">🔐 الحصول على رمز الوصول (OAuth2)
&lt;/h2>&lt;p>سنستخدم تدفق &lt;code>client_credentials&lt;/code> للحصول على الرمز.
قم بتشغيل الأمر التالي باستخدام curl للحصول على رمز الوصول.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">curl -X POST ^
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> https://login.microsoftonline.com/&lt;span class="o">{&lt;/span>معرف المستأجر&lt;span class="o">}&lt;/span>/oauth2/v2.0/token ^
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -H &lt;span class="s2">&amp;#34;Content-Type: application/x-www-form-urlencoded&amp;#34;&lt;/span> ^
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -d &lt;span class="s2">&amp;#34;client_id={معرف العميل}&amp;#34;&lt;/span> ^
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -d &lt;span class="s2">&amp;#34;scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&amp;#34;&lt;/span> ^
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -d &lt;span class="s2">&amp;#34;client_secret={سر العميل}&amp;#34;&lt;/span> ^
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -d &lt;span class="s2">&amp;#34;grant_type=client_credentials&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="مثال-على-الاستجابة">مثال على الاستجابة
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-json" data-lang="json">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;token_type&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="s2">&amp;#34;Bearer&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;expires_in&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">3599&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;ext_expires_in&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">3599&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;access_token&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;eyJ0eXAiOiJKV1QiLCJub... (محذوف)&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>استخدم &lt;code>access_token&lt;/code> هذا لاستدعاء Microsoft Graph API.&lt;/p>
&lt;h2 id="-نموذج-c-للنشر-في-دردشة-teams">💬 نموذج C++ للنشر في دردشة Teams
&lt;/h2>&lt;p>فيما يلي مثال بلغة C++ للنشر في دردشة باستخدام WinHTTP.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;span class="lnt">36
&lt;/span>&lt;span class="lnt">37
&lt;/span>&lt;span class="lnt">38
&lt;/span>&lt;span class="lnt">39
&lt;/span>&lt;span class="lnt">40
&lt;/span>&lt;span class="lnt">41
&lt;/span>&lt;span class="lnt">42
&lt;/span>&lt;span class="lnt">43
&lt;/span>&lt;span class="lnt">44
&lt;/span>&lt;span class="lnt">45
&lt;/span>&lt;span class="lnt">46
&lt;/span>&lt;span class="lnt">47
&lt;/span>&lt;span class="lnt">48
&lt;/span>&lt;span class="lnt">49
&lt;/span>&lt;span class="lnt">50
&lt;/span>&lt;span class="lnt">51
&lt;/span>&lt;span class="lnt">52
&lt;/span>&lt;span class="lnt">53
&lt;/span>&lt;span class="lnt">54
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;windows.h&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;winhttp.h&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;iostream&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;string&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#pragma comment(lib, &amp;#34;winhttp.lib&amp;#34;)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">void&lt;/span> &lt;span class="nf">PostToTeamsChat&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">const&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">accessToken&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="k">const&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">chatId&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="k">const&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">message&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">HINTERNET&lt;/span> &lt;span class="n">hSession&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">WinHttpOpen&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;TeamsPoster/1.0&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">WINHTTP_ACCESS_TYPE_DEFAULT_PROXY&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_NO_PROXY_NAME&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">WINHTTP_NO_PROXY_BYPASS&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">HINTERNET&lt;/span> &lt;span class="n">hConnect&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">WinHttpConnect&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hSession&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;graph.microsoft.com&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">INTERNET_DEFAULT_HTTPS_PORT&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span> &lt;span class="n">endpoint&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;/v1.0/chats/&amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">chatId&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;/messages&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">HINTERNET&lt;/span> &lt;span class="n">hRequest&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">WinHttpOpenRequest&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hConnect&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;POST&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">endpoint&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">c_str&lt;/span>&lt;span class="p">(),&lt;/span> &lt;span class="nb">NULL&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WINHTTP_NO_REFERER&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">WINHTTP_DEFAULT_ACCEPT_TYPES&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">WINHTTP_FLAG_SECURE&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span> &lt;span class="n">jsonBody&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;{&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s">body&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s">: {&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s">content&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s">: &lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s">&amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">message&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="se">\&amp;#34;&lt;/span>&lt;span class="s">}}&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span> &lt;span class="n">headers&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;Authorization: Bearer &amp;#34;&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">accessToken&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="se">\r\n&lt;/span>&lt;span class="s">Content-Type: application/json&lt;/span>&lt;span class="se">\r\n&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">BOOL&lt;/span> &lt;span class="n">bResult&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">WinHttpSendRequest&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hRequest&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">headers&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">c_str&lt;/span>&lt;span class="p">(),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">DWORD&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1L&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="n">LPVOID&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="n">jsonBody&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">c_str&lt;/span>&lt;span class="p">(),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">DWORD&lt;/span>&lt;span class="p">)(&lt;/span>&lt;span class="n">jsonBody&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">length&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="k">sizeof&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="kt">wchar_t&lt;/span>&lt;span class="p">)),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="n">DWORD&lt;/span>&lt;span class="p">)(&lt;/span>&lt;span class="n">jsonBody&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">length&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="k">sizeof&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="kt">wchar_t&lt;/span>&lt;span class="p">)),&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">bResult&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WinHttpReceiveResponse&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hRequest&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nb">NULL&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">DWORD&lt;/span> &lt;span class="n">dwSize&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WinHttpQueryDataAvailable&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hRequest&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">dwSize&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">dwSize&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span> &lt;span class="n">response&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">dwSize&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="k">sizeof&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="kt">wchar_t&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">DWORD&lt;/span> &lt;span class="n">dwDownloaded&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WinHttpReadData&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hRequest&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">response&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">dwSize&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">dwDownloaded&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wcout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;Response: &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">response&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WinHttpCloseHandle&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hRequest&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WinHttpCloseHandle&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hConnect&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">WinHttpCloseHandle&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hSession&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">int&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span> &lt;span class="n">access&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span> &lt;span class="n">chatId&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;19:&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wstring&lt;/span> &lt;span class="n">message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;Hello from C++!&amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wcout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;Enter your access token: &amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">getline&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wcin&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">access&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wcout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="sa">L&lt;/span>&lt;span class="s">&amp;#34;Enter chat ID: &amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">getline&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">wcin&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">chatId&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PostToTeamsChat&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">access&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">chatId&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">message&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="-كيفية-الحصول-على-معرف-الدردشة">🔍 كيفية الحصول على معرف الدردشة
&lt;/h2>&lt;p>يمكنك التحقق من معرف الدردشة باستخدام &lt;code>GET /v1.0/me/chats&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">curl -X GET ^
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> https://graph.microsoft.com/v1.0/me/chats ^
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -H &amp;#34;Authorization: Bearer {access_token}&amp;#34; ^
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -H &amp;#34;Content-Type: application/json&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="مثال-على-الاستجابة-1">مثال على الاستجابة
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;span class="lnt">9
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-json" data-lang="json">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;value&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;id&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;19:abc123xyz@thread.v2&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;topic&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">null&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;chatType&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;oneOnOne&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="-ملاحظات">📌 ملاحظات
&lt;/h2>&lt;ul>
&lt;li>هذا النموذج هو تنفيذ بالحد الأدنى. في بيئة الإنتاج:
&lt;ul>
&lt;li>معالجة انتهاء صلاحية الرمز&lt;/li>
&lt;li>التحقق من شهادة HTTPS&lt;/li>
&lt;li>تعزيز معالجة الأخطاء&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>للنشر في القنوات، استخدم &lt;code>teams/{team-id}/channels/{channel-id}/messages&lt;/code>.&lt;/li>
&lt;li>لإرسال المرفقات، ستحتاج إلى معالجة متعددة الأجزاء أو Graph Drive API.&lt;/li>
&lt;/ul>
&lt;h2 id="-الخلاصة">📎 الخلاصة
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>الميزة&lt;/th>
&lt;th>الوصف&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Graph API&lt;/td>
&lt;td>واجهة برمجة التطبيقات الرسمية للتفاعل مع Teams&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>تسجيل التطبيق&lt;/td>
&lt;td>إجراءات المصادقة المطلوبة على Azure&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>رمز الوصول&lt;/td>
&lt;td>تم الحصول عليه عبر OAuth2 واستخدامه في الطلبات&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>تنفيذ C++&lt;/td>
&lt;td>استدعاء Graph API باستخدام WinHTTP&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="-الخطوات-التالية">🚀 الخطوات التالية
&lt;/h2>&lt;p>كأمثلة أكثر تقدمًا، يمكنك أيضًا:&lt;/p>
&lt;ul>
&lt;li>النشر في قنوات الفريق (&lt;code>/teams/{team-id}/channels/...&lt;/code>)&lt;/li>
&lt;li>النشر مع المرفقات&lt;/li>
&lt;li>التبديل بين حسابات الروبوت وحسابات المستخدمين&lt;/li>
&lt;li>تنفيذ C++ كامل يشمل الحصول على الرمز&lt;/li>
&lt;/ul>
&lt;p>إذا كان لديك أي طلبات، فلا تتردد في ترك تعليق!&lt;/p></description></item><item><title>حول علامة الإلزامية في نماذج الإدخال</title><link>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/</link><pubDate>Mon, 14 Jul 2025 13:47:51 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post حول علامة الإلزامية في نماذج الإدخال" />&lt;p>لقد قمنا بتلخيص المعلومات حول علامة &amp;ldquo;مطلوب&amp;rdquo; أو الإلزامية في واجهات المستخدم (النماذج) في الخارج، مع مواد توجيهية لواجهة المستخدم.&lt;/p>
&lt;hr>
&lt;h2 id="-علامات-الإلزامية-الرئيسية-وأفضل-الممارسات">📌 علامات الإلزامية الرئيسية وأفضل الممارسات
&lt;/h2>&lt;ol>
&lt;li>
&lt;p>&lt;strong>استخدام علامة النجمة (*)&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>هو الأكثر شيوعًا وانتشارًا، حيث يتم وضع &amp;ldquo;*&amp;rdquo; على الحقول المطلوبة.&lt;/li>
&lt;li>ومع ذلك، &lt;em>&lt;em>من الضروري وجود شرح في بداية النموذج مثل &amp;ldquo;&lt;/em> حقل مطلوب&amp;rdquo;&lt;/em>* (&lt;a class="link" href="https://www.nngroup.com/articles/required-fields/?utm_source=chatgpt.com" title="Marking Required Fields in Forms - NN/g"
target="_blank" rel="noopener"
>Nielsen Norman Group&lt;/a>, &lt;a class="link" href="https://www.csun.edu/universal-design-center/web-accessibility-criteria-required-fields?utm_source=chatgpt.com" title="Web Accessibility Criteria - Required Fields - CSUN"
target="_blank" rel="noopener"
>California State University, Northridge&lt;/a>).&lt;/li>
&lt;li>هناك أيضًا أمثلة تستخدم الألوان للتأكيد (مثل النص الأحمر).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>تحديد &amp;ldquo;Required&amp;rdquo; أو &amp;ldquo;(required)&amp;rdquo; بوضوح في التسمية&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>عن طريق إضافة كلمة &amp;ldquo;Required&amp;rdquo; في التسمية (Label)، يمكن توضيح ذلك لقارئات الشاشة، مما يحسن إمكانية الوصول (&lt;a class="link" href="https://www.deque.com/blog/anatomy-of-accessible-forms-required-form-fields/?utm_source=chatgpt.com" title="The Anatomy of Accessible Forms: Required Form Fields"
target="_blank" rel="noopener"
>Deque&lt;/a>).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>الاستخدام المشترك لسمات ARIA وسمة &lt;code>required&lt;/code> في HTML5&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>بالإضافة إلى العرض المرئي، باستخدام &lt;code>aria-required=&amp;quot;true&amp;quot;&lt;/code> و &lt;code>&amp;lt;input required&amp;gt;&lt;/code>، يمكن توصيل الإلزامية برمجيًا (&lt;a class="link" href="https://www.deque.com/blog/anatomy-of-accessible-forms-required-form-fields/?utm_source=chatgpt.com" title="The Anatomy of Accessible Forms: Required Form Fields"
target="_blank" rel="noopener"
>Deque&lt;/a>).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>استخدام &amp;ldquo;(optional)&amp;rdquo; لتحديد الحقول الاختيارية بوضوح&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>هناك أيضًا طريقة لتوضيح الحقول الاختيارية باستخدام &amp;ldquo;(optional)&amp;rdquo; بدلاً من الحقول المطلوبة، وهي فعالة عند خلط الاثنين.&lt;/li>
&lt;li>ومع ذلك، يشير Nielsen‑Norman إلى أنه &amp;ldquo;من الأسهل الحكم إذا تم توضيح الإلزامية أيضًا&amp;rdquo; (&lt;a class="link" href="https://www.tpgi.com/doing-whats-required-indicating-mandatory-fields-in-an-accessible-way/?utm_source=chatgpt.com" title="Doing what&amp;#39;s required: Indicating mandatory fields in an accessible ..."
target="_blank" rel="noopener"
>TPGi&lt;/a>).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="-ملخص-مواد-توجيهات-واجهة-المستخدم">✅ ملخص مواد توجيهات واجهة المستخدم
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>المصدر&lt;/th>
&lt;th>المحتوى&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>NN/g: Marking Required Fields in Forms&lt;/strong>&lt;/td>
&lt;td>يُنصح باستخدام النجمة + نص توضيحي، ويُعتبر عرض الاختياري فقط غير ودي (&lt;a class="link" href="https://www.nngroup.com/articles/required-fields/?utm_source=chatgpt.com" title="Marking Required Fields in Forms - NN/g"
target="_blank" rel="noopener"
>Nielsen Norman Group&lt;/a>).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Deque (Anatomy of Accessible Forms)&lt;/strong>&lt;/td>
&lt;td>・استخدام نص &amp;ldquo;Required&amp;rdquo; أو صورة في التسمية.&lt;br>・تم التصريح بأن الإشارة باللون وحده غير كافية.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>W3C Techniques (H90)&lt;/strong>&lt;/td>
&lt;td>تضمين النجمة أو &amp;ldquo;(required)&amp;rdquo; في التسمية، وتحديد المعنى في بداية النموذج.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>TPGi (Doing what&amp;rsquo;s required)&lt;/strong>&lt;/td>
&lt;td>مع مراعاة إمكانية الوصول، تم تقييم إدراج النجمة + سمة ARIA + نص التسمية على أنه الأمثل.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>دليل Contensis لتجربة مستخدم النماذج&lt;/strong>&lt;/td>
&lt;td>تم تلخيصه بإيجاز بأن وضع العلامات المتسق (* أو (optional)) أمر مهم.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="-النهج-الموصى-به-في-التنفيذ">✅ النهج الموصى به في التنفيذ
&lt;/h2>&lt;ul>
&lt;li>
&lt;p>إضافة نص توضيحي &lt;strong>في بداية النموذج&lt;/strong> :&lt;/p>
&lt;blockquote>
&lt;p>Fields marked with * are required.
(أو بشكل جماعي &amp;ldquo;All fields are required&amp;rdquo;، وإذا كان هناك خيار اختياري &amp;ldquo;unless marked optional&amp;rdquo;)&lt;/p>
&lt;/blockquote>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>إضافة تسمية (Label)&lt;/strong> :&lt;/p>
&lt;ul>
&lt;li>الكتابة مثل &lt;code>First Name *&lt;/code> أو &lt;code>Email (required)&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>سمات ARIA و HTML5&lt;/strong> :&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-html" data-lang="html">&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">label&lt;/span> &lt;span class="na">for&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;email&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>Email &lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">abbr&lt;/span> &lt;span class="na">title&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;required&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>*&lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">abbr&lt;/span>&lt;span class="p">&amp;gt;&amp;lt;/&lt;/span>&lt;span class="nt">label&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">input&lt;/span> &lt;span class="na">id&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;email&amp;#34;&lt;/span> &lt;span class="na">required&lt;/span> &lt;span class="na">aria-required&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;true&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/li>
&lt;li>
&lt;p>&lt;strong>لا تعتمد على اللون فقط&lt;/strong> : قم بدعم العرض المرئي والبرمجي معًا.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="-روابط-مرجعية-مواد-إرشادات-واجهة-المستخدم">🔗 روابط مرجعية (مواد إرشادات واجهة المستخدم)
&lt;/h2>&lt;ul>
&lt;li>NN/g: &lt;em>Marking Required Fields in Forms&lt;/em> (&lt;a class="link" href="https://www.csun.edu/universal-design-center/web-accessibility-criteria-required-fields?utm_source=chatgpt.com" title="Web Accessibility Criteria - Required Fields - CSUN"
target="_blank" rel="noopener"
>California State University, Northridge&lt;/a>, &lt;a class="link" href="https://www.nngroup.com/articles/required-fields/?utm_source=chatgpt.com" title="Marking Required Fields in Forms - NN/g"
target="_blank" rel="noopener"
>Nielsen Norman Group&lt;/a>, &lt;a class="link" href="https://www.deque.com/blog/anatomy-of-accessible-forms-required-form-fields/?utm_source=chatgpt.com" title="The Anatomy of Accessible Forms: Required Form Fields"
target="_blank" rel="noopener"
>Deque&lt;/a>)&lt;/li>
&lt;li>Deque: &lt;em>Anatomy of Accessible Forms&lt;/em> (&lt;a class="link" href="https://www.deque.com/blog/anatomy-of-accessible-forms-required-form-fields/?utm_source=chatgpt.com" title="The Anatomy of Accessible Forms: Required Form Fields"
target="_blank" rel="noopener"
>Deque&lt;/a>)&lt;/li>
&lt;li>W3C Techniques: &lt;em>H90 Indicating required form controls&lt;/em> (&lt;a class="link" href="https://www.w3.org/TR/WCAG20-TECHS/H90.html?utm_source=chatgpt.com" title="H90: Indicating required form controls using label or legend - W3C"
target="_blank" rel="noopener"
>W3C&lt;/a>)&lt;/li>
&lt;li>TPGi: &lt;em>Indicating mandatory fields accessibly&lt;/em> (&lt;a class="link" href="https://www.tpgi.com/doing-whats-required-indicating-mandatory-fields-in-an-accessible-way/?utm_source=chatgpt.com" title="Doing what&amp;#39;s required: Indicating mandatory fields in an accessible ..."
target="_blank" rel="noopener"
>TPGi&lt;/a>)&lt;/li>
&lt;li>Contensis: &lt;em>UX Forms Guidelines&lt;/em> (&lt;a class="link" href="https://www.contensis.com/community/blog/ux-forms-guidelines?utm_source=chatgpt.com" title="Build better web forms: 15 UX guidelines that work - Contensis"
target="_blank" rel="noopener"
>Contensis&lt;/a>)&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>إذا لزم الأمر، يمكننا أيضًا تقديم أمثلة محددة لأكواد HTML/CSS، وقوالب تصميم مكونات واجهة المستخدم لـ Sketch أو Figma، وما إلى ذلك. لا تتردد في استشارتنا!&lt;/p></description></item><item><title>كيفية تثبيت Gemini CLI في بيئة Windows</title><link>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/</link><pubDate>Sun, 13 Jul 2025 23:49:56 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية تثبيت Gemini CLI في بيئة Windows" />&lt;h1 id="للمبتدئينكيفية-تثبيت-gemini-cli-على-windows">【للمبتدئين】كيفية تثبيت Gemini CLI على Windows
&lt;/h1>&lt;p>&amp;ldquo;Gemini CLI&amp;rdquo; الذي يتيح استخدام الذكاء الاصطناعي التوليدي من Google &amp;ldquo;Gemini&amp;rdquo; من سطر الأوامر.
في هذا المقال، سنشرح خطوات تثبيت Gemini CLI في بيئة Windows بأبسط طريقة ممكنة.&lt;/p>
&lt;hr>
&lt;h2 id="1-التحضير-المسبق-تثبيت-nodejs-و-npm">1. التحضير المسبق: تثبيت Node.js و npm
&lt;/h2>&lt;p>أولاً، نظراً لأن Gemini CLI يعمل في بيئة تسمى &amp;ldquo;Node.js&amp;rdquo;، يجب تثبيت ما يلي مسبقاً:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Node.js&lt;/strong>&lt;/li>
&lt;li>&lt;strong>npm (أداة إدارة الحزم المرفقة مع Node.js)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>npx (أداة تنفيذ الأوامر المضمنة في npm)&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>يرجى تنزيل إصدار Windows من Node.js من الموقع الرسمي التالي (نوصي بإصدار LTS):&lt;/p>
&lt;p>👉 &lt;a class="link" href="https://nodejs.org/" target="_blank" rel="noopener"
>موقع Node.js الرسمي&lt;/a>&lt;/p>
&lt;p>بعد اكتمال التثبيت، دعنا نتحقق مما إذا كان التثبيت صحيحاً باستخدام الأوامر التالية.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">node&lt;/span> &lt;span class="n">-v&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">npm&lt;/span> &lt;span class="n">-v&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="2-تشغيل-powershell">2. تشغيل PowerShell
&lt;/h2>&lt;p>لاستخدام Gemini CLI على Windows، من الشائع العمل باستخدام PowerShell.
قم بتشغيله بكتابة &amp;ldquo;PowerShell&amp;rdquo; من قائمة ابدأ.&lt;/p>
&lt;hr>
&lt;h2 id="3-تثبيت-gemini-cli">3. تثبيت Gemini CLI
&lt;/h2>&lt;p>انسخ والصق الأمر التالي في PowerShell لتشغيله:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">npx @google/gemini-cli
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هذا الأمر مخصص للتشغيل المؤقت لحزمة Gemini CLI التي أصدرتها Google.
قد يُطلب منك إجراء الإعدادات الأولية أو تسجيل الدخول إذا لزم الأمر.&lt;/p>
&lt;p>※ قد يستغرق الأمر بضع دقائق في المرة الأولى. في حالة حدوث خطأ، يرجى إعادة التحقق من Node.js وبيئة الشبكة.&lt;/p>
&lt;hr>
&lt;h2 id="4-اكتمل-التثبيت-الخطوة-التالية">4. اكتمل التثبيت! الخطوة التالية
&lt;/h2>&lt;p>بذلك، تم تثبيت Gemini CLI على Windows.
من الآن فصاعداً، من خلال استخدام Gemini من سطر الأوامر، ستكون العديد من العمليات مثل إنشاء النصوص وإكمال التعليمات البرمجية ممكنة.&lt;/p>
&lt;p>إذا كنت ترغب في التحقق من الوثائق الرسمية أو المساعدة، يمكنك أيضاً الاستفادة من أوامر مثل:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">npx @google/gemini-cli --help
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="الخلاصة">الخلاصة
&lt;/h2>&lt;p>دعونا نراجع خطوات تقديم Gemini CLI إلى Windows.&lt;/p>
&lt;ol>
&lt;li>تثبيت Node.js و npm&lt;/li>
&lt;li>تشغيل PowerShell&lt;/li>
&lt;li>تنفيذ &lt;code>npx @google/gemini-cli&lt;/code>&lt;/li>
&lt;/ol>
&lt;p>الآن أصبح كل شيء جاهزاً!
إذا كنت ترغب في استخدام الذكاء الاصطناعي التوليدي محلياً، فيرجى تجربة هذه الخطوات.&lt;/p></description></item><item><title>تم تجديد جائزة Microsoft MVP (2025-2026)</title><link>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/</link><pubDate>Sun, 13 Jul 2025 22:01:15 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post تم تجديد جائزة Microsoft MVP (2025-2026)" />&lt;h1 id="لقد-تم-تجديد-جائزتي-كـ-microsoft-mvp-2025-2026">لقد تم تجديد جائزتي كـ Microsoft MVP (2025-2026)!
&lt;/h1>&lt;p>مرحبًا، أنا kenji.&lt;/p>
&lt;p>لدي إعلان. هذا العام تمكنت من الحصول على &lt;strong>Microsoft MVP (Most Valuable Professional)&lt;/strong> مرة أخرى. هذه هي المرة &lt;strong>التاسعة&lt;/strong> التي أحصل فيها على الجائزة.&lt;/p>
&lt;p>شكرًا جزيلاً لكل من يدعمني دائمًا.&lt;/p>
&lt;hr>
&lt;h2 id="ما-هو-microsoft-mvp">ما هو Microsoft MVP؟
&lt;/h2>&lt;p>قد يتبادر إلى ذهن الكثيرين أفضل لاعب في الرياضة عند سماع &amp;ldquo;MVP&amp;rdquo;، لكن الجائزة هنا هي &lt;strong>لقب يُمنح للأشخاص الذين ساهموا في مجتمع التكنولوجيا الخاص بـ Microsoft&lt;/strong> .&lt;/p>
&lt;p>على وجه التحديد،&lt;/p>
&lt;ul>
&lt;li>نشر المعلومات عبر المدونات التقنية ووسائل التواصل الاجتماعي&lt;/li>
&lt;li>نشر أكواد نموذجية على GitHub&lt;/li>
&lt;li>التحدث في جلسات الدراسة والمؤتمرات&lt;/li>
&lt;li>الإجابة على مواقع الأسئلة والأجوبة&lt;/li>
&lt;li>التبادل التقني والتعاون مع المطورين في الخارج&lt;/li>
&lt;li>المشاركة والنشر في المجتمعات التي تربط المهندسين&lt;/li>
&lt;/ul>
&lt;p>وهكذا، فهو نظام يقيّم الأنشطة التي &amp;ldquo;تشارك فيها معرفتك وخبراتك من أجل شخص آخر&amp;rdquo;.&lt;/p>
&lt;p>الفائزون موجودون في جميع أنحاء العالم، لكن العدد المختار كل عام محدود، وتجديد الجائزة ليس سهلاً على الإطلاق. لهذا السبب، يُشرفني حقًا أن يتم الاعتراف بي بهذه الطريقة.&lt;/p>
&lt;hr>
&lt;h2 id="ما-ركزت-عليه-خلال-العام-الماضي">ما ركزت عليه خلال العام الماضي
&lt;/h2>&lt;p>هذا العام، ركزت على نشر المعلومات مع مراعاة &lt;strong>&amp;ldquo;وضوح&amp;rdquo; التكنولوجيا و &amp;ldquo;سهولة الوصول&amp;rdquo; إليها&lt;/strong> .&lt;/p>
&lt;ul>
&lt;li>نشر أكواد نموذجية عملية على GitHub&lt;/li>
&lt;li>التحدث في جلسات الدراسة والمؤتمرات (سواء محلياً أو دولياً)&lt;/li>
&lt;li>نشر منتظم للمعلومات من خلال المدونات التقنية ووسائل التواصل الاجتماعي&lt;/li>
&lt;li>نشاط الإجابة المستمر على مواقع الأسئلة والأجوبة&lt;/li>
&lt;li>مشاركة المعرفة على مواقع مجتمعات المهندسين&lt;/li>
&lt;li>التواصل والتحقق المشترك مع المهندسين الأجانب&lt;/li>
&lt;/ul>
&lt;p>من بينها، نشر الكود على GitHub كان لا يُنسى حيث تلقيت تعليقات مثل &amp;ldquo;لقد ساعدني ذلك لأنني كنت أعاني من نفس المشكلة!&amp;quot;، وقد جعلني ذلك أدرك أن جهودي تساعد الآخرين في تطويرهم.&lt;/p>
&lt;p>بالإضافة إلى ذلك، في العروض التقديمية للفعاليات، تلقيت في بعض الأحيان ملاحظات مثل &amp;ldquo;كان من السهل فهمه حتى للمبتدئين&amp;rdquo;، وكانت فرصة جيدة للتفكير في &amp;ldquo;ما هي الشروحات التقنية التي تصل إلى الجمهور؟&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="نحو-العام-المقبل">نحو العام المقبل
&lt;/h2>&lt;p>التطور التقني سريع للغاية، ومجرد مواكبته يمثل تحديًا. ومع ذلك، أعتقد أن هناك قيمة كبيرة في تقديم &lt;strong>معرفة حقيقية كـ &amp;ldquo;معلومات أولية&amp;rdquo;&lt;/strong> ، مثل التجارب الفعلية التي اكتسبتها من خلال التجربة والأخطاء، والنقاط التي تعثرت فيها.&lt;/p>
&lt;p>في العام المقبل، أود تحدي نفسي لنشر &lt;strong>&amp;ldquo;محتوى تقني سهل الفهم بصريًا&amp;rdquo; يدمج مقاطع الفيديو والرسوم التوضيحية&lt;/strong> . آمل أن أتمكن من زيادة إنتاجي للمساعدة في حل لحظات &amp;ldquo;لقد علقت!&amp;rdquo; لشخص ما، ولو قليلاً.&lt;/p>
&lt;hr>
&lt;h2 id="أخيرا">أخيرًا
&lt;/h2>&lt;p>لقب MVP هو مجرد خطوة في الطريق.&lt;/p>
&lt;p>سأستمر بالسرعة التي تناسبني دون إرهاق نفسي.
ولكن بهدف أن أكون مفيدًا لشخص ما.&lt;/p>
&lt;p>&amp;ldquo;كان البحث عنه مفيدًا&amp;rdquo;
&amp;ldquo;هذا النموذج يعمل!&amp;rdquo;
&amp;ldquo;كان هذا الشرح سهل الفهم&amp;rdquo;&lt;/p>
&lt;p>أريد أن أستمر في كوني مهندسًا يمكن للناس أن يقولوا عنه مثل هذه الأشياء.&lt;/p>
&lt;p>شكرًا لكم على دعمكم المستمر.&lt;/p>
&lt;ul>
&lt;li>GitHub: &lt;a class="link" href="https://github.com/kenjinote" target="_blank" rel="noopener"
>https://github.com/kenjinote&lt;/a>&lt;/li>
&lt;li>مدونة التكنولوجيا: &lt;a class="link" href="https://hack.jp" target="_blank" rel="noopener"
>https://hack.jp&lt;/a>&lt;/li>
&lt;li>X: &lt;a class="link" href="https://twitter.com/kenjinote" target="_blank" rel="noopener"
>https://twitter.com/kenjinote&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>مزايا وعيوب إنشاء برامج باستخدام Win32API + C++</title><link>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/</link><pubDate>Sat, 12 Jul 2025 12:30:35 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post مزايا وعيوب إنشاء برامج باستخدام Win32API + C++" />&lt;h1 id="جاذبية-وتحديات-التطوير-باستخدام-win32api--c">جاذبية وتحديات التطوير باستخدام Win32API + C++
&lt;/h1>&lt;p>بالنسبة لأولئك الذين يرغبون في إتقان تطوير تطبيقات Windows، لا يزال &lt;strong>Win32API + C++&lt;/strong> خيارا قويا.
تجمع هذه المجموعة، التي تتيح لك التفاعل مع نظام التشغيل بأقرب مسافة، بين السرعة العالية والمرونة.&lt;/p>
&lt;p>من ناحية أخرى، نظرا لأنها تختلف اختلافا كبيرا عن أساليب التطوير الحديثة، فإن إتقانها يتطلب أيضا تصميما.&lt;/p>
&lt;p>في هذه الصفحة، سنشرح المزايا والعيوب بطريقة سهلة الفهم من &lt;strong>منظور مطور تطبيقات Windows نشط&lt;/strong> .&lt;/p>
&lt;hr>
&lt;h2 id="المزايا">المزايا
&lt;/h2>&lt;h3 id="تنفيذ-أصلي-فائق-السرعة">تنفيذ أصلي فائق السرعة
&lt;/h3>&lt;p>نظرا لأن C++ و Win32API يعملان في الطبقة الأقرب لنظام التشغيل، فلا يوجد تقريبا أي عبء إضافي.
كفاءة استخدام وحدة المعالجة المركزية والذاكرة عالية جدا، وتتميز بـ &lt;strong>سرعة تنفيذ ساحقة&lt;/strong> .&lt;/p>
&lt;h3 id="مرونة-وحرية-عالية">مرونة وحرية عالية
&lt;/h3>&lt;p>يمكنك &lt;strong>التحكم الدقيق بنفسك&lt;/strong> في كل سلوك للتطبيق، مثل التحكم في النوافذ، والمعالجة غير المتزامنة، وتكامل COM، وإدارة العمليات.
من الممكن أيضا بناء أدوات متخصصة لغرض معين، أو إطارات عمل مخصصة خاصة بك.&lt;/p>
&lt;h3 id="سهل-التوزيع-بدون-الحاجة-إلى-وقت-تشغيل">سهل التوزيع بدون الحاجة إلى وقت تشغيل
&lt;/h3>&lt;p>نظرا لعدم الحاجة إلى أوقات تشغيل خارجية مثل .NET أو Java، &lt;strong>يمكن توزيعه كملف تنفيذي واحد فقط&lt;/strong> .
من الصعب حدوث مشاكل عند إعادة التوزيع، ومن الجذاب أنه من السهل تشغيله حتى بدون مثبت.&lt;/p>
&lt;h3 id="يمكن-إنشاء-تطبيقات-خفيفة-الوزن">يمكن إنشاء تطبيقات خفيفة الوزن
&lt;/h3>&lt;p>نظرا لأنه يتطلب فقط الحد الأدنى من التكوين، فإن الميزة هي أن &lt;strong>بصمة الذاكرة صغيرة جدا&lt;/strong> .
يعمل بشكل مريح حتى على أجهزة الكمبيوتر ذات المواصفات المنخفضة وبيئات الأجهزة الافتراضية.&lt;/p>
&lt;h3 id="تحكم-متقدم-على-مستوى-نظام-التشغيل-ممكن">تحكم متقدم على مستوى نظام التشغيل ممكن
&lt;/h3>&lt;p>يمكن أيضا تحقيق &lt;strong>تحكم يصعب باستخدام اللغات والمكتبات العادية&lt;/strong> ، مثل الخطافات العالمية للماوس ولوحة المفاتيح، والضبط الدقيق لأنماط النوافذ، وعمليات قائمة النظام.&lt;/p>
&lt;hr>
&lt;h2 id="العيوب">العيوب
&lt;/h2>&lt;h3 id="كفاءة-تطوير-منخفضة">كفاءة تطوير منخفضة
&lt;/h3>&lt;p>يجب أن يتم بناء واجهة المستخدم الرسومية بالكامل من خلال الكود، و &lt;strong>قد يتطلب إنشاء زر واحد عشرات الأسطر من التعليمات البرمجية&lt;/strong> .
تعديل التصميم عند التغيير مرهق أيضا، والإنتاجية منخفضة مقارنة بالتطوير باستخدام أطر عمل واجهة المستخدم.&lt;/p>
&lt;h3 id="الصيانة-تميل-إلى-الانخفاض">الصيانة تميل إلى الانخفاض
&lt;/h3>&lt;p>يحتوي على الكثير من &lt;strong>التعليمات البرمجية ذات البنية الخاصة&lt;/strong> ، مثل حلقات الرسائل وإجراءات النوافذ، مما يجعل من الصعب قراءتها وإعادة استخدامها.
هناك أيضا جوانب تجعلها غير مناسبة لتطوير الفريق أو الصيانة طويلة الأجل.&lt;/p>
&lt;h3 id="التكيف-مع-واجهة-المستخدم-الحديثة-مرهق">التكيف مع واجهة المستخدم الحديثة مرهق
&lt;/h3>&lt;p>&lt;strong>من الصعب التكيف مع تجربة المستخدم المطلوبة في السنوات الأخيرة&lt;/strong> ، مثل دعم DPI العالي، وواجهة اللمس، وإمكانية الوصول، والوضع المظلم.
يجب معالجة كل منها يدويا، الأمر الذي يتطلب الكثير من الجهد.&lt;/p>
&lt;h3 id="غير-مدعوم-عبر-المنصات">غير مدعوم عبر المنصات
&lt;/h3>&lt;p>نظرا لأنها واجهة برمجة تطبيقات مخصصة بالكامل لـ Windows، &lt;strong>لا يمكن نقلها إلى macOS أو Linux&lt;/strong> .
إذا كنت تتوقع النشر عبر منصات متعددة، فستحتاج إلى اختيار تقنية أخرى.&lt;/p>
&lt;h3 id="تكلفة-تعلم-عالية-جدا">تكلفة تعلم عالية جدا
&lt;/h3>&lt;p>يجب أن تفهم &lt;strong>المفاهيم والآليات التي نادرا ما تستخدم اليوم&lt;/strong> ، مثل المقابض، و GDI، و COM، و OLE.
العديد من المستندات قديمة أيضا، ويتطلب التعلم وقتا وصبرا.&lt;/p>
&lt;hr>
&lt;h2 id="الاستخدامات-المناسبة">الاستخدامات المناسبة
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>أدوات خفيفة الوزن&lt;/strong> مثل مشغلات الملفات ومساعدات مفاتيح الاختصار&lt;/li>
&lt;li>&lt;strong>أدوات النظام المساعدة&lt;/strong> مثل معالجة الحافظة والتحكم في IME&lt;/li>
&lt;li>&lt;strong>تطبيقات نظام التحكم الأصلي&lt;/strong> مثل الخطافات العالمية والتقاط النوافذ&lt;/li>
&lt;li>&lt;strong>أدوات مساعدة السائق&lt;/strong> التي ترتبط ارتباطا وثيقا بالأجهزة&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="الاستخدامات-غير-المناسبة">الاستخدامات غير المناسبة
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>التطبيقات الموجهة للمستهلكين العاديين&lt;/strong> حيث يتم التركيز على واجهة المستخدم / تجربة المستخدم الحديثة&lt;/li>
&lt;li>&lt;strong>النماذج الأولية وتطوير MVP&lt;/strong> حيث يتم تحديد الأولويات للسرعة&lt;/li>
&lt;li>&lt;strong>مشاريع واسعة النطاق&lt;/strong> تعتمد على التشغيل طويل الأجل وتطوير الفريق&lt;/li>
&lt;li>&lt;strong>المنتجات عبر المنصات&lt;/strong> التي تحتاج إلى دعم أنظمة تشغيل متعددة&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="ملخص-التقييم">ملخص التقييم
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>الجانب&lt;/th>
&lt;th>التقييم&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>سرعة التنفيذ&lt;/td>
&lt;td>◎ سريع جدا&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>كفاءة الذاكرة&lt;/td>
&lt;td>◎ ممتاز&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>سرعة التطوير&lt;/td>
&lt;td>× بطيء&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الصيانة&lt;/td>
&lt;td>× منخفض&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>دعم عبر المنصات&lt;/td>
&lt;td>× غير مدعوم&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>دعم واجهة المستخدم الحديثة&lt;/td>
&lt;td>× ضعيف&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>حرية تحكم نظام التشغيل&lt;/td>
&lt;td>◎ عالية جدا&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="الخاتمة">الخاتمة
&lt;/h2>&lt;p>&lt;strong>Win32API + C++ أداة مناسبة للمطورين الذين &amp;ldquo;يريدون التعامل مع كل شيء في نظام التشغيل بأنفسهم&amp;rdquo;.&lt;/strong>
في حين أن قوتها كبيرة جدا، إلا أن التعلم والتشغيل يتطلبان استعدادا مقابلا.&lt;/p>
&lt;blockquote>
&lt;p>ما إذا كان الأمر يستحق &amp;ldquo;الخيار المتعمد&amp;rdquo; يعتمد على طبيعة التطبيق الذي تهدف إليه.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;p>القفز إلى عالم &lt;code>#include &amp;lt;windows.h&amp;gt;&lt;/code> دون الاعتماد على أطر عمل واجهة المستخدم الرسومية أو اللغات الحديثة ――
هذا الاختيار لا يزال مهما كما كان دائما.&lt;/p></description></item><item><title>【للمبتدئين】خطوات تثبيت libcurl (مع دعم OpenSSL) في Visual Studio باستخدام vcpkg</title><link>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/</link><pubDate>Mon, 07 Jul 2025 21:46:08 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post 【للمبتدئين】خطوات تثبيت libcurl (مع دعم OpenSSL) في Visual Studio باستخدام vcpkg" />&lt;h2 id="إذا-كنت-تريد-استخدام-libcurl-مع-دعم-openssl-في-visual-studio-فإن-استخدام-vcpkg-سهل-وموصى-به">إذا كنت تريد استخدام libcurl (مع دعم OpenSSL) في Visual Studio، فإن استخدام vcpkg سهل وموصى به
&lt;/h2>&lt;p>غالبًا ما يتم استخدام &lt;code>libcurl&lt;/code> عندما تريد التعامل مع اتصالات HTTP في C++. لكن ضبط إعدادات البناء والتبعيات يمكن أن يكون مزعجًا بشكل غير متوقع.&lt;/p>
&lt;p>في مثل هذه الأوقات، تكون أداة إدارة مكتبات C++ من Microsoft ** &amp;ldquo;vcpkg&amp;rdquo; ** مفيدة.
هذه المرة، سأقدم خطوات استخدام &lt;code>vcpkg&lt;/code> لتثبيت &lt;code>libcurl&lt;/code> (مع دعم OpenSSL) واستخدامه بسلاسة في Visual Studio.&lt;/p>
&lt;hr>
&lt;h3 id="تثبيت-vcpkg-فقط-لمن-لم-يقم-بتثبيته-بعد">تثبيت vcpkg (فقط لمن لم يقم بتثبيته بعد)
&lt;/h3>&lt;p>أولاً، دعنا نثبت &lt;code>vcpkg&lt;/code>. يرجى تنفيذ الخطوات التالية في PowerShell.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">git&lt;/span> &lt;span class="n">clone&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="err">:&lt;/span>&lt;span class="p">//&lt;/span>&lt;span class="n">github&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="p">/&lt;/span>&lt;span class="n">microsoft&lt;/span>&lt;span class="p">/&lt;/span>&lt;span class="n">vcpkg&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd &lt;/span>&lt;span class="n">vcpkg&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">.\&lt;/span>&lt;span class="nb">bootstrap-vcpkg&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">bat&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>※ إذا لم يكن لديك Git مثبتًا بعد، يرجى تثبيته من &lt;a class="link" href="https://git-scm.com/" target="_blank" rel="noopener"
>الموقع الرسمي لـ Git&lt;/a>.&lt;/p>
&lt;hr>
&lt;h3 id="تثبيت-libcurl-مع-دعم-openssl">تثبيت libcurl (مع دعم OpenSSL)
&lt;/h3>&lt;p>بعد ذلك، سنستخدم vcpkg لتثبيت &lt;code>libcurl&lt;/code>. لتحديد إصدار 64 بت المتوافق مع OpenSSL، قم بتشغيل الأمر التالي.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">vcpkg&lt;/span> &lt;span class="n">install&lt;/span> &lt;span class="n">curl&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="no">ssl&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="p">-&lt;/span>&lt;span class="n">-triplet&lt;/span> &lt;span class="nb">x64-windows&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>عند تشغيل هذا الأمر، سيتم أيضًا إعداد التبعيات الضرورية (مثل OpenSSL) تلقائيًا.&lt;/p>
&lt;hr>
&lt;h3 id="إعداد-التكامل-مع-visual-studio">إعداد التكامل مع Visual Studio
&lt;/h3>&lt;p>لتسهيل استخدام المكتبات المثبتة بواسطة vcpkg من مشاريع Visual Studio الخاصة بك، قم بإعداد التكامل باستخدام الأمر التالي.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">vcpkg&lt;/span> &lt;span class="n">integrate&lt;/span> &lt;span class="n">install&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>بمجرد إعداد ذلك، ستتمكن تلقائيًا من استخدام &lt;code>#include &amp;lt;curl/curl.h&amp;gt;&lt;/code> في مشاريع Visual Studio الخاصة بك، ولن تحتاج إلى إعداد مسارات المكتبة أو إعدادات الرابط يدويًا.&lt;/p>
&lt;hr>
&lt;h2 id="خاتمة">خاتمة
&lt;/h2>&lt;p>الآن أصبحت جاهزًا لاستخدام &lt;code>libcurl&lt;/code> (مع دعم OpenSSL) في Visual Studio.&lt;/p>
&lt;ul>
&lt;li>باستخدام vcpkg، يمكنك إدارة التبعيات المزعجة كلها مرة واحدة&lt;/li>
&lt;li>تثبيت libcurl بسهولة باستخدام &lt;code>vcpkg install curl[ssl] --triplet x64-windows&lt;/code>&lt;/li>
&lt;li>تكامل تلقائي مع Visual Studio باستخدام &lt;code>vcpkg integrate install&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>بعد ذلك، قم بتضمين ملفات الرأس في مشروعك وابدأ التطوير باستخدام واجهة برمجة تطبيقات libcurl.
استفد من vcpkg المريح لزيادة كفاءة تطويرك بشكل كبير.&lt;/p></description></item><item><title>ما الذي تحتاجه لتجنب نظريات المؤامرة</title><link>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/</link><pubDate>Mon, 26 May 2025 22:23:34 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post ما الذي تحتاجه لتجنب نظريات المؤامرة" />&lt;h2 id="الأمن-النفسي-اللازم-لتجنب-الانجرار-وراء-نظريات-المؤامرة">&amp;ldquo;الأمن النفسي&amp;rdquo; اللازم لتجنب الانجرار وراء نظريات المؤامرة
&lt;/h2>&lt;p>عند تصفح الإنترنت، قد تصادف أحيانًا أحاديث تشبه &amp;ldquo;نظريات المؤامرة&amp;rdquo;.&lt;/p>
&lt;p>&amp;ldquo;هل هناك من يتلاعب بهذه الأحداث من وراء الكواليس؟&amp;rdquo;
&amp;ldquo;هل الحقيقة الفعلية مخفية؟&amp;rdquo;
يجب أن يكون الكثير منكم قد رأى مثل هذه الادعاءات تنتشر بطريقة تبدو معقولة.&lt;/p>
&lt;p>لتجنب الانجرار بشكل مفرط في مثل هذه المعلومات، لا تقتصر الأهمية على &amp;ldquo;المعرفة&amp;rdquo; أو &amp;ldquo;القدرة على التفكير&amp;rdquo; فحسب، بل إن &lt;strong>حالة العقل&lt;/strong>، أي &amp;ldquo;الأمن النفسي&amp;rdquo;، أمر بالغ الأهمية.&lt;/p>
&lt;p>فيما يلي ستة أفكار فعالة لتحقيق ذلك.&lt;/p>
&lt;hr>
&lt;h3 id="لا-تربط-بين-القلق-والإجابات-فورا">لا تربط بين القلق و&amp;quot;الإجابات&amp;quot; فورًا
&lt;/h3>&lt;p>السمة الرئيسية لنظريات المؤامرة هي أنها تقدم &amp;ldquo;إجابات&amp;rdquo; واضحة وسهلة الفهم للمخاوف والشكوك.&lt;/p>
&lt;p>على سبيل المثال، عند طرح أسئلة مثل:&lt;/p>
&lt;ul>
&lt;li>&amp;ldquo;لماذا تحدث مثل هذه الحوادث؟&amp;rdquo;&lt;/li>
&lt;li>&amp;ldquo;من المستفيد؟&amp;rdquo;&lt;/li>
&lt;/ul>
&lt;p>عندما يتم تقديم سيناريو مثل &amp;ldquo;في الواقع، فلان يتلاعب بالأمور من وراء الكواليس&amp;rdquo;، نميل بسهولة إلى الاقتناع به.&lt;/p>
&lt;p>ولكن، عندما تشعر بالقلق، من المهم &lt;strong>عدم القفز إلى الاستنتاجات فورًا وتأجيلها&lt;/strong>.&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;القدرة على البقاء في حالة عدم يقين&amp;rdquo; هي أيضًا علامة على النضج الفكري.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h3 id="توسيع-مصادر-تلقي-المعلومات-عمدا">توسيع مصادر تلقي المعلومات عمدًا
&lt;/h3>&lt;p>يميل الكثير ممن ينغمسون في نظريات المؤامرة إلى التركيز حصريًا على &amp;ldquo;المعلومات التي تحمل آراء مشابهة&amp;rdquo;.&lt;/p>
&lt;p>وهذا ما يسمى &amp;ldquo;الانحياز التأكيدي&amp;rdquo;، وهو تحيز نفسي يجعلك تتعرض فقط للمعلومات التي تعزز معتقداتك الحالية.&lt;/p>
&lt;p>على وجه الخصوص، تستمر خوارزميات وسائل التواصل الاجتماعي ومواقع الفيديو في تقديم المنشورات التي من المحتمل أن تعجبك، مما قد يؤدي بشكل طبيعي إلى تضييق منظورك.&lt;/p>
&lt;p>بشكل واعي، يجب عليك:&lt;/p>
&lt;ul>
&lt;li>التعرض لوسائل الإعلام بوجهات نظر مختلفة&lt;/li>
&lt;li>مشاهدة الأخبار الأجنبية والمصادر الأكاديمية&lt;/li>
&lt;li>الاستماع إلى الآراء التي تختلف عن أفكارك&lt;/li>
&lt;/ul>
&lt;p>مثل هذه الإجراءات لـ &lt;strong>تنويع مصادر المعلومات&lt;/strong> تساعد في تجنب المخاطر.&lt;/p>
&lt;hr>
&lt;h3 id="لا-تفكر-أنا-لن-أخدع">لا تفكر: &amp;ldquo;أنا لن أُخدع&amp;rdquo;
&lt;/h3>&lt;p>الأشخاص الذين يمتلكون المعرفة أو المنطقيون هم في الواقع أكثر عرضة للانجرار إلى نظريات المؤامرة.&lt;/p>
&lt;p>الاعتقاد بأن &amp;ldquo;يمكنني إدراك الحقيقة التي لا يلاحظها الآخرون&amp;rdquo; يمكن أن يكون عاملاً يغيم الحكم.&lt;/p>
&lt;p>بغض النظر عن مدى حذرنا، فإن البشر يخطئون. ولهذا السبب، فإن &lt;strong>افتراض أنك قد تُخدع أيضًا&lt;/strong> هو في الواقع موقف أكثر عقلانية.&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;الشك، ولكن دون اتخاذ قرارات قاطعة&amp;rdquo; هو دفاعك.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h3 id="انظر-إلى-الهيكل-بدلا-من-الانجرار-وراء-القصة">انظر إلى الهيكل، بدلاً من الانجرار وراء القصة
&lt;/h3>&lt;p>نظريات المؤامرة تأتي دائمًا مع &amp;ldquo;قصص درامية&amp;rdquo;.&lt;/p>
&lt;ul>
&lt;li>هيكل الصراع بين الخير والشر&lt;/li>
&lt;li>الحكام والمحكومين&lt;/li>
&lt;li>أنا المستيقظ مقابل الآخرين المغسولة أدمغتهم&lt;/li>
&lt;/ul>
&lt;p>هذه المعارضات الثنائية البسيطة، على الرغم من كونها جذابة كقصة، لا تعكس بالضرورة الواقع بشكل صحيح.&lt;/p>
&lt;p>تتضمن الأحداث الواقعية والحركات الاجتماعية العديد من العناصر المتشابكة، مثل العلاقات السببية المعقدة، والسياقات التاريخية، والهياكل المؤسسية.&lt;/p>
&lt;p>من المهم عدم الانجرار عاطفيًا وراء القصة، بل امتلاك &lt;strong>فهم هيكلي&lt;/strong> لـ &amp;ldquo;لماذا أصبحت الأمور هكذا؟&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h3 id="لا-تترك-الوحدة-دون-علاج">لا تترك الوحدة دون علاج
&lt;/h3>&lt;p>خلف الانجذاب القوي لنظريات المؤامرة، قد تكمن &amp;ldquo;العزلة&amp;rdquo; و&amp;quot;عدم الانتماء&amp;quot;.&lt;/p>
&lt;p>عندما يشعر الناس بالوحدة، فإنهم يميلون إلى الاعتماد بشدة على الأشخاص أو المجموعات التي تفهمهم. وفي بعض الأحيان تلعب مجتمعات نظريات المؤامرة دور هذا &amp;ldquo;المكان الذي تنتمي إليه&amp;rdquo;.&lt;/p>
&lt;p>ولهذا السبب، فإن الجهود المبذولة لتجنب الوحدة تؤدي أيضًا إلى الأمن النفسي.&lt;/p>
&lt;p>على سبيل المثال:&lt;/p>
&lt;ul>
&lt;li>التحدث مع الناس بانتظام&lt;/li>
&lt;li>الانضمام إلى مجتمعات تشاركك هواياتك واهتماماتك&lt;/li>
&lt;li>الحفاظ على الروابط ليس فقط عبر الإنترنت ولكن أيضًا في الواقع&lt;/li>
&lt;/ul>
&lt;p>مثل هذه الأفعال تؤدي إلى الاستقرار العقلي.&lt;/p>
&lt;hr>
&lt;h3 id="ركز-على-الحوار-بدلا-من-الرفض">ركز على الحوار بدلاً من الرفض
&lt;/h3>&lt;p>حتى لو كان شخص مقرب منك يميل إلى نظريات المؤامرة، فإن &lt;strong>الرفض القاطع يمكن أن يأتي بنتائج عكسية&lt;/strong>.&lt;/p>
&lt;p>عندما يتم رفض معتقدات شخص ما، تزداد لديه الرغبة النفسية في الدفاع عنها (يُسمى هذا &amp;ldquo;الإدراك الدفاعي&amp;rdquo;).&lt;/p>
&lt;p>بدلاً من ذلك:&lt;/p>
&lt;ul>
&lt;li>اسأل بلطف، &amp;ldquo;لماذا تعتقد ذلك؟&amp;rdquo;&lt;/li>
&lt;li>قدم وجهة نظرك بهدوء بقول، &amp;ldquo;قد تكون هناك طريقة التفكير هذه أيضًا&amp;rdquo;&lt;/li>
&lt;/ul>
&lt;p>من خلال اتخاذ مثل هذا &lt;strong>النهج الحواري&lt;/strong>، تنشأ إمكانية أن يتسع منظور الشخص الآخر بشكل طبيعي.&lt;/p>
&lt;hr>
&lt;h2 id="الخلاصة-ما-يمكنك-فعله-للابتعاد-عن-نظريات-المؤامرة">الخلاصة: ما يمكنك فعله للابتعاد عن نظريات المؤامرة
&lt;/h2>&lt;ul>
&lt;li>امتلك القدرة على تأجيل الأمور وعدم ربط القلق بالإجابات فورًا&lt;/li>
&lt;li>قم بتنويع مصادر المعلومات وانتبه إلى التحيزات&lt;/li>
&lt;li>أدرك أن حكمك ليس مطلقًا&lt;/li>
&lt;li>انظر إلى الأشياء من خلال الهيكل والعلاقات السببية، وليس القصص&lt;/li>
&lt;li>تجنب الوحدة وحافظ على الروابط&lt;/li>
&lt;li>واجه نظريات المؤامرة لدى الآخرين بالحوار بدلاً من الرفض&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>يُقال إن الانجذاب إلى نظريات المؤامرة يتأثر بالحالة النفسية والبيئة المحيطة أكثر من مستوى المعرفة.&lt;/p>
&lt;p>لذلك، بدلاً من افتراض &amp;ldquo;أنا بخير&amp;rdquo;، فإن اتخاذ &lt;strong>خطوات صغيرة لتعزيز الأمن النفسي&lt;/strong> في حياتك اليومية سيكون دعمًا كبيرًا للعيش بمرونة في مجتمع المعلومات المستقبلي.&lt;/p></description></item><item><title>تاريخ عدم وجود كود في البيئات المحلية</title><link>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/</link><pubDate>Sat, 26 Apr 2025 16:46:11 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post تاريخ عدم وجود كود في البيئات المحلية" />&lt;h1 id="تاريخ-تطوير-الكود-المنخفض--بدون-كود-من-الثمانينات-إلى-الوقت-الحاضر">تاريخ تطوير الكود المنخفض / بدون كود (من الثمانينات إلى الوقت الحاضر)
&lt;/h1>&lt;p>تطوير الكود المنخفض / بدون كود هو طريقة تطوير تتيح لك إنشاء تطبيقات ومواقع ويب وقواعد بيانات دون الحاجة إلى خبرة في البرمجة. بدأ هذا المفهوم في الثمانينات وتطور إلى منصات متنوعة مع انتشار أجهزة الكمبيوتر الشخصية وتطور الإنترنت وتوسع تكنولوجيا السحابة. في هذه المقالة، سنسلط الضوء على الأدوات والخدمات النموذجية لكل عقد ونقدم ميزاتها وأسعارها.&lt;/p>
&lt;hr>
&lt;h2 id="الثمانينات-الأيام-الأولى">الثمانينات: الأيام الأولى
&lt;/h2>&lt;ul>
&lt;li>
&lt;p>&lt;strong>HyperCard (Apple, 1987)&lt;/strong>
أداة إنشاء تطبيقات لأجهزة Macintosh. تستخدم بطاقات لتكوين الشاشة وتتيح إنشاء واجهة مستخدم رسومية (GUI) عبر السحب والإفلات. يمكن أيضاً التحكم في العمليات البسيطة باستخدام لغة البرمجة الخاصة بها &amp;ldquo;HyperTalk&amp;rdquo;. كانت مفضلة لأغراض النماذج الأولية. كان سعر الإصدار 49.95 دولاراً، وتم توفيرها لاحقاً مجاناً لمشتري أجهزة Mac الجدد. كان الإصدار الأخير في عام 1998، ولم يتم دعمها على Mac OS X وما بعده.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>FileMaker (Claris/Apple, 1985)&lt;/strong>
برنامج قاعدة بيانات رسومية. أداة قاعدة بيانات علائقية تتميز بعرض البيانات في شكل جدول بالإضافة إلى تحرير التخطيط الحر ووظائف البرمجة النصية. يتم تقديمها حالياً باسم &amp;ldquo;Claris FileMaker Pro&amp;rdquo;، ويبلغ سعر الإصدار الكامل 594 دولاراً (اعتباراً من عام 2024).&lt;/p>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="التسعينات-ظهور-تطبيقات-واجهة-المستخدم-الرسومية-وتطوير-أنظمة-الأعمال">التسعينات: ظهور تطبيقات واجهة المستخدم الرسومية وتطوير أنظمة الأعمال
&lt;/h2>&lt;ul>
&lt;li>
&lt;p>&lt;strong>Visual Basic (Microsoft, 1991)&lt;/strong>
بيئة تطوير متكاملة (IDE) مخصصة لتطوير تطبيقات Windows. يمكنك بناء تطبيقات مدفوعة بالأحداث بسهولة عن طريق سحب وإفلات مكونات واجهة المستخدم الرسومية مثل الأزرار والتسميات. مع الإصدار VB6.0 في عام 1998، انتقلت إلى عصر .NET.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Microsoft Access (1992)&lt;/strong>
أداة تطوير قواعد البيانات لنظام التشغيل Windows. تسمح بتصميم قواعد البيانات العلائقية وإنشاء النماذج عبر واجهة المستخدم الرسومية، واستخدمت على نطاق واسع لتطوير تطبيقات الأعمال العامة. يتم تقديمها حالياً كجزء من Microsoft 365.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>PowerBuilder (PowerSoft/Sybase, 1991)&lt;/strong>
أداة تطوير من الجيل الرابع (4GL) لتطبيقات الأعمال. تدعم بنية العميل/الخادم ولها قوة في تكامل قواعد البيانات. لا يزال يتم تقديمها حالياً تحت مظلة SAP.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Dreamweaver (Macromedia, 1997)&lt;/strong>
أداة WYSIWYG تتيح الإنشاء المرئي لصفحات الويب. تتيح التبديل بين تحرير HTML وعرض التصميم، وتدعم أيضاً ASP و PHP. تقدمها حالياً شركة Adobe وهي متاحة عبر الاشتراك (حوالي 34.49 دولاراً شهرياً).&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Flash (Macromedia, 1996)&lt;/strong>
في الأصل أداة لإنشاء الرسوم المتحركة المتجهة تم تطويرها باسم FutureSplash Animator. استخدمت لاحقاً لإنشاء محتوى تفاعلي للويب، ولكن تم إنهاء دعمها في عام 2020 بسبب مخاوف أمنية.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>GameMaker (1999)&lt;/strong>
أداة إنشاء ألعاب ثنائية الأبعاد للمبتدئين. يمكن وضع الكائنات والتحكم في الأحداث عبر السحب والإفلات. لاحقاً دعمت البرمجة النصية (GML)، وتتوفر حالياً خطط متعددة للاستخدام التجاري.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="العقد-الأول-من-القرن-الحادي-والعشرين-انتشار-الويب-والمصادر-المفتوحة">العقد الأول من القرن الحادي والعشرين: انتشار الويب والمصادر المفتوحة
&lt;/h2>&lt;ul>
&lt;li>
&lt;p>&lt;strong>WordPress (2003)&lt;/strong>
نظام إدارة محتوى (CMS) مفتوح المصدر باستخدام PHP و MySQL. يمكنك بناء مدونات ومواقع شركات باستخدام السمات والإضافات دون الحاجة إلى معرفة برمجية. يتم توزيعه مجاناً وهو أحد أكثر أنظمة إدارة المحتوى استخداماً في العالم.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Wix (2006)&lt;/strong>
خدمة بدون كود تتيح لك بناء مواقع الويب على المتصفح. يمكنك اختيار قالب وتحريره عن طريق السحب والإفلات. بالإضافة إلى الخطة المجانية، تتيح الخطط المدفوعة استخدام نطاقات مخصصة وميزات التجارة الإلكترونية.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>OutSystems (2001)&lt;/strong>
منصة كود منخفض للمؤسسات. تُستخدم بشكل متزايد من قبل الشركات الكبيرة والوكالات الحكومية لأنها تسمح بالتطوير السريع لأنظمة الأعمال. تدعم كلاً من السحابة والأنظمة المحلية.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Scratch (MIT, 2007)&lt;/strong>
أداة لتعلم البرمجة طُورت للأطفال. تتيح إنشاء الألعاب والرسوم المتحركة عن طريق دمج الكتل الملونة، وتُستخدم على نطاق واسع في البيئات التعليمية. متوفرة مجاناً.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Airtable (2013)&lt;/strong>
خدمة سحابية تجمع بين جداول البيانات وقواعد البيانات. تبدو مشابهة لبرنامج Excel ولكنها تتيح العلاقات وعرض كانبان وتكامل API والمزيد. تُستخدم على نطاق واسع من قبل الأفراد والشركات.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="العقد-الثاني-والثالث-من-القرن-الحادي-والعشرين-عصر-السحابة-والأتمتة">العقد الثاني والثالث من القرن الحادي والعشرين: عصر السحابة والأتمتة
&lt;/h2>&lt;p>في السنوات الأخيرة، تطورت أدوات الكود المنخفض / بدون كود القائمة على السحابة بسرعة.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Power Platform (Microsoft)&lt;/strong>
منصة متكاملة لتطوير تطبيقات الأعمال والأتمتة تتضمن &amp;ldquo;Power Apps&amp;rdquo; و &amp;ldquo;Power Automate&amp;rdquo;. تتيح بناء عمليات الأعمال للشركات بشكل مرئي عن طريق السحب والإفلات.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Salesforce Lightning Platform&lt;/strong>
منصة تطوير تطبيقات مقدمة من شركة Salesforce المتخصصة في إدارة علاقات العملاء (CRM). تتيح إنشاء تطبيقات الأعمال عبر واجهة المستخدم الرسومية والتكامل السهل مع خدمات Salesforce الأخرى.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Zapier / IFTTT&lt;/strong>
أدوات أتمتة تتيح بناء تكاملات بين خدمات سحابية متعددة دون برمجة. على سبيل المثال، يمكن بسهولة تحقيق سير عمل مثل &amp;ldquo;إرسال إشعار إلى Slack عند إدخال بيانات في نماذج Google&amp;rdquo;.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Notion (2010s)&lt;/strong>
مساحة عمل متكاملة تجمع بين إدارة المستندات وإدارة المهام والويكي وغيرها. تتميز أيضاً بوظيفة قاعدة بيانات مخصصة، مما يساعد على تحسين العمليات بدون كود.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Construct 3 / GameSalad&lt;/strong>
أدوات تتيح لك إنشاء ألعاب عن طريق السحب والإفلات. يدعم Construct 3 تقنية HTML5 ويعمل على المتصفح، وهو شائع في البيئات التعليمية ولدى المطورين المستقلين.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="مصادر-المعلومات-والملاحظات">مصادر المعلومات والملاحظات
&lt;/h2>&lt;p>تعتمد هذه المقالة على المواقع الرسمية لكل منتج، ويكيبيديا، ومقالات/موثوقة (مثل Apple و Microsoft و Adobe). تشير معلومات التسعير إلى الأسعار الرسمية في ذلك الوقت أو الأحدث بقدر الإمكان (مدرجة بالدولار الأمريكي بشكل أساسي). تعتمد معظم الأدوات منذ العقد الأول من القرن الحادي والعشرين على الاشتراكات، وتختلف الأسعار حسب الخطة.&lt;/p></description></item><item><title>FizzBuzz</title><link>http://kenji.blog/ar/p/fizzbuzz/</link><pubDate>Fri, 18 Apr 2025 00:58:11 +0900</pubDate><guid>http://kenji.blog/ar/p/fizzbuzz/</guid><description>&lt;img src="http://kenji.blog/p/fizzbuzz/img.png" alt="Featured image of post FizzBuzz" />&lt;h2 id="ما-هو-fizzbuzz-في-النهاية">ما هو FizzBuzz في النهاية؟
&lt;/h2>&lt;p>مرحباً!&lt;/p>
&lt;p>اليوم أود أن أكتب عن &amp;ldquo;FizzBuzz&amp;rdquo;.&lt;/p>
&lt;p>سواء كنت شخصاً يقول &amp;ldquo;آه، أعرف ذلك!&amp;quot;، أو شخصاً يقول &amp;ldquo;سمعت عنه نوعاً ما، لكنني لا أفهمه حقاً&amp;rdquo;، يرجى البقاء معي لبعض الوقت. يمكنك قراءته في بضع دقائق، وربما تجعلك تفكر &amp;ldquo;أفهم ذلك الآن&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h3 id="هل-صحيح-أنك-لست-مبرمجا-إذا-لم-تستطع-كتابة-fizzbuzz">هل صحيح أنك &amp;ldquo;لست مبرمجاً إذا لم تستطع كتابة FizzBuzz&amp;rdquo;؟
&lt;/h3>&lt;p>بشكل تقريبي، هذا هو FizzBuzz.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;span class="lnt">9
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">101&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">15&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;FizzBuzz&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">3&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Fizz&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">5&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Buzz&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>نعم، هذه هي &amp;ldquo;مشكلة FizzBuzz&amp;rdquo; الشهيرة.&lt;/p>
&lt;p>أنت تنظر إلى الأرقام من 1 إلى 100 بالترتيب،&lt;br>
إذا كانت من مضاعفات العدد 3، فقم بطباعة &amp;ldquo;Fizz&amp;rdquo;، وإذا كانت من مضاعفات العدد 5، فقم بطباعة &amp;ldquo;Buzz&amp;rdquo;،&lt;br>
وإذا كانت من مضاعفات كليهما، فقم بطباعة &amp;ldquo;FizzBuzz&amp;rdquo;. إنه أمر بسيط للغاية.&lt;/p>
&lt;p>ومع ذلك، لسبب ما، غالباً ما يتم التعامل معها على أنها &amp;ldquo;اختبار كحد أدنى للمبرمجين&amp;rdquo;. يتم تقديمها في المقابلات، وهناك أحياناً تعليقات متعالية على وسائل التواصل الاجتماعي مثل &amp;ldquo;الأشخاص الذين لا يستطيعون حتى كتابة FizzBuzz&amp;hellip;&amp;rdquo;.&lt;/p>
&lt;p>لكن انتظر دقيقة.&lt;/p>
&lt;p>هل يمكننا حقاً القول &amp;ldquo;لا يمكنك كتابة FizzBuzz = لا يمكنك البرمجة&amp;rdquo;؟&lt;/p>
&lt;hr>
&lt;h3 id="لا-يتعلق-الأمر-بما-إذا-كان-بإمكانك-القيام-بذلك-بل-ما-إذا-كان-لديك-الحالة-للقيام-بذلك">لا يتعلق الأمر بما إذا كان بإمكانك القيام بذلك، بل ما إذا كان لديك &amp;ldquo;الحالة&amp;rdquo; للقيام بذلك
&lt;/h3>&lt;p>بالتأكيد، تتطلب مشكلة FizzBuzz فهماً للقواعد والتفكير المنطقي الأساسي. لذلك من المنطقي استخدامها &amp;ldquo;للتحقق من الأساسيات&amp;rdquo;.&lt;/p>
&lt;p>لكن مهلاً.&lt;/p>
&lt;p>إذا كانت البيئة مختلفة، فإن النتائج ستكون مختلفة.&lt;/p>
&lt;p>على سبيل المثال،&lt;/p>
&lt;ul>
&lt;li>عندما تكون متوتراً أمام محاور تقابله لأول مرة&lt;/li>
&lt;li>عندما يتم تسليمك فجأة سبورة بيضاء وليس لديك محرر نصوص في متناول يدك&lt;/li>
&lt;li>عندما لا تستطيع التذكر فجأة &amp;ldquo;مهلاً، ما هو modulo مرة أخرى؟&amp;rdquo;&lt;/li>
&lt;/ul>
&lt;p>&amp;hellip; ألا تحدث أشياء كهذه؟ نحن بشر بعد كل شيء. أعتقد أن ذلك يحدث.&lt;/p>
&lt;p>لذا، بدلاً من &amp;ldquo;ما إذا كان بإمكانك كتابة FizzBuzz&amp;rdquo;، أعتقد أن الأهم حقاً هو &amp;ldquo;ما إذا كان يمكنك وضع نفسك في حالة يمكنك فيها كتابة FizzBuzz&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h3 id="فخ-النصيحة-الشائعة-ما-عليك-سوى-التدرب-وستكون-بخير">فخ النصيحة الشائعة &amp;ldquo;ما عليك سوى التدرب وستكون بخير&amp;rdquo;
&lt;/h3>&lt;p>عندما يتعلق الأمر بهذا الموضوع، غالباً ما تظهر نصيحة &amp;ldquo;لذا تدرب كل يوم!&amp;rdquo;.&lt;/p>
&lt;p>بالتأكيد، من الصحيح أن التدريب المتكرر سيسمح لك بالكتابة بطلاقة، وهذا في حد ذاته أمر جيد. ومع ذلك، إذا بدأت بافتراض أنك &amp;ldquo;فاشل إذا لم تتمكن من كتابة FizzBuzz&amp;rdquo;، فقد يتحول الأمر ببساطة إلى خوف.&lt;/p>
&lt;p>بمعنى آخر، من السهل الوقوع في هيكل حيث تشعر &amp;ldquo;لقد ارتكبت خطأ = أنا لست جيداً&amp;rdquo;.&lt;/p>
&lt;p>على سبيل المثال، في الأيام التي تنام فيها متأخراً، ألا تميل إلى الاعتقاد &amp;ldquo;أنا كسول&amp;hellip;&amp;quot;؟ لكن قد يكون جسدك متعباً فقط بالصدفة.&lt;/p>
&lt;p>الشيء نفسه ينطبق على FizzBuzz.&lt;/p>
&lt;hr>
&lt;h3 id="مع-ذلك-fizzbuzz-لا-يزال-سؤالا-جيدا-حقا">مع ذلك، FizzBuzz لا يزال سؤالاً جيداً حقاً
&lt;/h3>&lt;p>مع ذلك، فإن FizzBuzz ليس سيئاً.&lt;/p>
&lt;p>بدلاً من ذلك، أعتقد أنه سؤال مدروس جيداً. القواعد بسيطة، ومن السهل توسيعها. على سبيل المثال، إذا قمت بتغييره على هذا النحو، فإن التفكير يتعمق أكثر.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">101&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">output&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">3&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">output&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="s2">&amp;#34;Fizz&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">5&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">output&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="s2">&amp;#34;Buzz&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">output&lt;/span> &lt;span class="ow">or&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هذا مثال يوضح أنه &amp;ldquo;يمكنك كتابته بدون if-elif-else&amp;rdquo;. إنه ذكي قليلاً، أليس كذلك؟&lt;/p>
&lt;p>بعبارة أخرى، لا يقتصر دور FizzBuzz على التحقق &amp;ldquo;ما إذا كان بإمكانك القيام بذلك&amp;rdquo;، بل يمكن أن يكون أيضاً نقطة دخول لمعرفة &amp;ldquo;كيف تكتبه&amp;rdquo; و &amp;ldquo;إلى أي مدى تفهمه&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h3 id="في-الختام">في الختام
&lt;/h3>&lt;p>أعتقد أنه لا ينبغي لنا أن نعطي أهمية مفرطة لما إذا كان بإمكان شخص ما إكمال FizzBuzz.&lt;/p>
&lt;p>حتى لو لم تتمكن من كتابته، فقد يعني ذلك ببساطة أنك &amp;ldquo;لم تكن في حالة جيدة في تلك اللحظة&amp;rdquo;، وغالباً ما يمكنك القيام بذلك إذا فكرت في الأمر بعناية لاحقاً.&lt;/p>
&lt;p>لا تتسرع، فلنأخذ الأمور ببطء.&lt;/p>
&lt;p>الكود مكتوب بواسطة بشر. لأننا بشر، ننسى الأشياء أحياناً، وأحياناً نشعر بالتوتر. أعتقد أنه يكفي أن نتقبل ذلك ونمضي قدماً شيئاً فشيئاً.&lt;/p>
&lt;p>حسناً إذن، دعونا نأخذ الأمور ببساطة ونكتب بعض الأكواد اليوم.&lt;/p></description></item><item><title>برج هانوي</title><link>http://kenji.blog/ar/p/%D8%A8%D8%B1%D8%AC-%D9%87%D8%A7%D9%86%D9%88%D9%8A/</link><pubDate>Thu, 17 Apr 2025 22:23:14 +0900</pubDate><guid>http://kenji.blog/ar/p/%D8%A8%D8%B1%D8%AC-%D9%87%D8%A7%D9%86%D9%88%D9%8A/</guid><description>&lt;img src="http://kenji.blog/p/%E3%83%8F%E3%83%8E%E3%82%A4%E3%81%AE%E5%A1%94/img.png" alt="Featured image of post برج هانوي" />&lt;h1 id="برج-هانوي">برج هانوي
&lt;/h1>&lt;p>مرحباً!&lt;/p>
&lt;p>اليوم أود التحدث عن &amp;ldquo;برج هانوي&amp;rdquo; مع تقديم مثال لبرنامج باستخدام لغة Python.&lt;/p>
&lt;hr>
&lt;h2 id="ما-هو-برج-هانوي">ما هو برج هانوي؟
&lt;/h2>&lt;p>برج هانوي هو لغز يتكون من ثلاثة أعمدة وعدة أقراص. تختلف الأقراص في الحجم، وفي البداية تكون مكدسة على عمود واحد بترتيب تنازلي للحجم من الأسفل إلى الأعلى. القواعد هي كما يلي:&lt;/p>
&lt;ol>
&lt;li>يمكن نقل قرص واحد فقط في كل مرة.&lt;/li>
&lt;li>لا يمكن وضع قرص كبير فوق قرص أصغر منه.&lt;/li>
&lt;/ol>
&lt;p>يُعتبر هذا اللغز مادة ممتازة لتعلم التفكير العودي (Recursion). العودية هي طريقة لحل مشكلة عن طريق تقسيمها إلى مشاكل أصغر من نفس النوع. في برج هانوي، لتحريك n من الأقراص، نكرر عملية تحريك n-1 من الأقراص.&lt;/p>
&lt;hr>
&lt;h2 id="دعونا-نحل-برج-هانوي-باستخدام-python">دعونا نحل برج هانوي باستخدام Python
&lt;/h2>&lt;p>فيما يلي نموذج لشفرة برمجية بلغة Python لحل لغز برج هانوي.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">hanoi&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">source&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">target&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">auxiliary&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Move disk 1 from &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">source&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> to &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">target&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">hanoi&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">source&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">auxiliary&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">target&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Move disk &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> from &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">source&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> to &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">target&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">hanoi&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">auxiliary&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">target&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">source&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># مثال: تحريك 3 أقراص من A إلى C&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">hanoi&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;A&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;C&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;B&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>في هذه الشفرة، يتم استدعاء الدالة &lt;code>hanoi&lt;/code> بشكل عودي، وتُعرض خطوات تحريك الأقراص. على سبيل المثال، في حالة وجود 3 أقراص، سيتم الحصول على المخرجات التالية:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Move disk 1 from A to C
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Move disk 2 from A to B
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Move disk 1 from C to B
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Move disk 3 from A to C
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Move disk 1 from B to A
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Move disk 2 from B to C
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Move disk 1 from A to C
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>بهذه الطريقة، باستخدام النهج العودي، يمكن حل المشاكل المعقدة ببساطة.&lt;/p>
&lt;hr>
&lt;h2 id="كم-من-الوقت-يستغرق-تحريك-64-قرصا">كم من الوقت يستغرق تحريك 64 قرصاً؟
&lt;/h2>&lt;p>الحد الأدنى لعدد الحركات في برج هانوي هو 2^n - 1 حركة. هذا يعني أنه لتحريك 64 قرصاً، يجب القيام بـ 2^64 - 1، أي حوالي 1.84×10^19 حركة. حتى لو كان بإمكاننا القيام بحركة واحدة كل ثانية، سيستغرق الأمر حوالي 584 مليار سنة. هذا يعادل تقريباً 42 ضعف عمر الكون (حوالي 13.7 مليار سنة).&lt;/p>
&lt;p>لذلك، مع زيادة عدد الأقراص، يزداد عدد الحركات المطلوبة بشكل أُسّي. وبالتالي، فإن تحريك 64 قرصاً فعلياً ليس أمراً واقعياً.&lt;/p>
&lt;hr>
&lt;h2 id="خاتمة">خاتمة
&lt;/h2>&lt;p>برج هانوي هو لغز ممتاز لتعلم التفكير العودي. باستخدام Python، يمكن بسهولة تنفيذ حله. ومع ذلك، يجب الحذر لأن عدد الحركات المطلوبة يزداد بشكل كبير مع زيادة عدد الأقراص.&lt;/p>
&lt;p>من خلال فهم النهج العودي وكتابة الشفرة بنفسك، يمكنك تحسين مهاراتك في البرمجة. لا تتردد في خوض تحدي برج هانوي.&lt;/p>
&lt;hr></description></item><item><title>عدد أسطر الكود المصدري</title><link>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/</link><pubDate>Thu, 17 Apr 2025 10:33:02 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post عدد أسطر الكود المصدري" />&lt;h1 id="عدد-أسطر-الكود-المصدري">عدد أسطر الكود المصدري
&lt;/h1>&lt;p>مرحباً!&lt;/p>
&lt;p>اليوم أود التحدث عن موضوع مختلف قليلاً.&lt;/p>
&lt;p>الموضوع هو &amp;ldquo;كم زاد عدد أسطر الكود المصدري مقارنة بالماضي؟&amp;rdquo;&lt;/p>
&lt;p>على سبيل المثال، كان برنامج مكوك الفضاء يتكون من حوالي 420,000 سطر من الكود. تم تطوير هذا الكود بعملية صارمة للغاية لتلبية معايير الجودة العالية لوكالة ناسا. من ناحية أخرى، في مشاريع البرمجيات واسعة النطاق الحديثة، ليس من غير المألوف أن يتجاوز عدد أسطر الكود عشرات الملايين. على سبيل المثال، يُقال أن قاعدة كود جوجل تصل إلى حوالي 2 مليار سطر.&lt;/p>
&lt;p>بهذه الطريقة، ازداد حجم البرمجيات مع مرور الوقت.&lt;/p>
&lt;p>ولكن، انتظر لحظة.&lt;/p>
&lt;p>زيادة عدد أسطر الكود ليست بالضرورة أمراً سيئاً. إضافة ميزات جديدة أو تلبية احتياجات المستخدمين يتطلب بشكل طبيعي المزيد من الكود. ومع ذلك، مع زيادة الكود، يزداد خطر وجود أخطاء برمجية (bugs). في الواقع، أظهرت إحدى الدراسات أنه عندما يتجاوز مشروع مفتوح المصدر مليون سطر، فإن معدل حدوث الأخطاء يميل إلى الارتفاع.&lt;/p>
&lt;p>ومع ذلك، لا تقوم جميع المشاريع بزيادة الكود بنفس الطريقة.&lt;/p>
&lt;p>على سبيل المثال، كان نواة لينكس حوالي 200,000 سطر في الإصدار 1.0 عام 1994، لكنه زاد إلى حوالي 20 مليون سطر في الإصدار 4.2 عام 2015. هذه الزيادة هي استجابة لتطور الأجهزة وإضافة ميزات جديدة.&lt;/p>
&lt;p>لذلك، يختلف عدد أسطر الكود المصدري اختلافاً كبيراً اعتماداً على حجم المشروع، أهدافه، والسياق التاريخي.&lt;/p>
&lt;p>زيادة عدد أسطر الكود في حد ذاتها ليست مشكلة، ولكن الإدارة السليمة ضرورية للحفاظ على الجودة وقابلية الصيانة. من المهم فهم المخاطر المرتبطة بزيادة الكود واتخاذ التدابير المناسبة.&lt;/p>
&lt;p>أخيراً، أعتقد أنه من المهم التركيز على الغرض من المشروع وجودته، بدلاً من التركيز المفرط على عدد أسطر الكود.&lt;/p>
&lt;p>إذاً، أراكم في المرة القادمة!&lt;/p></description></item><item><title>مبدأ كيركهوفس</title><link>http://kenji.blog/ar/p/kerckhoffs-principle/</link><pubDate>Wed, 16 Apr 2025 23:53:08 +0900</pubDate><guid>http://kenji.blog/ar/p/kerckhoffs-principle/</guid><description>&lt;img src="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.png" alt="Featured image of post مبدأ كيركهوفس" />&lt;h1 id="مبدأ-كيركهوفس">مبدأ كيركهوفس
&lt;/h1>&lt;hr>
&lt;p>مرحباً!&lt;/p>
&lt;p>اليوم أود أن أتحدث عن شيء مثير للاهتمام وفي الواقع مهم جداً، وهو &amp;ldquo;مبدأ كيركهوفس&amp;rdquo;.&lt;/p>
&lt;p>أوه، انتظر لحظة.&lt;br>
قد يفكر البعض منكم: &amp;ldquo;لم أسمع أبداً عن &amp;lsquo;مبدأ كيركهوفس&amp;rsquo; ويبدو معقداً جداً&amp;hellip;&amp;rdquo; لا تقلق. هذا المقال مخصص بالضبط للأشخاص الذين يشعرون بذلك.&lt;/p>
&lt;hr>
&lt;h2 id="ماذا-تعني-التعمية-الآمنة">ماذا تعني &amp;ldquo;التعمية الآمنة&amp;rdquo;؟
&lt;/h2>&lt;p>على سبيل المثال، يأتي إليك شخص ويقول: &amp;ldquo;لا يمكن فتح هذه الخزنة إلا من قبل شخص يعرف سرها.&amp;rdquo;&lt;/p>
&lt;p>للوهلة الأولى، يبدو هذا آمناً للغاية، أليس كذلك؟&lt;br>
لكن إذا فكرت في الأمر مرة أخرى، أليس هذا مقلقاً بعض الشيء؟&lt;/p>
&lt;p>مثل، &amp;ldquo;إذا تم الكشف عن هذا السر، فقد انتهى كل شيء، صحيح؟&amp;rdquo;&lt;/p>
&lt;p>في الواقع، هذا هو سبب تقديم مبدأ كيركهوفس.&lt;/p>
&lt;hr>
&lt;h2 id="ما-هو-مبدأ-كيركهوفس-بالضبط">ما هو &amp;ldquo;مبدأ كيركهوفس&amp;rdquo; بالضبط؟
&lt;/h2>&lt;p>باختصار شديد، إنه:&lt;/p>
&lt;p>فكرة أن &lt;strong>&amp;ldquo;التشفير يجب أن يبقى آمناً حتى لو تم الكشف عن آليته&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;p>وبشكل أدق، &amp;ldquo;يجب أن يعتمد الأمان فقط على &amp;lsquo;المفتاح السري&amp;rsquo;، ولا بأس إذا تم نشر طريقة التشفير نفسها!&amp;rdquo;&lt;/p>
&lt;p>على العكس من ذلك، &amp;ldquo;النظام الذي يعتمد فقط على سرية خوارزمية (آلية) التشفير الخاصة به يعتبر ضعيف الموثوقية.&amp;rdquo;&lt;/p>
&lt;hr>
&lt;h2 id="آمن-طالما-أن-الآلية-سرية-قد-يكون-أمرا-خطيرا-بعض-الشيء">&amp;ldquo;آمن طالما أن الآلية سرية&amp;rdquo; قد يكون أمراً خطيراً بعض الشيء
&lt;/h2>&lt;p>طريقة التفكير هذه شائعة جداً:&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;لم أري محتويات هذا التطبيق لأي شخص، لذلك فالأمان مضمون.&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;p>أنا أفهم هذا الشعور.&lt;br>
لكن هذا يوازي قول: &amp;ldquo;بما أن أحداً لم يره، فلن يتم العثور على أي ثغرات، لذا فكل شيء على ما يرام، أليس كذلك؟&amp;rdquo;&lt;/p>
&lt;p>في الواقع، حقيقة أن &amp;ldquo;لا أحد قد رآه&amp;rdquo; بحد ذاتها يمكن أن تكون خطراً.&lt;/p>
&lt;hr>
&lt;h2 id="لكن-لماذا-يعد-مثل-هذا-المبدأ-مهما">لكن لماذا يعد مثل هذا المبدأ مهماً؟
&lt;/h2>&lt;p>السبب هو أنه إذا حصل شخص ما على الآلية وتمكن من كسرها بسهولة، فإن هذا التشفير قد فشل.&lt;/p>
&lt;p>كقياس، تخيل قفل باب بآلية معقدة جداً، ولكن يمكن فتحه فعلياً بمفتاح منسوخ مصنوع في متجر رخيص.&lt;/p>
&lt;p>ليس المهم هو &amp;ldquo;إنه آمن لأن المفتاح سري&amp;rdquo;، بل المهم هو &amp;ldquo;حتى لو تم عرض الآلية بالكامل، لا يمكن فتحه بدون المفتاح الصحيح.&amp;rdquo;&lt;/p>
&lt;hr>
&lt;h2 id="شعور-لكن-أليس-هذا-مخيفا">شعور &amp;ldquo;لكن، أليس هذا مخيفاً؟&amp;rdquo;
&lt;/h2>&lt;p>الشيء الذي يشعر به الكثير من الناس هنا هو،&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;كشف الآلية بأكملها، أليس هذا مخيفاً بعض الشيء؟&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;p>أنا أتفهم هذا القلق.&lt;/p>
&lt;p>لأنك بالتأكيد ستفكر: &amp;ldquo;إذا أظهرت كل شيء، ألن يتم تقليده أو إساءة استخدامه؟&amp;rdquo;&lt;/p>
&lt;p>ومع ذلك، هذا هو بالضبط جوهر مبدأ كيركهوفس.&lt;br>
&amp;ldquo;القوة التي لا تنهار حتى لو تم عرض المحتويات&amp;rdquo; هو ما يمثل الأمان الحقيقي.&lt;/p>
&lt;hr>
&lt;h2 id="ومع-ذلك-يتطلب-الأمر-القليل-من-الشجاعة-في-البداية">ومع ذلك، يتطلب الأمر القليل من الشجاعة في البداية
&lt;/h2>&lt;p>إذا حاولت وضع نفسك مكان مطور، فإن &amp;ldquo;نشر الآلية = كشف نقاط الضعف أيضاً&amp;rdquo; هو بالتأكيد أمر مثير للتوتر.&lt;/p>
&lt;p>لكن فكر في الأمر.&lt;/p>
&lt;p>الشيء الذي يظهر آليته بصراحة ويقول: &amp;ldquo;يمكن لأي شخص التحقق من ذلك&amp;rdquo;، سيحظى بمزيد من الثقة في النهاية.&lt;/p>
&lt;p>أليس هذا مشابهاً للعلاقات الإنسانية؟&lt;/p>
&lt;p>&amp;ldquo;الشخص الذي يظهر طبيعته الحقيقية ويبقى من السهل التعامل معه&amp;rdquo;، هو بالتأكيد من يجعلك تشعر بأكبر قدر من الطمأنينة.&lt;/p>
&lt;hr>
&lt;h2 id="وهكذا">وهكذا
&lt;/h2>&lt;p>قد يبدو مبدأ كيركهوفس نظرياً بعض الشيء، لكن جوهره بسيط للغاية.&lt;/p>
&lt;p>الأمر كله يتعلق بـ &lt;strong>&amp;ldquo;دعونا نصنع آلية لن تنكسر بغض النظر عمن ينظر إليها&amp;rdquo;&lt;/strong> .&lt;/p>
&lt;p>التصميم المناسب أهم من الأسرار السطحية.&lt;br>
التعليمات البرمجية التي لا تخجل من إظهارها أفضل من التعليمات البرمجية التي لا تريد أن تريها لأي شخص.&lt;/p>
&lt;p>مثل هذه &amp;ldquo;القوة&amp;rdquo; ربما تكون مطلوبة أكثر فأكثر في المستقبل.&lt;/p>
&lt;hr>
&lt;p>شكراً على القراءة!&lt;/p>
&lt;p>موضوع الأمان قد يكون صعباً بعض الشيء، لكن هناك أجزاء ترتبط بـ &amp;ldquo;العلاقات الإنسانية&amp;rdquo; و &amp;ldquo;الشعور اليومي بالأمان&amp;rdquo;.&lt;br>
أنا متأكد من أنك إذا درسته شيئاً فشيئاً دون أن تشعر بالإرهاق، فستحدث أشياء جيدة.&lt;/p>
&lt;hr>
&lt;p>&lt;img src="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.png"
width="189"
height="282"
srcset="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_hu715032b7fe5224f655ebb7d29b676305_77325_480x0_resize_box_3.png 480w, 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_hu715032b7fe5224f655ebb7d29b676305_77325_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="Auguste Kerckhoffs"
class="gallery-image"
data-flex-grow="67"
data-flex-basis="160px"
>&lt;/p></description></item><item><title>خطوات تشغيل PowerShell من C++ عبر C++/CLI DLL</title><link>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/</link><pubDate>Wed, 16 Apr 2025 01:58:03 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post خطوات تشغيل PowerShell من C++ عبر C++/CLI DLL" />&lt;h1 id="-خطوات-تشغيل-powershell-من-c-عبر-ccli-dll-visual-studio-2022--c">🎯 خطوات تشغيل PowerShell من C++ عبر C++/CLI DLL (Visual Studio 2022 / C++)
&lt;/h1>&lt;h2 id="-الهيكل-العام">✅ الهيكل العام
&lt;/h2>&lt;h3 id="--غلاف-cli-dll-ccli">🔹 ① غلاف CLI DLL (C++/CLI)
&lt;/h3>&lt;p>يوفر وظيفة لتشغيل نصوص PowerShell.&lt;/p>
&lt;h3 id="--الجانب-المتصل-بـ-native-c">🔹 ② الجانب المتصل بـ Native C++
&lt;/h3>&lt;p>يستدعي CLI DLL لتشغيل نصوص PowerShell.&lt;/p>
&lt;hr>
&lt;h2 id="-الخطوة-1-إنشاء-مشروع-غلاف-cli-dll">🔧 الخطوة 1: إنشاء مشروع غلاف CLI DLL
&lt;/h2>&lt;h3 id="1-إنشاء-المشروع">1. إنشاء المشروع
&lt;/h3>&lt;ul>
&lt;li>[إنشاء جديد] → [C++] → &lt;strong>CLR Class Library (.NET Framework)&lt;/strong>&lt;/li>
&lt;li>الاسم: &lt;code>PowerShellWrapper&lt;/code>&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>💡 إذا لم يظهر هذا القالب، قم بتثبيت بيئة عمل &amp;ldquo;.NET desktop development&amp;rdquo;.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h3 id="2-إضافة-حزمة-nuget">2. إضافة حزمة NuGet
&lt;/h3>&lt;ol>
&lt;li>انقر بزر الماوس الأيمن على المشروع → [إدارة حزم NuGet]&lt;/li>
&lt;li>ابحث عن &lt;code>System.Management.Automation&lt;/code> وقم بتثبيته
(الإصدار 5.x أو 7.x)&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h3 id="3-تنفيذ-الكود-من-جانب-cli">3. تنفيذ الكود من جانب CLI
&lt;/h3>&lt;h4 id="powershellwrapperh">PowerShellWrapper.h
&lt;/h4>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#pragma once
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">namespace&lt;/span> &lt;span class="n">PowerShellWrapper&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">public&lt;/span> &lt;span class="n">ref&lt;/span> &lt;span class="k">class&lt;/span> &lt;span class="nc">PowerShellExecutor&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">public&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">String&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">Execute&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">String&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">script&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h4 id="powershellwrappercpp">PowerShellWrapper.cpp
&lt;/h4>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;#34;PowerShellWrapper.h&amp;#34;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">Management&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">Automation&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">Collections&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">ObjectModel&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">String&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">PowerShellWrapper&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">PowerShellExecutor&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">Execute&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">String&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">script&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PowerShell&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">ps&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">PowerShell&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">Create&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ps&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">AddScript&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">script&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Collection&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">PSObject&lt;/span>&lt;span class="o">^&amp;gt;^&lt;/span> &lt;span class="n">results&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ps&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">Invoke&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">System&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">Text&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">StringBuilder&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">sb&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">gcnew&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">Text&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">StringBuilder&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="nf">each&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">PSObject&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">result&lt;/span> &lt;span class="n">in&lt;/span> &lt;span class="n">results&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">sb&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">AppendLine&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">result&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">ToString&lt;/span>&lt;span class="p">());&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">sb&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">ToString&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="-الخطوة-2-الاستدعاء-من-جانب-native-c">🔧 الخطوة 2: الاستدعاء من جانب Native C++
&lt;/h2>&lt;h3 id="1-إنشاء-مشروع-تطبيق-وحدة-تحكم-c">1. إنشاء مشروع تطبيق وحدة تحكم C++
&lt;/h3>&lt;ul>
&lt;li>الاسم: &lt;code>NativeApp&lt;/code>&lt;/li>
&lt;/ul>
&lt;h3 id="2-إعدادات-المرجع">2. إعدادات المرجع
&lt;/h3>&lt;ul>
&lt;li>انقر بزر الماوس الأيمن على المشروع → [إضافة مرجع] → [مشاريع] → أضف &lt;code>PowerShellWrapper&lt;/code>&lt;/li>
&lt;li>[خصائص التكوين] → [C/C++] → [دعم وقت تشغيل اللغة المشتركة] → التغيير إلى &lt;strong>/clr&lt;/strong>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="3-كود-التنفيذ-maincpp">3. كود التنفيذ (main.cpp)
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#using &amp;lt;System.dll&amp;gt;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#using &amp;#34;..\\PowerShellWrapper\\Debug\\PowerShellWrapper.dll&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">System&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">PowerShellWrapper&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">int&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PowerShellExecutor&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">executor&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">gcnew&lt;/span> &lt;span class="n">PowerShellExecutor&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">String&lt;/span>&lt;span class="o">^&lt;/span> &lt;span class="n">result&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">executor&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">Execute&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Get-Process | Select-Object -First 1&amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Console&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">WriteLine&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">result&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="-ملاحظات-إضافية-idl--tlb--تسجيل-com">💡 ملاحظات إضافية (IDL / TLB / تسجيل COM)
&lt;/h2>&lt;ul>
&lt;li>نظراً لأن هذا التكوين يشير مباشرة إلى .NET DLL بدلاً من COM، فإنه &lt;strong>لا حاجة إلى IDL أو TLB أو تسجيل COM&lt;/strong> .&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="-التكوين-النهائي">✅ التكوين النهائي
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Solution
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">├── PowerShellWrapper (C++/CLI DLL)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ └── PowerShellExecutor
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">├── NativeApp (C++ EXE)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> └── main.cpp → استدعاء DLL
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr></description></item><item><title>أمر التحقق من حالة ترخيص Windows</title><link>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/</link><pubDate>Mon, 14 Apr 2025 00:41:45 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post أمر التحقق من حالة ترخيص Windows" />&lt;h1 id="windowsكيفية-التحقق-من-حالة-الترخيص-بأمر-واحد-فقط">【Windows】كيفية التحقق من حالة الترخيص (بأمر واحد فقط)
&lt;/h1>&lt;p>هل تساءلت يوماً عما إذا كان ترخيص Windows الخاص بك قد تم تنشيطه بشكل صحيح؟&lt;/p>
&lt;p>عندما يحدث ذلك، هناك طريقة ملائمة للتحقق من معلومات الترخيص الخاصة بك باستخدام &lt;strong>أمر واحد&lt;/strong>. ما عليك سوى اتباع الخطوات أدناه للتحقق بسهولة من حالة الترخيص الحالية.&lt;/p>
&lt;h2 id="أمر-للتحقق-من-حالة-الترخيص">أمر للتحقق من حالة الترخيص
&lt;/h2>&lt;p>يمكنك استخدام أداة البرنامج النصي المضمنة في Windows لعرض معلومات الترخيص. الأمر الذي يجب استخدامه هو هذا:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">slmgr /dli
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>عند تشغيل هذا الأمر، سيتم عرض بعض معلومات الترخيص في نافذة.&lt;/p>
&lt;h2 id="كيفية-التنفيذ">كيفية التنفيذ
&lt;/h2>&lt;ol>
&lt;li>
&lt;p>&lt;strong>اكتب &amp;ldquo;cmd&amp;rdquo; من &amp;ldquo;قائمة ابدأ&amp;rdquo;، وانقر بزر الماوس الأيمن على موجه الأوامر → &amp;ldquo;تشغيل كمسؤول&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>أدخل ما يلي في موجه الأوامر واضغط على Enter:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">slmgr /dli
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/li>
&lt;li>
&lt;p>بعد الانتظار لبضع ثوانٍ، سيتم عرض معلومات الترخيص التالية.&lt;/p>
&lt;p>&lt;img src="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.png"
width="346"
height="198"
srcset="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_hu36ac086b0626fce0cec542003390f65d_5495_480x0_resize_box_3.png 480w, 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_hu36ac086b0626fce0cec542003390f65d_5495_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="شاشة التحقق من ترخيص Windows"
class="gallery-image"
data-flex-grow="174"
data-flex-basis="419px"
>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="المعلومات-الرئيسية-المعروضة">المعلومات الرئيسية المعروضة
&lt;/h2>&lt;ul>
&lt;li>جزء من مفتاح المنتج&lt;/li>
&lt;li>نوع الترخيص (البيع بالتجزئة، OEM، إلخ)&lt;/li>
&lt;li>حالة الترخيص (صالح، منتهي الصلاحية، غير مصدق عليه، إلخ)&lt;/li>
&lt;/ul>
&lt;h2 id="ماذا-لو-أردت-معرفة-المزيد-من-المعلومات-التفصيلية">ماذا لو أردت معرفة المزيد من المعلومات التفصيلية؟
&lt;/h2>&lt;p>هناك أيضًا أوامر مثل ما يلي:&lt;/p>
&lt;ul>
&lt;li>&lt;code>slmgr /dlv&lt;/code>: يعرض معلومات ترخيص أكثر تفصيلاً&lt;/li>
&lt;li>&lt;code>slmgr /xpr&lt;/code>: يعرض تاريخ انتهاء صلاحية الترخيص (ما إذا كان دائمًا أم لا)&lt;/li>
&lt;/ul>
&lt;h2 id="ملخص">ملخص
&lt;/h2>&lt;p>يمكنك بسهولة التحقق من حالة ترخيص Windows بأمر واحد.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>تحقق بسيط&lt;/strong>: &lt;code>slmgr /dli&lt;/code>&lt;/li>
&lt;li>&lt;strong>تأكيد مفصل&lt;/strong>: &lt;code>slmgr /dlv&lt;/code>&lt;/li>
&lt;li>&lt;strong>تأكيد تاريخ انتهاء الصلاحية&lt;/strong>: &lt;code>slmgr /xpr&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>إذا كانت هناك مشكلة في الترخيص، فقد تكون هناك قيود على التحديثات وبعض الوظائف، لذلك من الآمن التحقق بانتظام.&lt;/p></description></item><item><title>معلمات ffmpeg لنظام iOS</title><link>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/</link><pubDate>Sun, 02 Mar 2025 04:16:07 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post معلمات ffmpeg لنظام iOS" />&lt;h1 id="معلمات-تحويل-ffmpeg-المحسنة-لنظام-ios">معلمات تحويل ffmpeg المحسنة لنظام iOS
&lt;/h1>&lt;p>نقدم لكم أمر &lt;code>ffmpeg&lt;/code> لتحويل مقاطع الفيديو بحيث يمكن تشغيلها بسلاسة على أجهزة iOS (مثل iPhone و iPad).&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">ffmpeg -i input.mp4 &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span>-c:v libx264 -profile:v high -level 4.1 &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span>-vf &lt;span class="s2">&amp;#34;scale=1920:-2&amp;#34;&lt;/span> -r &lt;span class="m">30&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span>-crf &lt;span class="m">20&lt;/span> -preset slow &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span>-c:a aac -b:a 128k -ar &lt;span class="m">48000&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span>-movflags +faststart output.mp4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="معنى-كل-خيار-شرح-بسيط">معنى كل خيار (شرح بسيط)
&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>الخيار&lt;/th>
&lt;th>الوصف&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>-i input.mp4&lt;/code>&lt;/td>
&lt;td>ملف الإدخال (الفيديو الأصلي)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>-c:v libx264&lt;/code>&lt;/td>
&lt;td>ترميز الفيديو بصيغة H.264 (متوافق مع iOS)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>-profile:v high -level 4.1&lt;/code>&lt;/td>
&lt;td>ملف تعريف ومستوى متوافقان على نطاق واسع في iOS&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>-vf &amp;quot;scale=1920:-2&amp;quot;&lt;/code>&lt;/td>
&lt;td>تغيير الحجم إلى عرض 1920 بكسل، ويتم ضبط الارتفاع تلقائيًا مع الحفاظ على نسبة العرض إلى الارتفاع&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>-r 30&lt;/code>&lt;/td>
&lt;td>تحويل معدل الإطارات إلى 30 إطارًا في الثانية&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>-crf 20&lt;/code>&lt;/td>
&lt;td>جودة الفيديو (كلما انخفض الرقم، زادت الجودة، موصى به 18-23)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>-preset slow&lt;/code>&lt;/td>
&lt;td>التوازن بين سرعة الترميز ومعدل الضغط (slow يعني ضغط عالي وجودة عالية)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>-c:a aac&lt;/code>&lt;/td>
&lt;td>ترميز الصوت بصيغة AAC&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>-b:a 128k&lt;/code>&lt;/td>
&lt;td>تعيين معدل البت الصوتي إلى 128 كيلوبت في الثانية&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>-ar 48000&lt;/code>&lt;/td>
&lt;td>تعيين معدل أخذ العينات الصوتية إلى 48 كيلو هرتز (موصى به في iOS)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>-movflags +faststart&lt;/code>&lt;/td>
&lt;td>وضع الفهرس في بداية الفيديو لتسريع ** تشغيل البث على الويب و iOS **&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;p>من المتوقع أن تتمتع مقاطع الفيديو المحولة بهذه الإعدادات بتوافق عالٍ وتشغيل سلس على أجهزة Apple مثل iPhone و iPad.&lt;/p>
&lt;hr>
&lt;p>إذا لزم الأمر، يمكنك ضبط حجم الملف وجودة الصورة عن طريق تغيير الدقة أو معدل البت. إذا كنت بحاجة إلى جودة عالية، فحاول تعيين &lt;code>-crf&lt;/code> إلى حوالي 18، وإذا كنت تريد تقليل حجم الملف، فقم بتعيينه إلى 22-25.&lt;/p></description></item><item><title>خطوات استعادة (تهيئة وإصلاح) نظام التشغيل لأجهزة Android (Google Pixel)</title><link>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/</link><pubDate>Fri, 28 Feb 2025 01:20:41 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.jpg" alt="Featured image of post خطوات استعادة (تهيئة وإصلاح) نظام التشغيل لأجهزة Android (Google Pixel)" />&lt;h1 id="خطوات-استعادة-أجهزة-android-google-pixel">خطوات استعادة أجهزة Android (Google Pixel)
&lt;/h1>&lt;p>إذا واجه جهاز Google Pixel مشكلات خطيرة في النظام مثل &amp;ldquo;إعادة التشغيل المتكرر (bootloop)&amp;rdquo; أو &amp;ldquo;التوقف عند شاشة الشعار&amp;rdquo; أو &amp;ldquo;أصبح الأداء غير مستقر للغاية&amp;rdquo;، فيمكنك استخدام الأداة الرسمية من Google &lt;strong>&amp;ldquo;Pixel Update and Software Repair&amp;rdquo;&lt;/strong> لاستعادة (إصلاح) برنامج الجهاز بأمان عبر المتصفح.&lt;/p>
&lt;p>تشرح هذه المقالة الخطوات المحددة والنقاط التي يجب الانتباه إليها بالتفصيل.&lt;/p>
&lt;hr>
&lt;h2 id="1-الوصول-إلى-أداة-الاستعادة">1. الوصول إلى أداة الاستعادة
&lt;/h2>&lt;p>أولاً، قم بالوصول إلى صفحة أداة الإصلاح الرسمية التالية من متصفح (يُوصى باستخدام Google Chrome أو Microsoft Edge) على جهاز الكمبيوتر الخاص بك (Windows أو Mac).&lt;/p>
&lt;p>🔗 &lt;strong>&lt;a class="link" href="https://pixelrepair.withgoogle.com/carrier_selection" target="_blank" rel="noopener"
>الموقع الرسمي لأداة Pixel Update and Software Repair&lt;/a>&lt;/strong>&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>※ملاحظة※&lt;/strong>
عند تنفيذ عملية الاستعادة، قد يتم &lt;strong>مسح جميع البيانات (التهيئة)&lt;/strong> الموجودة على الجهاز (الصور، التطبيقات، جهات الاتصال، وما إلى ذلك). إذا كان الجهاز لا يزال قابلاً للتشغيل، فتأكد من إجراء نسخ احتياطي إلى Google Drive أو ما شابه ذلك مسبقًا.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h2 id="2-التحضير-قبل-الاستعادة">2. التحضير قبل الاستعادة
&lt;/h2>&lt;p>لضمان سير العملية بسلاسة، قم بإعداد ما يلي.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>شحن البطارية&lt;/strong>
إذا انقطع التيار الكهربائي في منتصف العملية، فقد يصبح الجهاز &amp;ldquo;معطلاً تمامًا&amp;rdquo;. تأكد من شحن البطارية بنسبة 50% على الأقل، ومن الأفضل أن تكون مشحونة بالكامل.&lt;/li>
&lt;li>&lt;strong>استخدام كابل USB أصلي&lt;/strong>
يُوصى بشدة باستخدام كابل USB-C الأصلي المرفق مع الجهاز لضمان نقل البيانات بشكل مستقر.&lt;/li>
&lt;li>&lt;strong>(إذا لزم الأمر) تثبيت برامج التشغيل&lt;/strong>
إذا كنت تستخدم جهاز كمبيوتر يعمل بنظام Windows، فقد لا يتم التعرف على الجهاز بشكل صحيح. في هذه الحالة، يرجى تثبيت &lt;a class="link" href="https://developer.android.com/studio/run/win-usb?hl=ar" target="_blank" rel="noopener"
>Google USB Driver&lt;/a> .&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="3-خطوات-الاستعادة-المحددة">3. خطوات الاستعادة المحددة
&lt;/h2>&lt;p>بمجرد الانتهاء من التحضيرات، اتبع التعليمات التي تظهر على الشاشة لمتابعة الاستعادة.&lt;/p>
&lt;h3 id="step-1-اختيار-شركة-الاتصالات-وتوصيل-الجهاز">Step 1: اختيار شركة الاتصالات وتوصيل الجهاز
&lt;/h3>&lt;p>عند فتح الموقع، ستظهر أولاً شاشة لاختيار شركة الاتصالات. إذا كان جهازك خاليًا من قيود SIM أو غير مرتبط بشركة اتصالات، فاختر &amp;ldquo;أخرى (Other)&amp;rdquo; أو ما شابه ذلك.
بعد ذلك، قم بتوصيل جهاز الكمبيوتر وجهاز Pixel باستخدام كابل USB.&lt;/p>
&lt;h3 id="step-2-الدخول-في-وضع-rescue-mode-fastboot-mode">Step 2: الدخول في وضع Rescue Mode (Fastboot Mode)
&lt;/h3>&lt;p>باتباع التعليمات التي تظهر على الشاشة، بدءًا من إيقاف تشغيل الجهاز، &lt;strong>اضغط مع الاستمرار على زر الطاقة وزر خفض الصوت في نفس الوقت&lt;/strong> لبدء وضع Fastboot (شاشة بخلفية سوداء يظهر عليها رمز Android مستلقيًا).&lt;/p>
&lt;h3 id="step-3-التعرف-على-الجهاز-في-جهاز-الكمبيوتر">Step 3: التعرف على الجهاز في جهاز الكمبيوتر
&lt;/h3>&lt;p>عند النقر فوق الزر &amp;ldquo;توصيل الجهاز&amp;rdquo; في المتصفح، سيتم فتح نافذة منبثقة للمتصفح وسيتم عرض جهاز Pixel المتصل في القائمة. حدد الجهاز المستهدف واسمح بالاتصال.&lt;/p>
&lt;h3 id="step-4-تنزيل-البرنامج-وتثبيته">Step 4: تنزيل البرنامج وتثبيته
&lt;/h3>&lt;p>بمجرد التعرف على الجهاز، سيتم تحديد الإصدار الأمثل من نظام التشغيل Android (البرنامج الثابت) تلقائيًا. عند النقر فوق &amp;ldquo;تثبيت&amp;rdquo;، سيتم تنزيل البرنامج على جهاز الكمبيوتر وستبدأ عملية الكتابة (التفليش) على الجهاز.&lt;/p>
&lt;blockquote>
&lt;p>⚠️ &lt;strong>تحذير:&lt;/strong> أثناء هذه العملية، &lt;strong>لا تقم أبدًا بفصل كابل USB أو إيقاف تشغيل جهاز الكمبيوتر.&lt;/strong>&lt;/p>
&lt;/blockquote>
&lt;h3 id="step-5-الانتهاء-والإعداد-الأولي">Step 5: الانتهاء والإعداد الأولي
&lt;/h3>&lt;p>إذا وصل شريط التقدم إلى 100% وظهرت رسالة &amp;ldquo;اكتمل&amp;rdquo;، فقد تمت الاستعادة بنجاح. سيتم إعادة تشغيل الجهاز تلقائيًا وعرض شاشة الإعداد الأولي (شاشة &amp;ldquo;مرحبًا&amp;rdquo;) تمامًا كما كان عند الشراء.&lt;/p>
&lt;hr>
&lt;h2 id="الخاتمة">الخاتمة
&lt;/h2>&lt;p>أداة الإصلاح الرسمية من Google Pixel هي أداة ممتازة تتيح لك إعادة تفليش البرنامج الثابت بأمان بنقرات قليلة فقط في المتصفح، دون الحاجة إلى تشغيل أوامر خاصة (adb أو fastboot) مباشرة.&lt;/p>
&lt;p>قبل أخذ الجهاز المعطل إلى المتجر، جرب هذه الخطوات، فقد تحل المشكلة بسهولة. نأمل أن يكون هذا مفيدًا لك.&lt;/p></description></item><item><title>إرسال بريد Gmail باستخدام curl</title><link>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/</link><pubDate>Thu, 27 Feb 2025 02:13:31 +0900</pubDate><guid>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/</guid><description>&lt;img src="http://kenji.blog/p/gmail%E3%82%92curl%E3%81%8B%E3%82%89%E9%80%81%E3%82%8B/img.png" alt="Featured image of post إرسال بريد Gmail باستخدام curl" />&lt;h1 id="إرسال-بريد-gmail-باستخدام-curl">إرسال بريد Gmail باستخدام curl
&lt;/h1>&lt;h2 id="1-الحصول-على-كلمة-مرور-التطبيق">1. الحصول على كلمة مرور التطبيق
&lt;/h2>&lt;p>&lt;a class="link" href="https://myaccount.google.com/apppasswords" target="_blank" rel="noopener"
>https://myaccount.google.com/apppasswords&lt;/a>
انقر على الرابط أعلاه وأدخل اسم التطبيق.
احفظ كلمة المرور التي تم إنشاؤها.&lt;/p>
&lt;h2 id="2-إرسال-بريد-إلكتروني-باستخدام-أمر-curl">2. إرسال بريد إلكتروني باستخدام أمر curl
&lt;/h2>&lt;p>قم بتنفيذ الأمر التالي.&lt;/p>
&lt;p>في المثال أدناه، تم كتابة محتوى البريد الإلكتروني في mail.txt.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-mail.txt" data-lang="mail.txt">&lt;span class="line">&lt;span class="cl">From: from@gmail.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">To: to@gmail.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Subject: رسالة اختبار
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Content-Type: text/plain; charset=&amp;#34;UTF-8&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">هذه رسالة اختبار.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>قم بإنشاء الملف أعلاه، وقم بتنفيذ الأمر التالي.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">curl --url &lt;span class="s2">&amp;#34;smtps://smtp.gmail.com:465&amp;#34;&lt;/span> --ssl-reqd --mail-from &lt;span class="s2">&amp;#34;from@gmail.com&amp;#34;&lt;/span> --mail-rcpt &lt;span class="s2">&amp;#34;to@gmail.com&amp;#34;&lt;/span> --user &lt;span class="s2">&amp;#34;from@gmail.com:xxxxxxxxxxxxxxxx&amp;#34;&lt;/span> --upload-file mail.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>※ يرجى استبدال xxxxxxxxxxxxxxxx بكلمة مرور التطبيق.&lt;/p></description></item><item><title>مقتطفات كود بايثون</title><link>http://kenji.blog/ar/p/python%E3%82%B3%E3%83%BC%E3%83%89%E7%89%87/</link><pubDate>Mon, 24 Feb 2025 18:21:14 +0900</pubDate><guid>http://kenji.blog/ar/p/python%E3%82%B3%E3%83%BC%E3%83%89%E7%89%87/</guid><description>&lt;img src="http://kenji.blog/p/python%E3%82%B3%E3%83%BC%E3%83%89%E7%89%87/img.png" alt="Featured image of post مقتطفات كود بايثون" />&lt;p>مقدمة لنموذج كود باستخدام المكتبة القياسية.&lt;/p>
&lt;h1 id="تنزيل-وعرض-صورة">تنزيل وعرض صورة
&lt;/h1>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">urllib.request&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">tempfile&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">os&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">webbrowser&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">time&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">url&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;https://www.aomori-ringo.or.jp/kids/wp-content/uploads/2021/11/apple.png&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">try&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">with&lt;/span> &lt;span class="n">urllib&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">request&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">urlopen&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">response&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">img_data&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">response&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">read&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># حفظ في ملف مؤقت وعرضه&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">with&lt;/span> &lt;span class="n">tempfile&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">NamedTemporaryFile&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">delete&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="kc">False&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">suffix&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;.png&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">tmp&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">tmp&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">write&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">img_data&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;file://&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">tmp&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">name&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">webbrowser&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;file://&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">tmp&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">name&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">time&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sleep&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">except&lt;/span> &lt;span class="ne">Exception&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">e&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;حدث خطأ: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">e&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">finally&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="s1">&amp;#39;tmp&amp;#39;&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">locals&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">unlink&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">tmp&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">name&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="c1"># حذف الملف المؤقت&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>استدعاء واجهة برمجة تطبيقات ChatGPT من curl</title><link>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/</link><pubDate>Sat, 01 Feb 2025 17:15:34 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post استدعاء واجهة برمجة تطبيقات ChatGPT من curl" />&lt;h1 id="استدعاء-واجهة-برمجة-تطبيقات-chatgpt-من-curl">استدعاء واجهة برمجة تطبيقات ChatGPT من curl
&lt;/h1>&lt;p>يفترض هذا استدعاءه من موجه أوامر Windows.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">curl https://api.openai.com/v1/chat/completions -H &amp;#34;Content-Type: application/json&amp;#34; -H &amp;#34;Authorization: Bearer sk-proj-XXXXXXXXXXXXXXXXXXXX&amp;#34; -d &amp;#34;{&amp;#34;&amp;#34;model&amp;#34;&amp;#34;: &amp;#34;&amp;#34;gpt-3.5-turbo&amp;#34;&amp;#34;,&amp;#34;&amp;#34;messages&amp;#34;&amp;#34;: [{&amp;#34;&amp;#34;role&amp;#34;&amp;#34;: &amp;#34;&amp;#34;system&amp;#34;&amp;#34;, &amp;#34;&amp;#34;content&amp;#34;&amp;#34;: &amp;#34;&amp;#34;يرجى الإجابة بلهجة كانساي.&amp;#34;&amp;#34;}, {&amp;#34;&amp;#34;role&amp;#34;&amp;#34;: &amp;#34;&amp;#34;user&amp;#34;&amp;#34;, &amp;#34;&amp;#34;content&amp;#34;&amp;#34;: &amp;#34;&amp;#34;أدخل الرسالة التي تريد إرسالها هنا&amp;#34;&amp;#34;}]}&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>ملخص أسهم الأرباح العالية</title><link>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/</link><pubDate>Sun, 22 Dec 2024 00:56:14 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post ملخص أسهم الأرباح العالية" />&lt;h1 id="ملخص-أسهم-الأرباح-العالية">ملخص أسهم الأرباح العالية
&lt;/h1>&lt;ol>
&lt;li>مجموعة ميتسوبيشي يو إف جي المالية (8306)&lt;/li>
&lt;li>مجموعة سوميتومو ميتسوي المالية (8316)&lt;/li>
&lt;li>شركة ميتسوبيشي (8058)&lt;/li>
&lt;li>شركة إيتوتشو (8001)&lt;/li>
&lt;li>إن تي تي (9432)&lt;/li>
&lt;li>كي دي دي آي (9433)&lt;/li>
&lt;li>أوكيناوا سيلولار تيليفون (9436)&lt;/li>
&lt;li>طوكيو مارين القابضة (8766)&lt;/li>
&lt;li>تويوتا موتور (7203)&lt;/li>
&lt;li>ياماها موتور (7272)&lt;/li>
&lt;li>أساهي جروب هولدينجز (2502)&lt;/li>
&lt;li>كيرين القابضة (2503)&lt;/li>
&lt;li>جيه تي (2914)&lt;/li>
&lt;li>بريدجستون (5108)&lt;/li>
&lt;li>دايوا هاوس إندستري (1925)&lt;/li>
&lt;li>سيكيسوي هاوس (1928)&lt;/li>
&lt;li>كيوسيرا (6971)&lt;/li>
&lt;li>شين إتسو كيميكال (4063)&lt;/li>
&lt;li>نيتو دينكو (6988)&lt;/li>
&lt;li>أوريكس (8591)&lt;/li>
&lt;li>ميتسوبيشي إتش سي كابيتال (8593)&lt;/li>
&lt;li>هيوليك (3003)&lt;/li>
&lt;/ol></description></item><item><title>الأهداف</title><link>http://kenji.blog/ar/p/goals/</link><pubDate>Sun, 08 Dec 2024 03:32:34 +0900</pubDate><guid>http://kenji.blog/ar/p/goals/</guid><description>&lt;img src="http://kenji.blog/p/%E7%9B%AE%E6%A8%99/img.png" alt="Featured image of post الأهداف" />&lt;h1 id="الأهداف-طويلة-المدى">الأهداف طويلة المدى
&lt;/h1>&lt;ul>
&lt;li>بعد سنة واحدة
&lt;ul>
&lt;li>بدء عمل تجاري&lt;/li>
&lt;li>إنشاء موقع إلكتروني وإصدار برنامج (مجانًا)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>بعد سنتين
&lt;ul>
&lt;li>إيرادات سنوية تبلغ 10 مليون ين&lt;/li>
&lt;li>نشر كتاب&lt;/li>
&lt;li>إصدار برنامج (مدفوع)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>بعد 3 سنوات
&lt;ul>
&lt;li>إيرادات سنوية تبلغ 100 مليون ين&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>بعد 5 سنوات
&lt;ul>
&lt;li>إيرادات سنوية تبلغ مليار ين&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>بعد 10 سنوات
&lt;ul>
&lt;li>إيرادات سنوية تبلغ 10 مليار ين&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h1 id="الأهداف-قصيرة-المدى">الأهداف قصيرة المدى
&lt;/h1>&lt;ul>
&lt;li>بعد شهر واحد
&lt;ul>
&lt;li>إنشاء خطة عمل&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>بعد 3 أشهر
&lt;ul>
&lt;li>جمع تمويل بحوالي 5 مليون ين لبدء العمل التجاري&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>بعد 6 أشهر
&lt;ul>
&lt;li>بدء العمل التجاري&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>بعد سنة واحدة
&lt;ul>
&lt;li>وضع العمل التجاري على المسار الصحيح&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h1 id="المهام-القادمة">المهام القادمة
&lt;/h1>&lt;ol>
&lt;li>توضيح الأهداف والرؤية&lt;br>
الهدف: لماذا نقوم بإنشاء البرنامج؟
مثال: حل المشكلات، تقديم قيمة جديدة، استهداف سوق متخصصة معينة، إلخ.
الرؤية: ما هو المستقبل الذي ترغب في تحقيقه من خلال البرنامج؟
مثال: تحسين كفاءة العمل، جعل الحياة اليومية أكثر راحة، تحسين جودة التعليم، إلخ.&lt;/li>
&lt;li>أبحاث السوق وتحليل الاحتياجات&lt;br>
المستخدمون المستهدفون: من سيستخدم البرنامج؟ حدد الفئة العمرية، المهنة، الاهتمامات، إلخ، بشكل دقيق.
تحليل المنافسين: هل هناك منافسون في نفس المجال؟ قم بتحليل نقاط القوة والضعف لديهم.
تحديد الاحتياجات: فهم المشكلات والرغبات غير المحلولة للمستخدمين المستهدفين.&lt;/li>
&lt;li>تصميم البرنامج وميزاته&lt;br>
الميزات الأساسية: قم بإدراج الميزات الضرورية. مثال: مصادقة المستخدم، تخزين البيانات، ميزات التحليل، إلخ.
نقاط التميز: وضح ما يجعله فريدًا مقارنة بمنتجات المنافسين. مثال: واجهة مستخدم بسيطة، استخدام الذكاء الاصطناعي، قابلية تخصيص عالية.
المواصفات الفنية: لغات البرمجة المستخدمة، أطر العمل، قواعد البيانات، إلخ.&lt;/li>
&lt;li>خطة التطوير وتخصيص الموارد&lt;br>
الجدول الزمني للتطوير: حدد إطارًا زمنيًا لكل مرحلة من مراحل المشروع. مثال: تطوير نموذج أولي، اختبار، إصدار رسمي.
تشكيل الفريق: الأفراد والمهارات المطلوبة (مبرمجون، مصممون، موظفو تسويق، إلخ).
الميزانية: تقدير تكاليف التطوير، تكاليف التسويق، وتكاليف التشغيل.&lt;/li>
&lt;li>التسويق ونموذج الإيرادات&lt;br>
طرق الترويج: استخدم وسائل التواصل الاجتماعي، المواقع الإلكترونية، الإعلانات، إلخ لزيادة الوعي.
استراتيجية تحقيق الدخل: فكر في خيارات مثل الإصدار المجاني + الإصدار المدفوع، الاشتراك الشهري، إيرادات الإعلانات، إلخ.
استراتيجية اكتساب المستخدمين: تقديم نسخة تجريبية مجانية، تشجيع التوصيات، تكوين مجتمع للمستخدمين، إلخ.&lt;/li>
&lt;li>التشغيل والتوسع&lt;br>
التشغيل بعد الإصدار: جمع ملاحظات المستخدمين، إصلاح الأخطاء، إضافة ميزات.
استراتيجية النمو: التخطيط لكيفية زيادة عدد المستخدمين، التوسع إلى دول أخرى، وتطوير ميزات جديدة.
إدارة المخاطر: إعداد تدابير للتعامل مع المشكلات القانونية أو التقنية.&lt;/li>
&lt;/ol></description></item><item><title>حول</title><link>http://kenji.blog/ar/%D8%AD%D9%88%D9%84/</link><pubDate>Sat, 07 Dec 2024 00:00:00 +0000</pubDate><guid>http://kenji.blog/ar/%D8%AD%D9%88%D9%84/</guid><description>&lt;p>&lt;img src="http://kenji.blog/about/img_1.png"
width="400"
height="328"
srcset="http://kenji.blog/about/img_1_huacf3b85c792452cf72c6344c4d0caf3d_104793_480x0_resize_box_3.png 480w, http://kenji.blog/about/img_1_huacf3b85c792452cf72c6344c4d0caf3d_104793_1024x0_resize_box_3.png 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="121"
data-flex-basis="292px"
>&lt;/p>
&lt;h1 id="ماذا-أكتب-في-هذه-المدونة">ماذا أكتب في هذه المدونة؟
&lt;/h1>&lt;p>مرحباً!&lt;/p>
&lt;p>اليوم أود التحدث عن سؤال بسيط ومألوف ولكنه يُطرح كثيراً: &amp;ldquo;ماذا تكتب في هذه المدونة؟&amp;rdquo;&lt;/p>
&lt;p>قصة شائعة هي أن المدونات غالباً ما يُنظر إليها على أنها &amp;ldquo;مكان لنشر المعلومات المتخصصة&amp;rdquo;. على سبيل المثال، يقول الناس أشياء مثل &amp;ldquo;إذا كانت مدونة تقنية، فيجب أن تكتب فقط عن التكنولوجيا بصراحة&amp;rdquo; أو &amp;ldquo;يجب فصل اليوميات عن العمل&amp;rdquo;.&lt;/p>
&lt;p>ولكن إذا قمت برسم الكثير من الخطوط هكذا، ألا يصبح الأمر خانقاً لكل من الكاتب والقارئ؟&lt;/p>
&lt;p>في هذه المدونة، من المؤكد أن التكنولوجيا هي الموضوع الرئيسي. البرمجة والاكتشافات الصغيرة حول التطوير. أعتقد أن الأشخاص الذين يحبون هذا النوع من القصص سيستمتعون به.&lt;/p>
&lt;p>ومع ذلك، هذا ليس كل شيء.&lt;/p>
&lt;p>أكتب أيضاً شيئاً فشيئاً عن الاكتشافات اليومية الصغيرة والهوايات. على سبيل المثال، الأفكار التي تخطر ببالي أثناء المشي أو عن المانغا التي قرأتها مؤخراً. من المثير للاهتمام أن هذه الأشياء تكون مفيدة للآخرين بشكل غير متوقع.&lt;/p>
&lt;p>قد يتساءل البعض، &amp;ldquo;هل من المقبول التحدث عن أشياء غير ذات صلة على الرغم من أنها مدونة تقنية؟&amp;rdquo; ولكن هذا هو بيت القصيد.&lt;/p>
&lt;p>أعتقد أن العمل والهوايات والمشاكل اليومية كلها مترابطة. لذلك تتم كتابة هذه المدونة أيضاً في مثل هذا &amp;ldquo;الارتباط&amp;rdquo; و &amp;ldquo;التدفق&amp;rdquo;.&lt;/p>
&lt;p>لذا، إذا كان لديك أي أسئلة أو اهتمامات، فلا تتردد في التعليق. نرحب بأفكارك وانطباعاتك.&lt;/p>
&lt;p>آمل أن تكون هذه المدونة مكاناً لمثل هذا التواصل المريح.&lt;/p></description></item><item><title>صيانة المنتجات الجلدية</title><link>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/</link><pubDate>Wed, 30 Oct 2024 00:31:46 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post صيانة المنتجات الجلدية" />&lt;p>مؤخراً، أصبحت مهتماً بالمنتجات الجلدية واشتريت العديد من العناصر. خلال ذلك، تطور اهتمامي أيضاً بصيانة المنتجات الجلدية، وقد جمعت بعض العناصر المتعلقة بذلك وأود مشاركتها معكم.&lt;/p>
&lt;h1 id="منتجات-صيانة-الجلود-التي-اشتريتها-مؤخرا">منتجات صيانة الجلود التي اشتريتها مؤخراً
&lt;/h1>&lt;h2 id="mmowbray-delicate-cream">M.MOWBRAY DELICATE CREAM
&lt;/h2>&lt;p>&lt;img src="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/image1.JPEG"
width="2048"
height="1536"
srcset="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/image1_hu2baa2860805224f535a5049b0f15689e_521448_480x0_resize_q75_box.JPEG 480w, 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/image1_hu2baa2860805224f535a5049b0f15689e_521448_1024x0_resize_q75_box.JPEG 1024w"
loading="lazy"
alt="image1.JPEG"
class="gallery-image"
data-flex-grow="133"
data-flex-basis="320px"
>&lt;/p>
&lt;p>السعر: حوالي 1,320 ين&lt;/p>
&lt;p>هذا الكريم يوفر التغذية، والترطيب، وتأثيراً مرناً.
لا يعطي لمعاناً، لكنه مناسب للجلود التي تحتاج إلى الكثير من الرطوبة.
رائحته ليست سيئة، لكن له رائحة خفيفة.
أعتقد أنه متعدد الاستخدامات لأنه عديم اللون. ونظراً لأنه كريم خفيف،
قد يكون من الأفضل استخدام كمية أكبر قليلاً مقارنة بالكريمات الأخرى.&lt;/p>
&lt;h2 id="collonil-1909-supreme-creme-de-luxe">Collonil 1909 Supreme Creme de Luxe
&lt;/h2>&lt;p>&lt;img src="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/image3.JPEG"
width="1536"
height="1456"
srcset="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/image3_hu2e2775357ae6e9cda8b3181ed1a2c625_440198_480x0_resize_q75_box.JPEG 480w, 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/image3_hu2e2775357ae6e9cda8b3181ed1a2c625_440198_1024x0_resize_q75_box.JPEG 1024w"
loading="lazy"
alt="image3.JPEG"
class="gallery-image"
data-flex-grow="105"
data-flex-basis="253px"
>&lt;/p>
&lt;p>السعر: حوالي 1,777 ين&lt;/p>
&lt;p>كريم مشهور وقياسي ومتعدد الاستخدامات، ولا يترك بقعاً بسهولة. إنه كريم يصلح لون الجلد ويجعله رطباً.
يعطي لمعاناً خفيفاً. وهو أبيض اللون ويبدو أنه يوفر تأثيراً طارداً للماء أيضاً.&lt;/p>
&lt;h2 id="mmowbray-shoe-cream-أسود">M.MOWBRAY SHOE CREAM (أسود)
&lt;/h2>&lt;p>&lt;img src="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/image2.JPEG"
width="1536"
height="1295"
srcset="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/image2_hu613b0f0cd2dd5531cf18353d93b52d95_368912_480x0_resize_q75_box.JPEG 480w, 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/image2_hu613b0f0cd2dd5531cf18353d93b52d95_368912_1024x0_resize_q75_box.JPEG 1024w"
loading="lazy"
alt="image2.JPEG"
class="gallery-image"
data-flex-grow="118"
data-flex-basis="284px"
>&lt;/p>
&lt;p>السعر: حوالي 1,000 ين&lt;/p>
&lt;p>كريم للأحذية. يحتوي على الشمع، والزيوت، والمذيبات العضوية.
يصلح لون الجلد ويعطي لمعاناً. نظراً لأنه أسود، فهو مناسب للجلود السوداء.
أنا أستخدمه لأحذية البدلة الخاصة بي.&lt;/p>
&lt;h2 id="mmowbray-stain-remover">M.MOWBRAY STAIN REMOVER
&lt;/h2>&lt;p>السعر: حوالي 700 ين&lt;/p>
&lt;p>&lt;img src="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/image4.JPEG"
width="983"
height="1239"
srcset="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/image4_hu683aba9e78ed7fba9d59872956b612e1_217713_480x0_resize_q75_box.JPEG 480w, 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/image4_hu683aba9e78ed7fba9d59872956b612e1_217713_1024x0_resize_q75_box.JPEG 1024w"
loading="lazy"
alt="image4.JPEG"
class="gallery-image"
data-flex-grow="79"
data-flex-basis="190px"
>&lt;/p>
&lt;p>هذا ما جاء مع الفرشاة عندما اشتريتها.
منظف مائي للأحذية. يزيل الأوساخ من الجلد.
إذا بللت قطعة قماش بكمية وفيرة وفركت الجلد بلطف، ستزول الأوساخ.&lt;/p></description></item><item><title>نصل هانلون</title><link>http://kenji.blog/ar/p/%D9%86%D8%B5%D9%84-%D9%87%D8%A7%D9%86%D9%84%D9%88%D9%86/</link><pubDate>Tue, 24 Sep 2024 18:14:34 +0900</pubDate><guid>http://kenji.blog/ar/p/%D9%86%D8%B5%D9%84-%D9%87%D8%A7%D9%86%D9%84%D9%88%D9%86/</guid><description>&lt;img src="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.png" alt="Featured image of post نصل هانلون" />&lt;h1 id="مرحبا-نتحدث-اليوم-عن-نصل-هانلون">مرحبًا! نتحدث اليوم عن &amp;ldquo;نصل هانلون&amp;rdquo;
&lt;/h1>&lt;p>اليوم أريد أن أكتب عن فكرة ذات اسم غريب بعض الشيء تسمى &amp;ldquo;نصل هانلون&amp;rdquo;. مجرد سماع الاسم قد يجعلك تفكر، &amp;ldquo;هذا يبدو مخيفًا&amp;hellip;&amp;quot;، لكنه في الواقع مفهوم مألوف جدًا يمنحنا منظورًا لطيفًا.&lt;/p>
&lt;hr>
&lt;h1 id="هل-فكرت-يوما-قد-يكرهني-ذلك-الشخص">هل فكرت يومًا، &amp;ldquo;قد يكرهني ذلك الشخص&amp;hellip;&amp;quot;؟
&lt;/h1>&lt;p>على سبيل المثال، هل مررت بهذه التجربة من قبل؟&lt;/p>
&lt;p>・تأخر الرد على رسائل LINE
・تواصلت أعينكما لكنه لم يلقِ التحية
・تجاهل طلبك&lt;/p>
&lt;p>في أوقات كهذه، قد تقلق وتفكر، &amp;ldquo;هل يكرهني؟&amp;rdquo;
يحدث هذا لي كثيرًا. وأشعر بالإحباط من تلقاء نفسي.&lt;/p>
&lt;hr>
&lt;h1 id="ما-هو-نصل-هانلون">ما هو نصل هانلون؟
&lt;/h1>&lt;p>هنا يأتي دور &amp;ldquo;نصل هانلون&amp;rdquo;.&lt;/p>
&lt;p>هذا المصطلح في الأصل باللغة الإنجليزية هو &amp;ldquo;Hanlon&amp;rsquo;s Razor&amp;rdquo;.
المعنى تقريبًا كالتالي:&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;لا تنسب أبدًا إلى سوء النية ما يمكن تفسيره بشكل كافٍ بالغباء&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;p>&amp;hellip;هذه طريقة قاسية بعض الشيء لقول ذلك.
بطريقة أكثر لطفًا:&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;حتى لو بدا أن الشخص الآخر يتصرف بلؤم، فقد يكون مجرد خطأ أو إهمال&amp;rdquo;&lt;/p>
&lt;/blockquote>
&lt;p>هذه هي الفكرة.&lt;/p>
&lt;hr>
&lt;h1 id="من-قال-ذلك-من-هو-روبرت-ج-هانلون">من قال ذلك؟ من هو روبرت ج. هانلون؟
&lt;/h1>&lt;p>يُقال إن هذا المصطلح ظهر لأول مرة في كتاب نُشر عام 1980 بعنوان &amp;ldquo;Murphy’s Law Book Two&amp;rdquo;.&lt;/p>
&lt;p>الفكرة التي قدمها أحد المؤلفين، &lt;strong>روبرت ج. هانلون&lt;/strong> ، استُخدمت كما هي، وأصبحت تُعرف باسم &amp;ldquo;نصل هانلون&amp;rdquo;.&lt;/p>
&lt;p>بالمناسبة، هذا &amp;ldquo;النصل (Razor)&amp;rdquo; يشبه أداة فلسفية تعني &amp;ldquo;لنزيل الأشياء غير الضرورية ونفكر ببساطة&amp;rdquo;، وهي عبارة تُستخدم لتنظيم الأفكار، إلى جانب نصل أوكام.&lt;/p>
&lt;hr>
&lt;h1 id="التفكير-كان-يقصد-الأذى-أمر-مرهق">التفكير &amp;ldquo;كان يقصد الأذى&amp;rdquo; أمر مرهق
&lt;/h1>&lt;p>على سبيل المثال، عند تجاهل رسالة بريد إلكتروني في العمل.&lt;/p>
&lt;p>التفكير &amp;ldquo;لماذا لا يرد؟ هل يكرهني؟&amp;rdquo; يجعلك أكثر سلبية، أليس كذلك؟&lt;/p>
&lt;p>لكن، إذا فكرت في الأمر جيدًا،
・ربما لم ينتبه لها
・كتب الرد لكنه لم يرسله
・ضاعت الإشعارات على هاتفه الذكي&lt;/p>
&lt;p>مثل هذه الأسباب شائعة جدًا.
ونحن أنفسنا نرتكب مثل هذه الأخطاء.&lt;/p>
&lt;hr>
&lt;h1 id="من-الغريب-كيف-نتسامح-مع-أخطائنا-لكننا-نكون-قساة-مع-الآخرين">من الغريب كيف نتسامح مع أخطائنا لكننا نكون قساة مع الآخرين
&lt;/h1>&lt;p>على سبيل المثال، عندما تنسى الرد على رسالة LINE من صديق.&lt;/p>
&lt;p>ترد قائلًا، &amp;ldquo;أوه، آسف! لم أر الإشعار~&amp;rdquo; دون أي نية سيئة، أليس كذلك؟&lt;/p>
&lt;p>لكن، عندما يفعل شخص آخر نفس الشيء معك، تعتقد &amp;ldquo;لقد تجاهلني&amp;rdquo;.&lt;/p>
&lt;p>هذا يحدث كثيرًا.
الناس يتفهمون ظروفهم الخاصة جيدًا، لكن من الصعب رؤية ظروف الآخرين.&lt;/p>
&lt;hr>
&lt;h1 id="افتراض-وجود-نية-سيئة-هو-في-الواقع-خسارة">افتراض &amp;ldquo;وجود نية سيئة&amp;rdquo; هو في الواقع خسارة
&lt;/h1>&lt;p>عندما يفعل شخص ما شيئًا، وافتراض أن لديه &amp;ldquo;نية سيئة&amp;rdquo;، فإنك تجعله عدوًا في قلبك.&lt;/p>
&lt;p>لكن، في الواقع، ربما يكون مجرد شخص أخرق، أو ربما يكون مثقلًا بأشياء أخرى.&lt;/p>
&lt;p>بالطبع، هناك أشخاص وقحون حقًا، ومن الطبيعي أن تتأذى إذا عوملت بشكل سيء.&lt;/p>
&lt;p>لكن، من الأفضل عدم افتراض أن ذلك &amp;ldquo;بالتأكيد نية سيئة&amp;rdquo;، سيكون قلبك أخف قليلاً.&lt;/p>
&lt;hr>
&lt;h1 id="ومع-ذلك-لا-يعني-ذلك-أنه-يجب-عليك-تحمل-كل-شيء">ومع ذلك، لا يعني ذلك أنه يجب عليك تحمل كل شيء
&lt;/h1>&lt;p>لا تسيء فهمي هنا، لا أريد أن أقول &amp;ldquo;أنت تبالغ في القلق بشأن كل شيء&amp;rdquo;.&lt;/p>
&lt;p>عندما يفعل شخص ما شيئًا سيئًا، لا بأس أن تعتقد &amp;ldquo;كان ذلك فظيعًا&amp;rdquo;.&lt;/p>
&lt;p>ولكن، بدلاً من افتراض &amp;ldquo;ذلك الشخص سيء الطباع&amp;rdquo; أو &amp;ldquo;حاول إيذائي عن قصد&amp;rdquo;،&lt;/p>
&lt;p>أقترح أنه قد يكون من الجيد أن تكون متسامحًا قليلاً وتفكر، &amp;ldquo;ربما كان هناك سبب ما&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h1 id="لذلك-مجرد-النظر-بلطف-أكثر-قليلا-قد-يغير-العالم">لذلك: مجرد النظر بلطف أكثر قليلاً قد يغير العالم
&lt;/h1>&lt;p>أعتقد أن نصل هانلون هو &amp;ldquo;طريقة لحماية قلبك&amp;rdquo; أكثر من كونه مجرد &amp;ldquo;كن لطيفًا مع الناس&amp;rdquo;.&lt;/p>
&lt;p>عندما تشعر بالنية السيئة في أفعال شخص ما، فإن مشاعرك الخاصة تصبح متوترة أيضًا.&lt;/p>
&lt;p>ولكن، إذا استطعت أن تفكر، &amp;ldquo;ربما كان مجرد خطأ، أو لم يكن لديه وقت&amp;rdquo;، فإن مشاعرك ستكون أسهل قليلاً.&lt;/p>
&lt;p>بهذه الطريقة، إنها فكرة يمكنك استخدامها لنفسك.&lt;/p>
&lt;hr>
&lt;h1 id="أخيرا-يرجى-مشاركة-تجربتك-أيضا">أخيرًا: يرجى مشاركة تجربتك أيضًا
&lt;/h1>&lt;p>شكراً جزيلاً على القراءة.&lt;/p>
&lt;p>إذا كان لديك قصة حيث فكرت، &amp;ldquo;لقد شعرت بالانزعاج في وقت كهذا~&amp;quot;، يرجى إخباري.&lt;/p>
&lt;p>مجرد التعبير عن تجربتك بالكلمات يمكن أن يجعل قلبك يشعر ببعض الراحة، أليس كذلك؟&lt;/p>
&lt;p>إلى اللقاء!&lt;/p>
&lt;hr></description></item><item><title>المعرفة الأساسية بالكمبيوتر</title><link>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/</link><pubDate>Thu, 19 Sep 2024 01:10:20 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post المعرفة الأساسية بالكمبيوتر" />&lt;h1 id="المعرفة-الأساسية-بالكمبيوتر">المعرفة الأساسية بالكمبيوتر
&lt;/h1>&lt;p>تشرح هذه الصفحة ما هو الكمبيوتر.&lt;/p>
&lt;h2 id="تعريف-الكمبيوتر">تعريف الكمبيوتر
&lt;/h2>&lt;p>الكمبيوتر هو آلة تحتوي على الأجهزة الخمسة التالية.&lt;/p>
&lt;ol>
&lt;li>جهاز الإدخال&lt;/li>
&lt;li>جهاز الإخراج&lt;/li>
&lt;li>جهاز التخزين&lt;/li>
&lt;li>جهاز التحكم&lt;/li>
&lt;li>وحدة الحساب&lt;/li>
&lt;/ol>
&lt;p>بشكل عام، الكمبيوتر هو آلة تأخذ &lt;code>إدخالًا&lt;/code> معينًا، وتقوم بإجراء &lt;code>معالجة&lt;/code> محددة، ثم &lt;code>تخرج&lt;/code> النتيجة.
يمكنه &lt;code>تخزين&lt;/code> البيانات المدخلة، وإجراء &lt;code>العمليات الحسابية&lt;/code> عليها، ثم &lt;code>إخراجها&lt;/code>. يلعب جهاز &lt;code>التحكم&lt;/code> دورًا في التحكم في الأجهزة الأربعة المذكورة أعلاه.&lt;/p>
&lt;h2 id="ما-تحتاجه-لتشغيل-الكمبيوتر">ما تحتاجه لتشغيل الكمبيوتر
&lt;/h2>&lt;p>لتشغيل الكمبيوتر، تحتاج إلى برامج بالإضافة إلى الأجهزة.&lt;/p>
&lt;p>تخبر البرامج الكمبيوتر بالمعالجة التي يجب إجراؤها. تتم كتابة البرامج بتنسيق يمكن للكمبيوتر فهمه.&lt;/p>
&lt;p>كمثال على برنامج، يوجد ما يلي:
برنامج يحسب مجموع الأعداد الصحيحة من 1 إلى الرقم المدخل&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;iostream&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>&lt;span class="k">using&lt;/span> &lt;span class="k">namespace&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">int&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// تأمين مساحة التخزين اللازمة
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="kt">int&lt;/span> &lt;span class="n">n&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">sum&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// إخراج
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;أدخل عددًا صحيحًا: &amp;#34;&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// إدخال
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">cin&lt;/span> &lt;span class="o">&amp;gt;&amp;gt;&lt;/span> &lt;span class="n">n&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// عملية حسابية
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="kt">int&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="n">n&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="o">++&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="c1">// عملية حسابية
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">sum&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// إخراج
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="n">cout&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;مجموع الأعداد من 1 إلى &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34; هو &amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">sum&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="s">&amp;#34;.&amp;#34;&lt;/span> &lt;span class="o">&amp;lt;&amp;lt;&lt;/span> &lt;span class="n">endl&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// إنهاء
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="k">return&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>يتم تحويل البرامج إلى لغة الآلة بواسطة مترجم، ثم تحويلها إلى تنسيق يمكن للكمبيوتر تنفيذه.&lt;/p></description></item><item><title>تطبيقات iOS الموصى بها</title><link>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/</link><pubDate>Wed, 18 Sep 2024 23:31:20 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post تطبيقات iOS الموصى بها" />&lt;h2 id="تطبيقات-ios-الموصى-بها">تطبيقات iOS الموصى بها
&lt;/h2>&lt;h3 id="xhttpsappsapplecomjpappxid333903271">&lt;a class="link" href="https://apps.apple.com/jp/app/x/id333903271" target="_blank" rel="noopener"
>X&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_2.png"
width="72"
height="72"
srcset="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_2_hu462c57ec387ca409298a502f8a8b2494_3092_480x0_resize_box_3.png 480w, 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_2_hu462c57ec387ca409298a502f8a8b2494_3092_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="instagramhttpsappsapplecomjpappinstagramid389801252">&lt;a class="link" href="https://apps.apple.com/jp/app/instagram/id389801252" target="_blank" rel="noopener"
>Instagram&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_1.png"
width="72"
height="72"
srcset="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_1_huaee4f1dda91fcc48cb464b6a8341c51b_12480_480x0_resize_box_3.png 480w, 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_1_huaee4f1dda91fcc48cb464b6a8341c51b_12480_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="facebookhttpsappsapplecomjpappfacebookid284882215">&lt;a class="link" href="https://apps.apple.com/jp/app/facebook/id284882215" target="_blank" rel="noopener"
>facebook&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_3.png"
width="72"
height="72"
srcset="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_3_huc2d1e97510f3a51dfaec535717039904_6505_480x0_resize_box_3.png 480w, 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_3_huc2d1e97510f3a51dfaec535717039904_6505_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="youtubehttpsappsapplecomjpappyoutubeid544007664">&lt;a class="link" href="https://apps.apple.com/jp/app/youtube/id544007664" target="_blank" rel="noopener"
>youtube&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_4.png"
width="72"
height="72"
srcset="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_4_huc7ff17a9037ee459ec076969231732ff_2217_480x0_resize_box_3.png 480w, 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_4_huc7ff17a9037ee459ec076969231732ff_2217_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_4.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="tiktokhttpsappsapplecomjpapptiktok-e38386e382a3e38383e382afe38388e38383e382afid1235601864">&lt;a class="link" href="https://apps.apple.com/jp/app/tiktok-%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E3%83%88%E3%83%83%E3%82%AF/id1235601864" target="_blank" rel="noopener"
>TikTok&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_5.png"
width="72"
height="72"
srcset="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_5_hu586229f9b4cfff262ba6fda24e7ea241_6643_480x0_resize_box_3.png 480w, 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_5_hu586229f9b4cfff262ba6fda24e7ea241_6643_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_5.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="microsoft-edgehttpsappsapplecomjpappmicrosoft-edge-ai-e38396e383a9e382a6e382b6id1288723196">&lt;a class="link" href="https://apps.apple.com/jp/app/microsoft-edge-ai-%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6/id1288723196" target="_blank" rel="noopener"
>Microsoft Edge&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_6.png"
width="72"
height="72"
srcset="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_6_hu29f80384ce66070f1c4b087b84d37b0b_8950_480x0_resize_box_3.png 480w, 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_6_hu29f80384ce66070f1c4b087b84d37b0b_8950_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_6.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="firefoxhttpsappsapplecomjpappfirefox-private-safe-browserid989804926">&lt;a class="link" href="https://apps.apple.com/jp/app/firefox-private-safe-browser/id989804926" target="_blank" rel="noopener"
>Firefox&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_7.png"
width="72"
height="72"
srcset="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_7_hud4c8d2e9de7d5a057069e1bb8fe7a15f_8457_480x0_resize_box_3.png 480w, 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_7_hud4c8d2e9de7d5a057069e1bb8fe7a15f_8457_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_7.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="google-chromehttpsappsapplecomjpappgoogle-chromeid535886823">&lt;a class="link" href="https://apps.apple.com/jp/app/google-chrome/id535886823" target="_blank" rel="noopener"
>Google Chrome&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_8.png"
width="72"
height="72"
srcset="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_8_hucdf12dcf4c62afc76470aea9f650b47a_6392_480x0_resize_box_3.png 480w, 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_8_hucdf12dcf4c62afc76470aea9f650b47a_6392_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_8.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="chatgpthttpsappsapplecomjpappchatgptid6448311069">&lt;a class="link" href="https://apps.apple.com/jp/app/chatgpt/id6448311069" target="_blank" rel="noopener"
>ChatGPT&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_9.png"
width="72"
height="72"
srcset="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_9_hu159cd7f606ee564b08e18b29673e8c8f_3046_480x0_resize_box_3.png 480w, 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_9_hu159cd7f606ee564b08e18b29673e8c8f_3046_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_9.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="linehttpsappsapplecomjpapplineid443904275">&lt;a class="link" href="https://apps.apple.com/jp/app/line/id443904275" target="_blank" rel="noopener"
>LINE&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_10.png"
width="72"
height="72"
srcset="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_10_hud6f51ba0429c4e9ba264927e068700c9_3739_480x0_resize_box_3.png 480w, 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_10_hud6f51ba0429c4e9ba264927e068700c9_3739_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_10.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="microsoft-teamshttpsappsapplecomjpappmicrosoft-teamsid1113153706">&lt;a class="link" href="https://apps.apple.com/jp/app/microsoft-teams/id1113153706" target="_blank" rel="noopener"
>Microsoft Teams&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_18.png"
width="72"
height="72"
srcset="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_18_hue85e52cfe63c3e9fd5f8f47daf0356e9_5147_480x0_resize_box_3.png 480w, 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_18_hue85e52cfe63c3e9fd5f8f47daf0356e9_5147_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_18.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="notionhttpsappsapplecomjpappnotion-e383a1e383a2-e382bfe382b9e382af-aiid1232780281">&lt;a class="link" href="https://apps.apple.com/jp/app/notion-%E3%83%A1%E3%83%A2-%E3%82%BF%E3%82%B9%E3%82%AF-ai/id1232780281" target="_blank" rel="noopener"
>Notion&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_19.png"
width="72"
height="72"
srcset="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_19_huc41ff98efdf43db453238da8a6120bce_2546_480x0_resize_box_3.png 480w, 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_19_huc41ff98efdf43db453238da8a6120bce_2546_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_19.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="goodnotes-6httpsappsapplecomjpappgoodnotes-6id1444383602">&lt;a class="link" href="https://apps.apple.com/jp/app/goodnotes-6/id1444383602" target="_blank" rel="noopener"
>Goodnotes 6&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_20.png"
width="72"
height="72"
srcset="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_20_hu6abe5128292adbcb18b1e181c0e5636a_3192_480x0_resize_box_3.png 480w, 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_20_hu6abe5128292adbcb18b1e181c0e5636a_3192_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_20.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="teamviewerhttpsappsapplecomjpappteamviewere381a7e383aae383a2e383bce38388e382b3e383b3e38388e383ade383bce383abid692035811">&lt;a class="link" href="https://apps.apple.com/jp/app/teamviewer%E3%81%A7%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB/id692035811" target="_blank" rel="noopener"
>TeamViewer&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_11.png"
width="72"
height="72"
srcset="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_11_hu8d24bed80552a75708e386fd8f8d80c0_5132_480x0_resize_box_3.png 480w, 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_11_hu8d24bed80552a75708e386fd8f8d80c0_5132_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_11.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="dropboxhttpsappsapplecomjpappdropboxid327630330">&lt;a class="link" href="https://apps.apple.com/jp/app/dropbox/id327630330" target="_blank" rel="noopener"
>DropBox&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_12.png"
width="72"
height="72"
srcset="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_12_hu87adf821381dd24af677cb81324f5e4d_3950_480x0_resize_box_3.png 480w, 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_12_hu87adf821381dd24af677cb81324f5e4d_3950_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_12.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="githubhttpsappsapplecomjpappgithubid1477376905">&lt;a class="link" href="https://apps.apple.com/jp/app/github/id1477376905" target="_blank" rel="noopener"
>GitHub&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_13.png"
width="72"
height="72"
srcset="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_13_hu20dbed9536873940b5fb2888a85a5348_4157_480x0_resize_box_3.png 480w, 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_13_hu20dbed9536873940b5fb2888a85a5348_4157_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_13.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="amazonhttpsappsapplecomjpappamazon-e382b7e383a7e38383e38394e383b3e382b0e382a2e38397e383aaid374254473">&lt;a class="link" href="https://apps.apple.com/jp/app/amazon-%E3%82%B7%E3%83%A7%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E3%82%A2%E3%83%97%E3%83%AA/id374254473" target="_blank" rel="noopener"
>Amazon&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_14.png"
width="72"
height="72"
srcset="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_14_hu76d651bea9048b09443a642f4f41ce86_4111_480x0_resize_box_3.png 480w, 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_14_hu76d651bea9048b09443a642f4f41ce86_4111_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_14.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="paypayhttpsappsapplecomjpapppaypay-e3839ae382a4e3839ae382a4id1435783608">&lt;a class="link" href="https://apps.apple.com/jp/app/paypay-%E3%83%9A%E3%82%A4%E3%83%9A%E3%82%A4/id1435783608" target="_blank" rel="noopener"
>PayPay&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_15.png"
width="72"
height="72"
srcset="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_15_huaf4d4b4494b29706fb9cd3ac68c9ce38_4285_480x0_resize_box_3.png 480w, 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_15_huaf4d4b4494b29706fb9cd3ac68c9ce38_4285_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_15.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="wolframalphahttpsappsapplecomjpappwolframalphaid548861535">&lt;a class="link" href="https://apps.apple.com/jp/app/wolframalpha/id548861535" target="_blank" rel="noopener"
>WolframAlpha&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_16.png"
width="72"
height="72"
srcset="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_16_hu5eb819bf483304fdad0cb7e0cd72a169_6819_480x0_resize_box_3.png 480w, 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_16_hu5eb819bf483304fdad0cb7e0cd72a169_6819_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_16.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h3 id="mercarihttpsappsapplecomjpappe38395e383aae3839ee382a2e38397e383aae381afe383a1e383abe382abe383aa-e383a1e383abe3839ae382a4e381aee382b9e3839ee3839be6b1bae6b888e381a7e38282e381a3e381a8e3818ae5be97id667861049">&lt;a class="link" href="https://apps.apple.com/jp/app/%E3%83%95%E3%83%AA%E3%83%9E%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AF%E3%83%A1%E3%83%AB%E3%82%AB%E3%83%AA-%E3%83%A1%E3%83%AB%E3%83%9A%E3%82%A4%E3%81%AE%E3%82%B9%E3%83%9E%E3%83%9B%E6%B1%BA%E6%B8%88%E3%81%A7%E3%82%82%E3%81%A3%E3%81%A8%E3%81%8A%E5%BE%97/id667861049" target="_blank" rel="noopener"
>Mercari&lt;/a>
&lt;/h3>&lt;p>&lt;img src="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_17.png"
width="72"
height="72"
srcset="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_17_hu9a243187d206781377b6a667e678a3bf_3431_480x0_resize_box_3.png 480w, 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_17_hu9a243187d206781377b6a667e678a3bf_3431_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_17.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p></description></item><item><title>قصة الزوجين العجوزين والحمار</title><link>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/</link><pubDate>Wed, 18 Sep 2024 00:56:59 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post قصة الزوجين العجوزين والحمار" />&lt;h2 id="الزوجان-العجوزان-والحمار-ومشكلتنا-في-لمن-نستمع">الزوجان العجوزان والحمار، ومشكلتنا في &amp;ldquo;لمن نستمع&amp;rdquo;
&lt;/h2>&lt;p>مرحباً!&lt;/p>
&lt;p>اليوم أردت أن أكتب عن شيء فكرت فيه قليلاً من &amp;ldquo;قصة الزوجين العجوزين والحمار&amp;rdquo;.&lt;/p>
&lt;p>ربما سمع الكثير منكم عنها. إنها تلك الحكاية الرمزية الشهيرة.&lt;/p>
&lt;hr>
&lt;h3 id="ما-هي-قصة-الزوجين-العجوزين-والحمار">ما هي &amp;ldquo;قصة الزوجين العجوزين والحمار&amp;rdquo;؟
&lt;/h3>&lt;p>في قديم الزمان، كان هناك زوجان عجوزان وحمار.&lt;/p>
&lt;p>في البداية، كان الرجل العجوز يركب الحمار، وكانت المرأة العجوز تمشي. ثم قال أحد المارة:&lt;/p>
&lt;p>&amp;ldquo;يا له من رجل، يجعل زوجته العجوز تمشي بينما يركب هو فقط!&amp;rdquo;&lt;/p>
&lt;p>عندما سمع الزوجان العجوزان ذلك، قررا أن تركب المرأة العجوز الحمار هذه المرة. ثم قال شخص آخر:&lt;/p>
&lt;p>&amp;ldquo;من المشين أن تركب امرأة حماراً وتجعل رجلاً يمشي!&amp;rdquo;&lt;/p>
&lt;p>حسناً، هذه المرة ركب كلاهما الحمار. ثم قيل لهم مرة أخرى:&lt;/p>
&lt;p>&amp;ldquo;يا له من حمار مسكين، إنه ثقيل جداً بركوب شخصين عليه!&amp;rdquo;&lt;/p>
&lt;p>في هذه الحالة، نزل كلاهما من الحمار وبدآ في المشي. ثم هذه المرة&amp;hellip;&lt;/p>
&lt;p>&amp;ldquo;لماذا لا يركب أحد على الرغم من وجود حمار؟&amp;rdquo;&lt;/p>
&lt;p>في النهاية، كان الزوجان العجوزان في حيرة من أمرهما.&lt;/p>
&lt;hr>
&lt;h3 id="دعونا-نستمع-إلى-آراء-الجميع-حجة-سليمة-بالتأكيد-ولكن">&amp;ldquo;دعونا نستمع إلى آراء الجميع&amp;rdquo; حجة سليمة بالتأكيد. ولكن&amp;hellip;
&lt;/h3>&lt;p>غالباً ما يُنظر إلى هذه القصة على أنها درس يقول، &amp;ldquo;آه، إذا كنت تهتم فقط بما يعتقده الآخرون، فلن تكون هناك نهاية لذلك.&amp;rdquo;&lt;/p>
&lt;p>لكن الواقع ليس بهذه البساطة.&lt;/p>
&lt;p>هناك الكثير من الناس الذين يقولون، &amp;ldquo;لا تهتم بما يعتقده الآخرون!&amp;rdquo;&lt;/p>
&lt;p>ولكن عندما يتعلق الأمر بما إذا كان بإمكانك تجاهل كل شيء، فالأمر صعب بعض الشيء. على سبيل المثال، عند نشر شيء ما على وسائل التواصل الاجتماعي. عند التفكير في ما يجب التحدث عنه في حفل شرب في الشركة. لا يسعك إلا أن تقلق بشأن رد فعل شخص ما.&lt;/p>
&lt;p>وذلك لأن &amp;ldquo;آراء الآخرين&amp;rdquo; تتعلق أحياناً بسلامتنا وتقييمنا.&lt;/p>
&lt;hr>
&lt;h3 id="ومع-ذلك-إذا-تأثرت-كثيرا-فسيصبح-الأمر-مؤلما">ومع ذلك، إذا تأثرت كثيراً، فسيصبح الأمر مؤلماً
&lt;/h3>&lt;p>أعتقد أن الزوجين العجوزين في هذه القصة كانا يفكران في البداية ببساطة، &amp;ldquo;ماذا يجب أن نفعل؟&amp;rdquo;&lt;/p>
&lt;p>ولكن بغض النظر عن المدى الذي تذهب إليه، سيشتكي &amp;ldquo;شخص ما&amp;rdquo;.&lt;/p>
&lt;p>ثم يبدأون في الدوران في دوائر، &amp;ldquo;حسناً، دعنا نفعل هذا بعد ذلك&amp;rdquo; أو &amp;ldquo;هل يجب أن نفعل ذلك بعد كل شيء؟&amp;rdquo; وقبل أن تعرف ذلك، تفقد مسار ما تريد القيام به.&lt;/p>
&lt;p>هذه قصة شائعة في حياتنا اليومية أيضاً.&lt;/p>
&lt;p>توقعات رئيسك، وكلمات والديك، وعدد &amp;ldquo;الإعجابات&amp;rdquo; على وسائل التواصل الاجتماعي. بينما تتكيف مع هذه الأشياء، هل تفقد أحياناً مسار ما تريد حقاً القيام به؟&lt;/p>
&lt;hr>
&lt;h3 id="من-المهم-أن-تختار-لمن-تستمع">من المهم أن تختار &amp;ldquo;لمن تستمع&amp;rdquo;
&lt;/h3>&lt;p>إذن، ماذا يجب أن نفعل؟ حسناً، لا توجد إجابة صحيحة.&lt;/p>
&lt;p>ومع ذلك، من المستحيل عملياً &amp;ldquo;اتباع آراء الجميع&amp;rdquo;.&lt;/p>
&lt;p>لهذا السبب أعتقد أنه من المهم أن تختار بنفسك &amp;ldquo;لمن تستمع&amp;rdquo;.&lt;/p>
&lt;p>على سبيل المثال، &amp;ldquo;استمع فقط إلى نصيحة الأشخاص الذين تحترمهم&amp;rdquo; أو &amp;ldquo;استخدم كمعيار ما إذا كان بإمكانك إقناع نفسك في الماضي&amp;rdquo;.&lt;/p>
&lt;p>حتى لو كان معياراً واحداً فقط يجعلك تفكر، &amp;ldquo;أريد أن أصدق هذا&amp;rdquo;، فإن ضوضاء العالم ستقل قليلاً.&lt;/p>
&lt;hr>
&lt;h3 id="لذلك-عندما-تكون-متعبا-بعض-الشيء">لذلك، عندما تكون متعباً بعض الشيء
&lt;/h3>&lt;p>قد يكون من الجيد أن تتذكر قصة &amp;ldquo;الزوجين العجوزين والحمار&amp;rdquo;.&lt;/p>
&lt;p>من السهل أن تقلق بشأن ما يعتقده الآخرون، أليس كذلك؟&lt;/p>
&lt;p>ولكن إذا استجبت للجميع، فسوف تنزل عن الحمار أيضاً.&lt;/p>
&lt;p>أحياناً، إذا تمكنت من التفكير، &amp;ldquo;ربما لا بأس من إعطاء الأولوية لمشاعري الخاصة.&amp;rdquo; قد تشعر أن قلبك أخف قليلاً.&lt;/p>
&lt;hr></description></item><item><title>لماذا كان من شبه المستحيل صنع مصباح LED أزرق</title><link>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/</link><pubDate>Sun, 15 Sep 2024 00:43:52 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post لماذا كان من شبه المستحيل صنع مصباح LED أزرق" />&lt;h2 id="لماذا-كان-من-شبه-المستحيل-صنع-مصباح-led-أزرق">لماذا كان من شبه المستحيل صنع مصباح LED أزرق
&lt;/h2>&lt;p>مقدمة لبرنامج وثائقي باللغة الإنجليزية. إنه ممتع للغاية. لدي انطباع قوي بأن الياباني الذي حل هذه المشكلة الصعبة للغاية لم يحظ بتقدير كبير في اليابان في البداية.&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/AF8d72mA41M"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div></description></item><item><title>لقد جربت تثبيت حزمة إضافات Qt في Visual Studio Code</title><link>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/</link><pubDate>Fri, 13 Sep 2024 00:53:53 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post لقد جربت تثبيت حزمة إضافات Qt في Visual Studio Code" />&lt;h1 id="بدء-تطوير-qt-في-vscode-كيفية-تثبيت-حزمة-إضافات-qt">بدء تطوير Qt في VSCode: كيفية تثبيت حزمة إضافات Qt
&lt;/h1>&lt;p>مرحبًا، أنا Kenji.
هذه المرة سأقدم &amp;ldquo;كيفية إعداد بيئة تطوير Qt في Visual Studio Code (والمعروف باسم VSCode)&amp;rdquo;.&lt;/p>
&lt;p>في الآونة الأخيرة، بالإضافة إلى Qt Creator الرسمي، تزايدت الأصوات التي ترغب في تطوير تطبيقات Qt باستخدام VSCode خفيف الوزن وعالي القابلية للتوسيع.
نوصي هؤلاء الأشخاص بـ ** &amp;ldquo;حزمة إضافات Qt&amp;rdquo; **.
بمجرد تثبيت حزمة الإضافات هذه، ستتوفر لديك جميع الإضافات الرئيسية المتعلقة بـ Qt دفعة واحدة.&lt;/p>
&lt;hr>
&lt;h2 id="الجمهور-المستهدف">الجمهور المستهدف
&lt;/h2>&lt;ul>
&lt;li>أولئك الذين يرغبون في البدء في تطوير تطبيقات واجهة المستخدم الرسومية (GUI) باستخدام Qt&lt;/li>
&lt;li>أولئك الذين يرغبون في التطوير باستخدام VSCode بدلاً من Qt Creator&lt;/li>
&lt;li>أولئك الذين يجدون صعوبة في البحث عن الإضافات واحدة تلو الأخرى&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="المتطلبات-الأساسية">المتطلبات الأساسية
&lt;/h2>&lt;ul>
&lt;li>أن يكون VSCode مثبتًا بالفعل
(&lt;a class="link" href="https://code.visualstudio.com/" target="_blank" rel="noopener"
>يمكنك تنزيله مجانًا من الموقع الرسمي&lt;/a>)&lt;/li>
&lt;li>أن تكون مكتبة Qt الأساسية مثبتة (&lt;a class="link" href="https://www.qt.io/" target="_blank" rel="noopener"
>موقع Qt الرسمي&lt;/a>)&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="ما-هي-حزمة-إضافات-qt">ما هي حزمة إضافات Qt؟
&lt;/h2>&lt;p>حزمة إضافات Qt هي حزمة إضافات لـ VSCode.
من خلال تثبيتها، ستتم إضافة الميزات التالية تلقائيًا:&lt;/p>
&lt;ul>
&lt;li>دعم ملفات &lt;code>.ui&lt;/code> (Qt Designer)&lt;/li>
&lt;li>تمييز بناء الجملة لملفات &lt;code>.pro&lt;/code> وملفات &lt;code>.qrc&lt;/code>&lt;/li>
&lt;li>إكمال كود C++ لـ Qt، والبناء، ودعم تصحيح الأخطاء&lt;/li>
&lt;li>متصفح موارد Qt (تصفح الموارد)&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="خطوات-التثبيت">خطوات التثبيت
&lt;/h2>&lt;h3 id="1-افتح-vscode">1. افتح VSCode
&lt;/h3>&lt;p>أولاً، قم بتشغيل VSCode.&lt;/p>
&lt;h3 id="2-افتح-عرض-الإضافات">2. افتح عرض الإضافات
&lt;/h3>&lt;p>انقر على شريط النشاط على اليسار (رمز المربع) لعرض &amp;ldquo;الإضافات&amp;rdquo;.&lt;/p>
&lt;p>أو يمكنك الضغط على الاختصار
&lt;code>Ctrl + Shift + X&lt;/code>.&lt;/p>
&lt;h3 id="3-ابحث-عن-qt-extension-pack">3. ابحث عن &amp;ldquo;Qt Extension Pack&amp;rdquo;
&lt;/h3>&lt;p>أدخل الكلمة الرئيسية التالية في شريط البحث:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Qt Extension Pack
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;img src="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.png"
width="867"
height="228"
srcset="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_hua3a606fe260b4f1c55a0f37b6ed054ec_30325_480x0_resize_box_3.png 480w, 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_hua3a606fe260b4f1c55a0f37b6ed054ec_30325_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="380"
data-flex-basis="912px"
>&lt;/p>
&lt;h3 id="4-انقر-فوق-زر-التثبيت">4. انقر فوق زر التثبيت
&lt;/h3>&lt;p>بمجرد ظهور الحزمة المستهدفة، انقر فوق الزر &amp;ldquo;تثبيت&amp;rdquo;.
سيؤدي هذا إلى تثبيت الإضافات المتعددة التالية دفعة واحدة:&lt;/p>
&lt;ul>
&lt;li>Qt Language Support&lt;/li>
&lt;li>QML Support&lt;/li>
&lt;li>Qt Designer Integration&lt;/li>
&lt;li>CMake Tools (مطلوب لتطوير Qt المتوافق مع CMake)&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="إضافة-حول-إعدادات-المشروع-مثال-cmake--qt">إضافة حول إعدادات المشروع (مثال CMake + Qt)
&lt;/h2>&lt;p>إذا كنت تستخدم Qt استنادًا إلى CMake، فنوصي بدمجه مع الإضافات التالية:&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools" target="_blank" rel="noopener"
>CMake Tools&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://marketplace.visualstudio.com/items?itemName=twxs.cmake" target="_blank" rel="noopener"
>CMake Language Support&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>أيضًا، إذا أضفت الكود التالي إلى CMakeLists.txt، فسيكون التكامل مع Qt سلسًا:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cmake" data-lang="cmake">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">find_package&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">Qt6&lt;/span> &lt;span class="s">REQUIRED&lt;/span> &lt;span class="s">COMPONENTS&lt;/span> &lt;span class="s">Widgets&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">&lt;/span>&lt;span class="nb">target_link_libraries&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">MyApp&lt;/span> &lt;span class="s">PRIVATE&lt;/span> &lt;span class="s">Qt6::Widgets&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="err">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="مكافأة-كيف-تفتح-ملفات-ui">مكافأة: كيف تفتح ملفات .ui؟
&lt;/h2>&lt;p>يمكن تحرير ملفات &lt;code>.ui&lt;/code> في Qt Designer.
في VSCode، يمكنك النقر بزر الماوس الأيمن على ملف &lt;code>.ui&lt;/code> ثم اختيار &lt;code>Open with Qt Designer&lt;/code> (يجب أن يكون Qt Designer مضمنًا في متغير البيئة &lt;code>PATH&lt;/code>).&lt;/p>
&lt;hr>
&lt;h2 id="الخلاصة">الخلاصة
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>الخطوة&lt;/th>
&lt;th>الوصف&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>1&lt;/td>
&lt;td>تشغيل VSCode&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2&lt;/td>
&lt;td>فتح لوحة الإضافات&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>3&lt;/td>
&lt;td>البحث عن &amp;ldquo;Qt Extension Pack&amp;rdquo;&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>4&lt;/td>
&lt;td>النقر فوق زر التثبيت&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>أصبح إعداد بيئة Qt في VSCode أسهل بكثير من ذي قبل.
يحتوي على ميزات كافية ليكون بديلاً لـ Qt Creator، ونوصي به لأولئك الذين يرغبون في العمل بخفة.&lt;/p>
&lt;hr>
&lt;h2 id="مجموعة-روابط-موصى-بها">مجموعة روابط موصى بها
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://www.qt.io/" target="_blank" rel="noopener"
>موقع Qt الرسمي&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://marketplace.visualstudio.com/items?itemName=TheQtCompany.qt" target="_blank" rel="noopener"
>Qt Extension Pack - Visual Studio Marketplace&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://code.visualstudio.com/" target="_blank" rel="noopener"
>موقع VSCode الرسمي&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools" target="_blank" rel="noopener"
>إضافة CMake Tools&lt;/a>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="أخيرا">أخيرًا
&lt;/h2>&lt;p>في المستقبل، أخطط لمواصلة التطوير باستخدام أدوات واجهة المستخدم لـ Qt و QML في هذه البيئة.
في المرة القادمة، أخطط لشرح ** كيفية بناء وتشغيل تطبيق Hello World في Qt من VSCode **.&lt;/p>
&lt;p>أراكم لاحقًا!&lt;/p></description></item><item><title>كيفية التحقق مما إذا كان جهاز iPhone الخاص بك مقفلاً ببطاقة SIM</title><link>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/</link><pubDate>Thu, 12 Sep 2024 00:32:11 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية التحقق مما إذا كان جهاز iPhone الخاص بك مقفلاً ببطاقة SIM" />&lt;h1 id="كيفية-التحقق-مما-إذا-كان-جهاز-iphone-الخاص-بك-مقفلا-ببطاقة-sim">كيفية التحقق مما إذا كان جهاز iPhone الخاص بك مقفلاً ببطاقة SIM
&lt;/h1>&lt;p>&lt;code>الشاشة الرئيسية&lt;/code> ＞ &lt;code>الإعدادات&lt;/code> ＞ &lt;code>عام&lt;/code> ＞ &lt;code>حول&lt;/code> ＞ &lt;code>قفل مزود الخدمة&lt;/code>&lt;/p>
&lt;p>تحقق مما إذا كان يعرض &lt;code>لا توجد قيود على شريحة SIM&lt;/code> أو &lt;code>شريحة SIM مقفلة&lt;/code>.&lt;/p></description></item><item><title>تخمين P≠NP</title><link>http://kenji.blog/ar/p/pnp%E4%BA%88%E6%83%B3/</link><pubDate>Wed, 11 Sep 2024 02:22:39 +0900</pubDate><guid>http://kenji.blog/ar/p/pnp%E4%BA%88%E6%83%B3/</guid><description>&lt;h1 id="ملخص">ملخص
&lt;/h1>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">الفئة P هي فئة من المشكلات التي يمكن تحديدها في وقت متعدد الحدود على آلة تورينغ الحتمية، والفئة NP هي فئة من المشكلات حيث، عند إعطاء دليل على أن الإجابة هي نعم (يسمى شاهد)، يمكن التحقق من صحة الشاهد في وقت متعدد الحدود (وهذا ما يسمى بالتحقق). نظرًا لأن المشكلات التي يمكن تحديدها في وقت متعدد الحدود يمكن التحقق منها في وقت متعدد الحدود، فمن الواضح أن P⊆NP، ولكن ليس من الواضح ما إذا كانت P مجموعة فرعية حقيقية من NP. على الرغم من عدم وجود دليل حتى الآن، يعتقد العديد من الباحثين أن P≠NP. هذا التخمين بأن الفئة P والفئة NP ليسا متساويين يسمى &amp;#34;تخمين P≠NP&amp;#34;.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>موقع مرجعي : &lt;a class="link" href="https://daigakudenki.com/np-hard/" target="_blank" rel="noopener"
>https://daigakudenki.com/np-hard/&lt;/a>&lt;/p></description></item><item><title>أُعيد منحي جائزة Microsoft MVP لعام (2024-2025)</title><link>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/</link><pubDate>Tue, 03 Sep 2024 21:25:20 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post أُعيد منحي جائزة Microsoft MVP لعام (2024-2025)" />&lt;h1 id="أعيد-منحي-جائزة-microsoft-mvp-لعام-2024-2025">أُعيد منحي جائزة Microsoft MVP لعام (2024-2025)
&lt;/h1>&lt;p>&lt;img src="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_1.png"
width="510"
height="680"
srcset="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_1_hu43fc94f004bc47efe4ebeb44e3c1c9ff_744182_480x0_resize_box_3.png 480w, 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_1_hu43fc94f004bc47efe4ebeb44e3c1c9ff_744182_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img\_1.png"
class="gallery-image"
data-flex-grow="75"
data-flex-basis="180px"
>&lt;/p>
&lt;p>مرحبًا، أنا kenji.
أود أن أبلغكم أنني حصلت على جائزة &lt;strong>Microsoft MVP (Most Valuable Professional)&lt;/strong> هذا العام أيضًا. هذه هي المرة الثامنة التي أحصل فيها على هذه الجائزة.&lt;/p>
&lt;p>بما أنني حصلت عليها، أود أن أكتب قليلاً عن &amp;ldquo;ما هي MVP؟&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="ما-هي-microsoft-mvp">ما هي Microsoft MVP؟
&lt;/h2>&lt;p>على الرغم من أنها تسمى MVP، إلا أنها لا تتعلق بأفضل لاعب في الرياضة (أُسأل عن ذلك أحيانًا&amp;hellip;).
&lt;strong>Microsoft MVP (Most Valuable Professional)&lt;/strong> هي جائزة تُمنح للأشخاص الذين يشاركون بنشاط معرفتهم وخبرتهم في تقنيات Microsoft مع المجتمع.&lt;/p>
&lt;p>كتابة مدونات تقنية، الإجابة على الأسئلة في مواقع Q&amp;amp;A،
نشر أكواد نموذجية، التحدث في الأحداث.
يتم تقييم مثل هذه الأنشطة الثابتة - &amp;ldquo;مشاركة ما تعرفه بطريقة مفيدة لشخص آخر&amp;rdquo;.&lt;/p>
&lt;p>يوجد فائزون في جميع أنحاء العالم، لكن العدد محدود كل عام، وإعادة الفوز ليست سهلة.
في ظل هذه الظروف، أنا ممتن حقًا لأنه تم تكريمي مرة أخرى.&lt;/p>
&lt;hr>
&lt;h2 id="حول-سبب-الفوز-بالجائزة">حول سبب الفوز بالجائزة
&lt;/h2>&lt;p>هذه الجائزة هي إعادة فوز في فئة &amp;ldquo;Developer Technologies&amp;rdquo;.
خلال العام الماضي، قمت بأنشطة مثل هذه:&lt;/p>
&lt;ul>
&lt;li>كتابة مدونة حول التقنيات المتعلقة بـ Microsoft&lt;/li>
&lt;li>نشر إجابات على مواقع Q&amp;amp;A التقنية&lt;/li>
&lt;li>نشر أكواد نموذجية على GitHub&lt;/li>
&lt;li>التحدث في مجموعات الدراسة والأحداث التقنية، إلخ.&lt;/li>
&lt;/ul>
&lt;p>لا شيء من هذا مميز بشكل خاص، ولكن
كنت واعيًا بنشر &amp;ldquo;الأشياء التي جربتها ونجحت&amp;rdquo; و &amp;ldquo;الأشياء التي تعثرت فيها ولكن تمكنت من حلها&amp;rdquo;
في شكل قد يكون مفيدًا حتى ولو قليلاً.&lt;/p>
&lt;p>أنا سعيد حقًا لأن هذا قد تبلور بهذا الشكل.&lt;/p>
&lt;hr>
&lt;h2 id="حول-المستقبل">حول المستقبل
&lt;/h2>&lt;p>عالم التكنولوجيا سريع جدًا، ومجرد مواكبة التطورات أمر صعب.
لكن لهذا السبب تحديدًا، أشعر أن هناك معنى لمشاركة &amp;ldquo;المعلومات الحية&amp;rdquo; مثل كيف كان الأمر عند استخدامه فعليًا، وما الذي كان يصعب فهمه.&lt;/p>
&lt;p>سأستمر في العمل بأسلوبي الخاص، دون إرهاق نفسي.
سأكون سعيدًا إذا تمكنت من تقديم معلومات تجعل شخصًا ما يفكر &amp;ldquo;آه، كان هذا مفيدًا&amp;rdquo; بطريقة أو بأخرى.&lt;/p>
&lt;p>أتطلع إلى دعمكم المستمر في المستقبل.&lt;/p></description></item><item><title>طريقة تنزيل مقاطع فيديو YouTube باستخدام yt-dlp.exe</title><link>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/</link><pubDate>Tue, 03 Sep 2024 14:09:26 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post طريقة تنزيل مقاطع فيديو YouTube باستخدام yt-dlp.exe" />&lt;h1 id="ما-هو-yt-dlp">ما هو yt-dlp
&lt;/h1>&lt;p>&lt;code>yt-dlp&lt;/code> هو أداة سطر أوامر لتنزيل مقاطع فيديو YouTube.
بالإضافة إلى تنزيل مقاطع الفيديو، يمكنك أيضًا تنزيلها كملفات صوتية بتنسيق mp3.&lt;/p>
&lt;h2 id="التنزيل-والتثبيت">التنزيل والتثبيت
&lt;/h2>&lt;ol>
&lt;li>قم بتنزيل أحدث إصدار من yt-dlp.exe من &lt;a class="link" href="https://github.com/yt-dlp/yt-dlp/releases" target="_blank" rel="noopener"
>صفحة إصدارات yt-dlp&lt;/a>.&lt;/li>
&lt;li>ضع yt-dlp.exe في أي مجلد تختاره.&lt;/li>
&lt;li>أضف مسار مجلد yt-dlp.exe إلى متغير البيئة Path.&lt;/li>
&lt;/ol>
&lt;h2 id="طريقة-الاستخدام">طريقة الاستخدام
&lt;/h2>&lt;p>قم بتشغيل yt-dlp.exe في موجه الأوامر وحدد عنوان URL لمقطع فيديو YouTube.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yt-dlp.exe &amp;#34;https://www.youtube.com/watch?v=VIDEO_ID&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>※ لا بأس في استخدام جزء VIDEO_ID كمعلمة فقط.&lt;/p>
&lt;p>لتنزيله كملف صوتي mp3، قم بتشغيل الأمر التالي.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">yt-dlp.exe --extract-audio --audio-format mp3 --embed-thumbnail --add-metadata &amp;#34;https://www.youtube.com/watch?v=VIDEO_ID&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الآن، سيتم تنزيل الفيديو في الدليل الحالي الذي تم تنفيذ الأمر فيه.&lt;/p>
&lt;p>انتهى.&lt;/p></description></item><item><title>روابط فيديوهات قصيرة</title><link>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/</link><pubDate>Sun, 25 Aug 2024 16:24:35 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post روابط فيديوهات قصيرة" />&lt;ol>
&lt;li>كرة القدم - فتى الكرات&lt;/li>
&lt;/ol>
&lt;blockquote class="tiktok-embed" cite="https://www.tiktok.com/@gg211204/video/7398347526975294738" data-video-id="7398347526975294738" style="max-width: 605px;min-width: 325px;" > &lt;section> &lt;a target="_blank" title="@gg211204" href="https://www.tiktok.com/@gg211204?refer=embed">@gg211204&lt;/a> 『اليوم الذي أصبح فيه فتى الكرات بطلاً』 فتى الكرات الذي أنقذ الفريق في ذلك اليوم دُعي لاحقًا إلى النادي وتناول وجبة مع اللاعبين. &lt;a title="توتنهام" target="_blank" href="https://www.tiktok.com/tag/%E3%83%88%E3%83%83%E3%83%86%E3%83%8A%E3%83%A0?refer=embed">#توتنهام&lt;/a> &lt;a title="سبيرز" target="_blank" href="https://www.tiktok.com/tag/%E3%82%B9%E3%83%91%E3%83%BC%E3%82%BA?refer=embed">#سبيرز&lt;/a> &lt;a title="مورينيو" target="_blank" href="https://www.tiktok.com/tag/%E3%83%A2%E3%82%A6%E3%83%AA%E3%83%BC%E3%83%8B%E3%83%A7?refer=embed">#مورينيو&lt;/a> &lt;a title="فتى الكرات" target="_blank" href="https://www.tiktok.com/tag/%E3%83%9C%E3%83%BC%E3%83%AB%E3%83%9C%E3%83%BC%E3%82%A4?refer=embed">#فتى_الكرات&lt;/a> &lt;a target="_blank" title="♬ original sound - じょり" href="https://www.tiktok.com/music/original-sound-じょり-7398347563419601680?refer=embed">♬ original sound - じょり&lt;/a> &lt;/section> &lt;/blockquote> &lt;script async src="https://www.tiktok.com/embed.js">&lt;/script>
&lt;ol start="2">
&lt;li>ستاربكس
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/P3pSGIWng-E"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;/ol></description></item><item><title>اقتباسات ألبرت أينشتاين</title><link>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/</link><pubDate>Sat, 24 Aug 2024 18:38:47 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.jpg" alt="Featured image of post اقتباسات ألبرت أينشتاين" />&lt;p>مرحباً!&lt;/p>
&lt;p>اليوم، أود أن أتحدث عن اقتباسات ألبرت أينشتاين.&lt;/p>
&lt;hr>
&lt;h2 id="العالم-لا-يقدر-أفعالك-الصالحة">العالم لا يقدر أفعالك الصالحة؟
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">العالم لن يقدر أبداً مليون فعل صالح تقوم به.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">لكنه سينتقدك على شيء واحد خاطئ تفعله...
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">لكن، لا تفقد الأمل
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;#34;ارتفع دائماً فوق كل الضحك والانتقاد. ابق قوياً.&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">- ألبرت أينشتاين
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هذه الكلمات يُقال إن أينشتاين قد نطق بها. إنها تشير بحدة إلى قسوة المجتمع التي نشعر بها كل يوم والتحيز في تقييمات الناس.&lt;/p>
&lt;hr>
&lt;h2 id="ومع-ذلك-استمر-في-النهوض">ومع ذلك، استمر في النهوض
&lt;/h2>&lt;p>&amp;ldquo;ارتفع دائماً فوق كل الضحك والانتقاد. ابق قوياً.&amp;rdquo;&lt;/p>
&lt;p>هذا الجزء التالي من الاقتباس يمكن اعتباره إجابة أينشتاين على الواقع القاسي المذكور أعلاه. إنه يعلمنا أهمية عدم الاستسلام للانتقاد أو السخرية، والاستمرار في المضي قدماً مع الإيمان بأنفسنا.&lt;/p>
&lt;hr>
&lt;h2 id="تطبيق-تعاليم-أينشتاين-في-الحياة-اليومية">تطبيق تعاليم أينشتاين في الحياة اليومية
&lt;/h2>&lt;p>هذا الاقتباس متصل بعمق بحياتنا اليومية. على سبيل المثال، قد لا يتم الاعتراف بجهودك في العمل، وتبرز الأخطاء الصغيرة فقط. أو ربما يتم اقتطاع جزء من تصريح لك على وسائل التواصل الاجتماعي وانتقاده.&lt;/p>
&lt;p>في مثل هذه الأوقات، يرجى تذكر كلمات أينشتاين هذه. من المهم أن تحافظ على معتقداتك الخاصة بدلاً من التأثر بتقييمات الآخرين.&lt;/p>
&lt;hr>
&lt;h2 id="الخاتمة">الخاتمة
&lt;/h2>&lt;p>يعلمنا اقتباس أينشتاين هذا أهمية &amp;ldquo;العيش مع الإيمان بأنفسنا دون أن نتأثر بتقييمات الآخرين&amp;rdquo;. دعونا نتحلى بالشجاعة لاتباع الطريق الذي نؤمن به دون الاستسلام للانتقاد أو السخرية.&lt;/p>
&lt;p>أخيراً، كلمات أينشتاين مرة أخرى.&lt;/p>
&lt;blockquote>
&lt;p>** &amp;ldquo;ارتفع دائماً فوق كل الضحك والانتقاد. ابق قوياً.&amp;rdquo; **&lt;/p>
&lt;/blockquote>
&lt;p>نأمل أن يتردد صدى هذه الكلمات في قلبك وتلهمك لاتخاذ خطوة إيجابية إلى الأمام.&lt;/p></description></item><item><title>كود لغة C لتوليد الأعداد الأولية</title><link>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/</link><pubDate>Sat, 24 Aug 2024 09:38:10 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كود لغة C لتوليد الأعداد الأولية" />&lt;p>فيما يلي كود بسيط بلغة C يولد أعدادًا أولية ضمن نطاق محدد. في هذا المثال، نسرد الأعداد الأولية من 1 إلى n.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;stdio.h&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;stdbool.h&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">bool&lt;/span> &lt;span class="nf">isPrime&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="kt">int&lt;/span> &lt;span class="n">num&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">num&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">return&lt;/span> &lt;span class="nb">false&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">num&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">return&lt;/span> &lt;span class="nb">true&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">num&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">2&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="o">||&lt;/span> &lt;span class="n">num&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">3&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">return&lt;/span> &lt;span class="nb">false&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="kt">int&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">5&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="n">num&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="mi">6&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">num&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span> &lt;span class="o">||&lt;/span> &lt;span class="n">num&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">i&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">return&lt;/span> &lt;span class="nb">false&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nb">true&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">void&lt;/span> &lt;span class="nf">printPrimes&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="kt">int&lt;/span> &lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">printf&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;2 &amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="kt">int&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">&amp;lt;=&lt;/span> &lt;span class="n">n&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">isPrime&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">printf&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;%d &amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">printf&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">int&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">int&lt;/span> &lt;span class="n">n&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">printf&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;أدخل القيمة القصوى للنطاق لتوليد الأعداد الأولية: &amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">scanf&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;%d&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">printf&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;الأعداد الأولية من 1 إلى %d هي كالتالي:&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">printPrimes&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>يعمل هذا الكود على النحو التالي:&lt;/p>
&lt;ol>
&lt;li>دالة isPrime: تحدد ما إذا كان العدد المعطى أوليًا أم لا. من أجل الكفاءة، يتم أولاً التحقق مما إذا كان قابلاً للقسمة على 2 و 3، وبعد ذلك يتم التحقق من مضاعفات العدد 6.&lt;/li>
&lt;li>دالة printPrimes: تطبع الأعداد الأولية ضمن النطاق المحدد. تتم طباعة 2 أولاً، ثم يتم التحقق من الأعداد الفردية فقط.&lt;/li>
&lt;li>دالة main: يطلب من المستخدم إدخال القيمة القصوى للنطاق، ويطبع الأعداد الأولية ضمن ذلك النطاق.&lt;/li>
&lt;/ol>
&lt;p>عند تجميع وتشغيل هذا الكود، سيتم عرض الأعداد الأولية ضمن النطاق المحدد.&lt;/p></description></item><item><title>لا تمت</title><link>http://kenji.blog/ar/p/%D9%84%D8%A7-%D8%AA%D9%85%D8%AA/</link><pubDate>Thu, 25 Jul 2024 13:16:47 +0900</pubDate><guid>http://kenji.blog/ar/p/%D9%84%D8%A7-%D8%AA%D9%85%D8%AA/</guid><description>&lt;p>&lt;img src="http://kenji.blog/p/%E5%90%9B%E6%AD%BB%E3%81%AB%E3%81%9F%E3%81%BE%E3%81%B5%E3%81%93%E3%81%A8%E3%81%AA%E3%81%8B%E3%82%8C/img.png"
width="1080"
height="1080"
srcset="http://kenji.blog/p/%E5%90%9B%E6%AD%BB%E3%81%AB%E3%81%9F%E3%81%BE%E3%81%B5%E3%81%93%E3%81%A8%E3%81%AA%E3%81%8B%E3%82%8C/img_hub1fb50838efd9b9ec0f364c86e062d91_1677486_480x0_resize_box_3.png 480w, http://kenji.blog/p/%E5%90%9B%E6%AD%BB%E3%81%AB%E3%81%9F%E3%81%BE%E3%81%B5%E3%81%93%E3%81%A8%E3%81%AA%E3%81%8B%E3%82%8C/img_hub1fb50838efd9b9ec0f364c86e062d91_1677486_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h1 id="أكيكو-يوسانو">أكيكو يوسانو
&lt;/h1>&lt;p>&lt;strong>&amp;ldquo;لا تمت&amp;rdquo;&lt;/strong>&lt;/p>
&lt;p>―― رثاء لأخي في جيش حصار بورت آرثر&lt;/p>
&lt;p>آه يا أخي، أبكي من أجلك،
لا تمت،
لأنك ولدت أخيرًا
كان حنان الوالدين لك أكبر،
هل جعلك والداك تمسك سيفًا
وعلماك أن تقتل الناس؟
هل ربياك حتى الرابعة والعشرين
لقتل الناس والموت؟&lt;/p>
&lt;p>أنت سيد يفتخر بالمنزل القديم
لتاجر في شوارع ساكاي
ولأنك ترث اسم والديك،
لا تمت،
حتى لو سقطت قلعة بورت آرثر،
أو لم تسقط، فماذا في ذلك؟
أنت لا تعرف، أليس كذلك؟ هذا
لم يكن في تقاليد عائلة التاجر.&lt;/p>
&lt;p>لا تمت،
الإمبراطور لا يخرج
للقتال بنفسه،
هل يقصد أن يسفك الناس دماء بعضهم البعض،
وأن يموتوا في طريق الوحوش،
وأن يعتبر الموت شرفًا للإنسان؟
كيف يمكنه أن يفكر هكذا،
وهو صاحب القلب الكبير؟&lt;/p>
&lt;p>آه يا أخي، في المعركة
لا تمت،
والدتنا التي ترملت في الخريف الماضي
بوفاة والدنا،
في وسط حزنها، بألم
دُعي ابنها، وهي تحرس المنزل،
حتى في العهد السلمي المزعوم
زاد الشيب في رأسها.&lt;/p>
&lt;p>تبكي مختبئة خلف ستارة المتجر
زوجتك الشابة الضعيفة،
هل نسيتها أم تفكر فيها؟
فكر في قلب الفتاة
التي انفصلت عنك بعد أقل من عشرة أشهر،
فأنت وحدك لها في هذا العالم
آه، على من يمكنها الاعتماد بعد ذلك؟
لا تمت.&lt;/p></description></item><item><title>عن أكيكو يوسانو</title><link>http://kenji.blog/ar/p/about-akiko-yosano/</link><pubDate>Thu, 25 Jul 2024 13:08:36 +0900</pubDate><guid>http://kenji.blog/ar/p/about-akiko-yosano/</guid><description>&lt;p>&lt;img src="http://kenji.blog/p/%E4%B8%8E%E8%AC%9D%E9%87%8E%E6%99%B6%E5%AD%90%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/img.png"
width="1080"
height="1080"
srcset="http://kenji.blog/p/%E4%B8%8E%E8%AC%9D%E9%87%8E%E6%99%B6%E5%AD%90%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/img_hub1fb50838efd9b9ec0f364c86e062d91_1677486_480x0_resize_box_3.png 480w, http://kenji.blog/p/%E4%B8%8E%E8%AC%9D%E9%87%8E%E6%99%B6%E5%AD%90%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/img_hub1fb50838efd9b9ec0f364c86e062d91_1677486_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h2 id="-نظرة-عامة-على-الشخصية">🔹 نظرة عامة على الشخصية
&lt;/h2>&lt;p>كانت أكيكو يوسانو (من 1878 إلى 1942) شاعرة وكاتبة ومفكرة يابانية نشطت من أواخر عصر ميجي إلى أوائل عصر شوا. عُرفت بشكل خاص بأعمالها التانكا الشغوفة والفريدة، وكانت شخصية رائدة في الأدب الياباني الحديث، حيث فتحت آفاقًا جديدة في استقلال المرأة والتعبير عن الحب.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>الاسم الحقيقي&lt;/strong> : يوسانو (اسم العائلة قبل الزواج: أوتوري) شو&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>مكان الميلاد&lt;/strong> : ساكاي (مدينة ساكاي، محافظة أوساكا)&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>الزوج&lt;/strong> : يوسانو تيكان (شاعر)&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>فترة النشاط الرئيسية&lt;/strong> : أواخر عصر ميجي إلى أوائل عصر شوا&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>الخصائص&lt;/strong> :&lt;/p>
&lt;ul>
&lt;li>لفتت الانتباه بقصائد التانكا التي عبرت بصراحة عن المشاعر الرومانسية للمرأة&lt;/li>
&lt;li>امتلكت أفكارًا نسوية وعززت تعليم المرأة واستقلالها&lt;/li>
&lt;li>أظهرت موقفًا سلميًا انتقد الحرب الروسية اليابانية&lt;/li>
&lt;li>عضو رئيسي في المجلة الأدبية &amp;ldquo;ميوجو&amp;rdquo;&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="-الأعمال-الرئيسية-وملخصاتها-وخصائصها">🔹 الأعمال الرئيسية وملخصاتها وخصائصها
&lt;/h2>&lt;h3 id="1-ميداريغامي-1901">1. &amp;ldquo;ميداريغامي&amp;rdquo; (1901)
&lt;/h3>&lt;ul>
&lt;li>&lt;strong>نظرة عامة&lt;/strong> : مجموعتها الشعرية الأولى. نُشرت في أوائل العشرينيات من عمرها وكان لها تأثير كبير على الأوساط الأدبية اليابانية.&lt;/li>
&lt;li>&lt;strong>الخصائص&lt;/strong> : التعبير الصريح عن المشاعر الرومانسية والرغبات الجسدية من منظور الأنثى.&lt;/li>
&lt;li>&lt;strong>قصيدة مشهورة&lt;/strong> :&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>دون أن تلمس
الدم الحار لبشرتي الناعمة
ألست تشعر بالوحدة، وأنت تعظ بالطريق؟&lt;/p>
&lt;/blockquote>
&lt;p>→ أصبحت موضوعًا ساخنًا لتعبيرها عن آراء حول الحب اعتبرت جريئة في ظل الأخلاقيات السائدة في ذلك الوقت، بكلمات امرأة نفسها.&lt;/p>
&lt;hr>
&lt;h3 id="2-أرجوك-لا-تمت-1904">2. &amp;ldquo;أرجوك لا تمت&amp;rdquo; (1904)
&lt;/h3>&lt;ul>
&lt;li>&lt;strong>الشكل&lt;/strong> : شعر (قصيدة وليست تانكا)&lt;/li>
&lt;li>&lt;strong>المحتوى&lt;/strong> : قصيدة مناهضة للحرب موجهة إلى شقيقها الأصغر الذي ذهب إلى جبهة الحرب الروسية اليابانية.&lt;/li>
&lt;li>&lt;strong>مقتطفات&lt;/strong> :&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>أرجوك لا تمت
لأنك ولدت أخيرًا
دموع أمنا تنهمر
وهي تعصر كمك&amp;hellip;&lt;/p>
&lt;/blockquote>
&lt;ul>
&lt;li>&lt;strong>الأهمية&lt;/strong> : كانت ثورية في مناشدتها ضد الحرب من منظور امرأة تشعر بالحزن على وفاة شقيقها، في وقت كان فيه الاتجاه نحو تمجيد الحرب قويًا.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="-التأثير-والتقييم">🔹 التأثير والتقييم
&lt;/h2>&lt;ul>
&lt;li>انخرطت في أنشطة تقدمية اجتماعيًا مثل تحرير المرأة، والسلام، ونشر التعليم.&lt;/li>
&lt;li>في سنواتها الأخيرة، كرست نفسها لتعليم الفتيات وشاركت في تأسيس كلية نسائية (مثل معهد الثقافة).&lt;/li>
&lt;li>واحدة من أهم المفكرات والأديبات في اليابان قبل الحرب.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="-ملخص">🔹 ملخص
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>العنصر&lt;/th>
&lt;th>المحتوى&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>الاسم&lt;/td>
&lt;td>أكيكو يوسانو&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>مجال النشاط&lt;/td>
&lt;td>تانكا، شعر، نقد، تعليم&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الأعمال الرئيسية&lt;/td>
&lt;td>&amp;ldquo;ميداريغامي&amp;rdquo;، &amp;ldquo;أرجوك لا تمت&amp;rdquo;&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الخصائص&lt;/td>
&lt;td>حرية الحب، استقلال المرأة، التعبير عن السلام&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>التأثير المعاصر&lt;/td>
&lt;td>الأدب النسوي، ابتكار التانكا الحديثة، رائدة الشعر المناهض للحرب&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr></description></item><item><title>مقدمة في Mathematica</title><link>http://kenji.blog/ar/p/mathematica%E5%85%A5%E9%96%80/</link><pubDate>Thu, 25 Jul 2024 01:36:19 +0900</pubDate><guid>http://kenji.blog/ar/p/mathematica%E5%85%A5%E9%96%80/</guid><description>&lt;img src="http://kenji.blog/p/mathematica%E5%85%A5%E9%96%80/img.png" alt="Featured image of post مقدمة في Mathematica" />&lt;h1 id="مقدمة-في-mathematica">مقدمة في Mathematica
&lt;/h1>&lt;h2 id="حل-المعادلات">حل المعادلات
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Solve[x^2 - 3 x + 2 == 0, x]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{{x -&amp;gt; 1}, {x -&amp;gt; 2}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إيجاد-حلول-المعادلات-في-نطاق-الأعداد-الصحيحة">إيجاد حلول المعادلات في نطاق الأعداد الصحيحة
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Solve[x^2 - 3 x + 2 == 0 &amp;amp;&amp;amp; 0 &amp;lt;= x &amp;lt;= 2, x, Integers]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{{x -&amp;gt; 1}, {x -&amp;gt; 2}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="حل-نظام-من-المعادلات">حل نظام من المعادلات
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Solve[{x + y == 3, x - y == 1}, {x, y}]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{{x -&amp;gt; 2, y -&amp;gt; 1}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="حل-المتباينات">حل المتباينات
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Reduce[x^2 - 3 x + 2 &amp;gt; 0, x]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">x &amp;lt; 1 || x &amp;gt; 2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="التفاضل">التفاضل
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">D[x^2, x]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">2 x
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="التكامل">التكامل
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Integrate[x^2, x]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">x^3/3
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إيجاد-النهاية">إيجاد النهاية
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Limit[1/x, x -&amp;gt; 0]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Infinity
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إيجاد-المتسلسلة">إيجاد المتسلسلة
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Sum[1/n^2, {n, 1, Infinity}]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">π^2/6
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إنشاء-مصفوفة">إنشاء مصفوفة
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">m = {{1, 2}, {3, 4}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إيجاد-ضرب-المصفوفات">إيجاد ضرب المصفوفات
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">m . m
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{{7, 10}, {15, 22}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إيجاد-المصفوفة-المعكوسة">إيجاد المصفوفة المعكوسة
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Inverse[m]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{{-2, 1}, {1.5, -0.5}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إيجاد-القيم-الذاتية-والمتجهات-الذاتية">إيجاد القيم الذاتية والمتجهات الذاتية
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Eigensystem[m]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{{5, 0}, {{1, 1}, {1, -1}}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إيجاد-الضرب-النقطي-للمتجهات">إيجاد الضرب النقطي للمتجهات
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{1, 2} . {3, 4}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">11
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إيجاد-الضرب-التقاطعي-للمتجهات">إيجاد الضرب التقاطعي للمتجهات
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Cross[{1, 2, 3}, {4, 5, 6}]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{-3, 6, -3}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إيجاد-مقدار-المتجه">إيجاد مقدار المتجه
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Norm[{1, 2, 3}]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">√14
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إيجاد-زاوية-المتجه">إيجاد زاوية المتجه
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">ArcCos[{1, 2} . {3, 4}/(Norm[{1, 2}] Norm[{3, 4}])]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">ArcCos[11/(√5 √25)]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إيجاد-الإسقاط-المتجهي">إيجاد الإسقاط المتجهي
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{1, 2} . {3, 4}/Norm[{3, 4}] {3, 4}/Norm[{3, 4}]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{11/5, 22/5}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إيجاد-دوران-المتجه">إيجاد دوران المتجه
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">RotationMatrix[π/2].{1, 0}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{0, 1}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إيجاد-انتقال-المتجه">إيجاد انتقال المتجه
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">TranslationTransform[{1, 2}][{3, 4}]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{4, 6}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إيجاد-تحجيم-المتجه">إيجاد تحجيم المتجه
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">ScalingTransform[{2, 3}][{1, 1}]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{2, 3}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إيجاد-انعكاس-المتجه">إيجاد انعكاس المتجه
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">ReflectionTransform[{1, 1}][{1, 1}]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{0, 0}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="توليد-أرقام-عشوائية">توليد أرقام عشوائية
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">RandomReal[]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">0.123456
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="توليد-أرقام-عشوائية-أعداد-صحيحة">توليد أرقام عشوائية (أعداد صحيحة)
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">RandomInteger[]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">123456
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="توليد-أرقام-عشوائية-ضمن-نطاق">توليد أرقام عشوائية (ضمن نطاق)
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">RandomReal[{1, 10}]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">5.6789
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="توليد-أرقام-عشوائية-أعداد-صحيحة-ضمن-نطاق">توليد أرقام عشوائية (أعداد صحيحة ضمن نطاق)
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">RandomInteger[{1, 10}]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">5
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="توليد-أرقام-عشوائية-توزيع-محدد">توليد أرقام عشوائية (توزيع محدد)
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">RandomVariate[NormalDistribution[0, 1]]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">0.123456
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="توليد-أرقام-عشوائية-توزيع-محدد-عدد-محدد">توليد أرقام عشوائية (توزيع محدد، عدد محدد)
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">RandomVariate[NormalDistribution[0, 1], 10]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{0.123456, 0.234567, ..., 0.987654}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="توليد-أرقام-عشوائية-توزيع-عدد-وبذرة-محددة">توليد أرقام عشوائية (توزيع، عدد، وبذرة محددة)
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">SeedRandom[12345]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">RandomVariate[NormalDistribution[0, 1], 10]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{0.123456, 0.234567, ..., 0.987654}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="تطبيق-دالة-على-عناصر-المصفوفة">تطبيق دالة على عناصر المصفوفة
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Map[Sqrt, {1, 4, 9}]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Sqrt /@ {1, 4, 9}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Map[#^(1/2)&amp;amp;, {1, 4, 9}]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{1, 2, 3}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="تعريف-دالة-باستخدام-تعبير-لامبدا">تعريف دالة باستخدام تعبير لامبدا
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">f = Function[x, x^2]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">f[3]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">9
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="تركيب-الدوال">تركيب الدوال
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">f = Function[x, x^2]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">g = Function[x, x + 1]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">h = Function[x, f[g[x]]]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">h[3]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">16
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="الإشارة-إلى-نتيجة-الحساب-السابق">الإشارة إلى نتيجة الحساب السابق
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">% + 1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">17
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="دوال-نقية">دوال نقية
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">(#+3)&amp;amp;[5]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">8
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="استخراج-من-المصفوفة">استخراج من المصفوفة
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">Select[{1, 2, 3, 4, 5}, EvenQ]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Select[{1, 2, 3, 4, 5}, Mod[#,2]==0&amp;amp;]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الخرج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{2, 4}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>قائمة أوامر Hugo</title><link>http://kenji.blog/ar/p/hugo%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E4%B8%80%E8%A6%A7/</link><pubDate>Fri, 31 May 2024 01:36:00 +0900</pubDate><guid>http://kenji.blog/ar/p/hugo%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E4%B8%80%E8%A6%A7/</guid><description>&lt;img src="http://kenji.blog/p/hugo%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E4%B8%80%E8%A6%A7/img.png" alt="Featured image of post قائمة أوامر Hugo" />&lt;h1 id="ما-هو-hugo">ما هو Hugo
&lt;/h1>&lt;p>Hugo هو أحد مولدات المواقع الثابتة. يتيح لك إنشاء مواقع ويب عن طريق تحويل ملفات Markdown إلى HTML. تمت كتابة Hugo بلغة Go ويعمل بسرعة فائقة.&lt;/p>
&lt;p>هذه المدونة أيضاً تم إنشاؤها باستخدام Hugo.&lt;/p>
&lt;h1 id="تثبيت-واجهة-سطر-الأوامر-cli-لـ-hugo">تثبيت واجهة سطر الأوامر (CLI) لـ Hugo
&lt;/h1>&lt;p>لتثبيت واجهة سطر أوامر Hugo، قم بتشغيل الأمر التالي.&lt;/p>
&lt;p>※ هذا مثال لنظام macOS. لأنظمة التشغيل الأخرى، يرجى الرجوع إلى الوثائق الرسمية.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">brew install hugo
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>يمكنك تثبيته باستخدام Homebrew.&lt;/p>
&lt;h1 id="قائمة-أوامر-hugo">قائمة أوامر Hugo
&lt;/h1>&lt;p>يوفر Hugo أوامر متنوعة. قمنا بتلخيص الأوامر الأكثر استخداماً أدناه.&lt;/p>
&lt;h2 id="إنشاء-موقع-جديد">إنشاء موقع جديد
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">hugo new site &amp;lt;اسم الموقع&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هذا الأمر لإنشاء موقع جديد. في &lt;code>&amp;lt;اسم الموقع&amp;gt;&lt;/code>، حدد اسم الموقع.&lt;/p>
&lt;h2 id="إنشاء-مقال-جديد">إنشاء مقال جديد
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">hugo new &amp;lt;اسم المقال&amp;gt;.md
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هذا الأمر لإنشاء مقال جديد. في &lt;code>&amp;lt;اسم المقال&amp;gt;&lt;/code>، حدد اسم المقال.&lt;/p>
&lt;h2 id="بدء-تشغيل-الخادم">بدء تشغيل الخادم
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">hugo server
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هذا الأمر لتشغيل الخادم المحلي. يمكن الوصول إليه عبر &lt;code>http://localhost:1313&lt;/code>.&lt;/p>
&lt;h2 id="بناء-الموقع">بناء الموقع
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">hugo
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هذا الأمر لبناء الموقع. سيتم إنشاء ملفات HTML في مجلد &lt;code>public&lt;/code>.&lt;/p>
&lt;h2 id="النشر">النشر
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">hugo deploy
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هذا الأمر لنشر الموقع. يتم تكوين إعدادات النشر في ملف &lt;code>config.toml&lt;/code>.&lt;/p>
&lt;h2 id="عرض-قائمة-المقالات">عرض قائمة المقالات
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">hugo list all
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هذا الأمر لعرض قائمة بجميع المقالات.&lt;/p>
&lt;h2 id="التحقق-من-الإعدادات">التحقق من الإعدادات
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">hugo config
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هذا الأمر للتحقق من الإعدادات.&lt;/p>
&lt;h2 id="عرض-المساعدة">عرض المساعدة
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">hugo &lt;span class="nb">help&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هذا الأمر لعرض المساعدة.&lt;/p>
&lt;h2 id="عرض-الإصدار">عرض الإصدار
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">hugo version
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هذا الأمر لعرض الإصدار.&lt;/p>
&lt;p>هذه هي قائمة أوامر Hugo. تتوفر العديد من الأوامر الأخرى، لذا يرجى الرجوع إلى الوثائق الرسمية.&lt;/p>
&lt;h1 id="المراجع">المراجع
&lt;/h1>&lt;ul>
&lt;li>&lt;a class="link" href="https://gohugo.io/documentation/" target="_blank" rel="noopener"
>وثائق Hugo الرسمية&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>إضافات Visual Studio Code الموصى بها</title><link>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/</link><pubDate>Wed, 29 May 2024 17:20:19 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post إضافات Visual Studio Code الموصى بها" />&lt;h1 id="قائمة-إضافات-visual-studio-code-الموصى-بها">قائمة إضافات Visual Studio Code الموصى بها
&lt;/h1>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>التصنيف&lt;/th>
&lt;th>الاسم&lt;/th>
&lt;th>المصدر&lt;/th>
&lt;th>الوصف&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>إدارة الحاويات والأنظمة الوهمية&lt;/td>
&lt;td>Remote Devlopment&lt;/td>
&lt;td>Microsoft&lt;/td>
&lt;td>يدعم التطوير عن بُعد عبر الاتصال بالحاويات الوهمية/WSL باستخدام SSH&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>إدارة الحاويات والأنظمة الوهمية&lt;/td>
&lt;td>Docker&lt;/td>
&lt;td>Microsoft&lt;/td>
&lt;td>يدعم إدارة حاويات Docker&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>إدارة الكود&lt;/td>
&lt;td>GitHub Pull Requests&lt;/td>
&lt;td>GitHub&lt;/td>
&lt;td>يدعم إدارة طلبات السحب (Pull Requests) الخاصة بـ GitHub داخل VSCode&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>إدارة الكود&lt;/td>
&lt;td>GitHub Copilot&lt;/td>
&lt;td>GitHub&lt;/td>
&lt;td>يدعم إكمال الكود باستخدام الذكاء الاصطناعي&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>إدارة الكود&lt;/td>
&lt;td>Git Graph&lt;/td>
&lt;td>mhutchie&lt;/td>
&lt;td>يعرض فروع وتاريخ Git بشكل رسومي&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>إدارة الكود&lt;/td>
&lt;td>Git History&lt;/td>
&lt;td>Don Jayamanne&lt;/td>
&lt;td>يعرض تاريخ Git&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>تطوير الويب والمتصفح&lt;/td>
&lt;td>Debugger for Firefox&lt;/td>
&lt;td>Firefox DevTools&lt;/td>
&lt;td>يتيح استخدام مصحح أخطاء Firefox داخل VSCode&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>تطوير الويب والمتصفح&lt;/td>
&lt;td>Microsoft Edge Tool For VScode&lt;/td>
&lt;td>Microsoft&lt;/td>
&lt;td>يتيح استخدام أدوات المطورين لـ Edge داخل VSCode&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>تطوير الويب والمتصفح&lt;/td>
&lt;td>Vue Language Features(Volar)&lt;/td>
&lt;td>Vue&lt;/td>
&lt;td>يدعم ميزات لغة Vue&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>تطوير الويب والمتصفح&lt;/td>
&lt;td>JavaScript (ES6) code snippets&lt;/td>
&lt;td>charalampos karypidis&lt;/td>
&lt;td>يوفر مقتطفات برمجية لـ JavaScript&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>تطوير الويب والمتصفح&lt;/td>
&lt;td>Tailwind CSS IntelliSense&lt;/td>
&lt;td>Tailwind Labs&lt;/td>
&lt;td>يوفر مقتطفات برمجية لـ Tailwind CSS&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>التطوير السحابي&lt;/td>
&lt;td>AWS Toolkit&lt;/td>
&lt;td>Amazon Web Services&lt;/td>
&lt;td>يدعم تطوير AWS&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>التطوير السحابي&lt;/td>
&lt;td>Azure Tools&lt;/td>
&lt;td>Microsoft&lt;/td>
&lt;td>يدعم تطوير Azure&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>التطوير السحابي&lt;/td>
&lt;td>Google Cloud Tools&lt;/td>
&lt;td>Google Cloud&lt;/td>
&lt;td>يدعم تطوير Google Cloud&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>قواعد البيانات&lt;/td>
&lt;td>MySQL&lt;/td>
&lt;td>Jun Han&lt;/td>
&lt;td>يدعم تطوير MySQL&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>قواعد البيانات&lt;/td>
&lt;td>SQL Server(mssql)&lt;/td>
&lt;td>Microsoft&lt;/td>
&lt;td>يدعم تطوير SQL Server&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>قواعد البيانات&lt;/td>
&lt;td>PostgreSQL&lt;/td>
&lt;td>Chris Kolkman&lt;/td>
&lt;td>يدعم تطوير PostgreSQL&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الأنظمة المدمجة&lt;/td>
&lt;td>PlatformIO&lt;/td>
&lt;td>PlatformIO&lt;/td>
&lt;td>يدعم تطوير PlatformIO&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الأنظمة المدمجة&lt;/td>
&lt;td>Arduino&lt;/td>
&lt;td>Microsoft&lt;/td>
&lt;td>يدعم تطوير Arduino&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الأنظمة المدمجة&lt;/td>
&lt;td>WorkBench&lt;/td>
&lt;td>Particle&lt;/td>
&lt;td>بيئة تطوير مقدمة من Particle تدعم التطوير لإنترنت الأشياء (IoT) بما في ذلك البرامج الثابتة، المكتبات، والتكامل السحابي&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>C/C++&lt;/td>
&lt;td>C/C++ Extension Pack&lt;/td>
&lt;td>Microsoft&lt;/td>
&lt;td>يدعم تطوير C/C++&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>C/C++&lt;/td>
&lt;td>C/C++ Runner&lt;/td>
&lt;td>franneck94&lt;/td>
&lt;td>ينفذ كود C/C++ (يدعم مترجمات gcc، msvc، cuda nvccc)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>C/C++&lt;/td>
&lt;td>Cortex-Debug&lt;/td>
&lt;td>marus25&lt;/td>
&lt;td>يدعم تصحيح أخطاء المتحكمات الدقيقة Cortex-A/R/M&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Python&lt;/td>
&lt;td>Python Extension Pack&lt;/td>
&lt;td>Microsoft&lt;/td>
&lt;td>يدعم تطوير Python&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Python&lt;/td>
&lt;td>jupyter&lt;/td>
&lt;td>Microsoft&lt;/td>
&lt;td>يدعم تطوير Jupyter Notebook&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الأدوات وواجهة المستخدم&lt;/td>
&lt;td>Makrdown All in One&lt;/td>
&lt;td>Yu Zhang&lt;/td>
&lt;td>يدعم كتابة Markdown&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الأدوات وواجهة المستخدم&lt;/td>
&lt;td>Hex Editor&lt;/td>
&lt;td>Microsoft&lt;/td>
&lt;td>يحرر الملفات الثنائية&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الأدوات وواجهة المستخدم&lt;/td>
&lt;td>vscode-pdf&lt;/td>
&lt;td>tomoki1207&lt;/td>
&lt;td>يعرض ملفات PDF&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الأدوات وواجهة المستخدم&lt;/td>
&lt;td>Rainbow CSV&lt;/td>
&lt;td>mechatroner&lt;/td>
&lt;td>يعرض ملفات CSV بألوان متعددة&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الأدوات وواجهة المستخدم&lt;/td>
&lt;td>Draw.io Integration&lt;/td>
&lt;td>Henning Dieterichs&lt;/td>
&lt;td>يتيح استخدام Draw.io داخل VSCode&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الأدوات وواجهة المستخدم&lt;/td>
&lt;td>Japanese Language Pack for Visual Studio Code&lt;/td>
&lt;td>Microsoft&lt;/td>
&lt;td>حزمة تعريب واجهة المستخدم&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الأدوات وواجهة المستخدم&lt;/td>
&lt;td>Live Share&lt;/td>
&lt;td>Microsoft&lt;/td>
&lt;td>يدعم العمل المشترك في الوقت الفعلي&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table></description></item><item><title>تجربة mermaid.js</title><link>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/</link><pubDate>Sat, 25 May 2024 02:18:09 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post تجربة mermaid.js" />&lt;h2 id="ما-هو-mermaidjs">ما هو mermaid.js
&lt;/h2>&lt;p>mermaid.js هي مكتبة JavaScript تتيح لك كتابة بنية مخصصة تعتمد على النص (صيغة Mermaid) لعرض المخططات المعقدة رسومياً مثل المخططات الانسيابية والرسوم البيانية ومخططات جانت.
يتم استخدامها أيضاً في خدمات مختلفة مثل GitHub و Qiita و Notion. في هذه المرة، سنحاول تمكين استخدام mermaid.js في hugo.&lt;/p>
&lt;h2 id="تمكين-استخدام-mermaidjs-في-hugo">تمكين استخدام mermaid.js في hugo
&lt;/h2>&lt;p>الخطوات كالتالي:&lt;/p>
&lt;ol>
&lt;li>أضف التالي إلى layouts/partials/extend_footer.html.&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-html" data-lang="html">&lt;span class="line">&lt;span class="cl">{{ if or .Params.mermaid .Site.Params.mermaid }}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">script&lt;/span> &lt;span class="na">src&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;https://cdn.jsdelivr.net/npm/mermaid@10.3.0/dist/mermaid.min.js&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&amp;lt;/&lt;/span>&lt;span class="nt">script&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{- $loadmermaid := resources.Get &amp;#34;js/load-mermaid.js&amp;#34; }}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">script&lt;/span> &lt;span class="na">src&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;{{ $loadmermaid.RelPermalink }}&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&amp;lt;/&lt;/span>&lt;span class="nt">script&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">script&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">window&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">initMermaid&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">isDarkTheme&lt;/span>&lt;span class="p">())&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">setPrefTheme&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;dark&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span> &lt;span class="k">else&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">setPrefTheme&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;light&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">script&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{ end }}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>※ يتم تحميل &lt;code>mermaid.min.js&lt;/code> فقط إذا كان &lt;code>mermaid: true&lt;/code> في عبارة if. هذه المكتبة كبيرة نوعاً ما، حوالي 3 ميغابايت.&lt;/p>
&lt;ol start="3">
&lt;li>قم بإنشاء assets/js/load-mermaid.js. يتم استخدام هذه العملية للتهيئة وإعادة الرسم عند تبديل السمة ديناميكياً.&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;span class="lnt">36
&lt;/span>&lt;span class="lnt">37
&lt;/span>&lt;span class="lnt">38
&lt;/span>&lt;span class="lnt">39
&lt;/span>&lt;span class="lnt">40
&lt;/span>&lt;span class="lnt">41
&lt;/span>&lt;span class="lnt">42
&lt;/span>&lt;span class="lnt">43
&lt;/span>&lt;span class="lnt">44
&lt;/span>&lt;span class="lnt">45
&lt;/span>&lt;span class="lnt">46
&lt;/span>&lt;span class="lnt">47
&lt;/span>&lt;span class="lnt">48
&lt;/span>&lt;span class="lnt">49
&lt;/span>&lt;span class="lnt">50
&lt;/span>&lt;span class="lnt">51
&lt;/span>&lt;span class="lnt">52
&lt;/span>&lt;span class="lnt">53
&lt;/span>&lt;span class="lnt">54
&lt;/span>&lt;span class="lnt">55
&lt;/span>&lt;span class="lnt">56
&lt;/span>&lt;span class="lnt">57
&lt;/span>&lt;span class="lnt">58
&lt;/span>&lt;span class="lnt">59
&lt;/span>&lt;span class="lnt">60
&lt;/span>&lt;span class="lnt">61
&lt;/span>&lt;span class="lnt">62
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="p">(&lt;/span>&lt;span class="kd">function&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">window&lt;/span>&lt;span class="p">){&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;use strict&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kr">const&lt;/span> &lt;span class="nx">elementCode&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;.mermaid&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kr">const&lt;/span> &lt;span class="nx">loadMermaid&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kd">function&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">theme&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">window&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">mermaid&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">initialize&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="nx">theme&lt;/span>&lt;span class="p">})&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">window&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">mermaid&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">init&lt;/span>&lt;span class="p">({&lt;/span>&lt;span class="nx">theme&lt;/span>&lt;span class="p">},&lt;/span> &lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">querySelectorAll&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">elementCode&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kr">const&lt;/span> &lt;span class="nx">saveOriginalData&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kd">function&lt;/span>&lt;span class="p">(){&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="k">new&lt;/span> &lt;span class="nb">Promise&lt;/span>&lt;span class="p">((&lt;/span>&lt;span class="nx">resolve&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">reject&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">=&amp;gt;&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">try&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kd">var&lt;/span> &lt;span class="nx">els&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">querySelectorAll&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">elementCode&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">count&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">els&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">length&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">els&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">forEach&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">element&lt;/span> &lt;span class="p">=&amp;gt;&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">element&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">setAttribute&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;data-original-code&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">element&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">innerHTML&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">count&lt;/span>&lt;span class="o">--&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">count&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">){&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">resolve&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">});&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span> &lt;span class="k">catch&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">error&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">reject&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">error&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">})&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kr">const&lt;/span> &lt;span class="nx">resetProcessed&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kd">function&lt;/span>&lt;span class="p">(){&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="k">new&lt;/span> &lt;span class="nb">Promise&lt;/span>&lt;span class="p">((&lt;/span>&lt;span class="nx">resolve&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">reject&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">=&amp;gt;&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">try&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kd">var&lt;/span> &lt;span class="nx">els&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">querySelectorAll&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">elementCode&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">count&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">els&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">length&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">els&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">forEach&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">element&lt;/span> &lt;span class="p">=&amp;gt;&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">element&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">getAttribute&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;data-original-code&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">!=&lt;/span> &lt;span class="kc">null&lt;/span>&lt;span class="p">){&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">element&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">removeAttribute&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;data-processed&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">element&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">innerHTML&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">element&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">getAttribute&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;data-original-code&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">count&lt;/span>&lt;span class="o">--&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">count&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">){&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">resolve&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">});&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span> &lt;span class="k">catch&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">error&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">reject&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">error&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">})&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kr">const&lt;/span> &lt;span class="nx">init&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">()=&amp;gt;{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">saveOriginalData&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">.&lt;/span>&lt;span class="k">catch&lt;/span>&lt;span class="p">(&lt;/span> &lt;span class="nx">console&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">error&lt;/span> &lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">body&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">addEventListener&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;dark-theme-set&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">()=&amp;gt;{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">resetProcessed&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">.&lt;/span>&lt;span class="nx">then&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">loadMermaid&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;dark&amp;#39;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">.&lt;/span>&lt;span class="k">catch&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">console&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">error&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">})&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">body&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">addEventListener&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;light-theme-set&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="p">()=&amp;gt;{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">resetProcessed&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">.&lt;/span>&lt;span class="nx">then&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">loadMermaid&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;default&amp;#39;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">.&lt;/span>&lt;span class="k">catch&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">console&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">error&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">})&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">window&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">initMermaid&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nx">init&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">})(&lt;/span>&lt;span class="nb">window&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>تمت الإشارة إلى الكود الأصلي هنا:&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://github.com/mermaid-js/mermaid/issues/1945" target="_blank" rel="noopener"
>Reinitialize with new theme #1945&lt;/a>&lt;/li>
&lt;/ul>
&lt;ol start="3">
&lt;li>قم بتعديل عملية تبديل السمة في header.html&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="kd">function&lt;/span> &lt;span class="nx">switchTheme&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">theme&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">switch&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nx">theme&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">case&lt;/span> &lt;span class="s1">&amp;#39;light&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{{&lt;/span> &lt;span class="k">if&lt;/span> &lt;span class="nx">or&lt;/span> &lt;span class="p">.&lt;/span>&lt;span class="nx">Params&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">mermaid&lt;/span> &lt;span class="p">.&lt;/span>&lt;span class="nx">Site&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">Params&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">mermaid&lt;/span> &lt;span class="p">}}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">body&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">dispatchEvent&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">new&lt;/span> &lt;span class="nx">CustomEvent&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;light-theme-set&amp;#39;&lt;/span>&lt;span class="p">));&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{{&lt;/span> &lt;span class="nx">end&lt;/span> &lt;span class="p">}}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">body&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">classList&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">remove&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;dark&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">break&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">case&lt;/span> &lt;span class="s1">&amp;#39;dark&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{{&lt;/span> &lt;span class="k">if&lt;/span> &lt;span class="nx">or&lt;/span> &lt;span class="p">.&lt;/span>&lt;span class="nx">Params&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">mermaid&lt;/span> &lt;span class="p">.&lt;/span>&lt;span class="nx">Site&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">Params&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">mermaid&lt;/span> &lt;span class="p">}}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">body&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">dispatchEvent&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">new&lt;/span> &lt;span class="nx">CustomEvent&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;dark-theme-set&amp;#39;&lt;/span>&lt;span class="p">));&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{{&lt;/span> &lt;span class="nx">end&lt;/span> &lt;span class="p">}}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">body&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">classList&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">add&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;dark&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">break&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1">// auto
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span> &lt;span class="k">default&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nb">window&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">matchMedia&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;(prefers-color-scheme: dark)&amp;#39;&lt;/span>&lt;span class="p">).&lt;/span>&lt;span class="nx">matches&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{{&lt;/span> &lt;span class="k">if&lt;/span> &lt;span class="nx">or&lt;/span> &lt;span class="p">.&lt;/span>&lt;span class="nx">Params&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">mermaid&lt;/span> &lt;span class="p">.&lt;/span>&lt;span class="nx">Site&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">Params&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">mermaid&lt;/span> &lt;span class="p">}}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">body&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">dispatchEvent&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">new&lt;/span> &lt;span class="nx">CustomEvent&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;dark-theme-set&amp;#39;&lt;/span>&lt;span class="p">));&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{{&lt;/span> &lt;span class="nx">end&lt;/span> &lt;span class="p">}}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">body&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">classList&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">add&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;dark&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="4">
&lt;li>قم بإنشاء layouts/shortcodes/mermaid.html&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-html" data-lang="html">&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">div&lt;/span> &lt;span class="na">class&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;mermaid&amp;#34;&lt;/span> &lt;span class="na">align&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;{{ if .Get &amp;#34;&lt;/span>&lt;span class="na">align&lt;/span>&lt;span class="err">&amp;#34;&lt;/span> &lt;span class="err">}}{{&lt;/span> &lt;span class="err">.&lt;/span>&lt;span class="na">Get&lt;/span> &lt;span class="err">&amp;#34;&lt;/span>&lt;span class="na">align&lt;/span>&lt;span class="err">&amp;#34;&lt;/span> &lt;span class="err">}}{{&lt;/span> &lt;span class="na">else&lt;/span> &lt;span class="err">}}&lt;/span>&lt;span class="na">center&lt;/span>&lt;span class="err">{{&lt;/span> &lt;span class="na">end&lt;/span> &lt;span class="err">}}&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{ safeHTML .Inner }}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">div&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>الآن أصبح mermaid.js جاهزاً للاستخدام.&lt;/p>
&lt;h2 id="استخدام-mermaidjs">استخدام mermaid.js
&lt;/h2>&lt;ol>
&lt;li>أضف التالي إلى تعريف المقالة&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-dtd" data-lang="dtd">&lt;span class="line">&lt;span class="cl">&lt;span class="err">marmaid:&lt;/span> &lt;span class="err">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="2">
&lt;li>أضف التالي إلى نص المقالة&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>المخطط الانسيابي&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">mermaid&lt;/span> &lt;span class="na">align&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;center&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">graph TD
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> A[البداية] --&amp;gt;|الشرط 1| B(الشرط 2)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> B --&amp;gt; C{الشرط 3}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> C --&amp;gt;|الشرط 4| D[النهاية]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">mermaid&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;strong>النتيجة&lt;/strong>&lt;/p>
&lt;div class="mermaid" align="center">
graph TD
A[البداية] -->|الشرط 1| B(الشرط 2)
B --> C{الشرط 3}
C -->|الشرط 4| D[النهاية]
&lt;/div>
&lt;p>&lt;strong>مخطط جانت&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">mermaid&lt;/span> &lt;span class="na">align&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;center&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gantt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> section Project
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> تحديد المتطلبات :done, a, 2024-05-25, 5d
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> التصميم الأساسي :done, b, after a, 5d
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> التصميم التفصيلي :done, c, after b, 5d
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> التصنيع :active, d, after c, 10d
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> اختبار الوحدة :crit, e, after d, 5d
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> اختبار التكامل : f, after e, 5d
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> الاختبار الشامل : g, after f, 5d
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> الإصدار :milestone, h, after g, 1d
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">mermaid&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;strong>النتيجة&lt;/strong>&lt;/p>
&lt;div class="mermaid" align="center">
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
&lt;/div>
&lt;p>&lt;strong>مخطط التسلسل&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-markdown" data-lang="markdown">&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">mermaid&lt;/span> &lt;span class="na">align&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;center&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sequenceDiagram
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> participant user
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> participant view
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> participant controller
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> participant model
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> participant database
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> user-&amp;gt;&amp;gt;view: إدخال المعرف/كلمة المرور
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> view-&amp;gt;&amp;gt;controller: طلب المصادقة
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> controller-&amp;gt;&amp;gt;model: طلب المصادقة
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> model-&amp;gt;&amp;gt;database: طلب المصادقة
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> database--&amp;gt;&amp;gt;model: إرجاع نتيجة المصادقة
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> model--&amp;gt;&amp;gt;controller: إرجاع نتيجة المصادقة
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> controller--&amp;gt;&amp;gt;view: إرجاع نتيجة المصادقة
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> view--&amp;gt;&amp;gt;user: عرض نتيجة المصادقة
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{&lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">mermaid&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;strong>النتيجة&lt;/strong>&lt;/p>
&lt;div class="mermaid" align="center">
sequenceDiagram
participant user
participant view
participant controller
participant model
participant database
user->>view: إدخال المعرف/كلمة المرور
view->>controller: استعلام ajax
controller->>model: طلب المصادقة
model->>database: إصدار SQL
database-->>model: إرجاع نتيجة SQL
model-->>controller: إرجاع نتيجة طلب المصادقة
controller-->>view: إرجاع نتيجة استعلام ajax
view-->>user: عرض نتيجة المصادقة
&lt;/div>
&lt;p>هذا كل شيء.&lt;/p>
&lt;h3 id="المراجع">المراجع
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://mermaid.js.org/#/" target="_blank" rel="noopener"
>موقع mermaid.js الرسمي&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://mermaid.live/" target="_blank" rel="noopener"
>موقع تجريبي لمعاينة صيغة mermaid&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كيفية التراجع عن git reset</title><link>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/</link><pubDate>Wed, 15 May 2024 23:32:43 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية التراجع عن git reset" />&lt;h1 id="كيفية-التراجع-عن-git-reset">كيفية التراجع عن git reset
&lt;/h1>&lt;p>إذا قمت بتشغيل git reset عن طريق الخطأ بعد إجراء git commit، فإليك كيفية التراجع عن git reset (كيفية استعادة الحالة وقت إجراء git commit).&lt;/p>
&lt;ol>
&lt;li>تحقق من معرف الالتزام (commit ID) قبل إعادة الضبط باستخدام &lt;code>git reflog&lt;/code>&lt;/li>
&lt;li>ارجع إلى الحالة قبل إعادة الضبط باستخدام &lt;code>git reset --hard HEAD@{number}&lt;/code>&lt;/li>
&lt;/ol>
&lt;p>هذه كانت طريقة التراجع عن git reset.&lt;/p></description></item><item><title>جعل MS-DOS 4.0 مفتوح المصدر</title><link>http://kenji.blog/ar/p/ms-dos-4-0-open-source/</link><pubDate>Sun, 05 May 2024 16:44:28 +0900</pubDate><guid>http://kenji.blog/ar/p/ms-dos-4-0-open-source/</guid><description>&lt;img src="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.png" alt="Featured image of post جعل MS-DOS 4.0 مفتوح المصدر" />&lt;h2 id="جعل-ms-dos-40-مفتوح-المصدر">جعل MS-DOS 4.0 مفتوح المصدر
&lt;/h2>&lt;p>أصدرت شركة مايكروسوفت الكود المصدري لنظام MS-DOS 4.0، والذي تم إصداره قبل حوالي 40 عامًا.
إنه مكتوب بالكامل تقريبًا بلغة التجميع 8086.&lt;/p>
&lt;h2 id="مستودع-github">مستودع github
&lt;/h2>&lt;p>&lt;a class="link" href="https://github.com/microsoft/MS-DOS" target="_blank" rel="noopener"
>https://github.com/microsoft/MS-DOS&lt;/a>&lt;/p>
&lt;h2 id="مواقع-مرجعية">مواقع مرجعية
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://cloudblogs.microsoft.com/opensource/2024/04/25/open-sourcing-ms-dos-4-0/" target="_blank" rel="noopener"
>جعل MS-DOS 4.0 مفتوح المصدر&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كتب موصى بها للمهندسين المبتدئين</title><link>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/</link><pubDate>Sun, 05 May 2024 16:03:33 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كتب موصى بها للمهندسين المبتدئين" />&lt;ol>
&lt;li>الشفرة المقروءة (The Art of Readable Code)
&lt;img src="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_15.png"
width="1057"
height="1500"
srcset="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_15_huc95b138ee3dcf3e01c804919bb0a2951_1439618_480x0_resize_box_3.png 480w, 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_15_huc95b138ee3dcf3e01c804919bb0a2951_1439618_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_15.png"
class="gallery-image"
data-flex-grow="70"
data-flex-basis="169px"
>&lt;/li>
&lt;li>مبادئ البرمجة (Principles of Programming)
&lt;img src="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_14.png"
width="1057"
height="1500"
srcset="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_14_hu2ef10bf97b3341f50f5ce872bb9819ce_858111_480x0_resize_box_3.png 480w, 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_14_hu2ef10bf97b3341f50f5ce872bb9819ce_858111_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_14.png"
class="gallery-image"
data-flex-grow="70"
data-flex-basis="169px"
>&lt;/li>
&lt;li>المبرمج البراغماتي (The Pragmatic Programmer)
&lt;img src="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_13.png"
width="1057"
height="1500"
srcset="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_13_hued43a825a7cef0e2f2f134925c5c929d_2826767_480x0_resize_box_3.png 480w, 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_13_hued43a825a7cef0e2f2f134925c5c929d_2826767_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_13.png"
class="gallery-image"
data-flex-grow="70"
data-flex-basis="169px"
>&lt;/li>
&lt;li>التقنيات التي تدعم الويب (Web Technologies)
&lt;img src="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_12.png"
width="706"
height="1000"
srcset="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_12_hu38f3f9fa330cdace274fc1d65dae56ad_542421_480x0_resize_box_3.png 480w, 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_12_hu38f3f9fa330cdace274fc1d65dae56ad_542421_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_12.png"
class="gallery-image"
data-flex-grow="70"
data-flex-basis="169px"
>&lt;/li>
&lt;li>كيفية بناء تطبيقات ويب آمنة
&lt;img src="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_11.png"
width="930"
height="1184"
srcset="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_11_hu261da33dc4cf509479817847be63b78a_1062282_480x0_resize_box_3.png 480w, 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_11_hu261da33dc4cf509479817847be63b78a_1062282_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_11.png"
class="gallery-image"
data-flex-grow="78"
data-flex-basis="188px"
>&lt;/li>
&lt;li>كيف تعمل الشبكات (How Networks Work)
&lt;img src="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_10.png"
width="1060"
height="1500"
srcset="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_10_hu648160deb00f1ab01a6a1e5bf748893c_1757585_480x0_resize_box_3.png 480w, 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_10_hu648160deb00f1ab01a6a1e5bf748893c_1757585_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_10.png"
class="gallery-image"
data-flex-grow="70"
data-flex-basis="169px"
>&lt;/li>
&lt;li>الدليل الشامل لـ SQL من الخبراء
&lt;img src="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_9.png"
width="1058"
height="1500"
srcset="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_9_hu22594e93e209e80bffc86bee1328466c_2717668_480x0_resize_box_3.png 480w, 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_9_hu22594e93e209e80bffc86bee1328466c_2717668_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_9.png"
class="gallery-image"
data-flex-grow="70"
data-flex-basis="169px"
>&lt;/li>
&lt;li>الدليل العملي لـ Docker
&lt;img src="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_8.png"
width="1090"
height="1389"
srcset="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_8_hu41a2f5f4345654e7bc83a15eefe34981_1727526_480x0_resize_box_3.png 480w, 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_8_hu41a2f5f4345654e7bc83a15eefe34981_1727526_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_8.png"
class="gallery-image"
data-flex-grow="78"
data-flex-basis="188px"
>&lt;/li>
&lt;li>الدليل الكامل لـ Kubernetes
&lt;img src="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_7.png"
width="1177"
height="1500"
srcset="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_7_hu8dd85a224029593fc5dc9a13ef20f0cd_3843087_480x0_resize_box_3.png 480w, 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_7_hu8dd85a224029593fc5dc9a13ef20f0cd_3843087_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_7.png"
class="gallery-image"
data-flex-grow="78"
data-flex-basis="188px"
>&lt;/li>
&lt;li>CODE COMPLETE الإصدار الثاني
&lt;img src="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_5.png"
width="386"
height="500"
srcset="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_5_hucc61503c023b43658f514cad763aa5d4_337603_480x0_resize_box_3.png 480w, 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_5_hucc61503c023b43658f514cad763aa5d4_337603_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_5.png"
class="gallery-image"
data-flex-grow="77"
data-flex-basis="185px"
>
&lt;img src="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_6.png"
width="386"
height="500"
srcset="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_6_hu61c8fa1a50334de472b3f02d2e9b5d94_341513_480x0_resize_box_3.png 480w, 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_6_hu61c8fa1a50334de472b3f02d2e9b5d94_341513_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_6.png"
class="gallery-image"
data-flex-grow="77"
data-flex-basis="185px"
>&lt;/li>
&lt;li>Clean Code: مهارات حرفي البرمجيات الرشيق
&lt;img src="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_4.png"
width="1151"
height="1500"
srcset="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_4_hue4b240787121702069b25a9b17aebafc_1187914_480x0_resize_box_3.png 480w, 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_4_hue4b240787121702069b25a9b17aebafc_1187914_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_4.png"
class="gallery-image"
data-flex-grow="76"
data-flex-basis="184px"
>&lt;/li>
&lt;li>Clean Architecture: الدليل الحرفي لهيكلة وتصميم البرمجيات
&lt;img src="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_3.png"
width="1136"
height="1500"
srcset="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_3_hu14a1d1f632f80003cac638b75db73255_1099307_480x0_resize_box_3.png 480w, 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_3_hu14a1d1f632f80003cac638b75db73255_1099307_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="75"
data-flex-basis="181px"
>&lt;/li>
&lt;li>تقنيات يجب أن تعرفها قبل أن تصبح مبرمج ألعاب
&lt;img src="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_2.png"
width="387"
height="500"
srcset="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_2_hub093cdb3288ee25756912df1d9ec1a1d_177794_480x0_resize_box_3.png 480w, 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_2_hub093cdb3288ee25756912df1d9ec1a1d_177794_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="77"
data-flex-basis="185px"
>&lt;/li>
&lt;li>Being Geek
&lt;img src="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_1.png"
width="352"
height="500"
srcset="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_1_hub3e512c89bba46a5fcb37114a89f0140_168953_480x0_resize_box_3.png 480w, 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_1_hub3e512c89bba46a5fcb37114a89f0140_168953_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="70"
data-flex-basis="168px"
>&lt;/li>
&lt;li>لماذا نبني بالبرمجة كائنية التوجه (Object-Oriented)
&lt;img src="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_16.png"
width="1057"
height="1500"
srcset="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_16_hu55ba229358890270c55ec54f21a37dbc_1487603_480x0_resize_box_3.png 480w, 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_16_hu55ba229358890270c55ec54f21a37dbc_1487603_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_16.png"
class="gallery-image"
data-flex-grow="70"
data-flex-basis="169px"
>&lt;/li>
&lt;/ol></description></item><item><title>قالب تقويم Excel (إصدار متوافق مع العطلات الرسمية)</title><link>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/</link><pubDate>Wed, 01 May 2024 00:15:57 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post قالب تقويم Excel (إصدار متوافق مع العطلات الرسمية)" />&lt;h2 id="لقد-قمت-بإنشاء-قالب-تقويم-excel-إصدار-متوافق-مع-العطلات-الرسمية">لقد قمت بإنشاء قالب تقويم Excel (إصدار متوافق مع العطلات الرسمية)!
&lt;/h2>&lt;p>لقد قمت بإنشاء قالب Excel يعرض العطلات في تقويم ذلك الشهر عند إدخال السنة والشهر.&lt;/p>
&lt;p>يرجى تنزيله واستخدامه.
&lt;a class="link" href="%e3%82%ab%e3%83%ac%e3%83%b3%e3%83%80%e3%83%bc.xlsx" >التقويم.xlsx&lt;/a>&lt;/p></description></item><item><title>كيفية إصلاح إعادة تعيين إعدادات DPI عند بدء التشغيل مع الشاشات المتعددة</title><link>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/</link><pubDate>Mon, 29 Apr 2024 19:42:20 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية إصلاح إعادة تعيين إعدادات DPI عند بدء التشغيل مع الشاشات المتعددة" />&lt;p>※ هذه هي خطوات الإعداد لنظام التشغيل Windows 11.&lt;/p>
&lt;ol>
&lt;li>افتح لوحة التحكم&lt;/li>
&lt;li>حدد خيارات الطاقة&lt;/li>
&lt;li>انقر على &amp;ldquo;اختيار ما تفعله أزرار الطاقة&amp;rdquo;&lt;/li>
&lt;li>انقر على &amp;ldquo;تغيير الإعدادات غير المتوفرة حالياً&amp;rdquo;&lt;/li>
&lt;li>قم بإلغاء تحديد &amp;ldquo;تشغيل بدء التشغيل السريع (مستحسن)&amp;rdquo;&lt;/li>
&lt;li>انقر على &amp;ldquo;حفظ التغييرات&amp;rdquo;&lt;/li>
&lt;/ol>
&lt;h3 id="مرجع">مرجع
&lt;/h3>&lt;p>&lt;a class="link" href="https://www.fmworld.net/cs/azbyclub/qanavi/jsp/qacontents.jsp?PID=6010-9312" target="_blank" rel="noopener"
>\[Windows 10\] يرجى إخباري بكيفية تعطيل بدء التشغيل السريع.&lt;/a>&lt;/p></description></item><item><title>الحصول على أحدث إصدار من مستودع git فقط</title><link>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/</link><pubDate>Sat, 27 Apr 2024 02:54:12 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post الحصول على أحدث إصدار من مستودع git فقط" />&lt;h1 id="الحصول-على-أحدث-إصدار-من-مستودع-git-فقط">الحصول على أحدث إصدار من مستودع git فقط
&lt;/h1>&lt;p>يمكنك الحصول على أحدث إصدار من المستودع فقط باستخدام الأمر التالي.
هذا مفيد إذا كنت ترغب في جلب المستودع بسرعة لتوفير مساحة القرص.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">git clone --depth 1 &amp;lt;عنوان URL للمستودع&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>كيفية إصلاح خطأ شهادة GitHub Copilot</title><link>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/</link><pubDate>Sun, 21 Apr 2024 18:47:26 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية إصلاح خطأ شهادة GitHub Copilot" />&lt;h1 id="كيفية-إصلاح-رسالة-الخطأ-التالية-في-github-copilot">كيفية إصلاح رسالة الخطأ التالية في GitHub Copilot
&lt;/h1>&lt;p>توقف GitHub Copilot عن العمل في حوالي 19 أبريل 2024. رسالة الخطأ هي كما يلي:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[ERROR] [ghostText] [2024-04-21T04:06:46.900Z] Error on ghost text request: (FetchError) unable to verify the first certificate
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[ERROR] [certificates] [2024-04-21T04:06:46.901Z] Your current Copilot license doesn&amp;#39;t support proxy connections with custom certificates. Please visit https://gh.io/copilot-network-errors to learn more. Original cause: {&amp;#34;type&amp;#34;:&amp;#34;system&amp;#34;,&amp;#34;_name&amp;#34;:&amp;#34;FetchError&amp;#34;,&amp;#34;code&amp;#34;:&amp;#34;UNABLE_TO_VERIFY_LEAF_SIGNATURE&amp;#34;}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="كيفية-الإصلاح">كيفية الإصلاح
&lt;/h2>&lt;p>يبدو أن هذا الخلل من برنامج ESET. في الإعدادات المتقدمة لـ ESET، قم بإيقاف تشغيل &amp;ldquo;Enable SSL/TLS&amp;rdquo;.
&lt;img src="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_1.png"
width="679"
height="468"
srcset="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_1_hu79798d24a79f4dc94eb7f8ca51727896_114738_480x0_resize_box_3.png 480w, 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_1_hu79798d24a79f4dc94eb7f8ca51727896_114738_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="145"
data-flex-basis="348px"
>&lt;/p>
&lt;h2 id="المراجع">المراجع
&lt;/h2>&lt;p>يبدو أن نفس الخطأ يحدث أيضًا في AWS CDK.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://repost.aws/questions/QU2H94hF04SIuEVejK_a1mtQ/aws-cdk-bootstrap-certificate-warning-error" target="_blank" rel="noopener"
>AWS CDK bootstrap certificate warning-error&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>مقدمة إلى Vim</title><link>http://kenji.blog/ar/p/vim-introduction/</link><pubDate>Fri, 19 Apr 2024 22:06:34 +0900</pubDate><guid>http://kenji.blog/ar/p/vim-introduction/</guid><description>&lt;img src="http://kenji.blog/p/vim%E5%85%A5%E9%96%80/img.png" alt="Featured image of post مقدمة إلى Vim" />&lt;p>&lt;img src="http://kenji.blog/p/vim%E5%85%A5%E9%96%80/img_1.png"
width="1920"
height="1080"
srcset="http://kenji.blog/p/vim%E5%85%A5%E9%96%80/img_1_hue190cb5546151f3c9f61d693ae541095_45716_480x0_resize_box_3.png 480w, http://kenji.blog/p/vim%E5%85%A5%E9%96%80/img_1_hue190cb5546151f3c9f61d693ae541095_45716_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="177"
data-flex-basis="426px"
>&lt;/p>
&lt;h1 id="مقدمة-إلى-vim">مقدمة إلى Vim
&lt;/h1>&lt;h2 id="التنزيل-والتثبيت">التنزيل والتثبيت
&lt;/h2>&lt;p>&lt;a class="link" href="https://www.vim.org/download.php" target="_blank" rel="noopener"
>https://www.vim.org/download.php&lt;/a>&lt;/p>
&lt;p>قم بتنزيل الوحدة وتثبيتها لنظام التشغيل الخاص بك من الموقع أعلاه.&lt;/p>
&lt;p>بالنسبة لنظام التشغيل Windows، من الأفضل اختيار &lt;code>gvim_X.X.X_x64_signed.exe&lt;/code>.&lt;/p>
&lt;h2 id="كيفية-التشغيل">كيفية التشغيل
&lt;/h2>&lt;p>في حالة Windows، يجب تسجيل المجلد الذي يحتوي على &lt;code>vim.exe&lt;/code> في مسار متغيرات البيئة Path.&lt;/p>
&lt;p>طريقة التشغيل&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">vim
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>إذا كنت تريد التشغيل بتحديد اسم ملف&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">vim filename.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="كيفية-الخروج">كيفية الخروج
&lt;/h2>&lt;p>للخروج، اكتب &lt;code>:&lt;/code> (نقطتين)، ثم اكتب &lt;code>q&lt;/code>، واضغط على Enter&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">:q
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>إذا قمت بتحديث الملف، فسيتم عرض &lt;code>لم يتم الحفظ منذ آخر تغيير (أضف ! للتجاوز)&lt;/code>.
يمكنك تجاهل التغييرات والخروج بالقوة.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">:q!
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>لحفظ الملف والخروج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">:wq
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>التالي له نفس المعنى.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">:x
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>يمكنك أيضًا الخروج بالضغط على &lt;code>z&lt;/code> مرتين مع الاستمرار في الضغط على &lt;code>Shift&lt;/code>. (نفس :wq)&lt;/p>
&lt;h2 id="الأوضاع">الأوضاع
&lt;/h2>&lt;p>يحتوي Vim على &lt;code>وضع الأوامر&lt;/code> و&lt;code>وضع الإدخال&lt;/code>. عند تشغيل vim، سيكون في &lt;code>وضع الأوامر&lt;/code>، وسيؤدي الضغط على مفتاح &lt;code>i&lt;/code> إلى التبديل إلى &lt;code>وضع الإدخال&lt;/code>.&lt;/p>
&lt;p>في &lt;code>وضع الإدخال&lt;/code>، يمكنك الكتابة كالمعتاد. للتبديل من &lt;code>وضع الإدخال&lt;/code> إلى &lt;code>وضع الأوامر&lt;/code>، اضغط على مفتاح &lt;code>ESC&lt;/code>.&lt;/p>
&lt;p>إن وجود تبديل الأوضاع هذا هو من خصائص Vim.&lt;/p>
&lt;h2 id="حركة-المؤشر-والتمرير">حركة المؤشر والتمرير
&lt;/h2>&lt;p>فيما يلي ملخص لحركة المؤشر والتمرير في &lt;code>وضع الأوامر&lt;/code>.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>المفتاح&lt;/th>
&lt;th>الوصف&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>h&lt;/code> (أو &lt;code>Ctrl&lt;/code>+&lt;code>H&lt;/code>، &lt;code>BackSpace&lt;/code>، &lt;code>←&lt;/code>)&lt;/td>
&lt;td>الانتقال إلى اليسار&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>j&lt;/code> (أو &lt;code>Ctrl&lt;/code>+&lt;code>J&lt;/code>، &lt;code>N&lt;/code>، &lt;code>↓&lt;/code>)&lt;/td>
&lt;td>الانتقال إلى الأسفل&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>k&lt;/code> (أو &lt;code>Ctrl&lt;/code>+&lt;code>P&lt;/code>، &lt;code>↑&lt;/code>)&lt;/td>
&lt;td>الانتقال إلى الأعلى&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>l&lt;/code> (أو &lt;code>Space&lt;/code>، &lt;code>→&lt;/code>)&lt;/td>
&lt;td>الانتقال إلى اليمين&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>+&lt;/code> (أو &lt;code>Enter&lt;/code>)&lt;/td>
&lt;td>الانتقال إلى بداية السطر التالي&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>-&lt;/code>&lt;/td>
&lt;td>الانتقال إلى بداية السطر السابق&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code>+&lt;code>B&lt;/code> (أو &lt;code>PageUp&lt;/code>)&lt;/td>
&lt;td>التمرير لأعلى&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code>+&lt;code>F&lt;/code> (أو &lt;code>PageDown&lt;/code>)&lt;/td>
&lt;td>التمرير لأسفل&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code>+&lt;code>U&lt;/code>&lt;/td>
&lt;td>التمرير لأعلى نصف شاشة&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code>+&lt;code>D&lt;/code>&lt;/td>
&lt;td>التمرير لأسفل نصف شاشة&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code>+&lt;code>Y&lt;/code>&lt;/td>
&lt;td>التمرير لأعلى سطراً واحداً&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code>+&lt;code>E&lt;/code>&lt;/td>
&lt;td>التمرير لأسفل سطراً واحداً&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>z&lt;/code> &lt;code>Enter&lt;/code>&lt;/td>
&lt;td>تمرير سطر المؤشر إلى أعلى الشاشة&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>z&lt;/code> &lt;code>.&lt;/code>&lt;/td>
&lt;td>تمرير سطر المؤشر إلى وسط الشاشة&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>z&lt;/code> &lt;code>-&lt;/code>&lt;/td>
&lt;td>تمرير سطر المؤشر إلى أسفل الشاشة&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>0&lt;/code> (أو &lt;code>|&lt;/code>)&lt;/td>
&lt;td>نقل المؤشر إلى بداية السطر&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>$&lt;/code>&lt;/td>
&lt;td>نقل المؤشر إلى نهاية السطر&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>^&lt;/code> (أو &lt;code>_&lt;/code>)&lt;/td>
&lt;td>نقل المؤشر إلى بداية السطر (باستثناء المسافات وعلامات الجدولة)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>G&lt;/code> (أو &lt;code>:$&lt;/code>)&lt;/td>
&lt;td>نقل المؤشر إلى السطر الأخير&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>:رقم السطر&lt;/code> &lt;code>Enter&lt;/code>&lt;/td>
&lt;td>الانتقال إلى السطر المحدد&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>إذا قمت بإدخال مفاتيح الحركة أعلاه بعد &lt;code>رقم&lt;/code>، فيمكنك الانتقال عدة مرات بمقدار ذلك الرقم.
(على سبيل المثال، كتابة &lt;code>3j&lt;/code> ستنقلك 3 أسطر لأسفل من موضع المؤشر الحالي.)&lt;/p>
&lt;h2 id="أوامر-أخرى">أوامر أخرى
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>المفتاح&lt;/th>
&lt;th>الوصف&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code>+&lt;code>L&lt;/code>&lt;/td>
&lt;td>إعادة رسم الشاشة&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code>+&lt;code>G&lt;/code>&lt;/td>
&lt;td>عرض عدد أسطر الملف بأكمله، وموضع المؤشر، وما إلى ذلك&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table></description></item><item><title>لا يحتاج LoadIcon إلى استدعاء DestroyIcon</title><link>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/</link><pubDate>Fri, 19 Apr 2024 01:55:17 +0900</pubDate><guid>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/</guid><description>&lt;h1 id="الحاجة-إلى-استدعاء-destroyicon">الحاجة إلى استدعاء DestroyIcon
&lt;/h1>&lt;p>يجب استدعاء DestroyIcon في الحالات التالية:&lt;/p>
&lt;ul>
&lt;li>CreateIconFromResourceEx (عند استدعائه بدون علامة LR_SHARED)&lt;/li>
&lt;li>CreateIconIndirect&lt;/li>
&lt;li>CopyIcon&lt;/li>
&lt;/ul>
&lt;p>عند إنشائها بواسطة الوظائف المذكورة أعلاه.&lt;/p>
&lt;ul>
&lt;li>LoadIcon&lt;/li>
&lt;li>LoadImage (عند استخدام علامة LR_SHARED)&lt;/li>
&lt;li>CopyImage (عند استخدام علامة LR_COPYRETURNORG، ويكون المعلمة hImage أيقونة مشتركة)&lt;/li>
&lt;li>CreateIconFromResource&lt;/li>
&lt;li>CreateIconFromResourceEx (عند استخدام علامة LR_SHARED)&lt;/li>
&lt;/ul>
&lt;p>يجب ألا تستدعي الأيقونات التي تم إنشاؤها وتحميلها في الحالات المذكورة أعلاه DestroyIcon.&lt;/p>
&lt;h3 id="مراجع">مراجع
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://learn.microsoft.com/ja-JP/windows/win32/api/winuser/nf-winuser-destroyicon" target="_blank" rel="noopener"
>وظيفة DestroyIcon (winuser.h)&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>حول الذكاء الاصطناعي التوليدي</title><link>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/</link><pubDate>Tue, 16 Apr 2024 02:13:56 +0900</pubDate><guid>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/</guid><description>&lt;img src="http://kenji.blog/p/%E7%94%9F%E6%88%90ai%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/img.png" alt="Featured image of post حول الذكاء الاصطناعي التوليدي" />&lt;h2 id="مقاطع-فيديو-لمحاضرات-حول-الذكاء-الاصطناعي-التوليدي">مقاطع فيديو لمحاضرات حول الذكاء الاصطناعي التوليدي
&lt;/h2>&lt;ul>
&lt;li>&amp;ldquo;الذكاء الاصطناعي التوليدي&amp;rdquo; (1) البروفيسور ماسايوكي ناكاو، جامعة طوكيو 2023.9.8&lt;/li>
&lt;/ul>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/uN0eilnXl4E"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;ul>
&lt;li>&amp;ldquo;الذكاء الاصطناعي التوليدي&amp;rdquo; (2) البروفيسور كونياشي ساكاي، جامعة طوكيو 2023.10.11&lt;/li>
&lt;/ul>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/wz1-DOZoQt0"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;ul>
&lt;li>&amp;ldquo;الذكاء الاصطناعي التوليدي&amp;rdquo; (3) البروفيسور يوتاكا ماتسوو، جامعة طوكيو 2024.3.15&lt;/li>
&lt;/ul>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/U9vhGvFxKu0"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div></description></item><item><title>إنشاء رمز الاستجابة السريعة باستخدام curl</title><link>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/</link><pubDate>Tue, 16 Apr 2024 00:42:27 +0900</pubDate><guid>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/</guid><description>&lt;img src="http://kenji.blog/p/curl%E3%81%A7qr%E3%82%B3%E3%83%BC%E3%83%89%E7%94%9F%E6%88%90/img.png" alt="Featured image of post إنشاء رمز الاستجابة السريعة باستخدام curl" />&lt;h2 id="إنشاء-رمز-الاستجابة-السريعة-باستخدام-curl">إنشاء رمز الاستجابة السريعة باستخدام curl
&lt;/h2>&lt;p>ملاحظة: الطريقة الموضحة تعيد رمز الاستجابة السريعة الذي تم إنشاؤه على جانب الخادم، لذلك قد يتم تسجيل السجلات. يرجى الحذر عند تحويل المعلومات السرية مثل المعلومات الشخصية إلى رمز الاستجابة السريعة.&lt;/p>
&lt;h3 id="الطريقة-1">الطريقة 1
&lt;/h3>&lt;p>هذه هي طريقة إنشاء رمز الاستجابة السريعة في موجه الأوامر.
يرجع &lt;code>qrenco.de&lt;/code> الاستجابة كنص.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">curl qrenco.de/kenji.blog
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ul>
&lt;li>نتيجة الإخراج&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">█████████████████████████████
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">█████████████████████████████
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">████ ▄▄▄▄▄ █ ▄ ▄ █ ▄▄▄▄▄ ████
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">████ █ █ █ ▀▀▀██ █ █ ████
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">████ █▄▄▄█ █▀▀█▀▄█ █▄▄▄█ ████
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">████▄▄▄▄▄▄▄█▄▀ ▀ █▄▄▄▄▄▄▄████
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">████▄ █▀▄ ▄▀█▄▀ ▀██▄▀ ▄████
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">████▀▀▀█ ▄▄ ▄█▄█▀█▀▄██ ▀████
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">████▄▄▄██▄▄█ █▀█ ▄██▀▀█ █████
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">████ ▄▄▄▄▄ █▀█ ▀ ▄▀▄▄▄ ▀████
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">████ █ █ █▄▄ ▄▀▄▀▄ ██ ▀████
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">████ █▄▄▄█ █▀▀█ ▀▄▄▄ ▄▄██████
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">████▄▄▄▄▄▄▄█▄▄███▄▄█▄███▄████
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">█████████████████████████████
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">█████████████████████████████
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h4 id="المراجع">المراجع
&lt;/h4>&lt;ul>
&lt;li>&lt;a class="link" href="https://qrenco.de/" target="_blank" rel="noopener"
>qrenco.de&lt;/a>&lt;/li>
&lt;/ul>
&lt;h3 id="الطريقة-2">الطريقة 2
&lt;/h3>&lt;p>يرجع &lt;code>api.qrserver.com&lt;/code> صورة.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">curl -o qr.png &amp;#34;https://api.qrserver.com/v1/create-qr-code/?size=150x150&amp;amp;data=HelloWorld&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ul>
&lt;li>نتيجة الإخراج
&lt;img src="http://kenji.blog/p/curl%E3%81%A7qr%E3%82%B3%E3%83%BC%E3%83%89%E7%94%9F%E6%88%90/qr.png"
width="250"
height="250"
srcset="http://kenji.blog/p/curl%E3%81%A7qr%E3%82%B3%E3%83%BC%E3%83%89%E7%94%9F%E6%88%90/qr_hud34111b99823e39dfc62f9ba667fd5f9_390_480x0_resize_box_3.png 480w, http://kenji.blog/p/curl%E3%81%A7qr%E3%82%B3%E3%83%BC%E3%83%89%E7%94%9F%E6%88%90/qr_hud34111b99823e39dfc62f9ba667fd5f9_390_1024x0_resize_box_3.png 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/li>
&lt;/ul>
&lt;h4 id="المراجع-1">المراجع
&lt;/h4>&lt;ul>
&lt;li>&lt;a class="link" href="https://goqr.me/api/doc/create-qr-code/" target="_blank" rel="noopener"
>QR Code Generator&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>قائمة اختصارات Microsoft Word</title><link>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/</link><pubDate>Sun, 07 Apr 2024 14:18:51 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post قائمة اختصارات Microsoft Word" />&lt;h2 id="قائمة-الاختصارات">قائمة الاختصارات
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>مفتاح الاختصار&lt;/th>
&lt;th>الوصف&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>B&lt;/code>&lt;/td>
&lt;td>غامق&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>I&lt;/code>&lt;/td>
&lt;td>مائل&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>U&lt;/code>&lt;/td>
&lt;td>تسطير&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>E&lt;/code>&lt;/td>
&lt;td>محاذاة للوسط&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>L&lt;/code>&lt;/td>
&lt;td>محاذاة لليسار&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>R&lt;/code>&lt;/td>
&lt;td>محاذاة لليمين&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>]&lt;/code>&lt;/td>
&lt;td>تكبير حجم الخط&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>[&lt;/code>&lt;/td>
&lt;td>تصغير حجم الخط&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>C&lt;/code>&lt;/td>
&lt;td>نسخ&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>V&lt;/code>&lt;/td>
&lt;td>لصق&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>X&lt;/code>&lt;/td>
&lt;td>قص&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>Z&lt;/code>&lt;/td>
&lt;td>تراجع&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>Y&lt;/code>&lt;/td>
&lt;td>إعادة&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>A&lt;/code>&lt;/td>
&lt;td>تحديد الكل&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Shift&lt;/code> + &lt;code>مفاتيح الأسهم&lt;/code>&lt;/td>
&lt;td>تحديد النطاق&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>F&lt;/code>&lt;/td>
&lt;td>البحث عن نص&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>H&lt;/code>&lt;/td>
&lt;td>استبدال نص&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>P&lt;/code>&lt;/td>
&lt;td>معاينة الطباعة&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>S&lt;/code>&lt;/td>
&lt;td>حفظ المستند&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>F12&lt;/code>&lt;/td>
&lt;td>حفظ باسم&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>Home&lt;/code>&lt;/td>
&lt;td>الانتقال إلى بداية المستند&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>End&lt;/code>&lt;/td>
&lt;td>الانتقال إلى نهاية المستند&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="مرجع">مرجع
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://support.microsoft.com/ja-jp/office/word-%E3%81%AE%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89-%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88-95ef89dd-7142-4b50-afb2-f762f663ceb2" target="_blank" rel="noopener"
>اختصارات لوحة المفاتيح في Word&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>ملحق متصفح تحديث صفحة الويب التلقائي (إضافة Edge)</title><link>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/</link><pubDate>Sat, 06 Apr 2024 15:36:54 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post ملحق متصفح تحديث صفحة الويب التلقائي (إضافة Edge)" />&lt;p>أقدم لكم إضافة متصفح Edge &amp;ldquo;تحديث علامة التبويب التلقائي&amp;rdquo; التي تقوم بتحديث صفحات الويب تلقائيًا.&lt;/p>
&lt;h2 id="تثبيت-تحديث-علامة-التبويب-التلقائي">تثبيت تحديث علامة التبويب التلقائي
&lt;/h2>&lt;p>&lt;a class="link" href="https://microsoftedge.microsoft.com/addons/detail/%E3%82%BF%E3%83%96%E3%81%AE%E8%87%AA%E5%8B%95%E6%9B%B4%E6%96%B0/bicjibdndeejemialpbohjpiimehbapb" target="_blank" rel="noopener"
>تحديث علامة التبويب التلقائي&lt;/a>&lt;/p>
&lt;p>قم بالوصول إلى الموقع أعلاه وانقر على &lt;code>تثبيت&lt;/code>.&lt;/p>
&lt;p>&lt;img src="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_2.png"
width="1273"
height="293"
srcset="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_2_hub66f442627eafd2aa9852e4d513af28c_23623_480x0_resize_box_3.png 480w, 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_2_hub66f442627eafd2aa9852e4d513af28c_23623_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="434"
data-flex-basis="1042px"
>&lt;/p>
&lt;p>انقر على &lt;code>إضافة ملحق&lt;/code>.&lt;/p>
&lt;p>&lt;img src="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_3.png"
width="451"
height="117"
srcset="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_3_hu76927d4adfd21a9bc7e2622ce89ec4f1_7963_480x0_resize_box_3.png 480w, 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_3_hu76927d4adfd21a9bc7e2622ce89ec4f1_7963_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="385"
data-flex-basis="925px"
>&lt;/p>
&lt;h2 id="كيفية-الاستخدام">كيفية الاستخدام
&lt;/h2>&lt;p>بمجرد اكتمال التثبيت، ستتم إضافة رمز إلى أعلى يمين Edge.&lt;/p>
&lt;p>&lt;img src="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_4.png"
width="67"
height="37"
srcset="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_4_hu2426c2158830cf89cd3747985b808d16_425_480x0_resize_box_3.png 480w, 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_4_hu2426c2158830cf89cd3747985b808d16_425_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_4.png"
class="gallery-image"
data-flex-grow="181"
data-flex-basis="434px"
>&lt;/p>
&lt;p>افتح صفحة الويب التي تريد تحديثها تلقائيًا وانقر على الرمز لبدء التحديث التلقائي.&lt;/p>
&lt;p>&lt;img src="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_1.png"
width="565"
height="345"
srcset="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_1_hu36cf9795d5097e9109b83445e7aae628_79361_480x0_resize_box_3.png 480w, 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_1_hu36cf9795d5097e9109b83445e7aae628_79361_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="163"
data-flex-basis="393px"
>&lt;/p>
&lt;p>الجزء المؤطر باللون الأخضر هو الفاصل الزمني للتحديث التلقائي. يرجى تحديد وقت التحديث التلقائي.&lt;/p>
&lt;p>لإيقاف التحديث التلقائي، انقر على الرمز ثم انقر على &lt;code>Stop reloading this tab&lt;/code>.&lt;/p>
&lt;p>&lt;img src="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_5.png"
width="565"
height="395"
srcset="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_5_hud3ff5692d970d8f2ac1fd8633c8cc9ef_79989_480x0_resize_box_3.png 480w, 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_5_hud3ff5692d970d8f2ac1fd8633c8cc9ef_79989_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_5.png"
class="gallery-image"
data-flex-grow="143"
data-flex-basis="343px"
>&lt;/p></description></item><item><title>قائمة اختصارات Visual Studio</title><link>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/</link><pubDate>Sat, 06 Apr 2024 11:27:37 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post قائمة اختصارات Visual Studio" />&lt;h1 id="قائمة-اختصارات-visual-studio">قائمة اختصارات Visual Studio
&lt;/h1>&lt;p>لقد قمت بتجميع قائمة باختصارات Visual Studio التي أستخدمها بشكل متكرر.
من خلال تعلم عمليات لوحة المفاتيح لاختصارات Visual Studio، يمكنك أداء أعمال التطوير بكفاءة. يرجى الاستفادة منها.&lt;/p>
&lt;p>※ تم التأكد في Visual Studio 2022.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>مفتاح الاختصار&lt;/th>
&lt;th>الوصف&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>F1&lt;/code>&lt;/td>
&lt;td>عرض التعليمات للكلمة المحددة&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>F2&lt;/code>&lt;/td>
&lt;td>الانتقال إلى الإشارة المرجعية&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>F2&lt;/code>&lt;/td>
&lt;td>تسجيل إشارة مرجعية&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>Shift&lt;/code> + &lt;code>F2&lt;/code>&lt;/td>
&lt;td>حذف جميع الإشارات المرجعية&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>F5&lt;/code>&lt;/td>
&lt;td>بناء وتشغيل (تشغيل التصحيح)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>F5&lt;/code>&lt;/td>
&lt;td>بناء وتشغيل (بدون تصحيح)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>F7&lt;/code>&lt;/td>
&lt;td>بناء&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>F9&lt;/code>&lt;/td>
&lt;td>إضافة نقطة توقف إلى سطر المؤشر&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>F9&lt;/code>&lt;/td>
&lt;td>تعطيل نقطة التوقف في سطر المؤشر&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Shift&lt;/code> + &lt;code>Ctrl&lt;/code> + &lt;code>F9&lt;/code>&lt;/td>
&lt;td>حذف جميع نقاط التوقف&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>F10&lt;/code>&lt;/td>
&lt;td>تخطي&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>F11&lt;/code>&lt;/td>
&lt;td>الدخول&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>F12&lt;/code>&lt;/td>
&lt;td>الانتقال إلى التعريف&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>D&lt;/code>&lt;/td>
&lt;td>تكرار سطر المؤشر&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>X&lt;/code>&lt;/td>
&lt;td>قص السطر إذا لم يكن هناك تحديد&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>Shift&lt;/code> + &lt;code>]&lt;/code>&lt;/td>
&lt;td>تحديد حتى القوس المطابق لجزء المؤشر&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Alt&lt;/code> + &lt;code>مفاتيح الأسهم لأعلى/لأسفل&lt;/code>&lt;/td>
&lt;td>تحريك سطر المؤشر لأعلى/لأسفل&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Alt&lt;/code> + &lt;code>Shift&lt;/code> + &lt;code>مفاتيح الأسهم&lt;/code>&lt;/td>
&lt;td>مؤشرات متعددة/تحديد مربع&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>Tab&lt;/code>&lt;/td>
&lt;td>تبديل عرض شفرة المصدر/النافذة&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>Shift&lt;/code> + &lt;code>V&lt;/code>&lt;/td>
&lt;td>عرض محفوظات الحافظة&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>K&lt;/code> ثم &lt;code>Ctrl&lt;/code> + &lt;code>C&lt;/code>&lt;/td>
&lt;td>تحويل سطر المؤشر إلى تعليق&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>K&lt;/code> ثم &lt;code>Ctrl&lt;/code> + &lt;code>U&lt;/code>&lt;/td>
&lt;td>إلغاء تعليق سطر المؤشر&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>G&lt;/code>&lt;/td>
&lt;td>الانتقال إلى رقم سطر محدد&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>F&lt;/code>&lt;/td>
&lt;td>بحث&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>Shift&lt;/code> + &lt;code>F&lt;/code>&lt;/td>
&lt;td>بحث عالمي&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>H&lt;/code>&lt;/td>
&lt;td>استبدال&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>Shift&lt;/code> + &lt;code>F&lt;/code>&lt;/td>
&lt;td>استبدال عالمي&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>Tab&lt;/code>&lt;/td>
&lt;td>تبديل عرض شفرة المصدر/النافذة&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>Space&lt;/code>&lt;/td>
&lt;td>إكمال الكلمات&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>Alt&lt;/code> + &lt;code>L&lt;/code>&lt;/td>
&lt;td>فتح نافذة مستكشف الحلول&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>Shift&lt;/code> + &lt;code>E&lt;/code>&lt;/td>
&lt;td>فتح نافذة عرض الموارد&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>Ctrl&lt;/code> + &lt;code>0&lt;/code> ثم &lt;code>Ctrl&lt;/code> + &lt;code>G&lt;/code>&lt;/td>
&lt;td>فتح نافذة التزام Git&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="المراجع">المراجع
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://learn.microsoft.com/ja-jp/visualstudio/ide/default-keyboard-shortcuts-in-visual-studio?view=vs-2022&amp;amp;utm_source=vshelp&amp;amp;wt.mc_id=visualstudio_inproduct_shortcuts_csaapp" target="_blank" rel="noopener"
>اختصارات لوحة المفاتيح في Visual Studio&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="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_1.png"
width="1094"
height="823"
srcset="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_1_hu4eaca85d6437d1dd6b23efd21afacc82_582969_480x0_resize_box_3.png 480w, 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_1_hu4eaca85d6437d1dd6b23efd21afacc82_582969_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="132"
data-flex-basis="319px"
>&lt;/p></description></item><item><title>إضافة Hidemaru Editor grep إلى قائمة النقر بزر الماوس الأيمن في مستكشف الملفات</title><link>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/</link><pubDate>Wed, 03 Apr 2024 00:00:46 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post إضافة Hidemaru Editor grep إلى قائمة النقر بزر الماوس الأيمن في مستكشف الملفات" />&lt;p>نقدم لكم طريقة لإضافة grep الخاص بـ Hidemaru Editor إلى قائمة النقر بزر الماوس الأيمن في مستكشف الملفات في Windows 10/11.&lt;/p>
&lt;p>&lt;strong>※ يرجى ملاحظة أن الخطوات التالية تتضمن تعديل السجل (الريجستري)، لذا يرجى القيام بذلك على مسؤوليتك الخاصة.&lt;/strong>&lt;/p>
&lt;h2 id="الخطوات">الخطوات
&lt;/h2>&lt;ol>
&lt;li>افتح الرابط التالي واحفظ الملف في أي مجلد تريده.&lt;/li>
&lt;/ol>
&lt;p>&lt;a class="link" href="%e7%a7%80%e4%b8%b8%e3%83%ac%e3%82%b8%e3%82%b9%e3%83%88%e3%83%aa%e7%99%bb%e9%8c%b2.reg" >تسجيل_ريجستري_هيديمارو.reg&lt;/a>&lt;/p>
&lt;ol start="2">
&lt;li>انقر نقراً مزدوجاً على ملف &lt;code>تسجيل_ريجستري_هيديمارو.reg&lt;/code> لإضافته إلى السجل.&lt;/li>
&lt;/ol>
&lt;h2 id="المراجع">المراجع
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://aimek-developer.blogspot.com/2019/02/grep.html" target="_blank" rel="noopener"
>تنفيذ Hidemaru grep من قائمة النقر بزر الماوس الأيمن للمجلد&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>ما هي مفارقة عيد الميلاد؟</title><link>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/</link><pubDate>Tue, 02 Apr 2024 01:20:50 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post ما هي مفارقة عيد الميلاد؟" />&lt;h2 id="هل-تعرف-مفارقة-عيد-الميلاد">هل تعرف مفارقة عيد الميلاد؟
&lt;/h2>&lt;p>سأتحدث عن قصة غريبة قليلاً.
&amp;ldquo;احتمالية وجود أشخاص لهم نفس يوم الميلاد&amp;rdquo;، كم تعتقد أنه يجب أن يجتمع من الأشخاص لتصبح عالية؟&lt;/p>
&lt;p>على سبيل المثال، السنة فيها 365 يومًا، لذا إذا قيل لك &amp;ldquo;إذا اجتمع 23 شخصًا، فإن احتمالية أن يتطابق عيد ميلاد شخصين هي 50% أو أكثر&amp;rdquo;&amp;hellip; يبدو الأمر نوعًا ما مخالفًا للبديهة، أليس كذلك؟&lt;/p>
&lt;p>ولكن هذا &lt;strong>بالفعل 50% أو أكثر.&lt;/strong>&lt;/p>
&lt;hr>
&lt;h2 id="لماذا-يحدث-ذلك">لماذا يحدث ذلك؟
&lt;/h2>&lt;p>هذه الظاهرة تسمى &amp;ldquo;مفارقة عيد الميلاد&amp;rdquo;.
الاسم هو &amp;ldquo;مفارقة&amp;rdquo;، ولكن لها سبب رياضي سليم.&lt;/p>
&lt;p>إذا كان عدد الأشخاص &amp;ldquo;n&amp;rdquo;، فإن &lt;strong>احتمالية ألا يتطابق عيد ميلاد أحد&lt;/strong> يمكن حسابها بالمعادلة التالية:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">P(لا يتطابق أحد) = 365/365 × 364/365 × 363/365 × ... × (365 - n + 1)/365
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>بطرح ذلك من 1، يظهر &amp;ldquo;احتمالية التطابق مع شخص ما&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="بالنظر-إلى-النتائج">بالنظر إلى النتائج&amp;hellip;
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>عدد الأشخاص&lt;/th>
&lt;th>احتمالية وجود أشخاص لهم نفس يوم الميلاد&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>10 أشخاص&lt;/td>
&lt;td>حوالي 11.7%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>20 شخصًا&lt;/td>
&lt;td>حوالي 41.1%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>23 شخصًا&lt;/td>
&lt;td>&lt;strong>حوالي 50.7% (هنا التركيز!)&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>30 شخصًا&lt;/td>
&lt;td>حوالي 70.6%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>70 شخصًا&lt;/td>
&lt;td>&lt;strong>مذهل حوالي 99.9%!&lt;/strong>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>بمعنى آخر، بوجود &lt;strong>23 شخصًا&lt;/strong> فقط، هناك احتمال أكثر من النصف بأن يتطابق عيد ميلاد شخصين.
يبدو أنه يمكن تطبيقه في الفصول الدراسية في المدارس أو اجتماعات العمل أيضًا.&lt;/p>
&lt;hr>
&lt;h2 id="الخلاصة-التفاوت-بين-الحدس-والرياضيات-مثير-للاهتمام">الخلاصة: التفاوت بين الحدس والرياضيات مثير للاهتمام
&lt;/h2>&lt;p>&amp;ldquo;مفارقة عيد الميلاد&amp;rdquo; هي مثال مثير للاهتمام حيث يختلف حدسنا عن الاحتمالات الرياضية الفعلية.
إذا كنت تعرف هذه الأشياء، فقد تتمكن من إثارة الحماس في دردشة صغيرة أو مسابقة!&lt;/p>
&lt;hr>
&lt;h2 id="روابط-مفيدة">روابط مفيدة
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://ja.wikipedia.org/wiki/%E8%AA%95%E7%94%9F%E6%97%A5%E3%81%AE%E3%83%91%E3%83%A9%E3%83%89%E3%83%83%E3%82%AF%E3%82%B9" target="_blank" rel="noopener"
>مفارقة عيد الميلاد (ويكيبيديا)&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كيفية استخدام Snipping Tool</title><link>http://kenji.blog/ar/p/how-to-use-snipping-tool/</link><pubDate>Mon, 01 Apr 2024 23:19:45 +0900</pubDate><guid>http://kenji.blog/ar/p/how-to-use-snipping-tool/</guid><description>&lt;img src="http://kenji.blog/p/snipping-tool%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/img.png" alt="Featured image of post كيفية استخدام Snipping Tool" />&lt;h2 id="ما-هي-أداة-القطع-snipping-tool">ما هي أداة القطع Snipping Tool
&lt;/h2>&lt;p>أداة القطع (Snipping Tool) هي أداة لالتقاط الشاشة مدمجة في نظام ويندوز. يمكنك من خلالها قص وحفظ جزء من الشاشة، أو التقاط الشاشة بأكملها، أو تسجيلها.&lt;/p>
&lt;h2 id="كيفية-تشغيل-أداة-القطع">كيفية تشغيل أداة القطع
&lt;/h2>&lt;p>يمكنك تشغيلها بشكل رئيسي باستخدام الطرق الثلاث التالية:&lt;/p>
&lt;ul>
&lt;li>اضغط على مفتاح &lt;code>Win&lt;/code>، واكتب &lt;code>Snipping Tool&lt;/code>، ثم اضغط على مفتاح &lt;code>Enter&lt;/code>.&lt;/li>
&lt;li>اضغط على مفتاح &lt;code>Win&lt;/code> + &lt;code>Shift&lt;/code> + &lt;code>S&lt;/code>.&lt;/li>
&lt;li>اضغط على مفتاح &lt;code>Win&lt;/code> + &lt;code>R&lt;/code>، واكتب &lt;code>snippingtool&lt;/code>، ثم اضغط على مفتاح &lt;code>Enter&lt;/code>.&lt;/li>
&lt;/ul>
&lt;h2 id="كيفية-استخدام-أداة-القطع">كيفية استخدام أداة القطع
&lt;/h2>&lt;p>&lt;img src="http://kenji.blog/p/snipping-tool%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/img_1.png"
width="502"
height="233"
srcset="http://kenji.blog/p/snipping-tool%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/img_1_hu247f0b306a45625cfd47c1bc5c2f693d_7300_480x0_resize_box_3.png 480w, http://kenji.blog/p/snipping-tool%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/img_1_hu247f0b306a45625cfd47c1bc5c2f693d_7300_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="215"
data-flex-basis="517px"
>&lt;/p>
&lt;h3 id="كيفية-حفظ-صورة-الملتقطة-كالتالي">كيفية حفظ صورة الملتقطة كالتالي:
&lt;/h3>&lt;ol>
&lt;li>حدد علامة &lt;code>الكاميرا&lt;/code>.&lt;/li>
&lt;li>انقر فوق زر &lt;code>جديد&lt;/code>.&lt;/li>
&lt;li>حدد المنطقة التي تريد التقاطها.&lt;/li>
&lt;li>انقر فوق زر &lt;code>حفظ باسم&lt;/code>.&lt;/li>
&lt;li>أدخل وجهة الحفظ واسم الملف، ثم احفظ.&lt;/li>
&lt;/ol>
&lt;h3 id="كيفية-تسجيل-فيديو-كالتالي">كيفية تسجيل فيديو كالتالي:
&lt;/h3>&lt;ol>
&lt;li>حدد علامة &lt;code>الفيديو&lt;/code>.&lt;/li>
&lt;li>انقر فوق زر &lt;code>جديد&lt;/code>.&lt;/li>
&lt;li>حدد المنطقة التي تريد التقاطها.&lt;/li>
&lt;li>انقر فوق زر &lt;code>ابدأ&lt;/code>.&lt;/li>
&lt;li>قم بتسجيل الشاشة.&lt;/li>
&lt;li>انقر فوق زر &lt;code>إيقاف&lt;/code>.&lt;/li>
&lt;li>انقر فوق زر &lt;code>حفظ باسم&lt;/code>.&lt;/li>
&lt;li>أدخل وجهة الحفظ واسم الملف، ثم احفظ.&lt;/li>
&lt;/ol>
&lt;h2 id="مراجع">مراجع
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://support.microsoft.com/ar-sa/windows/use-snipping-tool-to-capture-screenshots-00246869-1843-655f-f220-97299b865f6b" target="_blank" rel="noopener"
>استخدام أداة القطع لالتقاط لقطات الشاشة&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كيفية إنشاء اختصار لقفل الكمبيوتر</title><link>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/</link><pubDate>Mon, 01 Apr 2024 01:37:49 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية إنشاء اختصار لقفل الكمبيوتر" />&lt;p>إليك كيفية إنشاء اختصار لقفل الكمبيوتر.&lt;/p>
&lt;p>يعد ذلك مفيدًا لأنه يمكنك قفل الكمبيوتر عن طريق النقر المزدوج فوق الاختصار الذي تم إنشاؤه على سطح المكتب.&lt;/p>
&lt;h2 id="طريقة-الإنشاء">طريقة الإنشاء
&lt;/h2>&lt;h4 id="1-انقر-بزر-الماوس-الأيمن-على-سطح-المكتب-وحدد-جديد--اختصار">1. انقر بزر الماوس الأيمن على سطح المكتب وحدد &lt;code>جديد&lt;/code> &amp;gt; &lt;code>اختصار&lt;/code>
&lt;/h4>&lt;p>&lt;img src="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_2.png"
width="497"
height="310"
srcset="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_2_hu68fc7215f5b611a42509ec28239f03ed_82746_480x0_resize_box_3.png 480w, 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_2_hu68fc7215f5b611a42509ec28239f03ed_82746_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="160"
data-flex-basis="384px"
>&lt;/p>
&lt;h4 id="2-ستظهر-شاشة-إنشاء-الاختصار-أدخل-rundll32exe-user32dlllockworkstation-وانقر-على-التالي">2. ستظهر شاشة إنشاء الاختصار، أدخل &lt;code>rundll32.exe user32.dll,LockWorkStation&lt;/code> وانقر على &lt;code>التالي&lt;/code>
&lt;/h4>&lt;p>&lt;img src="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_1.png"
width="614"
height="454"
srcset="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_1_hu0d4835ef465704aabd38109d760b63eb_14728_480x0_resize_box_3.png 480w, 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_1_hu0d4835ef465704aabd38109d760b63eb_14728_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="135"
data-flex-basis="324px"
>&lt;/p>
&lt;h4 id="3-أدخل-اسم-الاختصار-قفل-الكمبيوتر-وانقر-على-إنهاء">3. أدخل اسم الاختصار &lt;code>قفل الكمبيوتر&lt;/code> وانقر على &lt;code>إنهاء&lt;/code>
&lt;/h4>&lt;p>&lt;img src="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_3.png"
width="614"
height="454"
srcset="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_3_hu44e1aec8e86c339d674a378757ec4650_12577_480x0_resize_box_3.png 480w, 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_3_hu44e1aec8e86c339d674a378757ec4650_12577_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="135"
data-flex-basis="324px"
>&lt;/p>
&lt;h4 id="4-تغيير-أيقونة-الاختصار-الذي-تم-إنشاؤه">4. تغيير أيقونة الاختصار الذي تم إنشاؤه
&lt;/h4>&lt;p>انقر بزر الماوس الأيمن على الاختصار الذي تم إنشاؤه وحدد &lt;code>خصائص&lt;/code>&lt;/p>
&lt;p>&lt;img src="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_4.png"
width="368"
height="376"
srcset="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_4_hufea304b74b77df48eaf897c362c80395_24161_480x0_resize_box_3.png 480w, 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_4_hufea304b74b77df48eaf897c362c80395_24161_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_4.png"
class="gallery-image"
data-flex-grow="97"
data-flex-basis="234px"
>&lt;/p>
&lt;p>انقر على &lt;code>تغيير الأيقونة&lt;/code>&lt;/p>
&lt;p>&lt;img src="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_6.png"
width="421"
height="580"
srcset="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_6_hua3af668a56a5a3efe3d9cfc5e6b2ac17_19464_480x0_resize_box_3.png 480w, 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_6_hua3af668a56a5a3efe3d9cfc5e6b2ac17_19464_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_6.png"
class="gallery-image"
data-flex-grow="72"
data-flex-basis="174px"
>&lt;/p>
&lt;p>حدد الأيقونة المربعة الصفراء وانقر على &lt;code>موافق&lt;/code> ، ثم انقر على &lt;code>موافق&lt;/code> مرة أخرى لإغلاق الخصائص&lt;/p>
&lt;p>&lt;img src="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_5.png"
width="340"
height="420"
srcset="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_5_hud49e429cd2963712e519c6e541751db5_41795_480x0_resize_box_3.png 480w, 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_5_hud49e429cd2963712e519c6e541751db5_41795_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_5.png"
class="gallery-image"
data-flex-grow="80"
data-flex-basis="194px"
>&lt;/p>
&lt;p>هذا كل شيء.&lt;/p>
&lt;p>&lt;img src="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_7.png"
width="79"
height="95"
srcset="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_7_hub726554b64c896d5f41210824d4f60e8_7903_480x0_resize_box_3.png 480w, 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_7_hub726554b64c896d5f41210824d4f60e8_7903_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_7.png"
class="gallery-image"
data-flex-grow="83"
data-flex-basis="199px"
>&lt;/p>
&lt;p>النقر المزدوج على الاختصار الذي تم إنشاؤه سيؤدي إلى قفل الكمبيوتر.&lt;/p>
&lt;p>يمكنك أيضًا قفل الكمبيوتر بالضغط على &lt;code>مفتاح Win&lt;/code> + &lt;code>مفتاح L&lt;/code>.&lt;/p>
&lt;p>※ ملاحظة: لن يتم عرض مربع حوار تأكيد قفل الكمبيوتر.&lt;/p></description></item><item><title>مشكلة مونتي هول</title><link>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/</link><pubDate>Sun, 31 Mar 2024 23:41:51 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post مشكلة مونتي هول" />&lt;h2 id="ما-هي-مشكلة-مونتي-هول">ما هي مشكلة مونتي هول
&lt;/h2>&lt;p>مشكلة مونتي هول هي مشكلة مأخوذة من إحدى الألعاب التي كانت تقام في البرنامج التلفزيوني الأمريكي &amp;ldquo;Let&amp;rsquo;s Make a Deal&amp;rdquo;، وهي كالتالي.&lt;/p>
&lt;p>الشروط المسبقة: يوجد جائزة في أحد الأبواب الثلاثة، بينما البابان الآخران فارغان.&lt;/p>
&lt;ol>
&lt;li>يختار المشارك باباً واحداً من الأبواب الثلاثة.&lt;/li>
&lt;li>يقوم المقدم، من بين البابين الآخرين غير الذي اختاره المشارك، بفتح باب واحد فارغ.&lt;/li>
&lt;li>يُسأل المشارك عما إذا كان يريد تغيير الباب الذي اختاره.&lt;/li>
&lt;/ol>
&lt;p>في هذا الوقت، المشكلة هي التفكير فيما إذا كان من الأفضل للمشارك تغيير الباب أم لا.&lt;/p>
&lt;h2 id="الحل">الحل
&lt;/h2>&lt;p>حل مشكلة مونتي هول هو كالتالي.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>إذا لم يقم المشارك بتغيير الباب الذي اختاره في البداية&lt;/p>
&lt;ul>
&lt;li>احتمال الفوز: 1/3&lt;/li>
&lt;li>احتمال الخسارة: 2/3&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>بعد أن يفتح المقدم الباب الفارغ&lt;/p>
&lt;ul>
&lt;li>إذا لم يغير، احتمال الفوز: 1/3 (لا يتغير عن احتمال الفوز في النقطة 1)&lt;/li>
&lt;li>إذا غير، احتمال الفوز: 2/3 (احتمال عدم الفوز في النقطة 1)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;p>لذلك، من الأفضل للمشارك تغيير الباب لزيادة فرصة الفوز.&lt;/p>
&lt;h2 id="مرجع">مرجع
&lt;/h2>&lt;ul>
&lt;li>ويكيبيديا &lt;a class="link" href="https://en.wikipedia.org/wiki/Monty_Hall_problem" target="_blank" rel="noopener"
>Monty Hall problem&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كيفية تثبيت محرر النصوص micro على نظام Windows</title><link>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/</link><pubDate>Sun, 31 Mar 2024 21:50:39 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية تثبيت محرر النصوص micro على نظام Windows" />&lt;h2 id="تنزيل-micro">تنزيل micro
&lt;/h2>&lt;p>&lt;a class="link" href="https://github.com/zyedidia/micro/releases" target="_blank" rel="noopener"
>https://github.com/zyedidia/micro/releases&lt;/a>&lt;/p>
&lt;p>افتح الرابط أعلاه، وانقر على &lt;code>Show all XX assets&lt;/code> (حيث XX هو رقم)، وقم بتنزيل &lt;code>micro-X.X.XX-win64.zip&lt;/code> (حيث X هو رقم).
قم بفك ضغط ملف zip وضع جميع الملفات في أي مجلد تريده.&lt;/p>
&lt;h2 id="تعيين-متغيرات-البيئة">تعيين متغيرات البيئة
&lt;/h2>&lt;p>لاستخدام &lt;code>micro.exe&lt;/code> من موجه الأوامر، ستحتاج إلى تعيين متغيرات البيئة.&lt;/p>
&lt;ol>
&lt;li>اضغط على مفتاح &lt;code>Win&lt;/code> + &lt;code>R&lt;/code> ، واكتب &lt;code>sysdm.cpl&lt;/code> واضغط على &lt;code>Enter&lt;/code>.&lt;/li>
&lt;li>انقر فوق &lt;code>خصائص النظام&lt;/code> في &lt;code>خصائص النظام&lt;/code>.&lt;/li>
&lt;li>انقر على &lt;code>متغيرات البيئة&lt;/code>.&lt;/li>
&lt;li>حدد &lt;code>Path&lt;/code> ضمن &lt;code>متغيرات النظام&lt;/code> وانقر على &lt;code>تحرير&lt;/code>.&lt;/li>
&lt;li>انقر على &lt;code>جديد&lt;/code> وأضف مسار المجلد الذي يحتوي على &lt;code>micro.exe&lt;/code>.&lt;/li>
&lt;li>انقر على &lt;code>موافق&lt;/code> لإغلاق جميع مربعات الحوار.&lt;/li>
&lt;li>أعد تشغيل موجه الأوامر وتحقق مما إذا كان يمكنك تشغيله عن طريق كتابة &lt;code>nano&lt;/code>.&lt;/li>
&lt;/ol>
&lt;h2 id="كيفية-استخدام-micro">كيفية استخدام micro
&lt;/h2>&lt;p>عند كتابة &lt;code>micro&lt;/code> في موجه الأوامر وتشغيله، ستظهر لك شاشة مشابهة لهذه:
&lt;img src="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_3.png"
width="962"
height="512"
srcset="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_3_hucac22a4d580735ddd83b1fd5173c3197_6852_480x0_resize_box_3.png 480w, 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_3_hucac22a4d580735ddd83b1fd5173c3197_6852_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="187"
data-flex-basis="450px"
>&lt;/p>
&lt;p>تتضمن طرق التشغيل الرئيسية واختصارات لوحة المفاتيح ما يلي:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>اختصار لوحة المفاتيح&lt;/th>
&lt;th>العملية&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Ctrl+Q&lt;/td>
&lt;td>إغلاق الملف&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Ctrl+S&lt;/td>
&lt;td>حفظ الملف&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Ctrl+O&lt;/td>
&lt;td>فتح ملف&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Ctrl+A&lt;/td>
&lt;td>تحديد الكل&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Ctrl+X&lt;/td>
&lt;td>قص التحديد&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Ctrl+C&lt;/td>
&lt;td>نسخ التحديد&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Ctrl+V&lt;/td>
&lt;td>لصق&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Ctrl+Z&lt;/td>
&lt;td>تراجع&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Ctrl+Y&lt;/td>
&lt;td>إعادة&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Ctrl+E&lt;/td>
&lt;td>تنفيذ أمر المحرر&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="مراجع">مراجع
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://micro-editor.github.io/" target="_blank" rel="noopener"
>micro&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كيفية تثبيت محرر النصوص سطر الأوامر nano على نظام التشغيل Windows</title><link>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/</link><pubDate>Sun, 31 Mar 2024 18:09:32 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية تثبيت محرر النصوص سطر الأوامر nano على نظام التشغيل Windows" />&lt;h2 id="تنزيل-nanoexe">تنزيل nano.exe
&lt;/h2>&lt;p>&lt;a class="link" href="https://sourceforge.net/projects/nano-for-windows/" target="_blank" rel="noopener"
>https://sourceforge.net/projects/nano-for-windows/&lt;/a>&lt;/p>
&lt;p>افتح الرابط أعلاه وانقر على &lt;code>Download&lt;/code> لتنزيل &lt;code>GNU-Nano_Win32(static).zip&lt;/code>.
قم بفك ضغط ملف zip وضع &lt;code>nano.exe&lt;/code> في أي مجلد تريده.&lt;/p>
&lt;ul>
&lt;li>لا يدعم الإدخال باللغة اليابانية. (اعتبارًا من 2024/03/31)&lt;/li>
&lt;/ul>
&lt;h2 id="تعيين-متغيرات-البيئة">تعيين متغيرات البيئة
&lt;/h2>&lt;p>لاستخدام &lt;code>nano.exe&lt;/code> من موجه الأوامر، يجب عليك تعيين متغيرات البيئة.&lt;/p>
&lt;ol>
&lt;li>اضغط على مفتاح &lt;code>Win&lt;/code> + مفتاح &lt;code>R&lt;/code>، واكتب &lt;code>sysdm.cpl&lt;/code> ثم اضغط على مفتاح &lt;code>Enter&lt;/code>.&lt;/li>
&lt;li>انقر على &lt;code>خصائص النظام&lt;/code> (System Properties).&lt;/li>
&lt;li>انقر على &lt;code>متغيرات البيئة&lt;/code> (Environment Variables).&lt;/li>
&lt;li>حدد &lt;code>Path&lt;/code> تحت &lt;code>متغيرات النظام&lt;/code> وانقر على &lt;code>تعديل&lt;/code> (Edit).&lt;/li>
&lt;li>انقر على &lt;code>جديد&lt;/code> (New) وأضف مسار &lt;code>nano.exe&lt;/code>.&lt;/li>
&lt;li>انقر على &lt;code>OK&lt;/code> لإغلاق جميع مربعات الحوار.&lt;/li>
&lt;li>أعد تشغيل موجه الأوامر واكتب &lt;code>nano&lt;/code> للتحقق مما إذا كان يعمل.&lt;/li>
&lt;/ol>
&lt;h2 id="كيفية-استخدام-nano">كيفية استخدام nano
&lt;/h2>&lt;p>عند كتابة &lt;code>nano&lt;/code> وتشغيله، ستظهر الشاشة التالية.&lt;/p>
&lt;p>&lt;img src="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_2.png"
width="1082"
height="632"
srcset="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_2_hucb9efcdf08d2eda99abffd0a9502a2c3_16316_480x0_resize_box_3.png 480w, 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_2_hucb9efcdf08d2eda99abffd0a9502a2c3_16316_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="171"
data-flex-basis="410px"
>&lt;/p>
&lt;p>يتم عرض تفسيرات الاختصارات أسفل الشاشة.&lt;/p>
&lt;p>معاني الرموز هي كما يلي.&lt;/p>
&lt;ul>
&lt;li>&lt;code>^&lt;/code> يمثل مفتاح &lt;code>Ctrl&lt;/code>.&lt;/li>
&lt;li>&lt;code>M-&lt;/code> يمثل مفتاح &lt;code>Alt&lt;/code>.&lt;/li>
&lt;/ul>
&lt;p>للحفظ والإغلاق، اضغط على &lt;code>Ctrl&lt;/code> + &lt;code>S&lt;/code> متبوعًا بـ &lt;code>Ctrl&lt;/code> + &lt;code>X&lt;/code>.&lt;/p>
&lt;h2 id="المراجع">المراجع
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://www.nano-editor.org/" target="_blank" rel="noopener"
>GNU nano&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كيفية إصلاح خطأ 'Temporary failure resolving...' في WSL</title><link>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/</link><pubDate>Sun, 31 Mar 2024 16:57:33 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية إصلاح خطأ 'Temporary failure resolving...' في WSL" />&lt;h1 id="كيفية-إصلاح-خطأ-temporary-failure-resolving-في-wsl">كيفية إصلاح خطأ &amp;lsquo;Temporary failure resolving&amp;hellip;&amp;rsquo; في WSL
&lt;/h1>&lt;p>&lt;code>kenji@MyComputer:~$ sudo apt update [sudo] password for kenji: Err:1 http://archive.ubuntu.com/ubuntu focal InRelease Temporary failure resolving 'archive.ubuntu.com'&lt;/code>&lt;/p>
&lt;p>عند ظهور الخطأ أعلاه في WSL، قد يكون إعداد خادم DNS غير صحيح.
في بيئتي، تم حل المشكلة باتباع الخطوات التالية:&lt;/p>
&lt;ol>
&lt;li>قم بتشغيل WSL.&lt;/li>
&lt;li>قم بتنفيذ &lt;code>sudo nano /etc/resolv.conf&lt;/code>.&lt;/li>
&lt;li>قم بتغيير سطر &lt;code>nameserver&lt;/code> إلى ما يلي:
&lt;code>nameserver 8.8.8.8&lt;/code>&lt;/li>
&lt;li>احفظ باستخدام &lt;code>Ctrl&lt;/code> + &lt;code>S&lt;/code> واخرج باستخدام &lt;code>Ctrl&lt;/code> + &lt;code>X&lt;/code>.&lt;/li>
&lt;li>قم بتنفيذ &lt;code>sudo apt update&lt;/code>.&lt;/li>
&lt;li>إذا لم يظهر الخطأ، فقد تم الحل.&lt;/li>
&lt;/ol>
&lt;h2 id="إذا-لم-تحل-الخطوات-أعلاه-المشكلة">إذا لم تحل الخطوات أعلاه المشكلة
&lt;/h2>&lt;p>يبدو أن الخطوات أعلاه قد لا تحل المشكلة في بعض الحالات. يرجى الرجوع إلى المقال التالي.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://qiita.com/ryosukeYamazaki/items/c04ec3ff78aac6eb8d26" target="_blank" rel="noopener"
>كيفية حل &amp;lsquo;Temporary failure resolving&amp;hellip;&amp;rsquo; عند تحديث apt في WSL&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كيفية إنهاء وإعادة تشغيل مستكشف الملفات</title><link>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/</link><pubDate>Sat, 30 Mar 2024 15:40:24 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية إنهاء وإعادة تشغيل مستكشف الملفات" />&lt;h2 id="كيفية-الإنهاء-من-خلال-النقر-بزر-الماوس-الأيمن-على-شريط-المهام">كيفية الإنهاء من خلال النقر بزر الماوس الأيمن على شريط المهام
&lt;/h2>&lt;p>هذه الطريقة لنظام التشغيل Windows 10. يبدو أن القائمة لا تظهر في Windows 11.
إذا قمت بالنقر بزر الماوس الأيمن على شريط المهام مع الاستمرار في الضغط على مفتاحي &lt;code>Shift&lt;/code> و &lt;code>Ctrl&lt;/code>، فسيظهر &lt;code>إنهاء مستكشف الملفات&lt;/code> في القائمة.&lt;/p>
&lt;p>&lt;img src="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.png"
width="492"
height="849"
srcset="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_hu25fa4fd28e26e648c7df7b34d330fb4a_26017_480x0_resize_box_3.png 480w, 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_hu25fa4fd28e26e648c7df7b34d330fb4a_26017_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="57"
data-flex-basis="139px"
>&lt;/p>
&lt;h2 id="كيفية-الإنهاء-من-إدارة-المهام">كيفية الإنهاء من إدارة المهام
&lt;/h2>&lt;ol>
&lt;li>اضغط على مفاتيح &lt;code>Ctrl&lt;/code> + &lt;code>Shift&lt;/code> + &lt;code>Esc&lt;/code> لبدء تشغيل إدارة المهام.&lt;/li>
&lt;li>حدد &lt;code>التفاصيل&lt;/code>.&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="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_3.png"
width="675"
height="439"
srcset="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_3_hu94dd07716acd73c3bf3a07b52949d73b_34688_480x0_resize_box_3.png 480w, 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_3_hu94dd07716acd73c3bf3a07b52949d73b_34688_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="153"
data-flex-basis="369px"
>&lt;/p>
&lt;ol start="3">
&lt;li>حدد &lt;code>explorer.exe&lt;/code>، واضغط على مفتاح &lt;code>Delete&lt;/code>، وعندما تُسأل &lt;code>هل تريد إنهاء explorer.exe؟&lt;/code>، حدد &lt;code>إنهاء العملية&lt;/code>.&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="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_1.png"
width="529"
height="304"
srcset="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_1_hu9ea0cd188ab9aa2b045ca3bb921a75d4_17142_480x0_resize_box_3.png 480w, 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_1_hu9ea0cd188ab9aa2b045ca3bb921a75d4_17142_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="174"
data-flex-basis="417px"
>&lt;/p>
&lt;h2 id="كيفية-الإنهاء-من-موجه-الأوامر">كيفية الإنهاء من موجه الأوامر
&lt;/h2>&lt;ol>
&lt;li>اضغط على مفاتيح &lt;code>Win&lt;/code> + &lt;code>R&lt;/code>، واكتب &lt;code>cmd&lt;/code>، ثم اضغط على مفتاح &lt;code>Enter&lt;/code>.&lt;/li>
&lt;li>اكتب &lt;code>taskkill /f /im explorer.exe&lt;/code> واضغط على مفتاح &lt;code>Enter&lt;/code>.&lt;/li>
&lt;/ol>
&lt;h2 id="كيفية-بدء-تشغيل-مستكشف-الملفات-من-إدارة-المهام">كيفية بدء تشغيل مستكشف الملفات من إدارة المهام
&lt;/h2>&lt;ol>
&lt;li>اضغط على مفاتيح &lt;code>Ctrl&lt;/code> + &lt;code>Shift&lt;/code> + &lt;code>Esc&lt;/code> لبدء تشغيل إدارة المهام.&lt;/li>
&lt;li>من قائمة ملف، حدد &lt;code>تشغيل مهمة جديدة&lt;/code>.&lt;/li>
&lt;li>اكتب &lt;code>explorer.exe&lt;/code> واضغط على مفتاح &lt;code>Enter&lt;/code>.&lt;/li>
&lt;/ol></description></item><item><title>كيفية استعادة قائمة النقر بزر الماوس الأيمن الكلاسيكية في ويندوز 11</title><link>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/</link><pubDate>Sat, 30 Mar 2024 13:13:36 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية استعادة قائمة النقر بزر الماوس الأيمن الكلاسيكية في ويندوز 11" />&lt;h1 id="كيفية-استعادة-قائمة-النقر-بزر-الماوس-الأيمن-الكلاسيكية-في-ويندوز-11">كيفية استعادة قائمة النقر بزر الماوس الأيمن الكلاسيكية في ويندوز 11
&lt;/h1>&lt;p>نقدم لكم طريقة لاستعادة قائمة النقر بزر الماوس الأيمن في ويندوز 11 إلى الإصدار الكلاسيكي.&lt;/p>
&lt;ol>
&lt;li>افتح محرر التسجيل.&lt;/li>
&lt;/ol>
&lt;p>اضغط على &lt;code>مفتاح Win&lt;/code> + &lt;code>مفتاح R&lt;/code>، واكتب &lt;code>regedit&lt;/code>، ثم اضغط على &lt;code>مفتاح Enter&lt;/code>.
&lt;img src="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_1.png"
width="399"
height="206"
srcset="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_1_hu57f8ec9d7413c1dd616d892c3bf497ce_10532_480x0_resize_box_3.png 480w, 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_1_hu57f8ec9d7413c1dd616d892c3bf497ce_10532_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="193"
data-flex-basis="464px"
>　&lt;/p>
&lt;ol start="2">
&lt;li>
&lt;p>انتقل إلى &lt;code>HKEY_CURRENT_USER\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}&lt;/code>. إذا لم يكن هذا المفتاح موجودًا، فقم بإنشائه.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>انتقل إلى &lt;code>HKEY_CURRENT_USER\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32&lt;/code>. إذا لم يكن هذا المفتاح موجودًا، فقم بإنشائه.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>تأكد من أن القيمة &lt;code>(الافتراضي)&lt;/code> داخل &lt;code>InprocServer32&lt;/code> فارغة.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="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_2.png"
width="770"
height="746"
srcset="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_2_hu825cb5788fa7c4fef725a65d032e0e06_65034_480x0_resize_box_3.png 480w, 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_2_hu825cb5788fa7c4fef725a65d032e0e06_65034_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="103"
data-flex-basis="247px"
>&lt;/p>
&lt;ol start="6">
&lt;li>أعد تشغيل الكمبيوتر.&lt;/li>
&lt;li>تحقق من عودة قائمة النقر بزر الماوس الأيمن إلى الإصدار الكلاسيكي.&lt;/li>
&lt;/ol></description></item><item><title>مجموعة خطوط للبرمجة</title><link>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/</link><pubDate>Sat, 30 Mar 2024 02:21:31 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post مجموعة خطوط للبرمجة" />&lt;h2 id="jetbrains-mono">JetBrains Mono
&lt;/h2>&lt;p>إنه خط برمجة مفتوح المصدر مقدم من JetBrains.&lt;/p>
&lt;p>تنزيل: &lt;a class="link" href="https://www.jetbrains.com/ja-jp/lp/mono/" target="_blank" rel="noopener"
>https://www.jetbrains.com/ja-jp/lp/mono/&lt;/a>&lt;/p>
&lt;h2 id="hackgen">HackGen
&lt;/h2>&lt;p>Hakugen (HackGen) هو خط برمجة تم إنشاؤه من خلال دمج الخط الإنجليزي Hack المخصص للبرمجة مع خط Genjyuu Gothic، وهو خط مشتق من Source Han Sans.&lt;/p>
&lt;p>تنزيل: &lt;a class="link" href="https://github.com/yuru7/HackGen/releases" target="_blank" rel="noopener"
>https://github.com/yuru7/HackGen/releases&lt;/a>&lt;/p>
&lt;h2 id="ricty-diminished">Ricty Diminished
&lt;/h2>&lt;p>&lt;code>Ricty Diminished&lt;/code> هو خط شقيق لـ &lt;code>Ricty&lt;/code>، وهو خط تم إنشاؤه بدمج &lt;code>Inconsolata&lt;/code> و &lt;code>Circle M+ 1m&lt;/code> باستخدام برنامج نصي لإنشاء &lt;code>Ricty&lt;/code> بدلاً من &lt;code>Inconsolata&lt;/code> و &lt;code>Migu 1M&lt;/code>. نظراً لأنه لا يحتوي على رموز IPA Gothic، فإن عدد رموز الكانجي القابلة للاستخدام قليل، ولكن في المقابل يمكن توزيعه بموجب ترخيص &lt;code>SIL Open Font License&lt;/code>.&lt;/p>
&lt;p>تنزيل: &lt;a class="link" href="https://rictyfonts.github.io/diminished" target="_blank" rel="noopener"
>https://rictyfonts.github.io/diminished&lt;/a>&lt;/p>
&lt;h2 id="cica">Cica
&lt;/h2>&lt;p>خط برمجة يستخدم &lt;code>Hack&lt;/code> + &lt;code>DejaVu Sans Mono&lt;/code> للأحرف والأرقام الإنجليزية والرموز.
ويستخدم &lt;code>Rounded Mgen+&lt;/code> للأحرف الأخرى.&lt;/p>
&lt;p>تنزيل: &lt;a class="link" href="https://github.com/miiton/Cica/releases" target="_blank" rel="noopener"
>https://github.com/miiton/Cica/releases&lt;/a>&lt;/p>
&lt;p>مرجع:&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://sourcefoundry.org/hack/" target="_blank" rel="noopener"
>Hack&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://dejavu-fonts.github.io/" target="_blank" rel="noopener"
>DejaVu Sans Mono&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="http://jikasei.me/font/rounded-mgenplus/" target="_blank" rel="noopener"
>Rounded Mgen+&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="migu">Migu
&lt;/h2>&lt;p>إنه خط مدمج من M+ و IPA.&lt;/p>
&lt;p>تنزيل: &lt;a class="link" href="https://itouhiro.github.io/mixfont-mplus-ipa/migu/" target="_blank" rel="noopener"
>https://itouhiro.github.io/mixfont-mplus-ipa/migu/&lt;/a>&lt;/p>
&lt;h2 id="osaka">Osaka
&lt;/h2>&lt;p>إنه خط يتيح لك استخدام &lt;code>Osaka&lt;/code>، وهو خط قياسي في Mac OS، على نظام Windows.&lt;/p>
&lt;p>تنزيل: &lt;a class="link" href="http://ifs.nog.cc/osakattf.hp.infoseek.co.jp/" target="_blank" rel="noopener"
>http://ifs.nog.cc/osakattf.hp.infoseek.co.jp/&lt;/a>&lt;/p>
&lt;h2 id="plemoljp">PlemolJP
&lt;/h2>&lt;p>إنه خط برمجة يجمع بين خط &lt;code>IBM Plex Sans JP&lt;/code> الياباني مفتوح المصدر الذي أصدرته IBM و &lt;code>IBM Plex Mono&lt;/code> من سلسلة Plex الخاصة بـ IBM.&lt;/p>
&lt;p>تنزيل: &lt;a class="link" href="https://github.com/yuru7/PlemolJP/releases" target="_blank" rel="noopener"
>https://github.com/yuru7/PlemolJP/releases&lt;/a>&lt;/p></description></item><item><title>كيفية تشغيل محرر Hidemaru باستخدام الأمر «hide»</title><link>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/</link><pubDate>Fri, 29 Mar 2024 23:45:37 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية تشغيل محرر Hidemaru باستخدام الأمر «hide»" />&lt;h2 id="أقدم-لكم-كيفية-تشغيل-محرر-hidemaru-باستخدام-الأمر-hide">أقدم لكم كيفية تشغيل محرر Hidemaru باستخدام الأمر «hide».
&lt;/h2>&lt;p>ملاحظة: تم تأكيد عمل هذه الطريقة على &lt;code>Windows 10/11&lt;/code>.&lt;/p>
&lt;ol>
&lt;li>افتح محرر سجل الويندوز (Registry Editor).&lt;/li>
&lt;li>انتقل إلى &lt;code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths&lt;/code>.&lt;/li>
&lt;li>أنشئ مفتاحًا باسم &lt;code>hide.exe&lt;/code> في &lt;code>App Paths&lt;/code>. ※ الاسم الذي يسبق &lt;code>.exe&lt;/code> في اسم المفتاح سيكون اسم الأمر.&lt;/li>
&lt;li>قم بتعيين مسار الملف التنفيذي لمحرر Hidemaru في &lt;code>(الافتراضي)&lt;/code> لمفتاح &lt;code>hide.exe&lt;/code>. في بيئتي، كان المسار &lt;code>&amp;quot;C:\Program Files (x86)\Hidemaru\Hidemaru.exe&amp;quot;&lt;/code>.&lt;/li>
&lt;li>أنشئ قيمة سلسلة نصية (String Value) باسم &lt;code>Path&lt;/code> في مفتاح &lt;code>hide.exe&lt;/code>.&lt;/li>
&lt;li>قم بتعيين مسار المجلد الذي يحتوي على الملف التنفيذي لمحرر Hidemaru في بيانات &lt;code>Path&lt;/code>. في بيئتي، كان المسار &lt;code>&amp;quot;C:\Program Files (x86)\Hidemaru&amp;quot;&lt;/code>.&lt;/li>
&lt;li>الآن يمكنك تشغيل محرر Hidemaru باستخدام الأمر &lt;code>hide&lt;/code> من خلال نافذة &lt;strong>Run&lt;/strong> التي تظهر بالضغط على مفتاحي &lt;code>Win&lt;/code> + &lt;code>R&lt;/code>. بالإضافة إلى ذلك، في موجه الأوامر (Command Prompt)، يمكنك تشغيل محرر Hidemaru باستخدام الأمر &lt;code>start hide&lt;/code>.&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">Windows Registry Editor Version 5.00
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\hide.exe]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">@=&amp;#34;\&amp;#34;C:\\Program Files (x86)\\Hidemaru\\Hidemaru.exe\&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;#34;Path&amp;#34;=&amp;#34;\&amp;#34;C:\\Program Files (x86)\\Hidemaru\\\&amp;#34;&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>إذا قمت بحفظ المحتوى أعلاه في ملف &lt;code>.reg&lt;/code> وتشغيله، فستتم إضافة الإعدادات إلى سجل الويندوز.&lt;/p>
&lt;p>&lt;img src="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_1.png"
width="399"
height="206"
srcset="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_1_hue374203b955e2a50cac4186ada52cd43_10600_480x0_resize_box_3.png 480w, 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_1_hue374203b955e2a50cac4186ada52cd43_10600_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="193"
data-flex-basis="464px"
>&lt;/p></description></item><item><title>مشاكل رياضية غير محلولة</title><link>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/</link><pubDate>Sat, 02 Mar 2024 22:57:36 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post مشاكل رياضية غير محلولة" />&lt;h1 id="مشاكل-رياضية-غير-محلولة">مشاكل رياضية غير محلولة
&lt;/h1>&lt;p>سأشرح عن بعض المشاكل الرياضية غير المحلولة. على الرغم من أن المشاكل نفسها بسيطة، إلا أن هناك العديد من المشاكل التي لم يتم إثباتها بعد.&lt;/p>
&lt;h2 id="هل-يوجد-عدد-لا-نهائي-من-الأعداد-المثالية">هل يوجد عدد لا نهائي من الأعداد المثالية؟
&lt;/h2>&lt;p>العدد المثالي هو عدد طبيعي يساوي مجموع قواسمه الموجبة باستثناء نفسه.
على سبيل المثال،&lt;/p>
&lt;ul>
&lt;li>6 له القواسم 1، 2، 3، و 1+2+3=6، لذا فهو عدد مثالي.&lt;/li>
&lt;li>28 له القواسم 1، 2، 4، 7، 14، و 1+2+4+7+14=28، لذا فهو عدد مثالي.&lt;/li>
&lt;/ul>
&lt;p>تم اكتشاف 51 عددًا فقط حتى الآن، وعلى الرغم من أنه يُتوقع وجود عدد لا نهائي منها، إلا أنه لم يتم إثبات ذلك بعد.&lt;/p>
&lt;h2 id="حدسية-غولدباخ">حدسية غولدباخ
&lt;/h2>&lt;p>حدسية غولدباخ هي حدسية تنص على أن كل عدد زوجي أكبر من 2 يمكن التعبير عنه كمجموع عددين أوليين.
(هنا، العدد الأولي هو عدد طبيعي ليس له قواسم سوى 1 ونفسه).&lt;/p>
&lt;p>على سبيل المثال،&lt;/p>
&lt;ul>
&lt;li>4=2+2&lt;/li>
&lt;li>6=3+3&lt;/li>
&lt;li>8=3+5&lt;/li>
&lt;li>10=3+7=5+5&lt;/li>
&lt;/ul>
&lt;p>المشكلة نفسها بسيطة للغاية، ولكن لم يتم إثباتها بعد.&lt;/p>
&lt;h2 id="فرضية-ريمان">فرضية ريمان
&lt;/h2>&lt;p>هي فرضية تنص على أن أصفار دالة زيتا لريمان تقتصر على الأعداد الزوجية السالبة والأعداد المركبة التي يكون جزؤها الحقيقي 1 / 2.&lt;/p>
&lt;p>دالة زيتا لريمان هي دالة $\zeta$ معرفة على النحو التالي، حيث $s$ هو عدد مركب و $n$ هو عدد طبيعي:&lt;/p>
$$\zeta(s):=\sum _{n=1}^{\infty }{\frac {1}{n^{s}}}=1+{\frac {1}{2^{s}}}+{\frac {1}{3^{s}}}+{\frac {1}{4^{s}}}+\cdots$$</description></item><item><title>جمعت الكثير من مربعات حوار معلومات الإصدار</title><link>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/</link><pubDate>Sat, 02 Mar 2024 21:32:11 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post جمعت الكثير من مربعات حوار معلومات الإصدار" />&lt;h1 id="جمعت-الكثير-من-مربعات-حوار-معلومات-الإصدار">&amp;ldquo;جمعت الكثير من مربعات حوار معلومات الإصدار&amp;rdquo;
&lt;/h1>&lt;h2 id="windows-11">Windows 11
&lt;/h2>&lt;p>أولاً، هذه معلومات إصدار Windows 11 التي أستخدمها حاليًا.
&lt;img src="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.png"
width="536"
height="472"
srcset="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_480x0_resize_box_3.png 480w, 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_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="113"
data-flex-basis="272px"
>&lt;/p>
&lt;h2 id="intellij-idea-community-edition">IntelliJ IDEA (Community Edition)
&lt;/h2>&lt;p>هذه هي البيئة التي أكتب فيها هذه المدونة.
&lt;img src="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_1.png"
width="430"
height="280"
srcset="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_1_hua5367752a804b207b533162809f32018_16224_480x0_resize_box_3.png 480w, 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_1_hua5367752a804b207b533162809f32018_16224_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="153"
data-flex-basis="368px"
>&lt;/p>
&lt;h2 id="visual-studio-code">Visual Studio Code
&lt;/h2>&lt;p>هذا محرر أستخدمه كثيرًا أيضًا. إنه بسيط بشكل مدهش.
&lt;img src="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_2.png"
width="369"
height="279"
srcset="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_2_hu6f1ad03ad750bb1606eb1362d5adbc93_13862_480x0_resize_box_3.png 480w, 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_2_hu6f1ad03ad750bb1606eb1362d5adbc93_13862_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="132"
data-flex-basis="317px"
>&lt;/p>
&lt;h2 id="visual-studio">Visual Studio
&lt;/h2>&lt;p>هذه هي بيئة التطوير التي أستخدمها لـ C++.
&lt;img src="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_3.png"
width="766"
height="558"
srcset="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_3_hue2937726cf71daf9e61d0319a27b00f9_40495_480x0_resize_box_3.png 480w, 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_3_hue2937726cf71daf9e61d0319a27b00f9_40495_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="137"
data-flex-basis="329px"
>&lt;/p>
&lt;h2 id="linewindows">LINE(Windows)
&lt;/h2>&lt;p>هذه نسخة Windows من LINE.
&lt;img src="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_4.png"
width="657"
height="494"
srcset="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_4_hu8581061934b0bb5022cd7a96525141a7_21285_480x0_resize_box_3.png 480w, 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_4_hu8581061934b0bb5022cd7a96525141a7_21285_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_4.png"
class="gallery-image"
data-flex-grow="132"
data-flex-basis="319px"
>&lt;/p>
&lt;h2 id="paintnet">Paint.NET
&lt;/h2>&lt;p>هذا برنامج تحرير صور.
&lt;img src="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_5.png"
width="497"
height="444"
srcset="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_5_huea1c283c954d5aa522490bb5fd418a17_41055_480x0_resize_box_3.png 480w, 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_5_huea1c283c954d5aa522490bb5fd418a17_41055_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_5.png"
class="gallery-image"
data-flex-grow="111"
data-flex-basis="268px"
>&lt;/p>
&lt;h2 id="sakuraエディタ">sakuraエディタ
&lt;/h2>&lt;p>هذا محرر نصوص.
&lt;img src="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_6.png"
width="457"
height="374"
srcset="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_6_hu30dd12ad135ab6e1e97018cf29903ec0_25090_480x0_resize_box_3.png 480w, 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_6_hu30dd12ad135ab6e1e97018cf29903ec0_25090_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_6.png"
class="gallery-image"
data-flex-grow="122"
data-flex-basis="293px"
>&lt;/p>
&lt;h2 id="google-chrome">Google Chrome
&lt;/h2>&lt;p>هذا هو Google Chrome. لم أعد أستخدمه كثيرًا بعد ظهور Edge.
&lt;img src="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_7.png"
width="716"
height="550"
srcset="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_7_hu7711134ce22b051fae7bc05ca532351f_20474_480x0_resize_box_3.png 480w, 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_7_hu7711134ce22b051fae7bc05ca532351f_20474_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_7.png"
class="gallery-image"
data-flex-grow="130"
data-flex-basis="312px"
>&lt;/p>
&lt;h2 id="firefox">Firefox
&lt;/h2>&lt;p>هذا هو Firefox. لم أستخدمه كثيرًا مؤخرًا.
&lt;img src="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_8.png"
width="732"
height="399"
srcset="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_8_hue61323b7348180f9bdf1b2fdcc2598aa_71867_480x0_resize_box_3.png 480w, 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_8_hue61323b7348180f9bdf1b2fdcc2598aa_71867_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_8.png"
class="gallery-image"
data-flex-grow="183"
data-flex-basis="440px"
>&lt;/p>
&lt;h2 id="microsoft-edge">Microsoft Edge
&lt;/h2>&lt;p>هذا هو Microsoft Edge. أستخدمه كثيرًا مؤخرًا.
&lt;img src="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_9.png"
width="862"
height="813"
srcset="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_9_hu45c417f9fcbb634e734d206de2b56aca_107279_480x0_resize_box_3.png 480w, 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_9_hu45c417f9fcbb634e734d206de2b56aca_107279_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_9.png"
class="gallery-image"
data-flex-grow="106"
data-flex-basis="254px"
>&lt;/p>
&lt;h2 id="obs-studio">OBS Studio
&lt;/h2>&lt;p>هذا هو OBS Studio. لم أستخدمه كثيرًا مؤخرًا.
&lt;img src="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_10.png"
width="842"
height="551"
srcset="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_10_hu180a6e2acbef184b6ad8a3fffb45c90c_39675_480x0_resize_box_3.png 480w, 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_10_hu180a6e2acbef184b6ad8a3fffb45c90c_39675_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_10.png"
class="gallery-image"
data-flex-grow="152"
data-flex-basis="366px"
>&lt;/p>
&lt;h2 id="tradingview">TradingView
&lt;/h2>&lt;p>هذا هو TradingView. أستخدمه مؤخرًا لمشاهدة مخطط الدولار/الين.
&lt;img src="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_11.png"
width="633"
height="650"
srcset="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_11_hu53621cc6fc47bf074deb3028d86cf3c0_19381_480x0_resize_box_3.png 480w, 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_11_hu53621cc6fc47bf074deb3028d86cf3c0_19381_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_11.png"
class="gallery-image"
data-flex-grow="97"
data-flex-basis="233px"
>&lt;/p>
&lt;h2 id="spy">Spy++
&lt;/h2>&lt;p>هذا هو Spy++. إنها أداة مضمنة في Windows SDK.
&lt;img src="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_12.png"
width="492"
height="218"
srcset="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_12_hu637d3cfc5948f4a10326a7ffccf8ce5f_10468_480x0_resize_box_3.png 480w, 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_12_hu637d3cfc5948f4a10326a7ffccf8ce5f_10468_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_12.png"
class="gallery-image"
data-flex-grow="225"
data-flex-basis="541px"
>&lt;/p>
&lt;h2 id="depency-walker">depency walker
&lt;/h2>&lt;p>هذا هو depency walker. إنها أداة مضمنة في Windows SDK.
&lt;img src="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_13.png"
width="352"
height="209"
srcset="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_13_hu842e211dd17745aa6a8fb1c0bbdff9f5_6341_480x0_resize_box_3.png 480w, 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_13_hu842e211dd17745aa6a8fb1c0bbdff9f5_6341_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_13.png"
class="gallery-image"
data-flex-grow="168"
data-flex-basis="404px"
>&lt;/p>
&lt;h2 id="resource-hacker">resource hacker
&lt;/h2>&lt;p>هذا هو resource hacker. إنها أداة لتحرير واستخراج الموارد من الملفات القابلة للتنفيذ.
&lt;img src="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_14.png"
width="338"
height="246"
srcset="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_14_huc57d60e163fd0bcc8f075dec24a49f89_36267_480x0_resize_box_3.png 480w, 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_14_huc57d60e163fd0bcc8f075dec24a49f89_36267_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_14.png"
class="gallery-image"
data-flex-grow="137"
data-flex-basis="329px"
>&lt;/p>
&lt;h2 id="microsoft-excel">Microsoft Excel
&lt;/h2>&lt;p>هذا هو Microsoft Excel.
&lt;img src="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_15.png"
width="768"
height="618"
srcset="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_15_hu8a9136a150d5d639659ac9ceca75f4b3_91079_480x0_resize_box_3.png 480w, 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_15_hu8a9136a150d5d639659ac9ceca75f4b3_91079_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_15.png"
class="gallery-image"
data-flex-grow="124"
data-flex-basis="298px"
>&lt;/p>
&lt;h2 id="bandy-cam">bandy cam
&lt;/h2>&lt;p>هذا هو bandy cam. إنها أداة لالتقاط الفيديو.
&lt;img src="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_16.png"
width="620"
height="570"
srcset="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_16_hu3e31361df9b5deb62846e4b96bf6b125_70140_480x0_resize_box_3.png 480w, 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_16_hu3e31361df9b5deb62846e4b96bf6b125_70140_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_16.png"
class="gallery-image"
data-flex-grow="108"
data-flex-basis="261px"
>&lt;/p>
&lt;h2 id="winmerge">winmerge
&lt;/h2>&lt;p>هذا هو winmerge. إنها أداة لعرض اختلافات الملفات.
&lt;img src="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_17.png"
width="551"
height="409"
srcset="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_17_hud946a2eea7a4d661d773b263a8824288_229090_480x0_resize_box_3.png 480w, 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_17_hud946a2eea7a4d661d773b263a8824288_229090_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_17.png"
class="gallery-image"
data-flex-grow="134"
data-flex-basis="323px"
>&lt;/p>
&lt;h2 id="itunes">iTunes
&lt;/h2>&lt;p>هذا هو iTunes. لم أستخدمه كثيرًا مؤخرًا.
&lt;img src="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_18.png"
width="602"
height="352"
srcset="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_18_hu2285c1c196750773901fc479753d8d52_62514_480x0_resize_box_3.png 480w, 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_18_hu2285c1c196750773901fc479753d8d52_62514_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_18.png"
class="gallery-image"
data-flex-grow="171"
data-flex-basis="410px"
>&lt;/p>
&lt;h2 id="秀丸エディタ">秀丸エディタ
&lt;/h2>&lt;p>هذا هو محرر Hidemaru. إنه محرر نصوص.
&lt;img src="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_19.png"
width="364"
height="362"
srcset="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_19_hu64b6fe4a78cf41bc83a36608446a6a6f_12142_480x0_resize_box_3.png 480w, 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_19_hu64b6fe4a78cf41bc83a36608446a6a6f_12142_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_19.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="241px"
>&lt;/p>
&lt;h2 id="adobe-photoshop-cs6">Adobe Photoshop CS6
&lt;/h2>&lt;p>هذا هو Adobe Photoshop CS6.
&lt;img src="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_20.png"
width="684"
height="526"
srcset="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_20_hu0e5417f24efe83fe850895cbdc3ee6bd_33925_480x0_resize_box_3.png 480w, 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_20_hu0e5417f24efe83fe850895cbdc3ee6bd_33925_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_20.png"
class="gallery-image"
data-flex-grow="130"
data-flex-basis="312px"
>&lt;/p>
&lt;h2 id="adobe-illustrator-cs6">Adobe Illustrator CS6
&lt;/h2>&lt;p>هذا هو Adobe Illustrator CS6.
&lt;img src="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_21.png"
width="688"
height="510"
srcset="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_21_hu75d0b46d92a40a63b233ebe509de2aef_34525_480x0_resize_box_3.png 480w, 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_21_hu75d0b46d92a40a63b233ebe509de2aef_34525_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_21.png"
class="gallery-image"
data-flex-grow="134"
data-flex-basis="323px"
>&lt;/p>
&lt;h2 id="eset-nod32">ESET NOD32
&lt;/h2>&lt;p>هذا هو ESET NOD32.
&lt;img src="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_22.png"
width="1024"
height="670"
srcset="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_22_hu56c202fdeac0311855a721ca11397713_49037_480x0_resize_box_3.png 480w, 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_22_hu56c202fdeac0311855a721ca11397713_49037_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_22.png"
class="gallery-image"
data-flex-grow="152"
data-flex-basis="366px"
>&lt;/p>
&lt;h2 id="notepad">NotePad++
&lt;/h2>&lt;p>هذا هو NotePad++. إنه محرر نصوص.
&lt;img src="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_23.png"
width="407"
height="392"
srcset="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_23_hu6eb2f3dbf16fa243605b7d0ac832471c_23159_480x0_resize_box_3.png 480w, 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_23_hu6eb2f3dbf16fa243605b7d0ac832471c_23159_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_23.png"
class="gallery-image"
data-flex-grow="103"
data-flex-basis="249px"
>&lt;/p>
&lt;h2 id="mifes">MIFES
&lt;/h2>&lt;p>هذا هو MIFES. لم أستخدمه كثيرًا مؤخرًا.
&lt;img src="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_24.png"
width="454"
height="353"
srcset="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_24_hu78d7832f427554a574352f83766204e1_11395_480x0_resize_box_3.png 480w, 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_24_hu78d7832f427554a574352f83766204e1_11395_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_24.png"
class="gallery-image"
data-flex-grow="128"
data-flex-basis="308px"
>&lt;/p></description></item><item><title>أداة تسجيل الشاشة كفيديو GIF</title><link>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/</link><pubDate>Thu, 08 Feb 2024 01:23:01 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post أداة تسجيل الشاشة كفيديو GIF" />&lt;h1 id="أداة-تسجيل-الشاشة-كفيديو-gif">أداة تسجيل الشاشة كفيديو GIF
&lt;/h1>&lt;p>لقد قمت بإنشاء أداة لتسجيل الشاشة وحفظها كرسوم متحركة بصيغة GIF.
باستخدام هذه الأداة، يمكنك تسجيل عمليات الشاشة ومشاركتها عبر أدوات الاتصال مثل Microsoft Teams وغيرها.&lt;/p>
&lt;h2 id="طريقة-الاستخدام">طريقة الاستخدام
&lt;/h2>&lt;ol>
&lt;li>قم بتشغيل الأداة&lt;/li>
&lt;li>حدد المنطقة المراد تسجيلها. إذا لم يتم التحديد، سيتم تسجيل الشاشة بأكملها.&lt;/li>
&lt;li>اضغط على زر التسجيل&lt;/li>
&lt;li>اضغط على زر إيقاف التسجيل&lt;/li>
&lt;li>سيتم إخراج الرسوم المتحركة بتنسيق GIF في نفس مسار الملف التنفيذي&lt;/li>
&lt;/ol>
&lt;h2 id="تحميل">تحميل
&lt;/h2>&lt;p>&lt;a class="link" href="https://github.com/kenjinote/GifScreenRecorder/releases" target="_blank" rel="noopener"
>تحميل&lt;/a>&lt;/p>
&lt;p>افتح الرابط أعلاه وانقر على رابط &lt;code>GIFScreenRecorder.exe&lt;/code> لتنزيل الملف التنفيذي.&lt;/p>
&lt;h2 id="الكود-المصدري">الكود المصدري
&lt;/h2>&lt;p>&lt;a class="link" href="https://github.com/kenjinote/GifScreenRecorder" target="_blank" rel="noopener"
>GitHub&lt;/a>&lt;/p></description></item><item><title>دراسة PMP</title><link>http://kenji.blog/ar/p/pmp%E5%8B%89%E5%BC%B7/</link><pubDate>Sun, 04 Feb 2024 18:41:31 +0900</pubDate><guid>http://kenji.blog/ar/p/pmp%E5%8B%89%E5%BC%B7/</guid><description>&lt;img src="http://kenji.blog/p/pmp%E5%8B%89%E5%BC%B7/img.png" alt="Featured image of post دراسة PMP" />&lt;h1 id="ملخص-دراسة-امتحان-pmp">ملخص دراسة امتحان PMP
&lt;/h1>&lt;p>هذا ملخص لدراسة امتحان PMP.&lt;/p>
&lt;h2 id="نظرة-عامة">نظرة عامة
&lt;/h2>&lt;p>PMP هي شهادة في إدارة المشاريع. تعتمد هذه الشهادة على الدليل المعرفي لإدارة المشروعات (PMBOK) (الإصدار السابع الأخير).
يتكون امتحان PMP من 180 سؤالاً في 230 دقيقة، ولكن 5 منها أسئلة تجريبية غير محسوبة، لذلك يجب عليك الإجابة بشكل صحيح على 106 سؤالاً أو أكثر من أصل 175 سؤالاً للنجاح.
الإجابات في الغالب تكون اختيار من متعدد (4 خيارات)، لكن بعضها يحتوي على 5 خيارات أو إجابات متعددة.&lt;/p>
&lt;h2 id="القيادة-الخادمة-servant-leadership">القيادة الخادمة (Servant Leadership)
&lt;/h2>&lt;p>أسلوب قيادة يدعم الفريق من أسفل بدلاً من إعطاء الأوامر من أعلى.&lt;/p>
&lt;h3 id="المبادئ-العشرة-للقيادة-الخادمة-الخصائص">المبادئ العشرة للقيادة الخادمة (الخصائص)
&lt;/h3>&lt;ol>
&lt;li>الاستماع (Listening)&lt;/li>
&lt;li>التعاطف (Empathy)&lt;/li>
&lt;li>الشفاء (Healing)&lt;/li>
&lt;li>الوعي (Awareness)&lt;/li>
&lt;li>الإقناع (Persuasion)&lt;/li>
&lt;li>بناء المفاهيم (Conceptualization)&lt;/li>
&lt;li>التبصر (Foresight)&lt;/li>
&lt;li>الوكالة (Stewardship)&lt;/li>
&lt;li>الالتزام بنمو الأفراد (Commitment to the growth of people)&lt;/li>
&lt;li>بناء المجتمع (Building community)&lt;/li>
&lt;/ol>
&lt;h2 id="القيم-الأربع-لبيان-أجايل">القيم الأربع لبيان أجايل
&lt;/h2>&lt;p>نحن نكتشف طرقًا أفضل لتطوير البرمجيات من خلال القيام بذلك ومساعدة الآخرين على القيام به. من خلال هذا العمل وصلنا إلى تقدير:&lt;/p>
&lt;ol>
&lt;li>الأفراد والتفاعلات فوق العمليات والأدوات&lt;/li>
&lt;li>البرمجيات الصالحة للاستعمال فوق التوثيق الشامل&lt;/li>
&lt;li>تعاون العملاء فوق التفاوض على العقود&lt;/li>
&lt;li>الاستجابة للتغيير فوق اتباع خطة&lt;/li>
&lt;/ol>
&lt;p>بمعنى، بالرغم من وجود قيمة في العناصر الموجودة على اليسار، إلا أننا نقدر العناصر الموجودة على اليمين بشكل أكبر.&lt;/p>
&lt;p>&lt;a class="link" href="https://agilemanifesto.org/iso/ar/manifesto.html" target="_blank" rel="noopener"
>بيان أجايل&lt;/a>&lt;/p>
&lt;h2 id="المبادئ-الاثنا-عشر-لبيان-أجايل">المبادئ الاثنا عشر لبيان أجايل
&lt;/h2>&lt;ol>
&lt;li>أولويتنا القصوى هي إرضاء العميل من خلال التسليم المبكر والمستمر لبرمجيات ذات قيمة.&lt;/li>
&lt;li>نرحب بتغيير المتطلبات، حتى في وقت متأخر من التطوير. تسخر عمليات أجايل التغيير لصالح الميزة التنافسية للعميل.&lt;/li>
&lt;li>تسليم برمجيات صالحة للاستعمال بشكل متكرر، من أسبوعين إلى شهرين، مع تفضيل النطاق الزمني الأقصر.&lt;/li>
&lt;li>يجب أن يعمل أصحاب الأعمال والمطورون معًا يوميًا طوال فترة المشروع.&lt;/li>
&lt;li>بناء المشاريع حول أفراد متحمسين. امنحهم البيئة والدعم الذي يحتاجون إليه، وثق بهم لإنجاز المهمة.&lt;/li>
&lt;li>الطريقة الأكثر كفاءة وفعالية لنقل المعلومات إلى فريق التطوير وداخله هي المحادثة وجهاً لوجه.&lt;/li>
&lt;li>البرمجيات الصالحة للاستعمال هي المقياس الأساسي للتقدم.&lt;/li>
&lt;li>عمليات أجايل تشجع التطوير المستدام. يجب أن يكون الرعاة والمطورون والمستخدمون قادرين على الحفاظ على وتيرة ثابتة إلى أجل غير مسمى.&lt;/li>
&lt;li>الاهتمام المستمر بالتميز التقني والتصميم الجيد يعزز المرونة.&lt;/li>
&lt;li>البساطة (فن تعظيم كمية العمل غير المنجز) ضرورية.&lt;/li>
&lt;li>أفضل الهيكليات والمتطلبات والتصميمات تنبثق من فرق ذاتية التنظيم.&lt;/li>
&lt;li>على فترات منتظمة، يتأمل الفريق في كيفية أن يصبح أكثر فعالية، ثم يضبط ويعدل سلوكه وفقًا لذلك.&lt;/li>
&lt;/ol>
&lt;p>&lt;a class="link" href="https://agilemanifesto.org/iso/ar/principles.html" target="_blank" rel="noopener"
>مبادئ بيان أجايل&lt;/a>&lt;/p>
&lt;h3 id="المصطلحات">المصطلحات
&lt;/h3>&lt;ul>
&lt;li>الملحمة (Epic)&lt;/li>
&lt;li>قصة المستخدم (User Story)&lt;/li>
&lt;li>المهمة (Task)&lt;/li>
&lt;li>سجل تراكم المنتج (Product Backlog)&lt;/li>
&lt;li>مالك المنتج (Product Owner)&lt;/li>
&lt;li>أصحاب المصلحة (Stakeholder)&lt;/li>
&lt;li>دليل ممارسات أجايل (Agile Practice Guide)&lt;/li>
&lt;li>التطوير الخالي من الهدر (Lean Development)&lt;/li>
&lt;li>كانبان (Kanban)&lt;/li>
&lt;li>سلسلة القيمة (Value Chain)&lt;/li>
&lt;li>التكلفة الفعلية (AC)&lt;/li>
&lt;li>القيمة المكتسبة (EV)&lt;/li>
&lt;li>القيمة المخططة (PV)&lt;/li>
&lt;li>تحليل القيمة المكتسبة (EVA)&lt;/li>
&lt;li>مؤشر أداء الجدول الزمني (SPI = EV / PV)&lt;/li>
&lt;li>مؤشر أداء التكلفة (CPI = EV / AC)&lt;/li>
&lt;li>إدارة القيمة المكتسبة (EVM)&lt;/li>
&lt;li>الميزانية عند الاكتمال (BAC)&lt;/li>
&lt;li>التقدير حتى الاكتمال (ETC)&lt;/li>
&lt;li>التقدير عند الاكتمال (EAC)&lt;/li>
&lt;li>هيكل وظيفي&lt;/li>
&lt;li>هيكل مصفوفة&lt;/li>
&lt;li>هيكل مشروعي&lt;/li>
&lt;li>القيادة الخادمة (Servant Leadership)&lt;/li>
&lt;li>نموذج توكمان (التشكيل، العصف، وضع المعايير، الأداء، الانفضاض)&lt;/li>
&lt;li>ميثاق الفريق (Team Charter)&lt;/li>
&lt;li>بوكر التخطيط (Planning Poker)&lt;/li>
&lt;li>المراجعة الاسترجاعية (Retrospective)&lt;/li>
&lt;li>الفريق الافتراضي (Virtual Team)&lt;/li>
&lt;li>ميثاق المشروع (Project Charter)&lt;/li>
&lt;li>الصراع (6 طرق للتعامل: المواجهة/حل المشكلات، التعاون، التسوية، التهدئة، الإجبار، الانسحاب/التجنب)&lt;/li>
&lt;li>تخطيط تيار القيمة (Value Stream Mapping)&lt;/li>
&lt;li>التوجيه (Mentoring)&lt;/li>
&lt;li>التدريب (Coaching)&lt;/li>
&lt;li>التدريب (Training)&lt;/li>
&lt;li>نظرية X و Y لدوغلاس ماكجريجور&lt;/li>
&lt;li>تحليل SWOT&lt;/li>
&lt;li>نموذج SECI&lt;/li>
&lt;li>PDCA, PDSA&lt;/li>
&lt;li>تحليل PESTLE&lt;/li>
&lt;li>VUCA&lt;/li>
&lt;li>طريقة مونت كارلو&lt;/li>
&lt;li>تحليل شجرة القرارات&lt;/li>
&lt;li>القيمة النقدية المتوقعة (EMV)&lt;/li>
&lt;li>صافي نقاط الترويج (NPS)&lt;/li>
&lt;li>تحليل التكلفة والمنفعة (Cost-Benefit Analysis)&lt;/li>
&lt;li>مراجعة السبرينت (Sprint Review)&lt;/li>
&lt;li>إدارة الإصدارات (Release Management)&lt;/li>
&lt;li>بيان العمل (SOW)&lt;/li>
&lt;li>بيان عمل المشتريات (P-SOW)&lt;/li>
&lt;li>طلب معلومات (RFI)&lt;/li>
&lt;li>طلب اقتراح (RFP)&lt;/li>
&lt;li>عقد السعر الثابت (FP)&lt;/li>
&lt;li>عقد الوقت والمواد (T&amp;amp;M)&lt;/li>
&lt;li>عقد استرداد التكاليف (CR)&lt;/li>
&lt;li>عقد السعر الثابت مع حافز (FPIF)&lt;/li>
&lt;li>زحف النطاق (Scope Creep)&lt;/li>
&lt;li>تحليل كانو (Kano Model)&lt;/li>
&lt;li>طريقة توزيع التمويل&lt;/li>
&lt;li>طريقة 100 نقطة&lt;/li>
&lt;li>طريقة MoSCoW&lt;/li>
&lt;li>مصفوفة التتبع (Traceability Matrix)&lt;/li>
&lt;li>قاموس هيكل تجزئة العمل (WBS Dictionary)&lt;/li>
&lt;li>السرعة (Velocity)&lt;/li>
&lt;li>مخطط السرعة (Velocity Chart)&lt;/li>
&lt;li>مصفوفة المشاركة (غير مدرك، مقاوم، محايد، داعم، قيادي)&lt;/li>
&lt;li>بوابة المرحلة (Phase Gate)&lt;/li>
&lt;li>مشعاع المعلومات (Information Radiator)&lt;/li>
&lt;li>مخطط الإنجاز (Burndown Chart)&lt;/li>
&lt;li>مخطط الإنجاز التصاعدي (Burnup Chart)&lt;/li>
&lt;li>مخطط التدفق التراكمي (CFD)&lt;/li>
&lt;li>الجودة، التكلفة، التسليم (QCD)&lt;/li>
&lt;li>النموذج الحلزوني (Spiral)&lt;/li>
&lt;li>السلسلة الحرجة (Critical Chain)&lt;/li>
&lt;li>ميزة (Feature)&lt;/li>
&lt;li>التكرار / السبرينت (Iteration / Sprint)&lt;/li>
&lt;li>تكراري (Iterative)&lt;/li>
&lt;li>تزايدي (Incremental)&lt;/li>
&lt;li>الزيادة (Increment)&lt;/li>
&lt;li>المرونة (Resilience)&lt;/li>
&lt;li>الإشراف (Stewardship)&lt;/li>
&lt;li>التصعيد (Escalation)&lt;/li>
&lt;li>الاحتفاظ، المشكلة، المحاولة (KPT)&lt;/li>
&lt;li>مصفوفة RACI&lt;/li>
&lt;li>مكتب إدارة المشاريع (PMO)&lt;/li>
&lt;li>الإيقاع (Cadence)&lt;/li>
&lt;li>التخصيص (Tailoring)&lt;/li>
&lt;li>المستويات العصبية المنطقية&lt;/li>
&lt;li>دراسة الجدوى (Business Case)&lt;/li>
&lt;li>تحليل الاتجاهات (Trend Analysis)&lt;/li>
&lt;li>خطة إدارة الجودة&lt;/li>
&lt;li>عملية الحوكمة (Governance Process)&lt;/li>
&lt;li>مالك المنتج (Product Owner)&lt;/li>
&lt;li>راعي المشروع (Project Owner)&lt;/li>
&lt;li>مدير المشروع (Project Manager)&lt;/li>
&lt;li>قائد المشروع (Project Leader)&lt;/li>
&lt;li>عضو المشروع (Project Member)&lt;/li>
&lt;li>النهج الهجين (Hybrid Approach)&lt;/li>
&lt;li>المنتج القابل للتطبيق بالحد الأدنى (MVP)&lt;/li>
&lt;li>مراجعة التكرار (Iteration Review)&lt;/li>
&lt;li>ورشة عمل (Workshop)&lt;/li>
&lt;li>خطة إدارة فوائد المشروع&lt;/li>
&lt;li>مؤشرات الأداء الرئيسية (KPI)&lt;/li>
&lt;li>في الموقع (On-site)&lt;/li>
&lt;li>التقدير التناظري (Analogous Estimating)&lt;/li>
&lt;li>التقدير بثلاث نقاط (Three-point estimating)&lt;/li>
&lt;li>التقدير البارامتري (Parametric Estimating)&lt;/li>
&lt;li>مراجعة المشروع (Project Review)&lt;/li>
&lt;li>نهج الانفجار العظيم (Big Bang Approach)&lt;/li>
&lt;li>طريقة تطوير الأنظمة الديناميكية (DSDM)&lt;/li>
&lt;li>قانون بروكس (Brooks&amp;rsquo;s law)&lt;/li>
&lt;li>نهج الانفجار العظيم&lt;/li>
&lt;li>سجل المخاطر (Risk Register)&lt;/li>
&lt;li>القيادة الموقفية (SL)&lt;/li>
&lt;li>الكفاءة (Competence)&lt;/li>
&lt;li>الالتزام (Commitment)&lt;/li>
&lt;/ul>
&lt;h2 id="المراجع">المراجع
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Arabic.pdf" target="_blank" rel="noopener"
>دليل سكرم&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://www.pmi.org/-/media/pmi/documents/public/pdf/certifications/pmp-examination-content-outline.pdf?sc_lang_temp=ja-JP" target="_blank" rel="noopener"
>صفحة PMI ECO&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://www.agilealliance.org/wp-content/uploads/2018/07/AgilePG_JAP.pdf" target="_blank" rel="noopener"
>دليل ممارسات أجايل&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://www.pmi.org/-/media/pmi/documents/public/pdf/ethics/pmi-code-of-ethics.pdf?sc_lang_temp=ja-JP" target="_blank" rel="noopener"
>ميثاق الأخلاقيات والسلوك المهني لمعهد إدارة المشاريع&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="مواد-الدراسة">مواد الدراسة
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://www.udemy.com/course/ace-the-pmp" target="_blank" rel="noopener"
>دورة استراتيجية لاجتياز امتحان PMP® من المحاولة الأولى! (2021) يتوافق مع أجايل&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كوارث اليابان</title><link>http://kenji.blog/ar/p/%E6%97%A5%E6%9C%AC%E3%81%AE%E7%81%BD%E5%AE%B3/</link><pubDate>Sun, 07 Jan 2024 00:50:09 +0900</pubDate><guid>http://kenji.blog/ar/p/%E6%97%A5%E6%9C%AC%E3%81%AE%E7%81%BD%E5%AE%B3/</guid><description>&lt;img src="http://kenji.blog/p/%E6%97%A5%E6%9C%AC%E3%81%AE%E7%81%BD%E5%AE%B3/img.png" alt="Featured image of post كوارث اليابان" />&lt;h1 id="ملخص">ملخص
&lt;/h1>&lt;p>ملاحظات حول الكوارث الطبيعية التي حدثت في اليابان&lt;/p>
&lt;h2 id="زلزال-شبه-جزيرة-نوتو-في-1-يناير-2024">زلزال شبه جزيرة نوتو في 1 يناير 2024
&lt;/h2>&lt;p>&lt;img src="http://kenji.blog/p/%E6%97%A5%E6%9C%AC%E3%81%AE%E7%81%BD%E5%AE%B3/img.png"
width="474"
height="266"
srcset="http://kenji.blog/p/%E6%97%A5%E6%9C%AC%E3%81%AE%E7%81%BD%E5%AE%B3/img_hue649e8d0b3bd837ea85e155e108b15fd_273208_480x0_resize_box_3.png 480w, http://kenji.blog/p/%E6%97%A5%E6%9C%AC%E3%81%AE%E7%81%BD%E5%AE%B3/img_hue649e8d0b3bd837ea85e155e108b15fd_273208_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="178"
data-flex-basis="427px"
>&lt;/p></description></item><item><title>وصفة عصيدة الأعشاب السبعة</title><link>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/</link><pubDate>Sat, 06 Jan 2024 22:22:00 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post وصفة عصيدة الأعشاب السبعة" />&lt;h1 id="الأعشاب-السبعة">الأعشاب السبعة
&lt;/h1>&lt;ul>
&lt;li>سيري (قطرة الماء)&lt;/li>
&lt;li>نازونا (كيس الراعي)&lt;/li>
&lt;li>غوغيو (عشبة القد)&lt;/li>
&lt;li>هاكوبيرا (حشيشة القزاز)&lt;/li>
&lt;li>هوتوكينوزا (نيبلوورت)&lt;/li>
&lt;li>سوزونا (لفت)&lt;/li>
&lt;li>سوزوشيرو (فجل)&lt;/li>
&lt;/ul></description></item><item><title>الموسيقى اليابانية المفضلة</title><link>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/</link><pubDate>Sat, 06 Jan 2024 04:11:01 +0900</pubDate><guid>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/</guid><description>&lt;img src="http://kenji.blog/p/%E5%A5%BD%E3%81%8D%E3%81%AA%E9%82%A6%E6%A5%BD/img.png" alt="Featured image of post الموسيقى اليابانية المفضلة" />&lt;h1 id="موسيقى-يابانية-موصى-بها">موسيقى يابانية موصى بها
&lt;/h1>&lt;ol>
&lt;li>チューリップ - 青春の影
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/k9UJs3TR_KU"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>イルカ - なごり雪
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/H2TR3oEA13o"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>河島英五 - 酒と泪と男と女
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/Uxy9Keo_KVc"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Orangestar - Surges
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/QvWsAIc5mO8"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>竹内まりや - Plastic Love
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/T_lC2O1oIew"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>RADWIMPS - 前前前世
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/PDSkFeMVNFs"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>BEGIN - 島人ぬ宝
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/7iZ4-4EYNnk"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>ザ・ブルーハーツ - 情熱の薔薇
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/-p0Yqcx53O8"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>荒井由実 - ルージュの伝言
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/MH-P4mXvDPE"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Begin - 海の声
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/qV91xBo1Vxc"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>荒井由実 - ひこうき雲
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/9HInQDjCCRc"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Love is Over - 欧陽菲菲
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/T5Te_czLFCw"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>クラムボン - 波よせて
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/kfvZZKm3gA0"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>RADWIMPS - スパークル
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/a2GujJZfXpg"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>かりゆし58 - アンマー
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/4_OKI91h3tw"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>かりゆし58 - オワリはじまり
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/Vb50GwvHH14"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>テレサ・テン - 時の流れに身をまかせ
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/8g9B-iWsO-o"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>宇多田ヒカル『One Last Kiss』
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/0Uhh62MUEic"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>不可思議/wonderboy - Pellicule (Official Music Video)
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/ueq2QFIIpu0"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;/ol>
&lt;iframe allow="autoplay *; encrypted-media *;" frameborder="0" height="150" style="width:100%;max-width:660px;overflow:hidden;background:transparent;" sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-storage-access-by-user-activation allow-top-navigation-by-user-activation" src="https://embed.music.apple.com/jp/album/pellicule/1480825458?i=1480825460">&lt;/iframe>
&lt;ol start="20">
&lt;li>Kamen Rider Black RX - Opening Song
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/tV5l-Nt18o4"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>たしかなこと / 小田和正 - Covered by パクユナ
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/q3myGl1PZgU"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>【Japanese healing song】Hana／Kosuke Atari（covered by Leah）
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/FpdrS6YGP4o"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>「真夜中のドア〜stay with me」/ 松原みき Official Lyric Video
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/nuU2YHtxMik"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Midnight Pretenders
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/7pPb5fmumNo"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Anri - Last Summer Whisper
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/BlvOAd10kJo"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>1985 - The Blue Hearts
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/sKarAUhTWMw"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>BUMP OF CHICKEN - supernova
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/0EpQ40X_r0Q"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>チューリップ　心の旅　1972
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/AFBPJW7wsho"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>小さな恋のうた
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/u8EkSB9zSpE"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>ASKA - はじまりはいつも雨 (Official Music Video)
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/74IKR0WeKXY"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>キリンジ - エイリアンズ
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/w05Q_aZKkFw"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>あの日の空よ - 南こうせつ
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/xC7o4N3Zb1U"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;/ol></description></item><item><title>الموسيقى الغربية المفضلة</title><link>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/</link><pubDate>Fri, 05 Jan 2024 00:14:22 +0900</pubDate><guid>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/</guid><description>&lt;img src="http://kenji.blog/p/%E5%A5%BD%E3%81%8D%E3%81%AA%E6%B4%8B%E6%A5%BD/img.png" alt="Featured image of post الموسيقى الغربية المفضلة" />&lt;h1 id="موسيقى-غربية-موصى-بها">موسيقى غربية موصى بها
&lt;/h1>&lt;ol>
&lt;li>Keane - Somewhere Only We Know
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/Oextk-If8HQ"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Ben E. King - Stand By Me
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/hwZNL7QVJjE"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>The Beatles - Hey Jude
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/A_MjCqQoLLA"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>The Mamas &amp;amp; The Papas - California Dreamin'
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/N-aK6JnyFmk"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Ed Sheeran - Shape of You
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/JGwWNGJdvx8"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Mark Ronson ft. Bruno Mars – Uptown Funk
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/OPf0YbXqDm0"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Sugar - Maroon 5
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/09R8_2nJtjg"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Bette Midler - The Rose
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/CB4EgdpYlnk"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Green Day - Basket Case
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/NUTGr5t3MoY"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Coldplay - Viva La VidaViva La Vida
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/dvgZkm1xWPE"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Maroon 5 - Memories (Lyrics)
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/SlPhMPnQ58k"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Dido - Thank You (Official Video)
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/1TO48Cnl66w"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Bob Dylan - Blowin&amp;rsquo; The Wind
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/MMFj8uDubsE"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Coldplay - Yellow
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/yKNxeF4KMsY"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Eric Clapton - Tears In Heaven
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/JxPj3GAYYZ0"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>B. J. Thomas - Raindrops Keep Fallin&amp;rsquo; on My Head (Stereo / Lyrics)
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/_VyA2f6hGW4"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Take Me Home, Country Roads
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/1vrEljMfXYo"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Simon &amp;amp; Garfunkel - Mrs. Robinson (Audio)
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/9C1BCAgu2I8"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Taylor Swift - Love Story (Live on Letterman)
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/mNLVMDF9mUo"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Wiz Khalifa - See You Again ft. Charlie Puth [Official Video] Furious 7 Soundtrack
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/RgKAFK5djSk"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>The Top (Extended Mix)
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/aeKCKIwDnwI"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Something Just Like This
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/Y1Nip-y0BcQ"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Feelings
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/27cedsZpN4w"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Yesterday Once More
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/-sltNGgjU_4"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Carpenters - Top Of The World
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/3hyFB6SA7b4"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>I Need To Be In Love - Carpenters
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/EmFiOb0To7w"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Bob Marley &amp;amp; The Wailers &amp;ldquo;Three Little Birds&amp;rdquo;
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/HNBCVM4KbUM"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Alan Walker - All Falls Down (feat. Noah Cyrus with Digital Farm Animals)
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/6RLLOEzdxsM"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Alan Walker - Darkside (feat. Au/Ra and Tomine Harket)
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/M-P4QBt-FWw"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Alan Walker - Alone
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/1-xGerv5FOk"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Alan Walker - Sing Me To Sleep
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/2i2khp_npdE"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>Alan Walker - Faded
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/60ItHLz5WEA"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>killing me softly with his song
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/oKOtzIo-uYw"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;li>a-ha - Take On Me (Official Video)
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/djV11Xbc914"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/li>
&lt;/ol></description></item><item><title>تثبيت PowerToys من موجه الأوامر</title><link>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/</link><pubDate>Sat, 30 Sep 2023 21:23:00 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post تثبيت PowerToys من موجه الأوامر" />&lt;h1 id="تثبيت-powertoys-من-موجه-الأوامر">تثبيت PowerToys من موجه الأوامر
&lt;/h1>&lt;p>إليك كيفية تثبيت PowerToys من موجه الأوامر.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">winget install Microsoft.PowerToys --source winget
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h1 id="إلغاء-تثبيت-powertoys-من-موجه-الأوامر">إلغاء تثبيت PowerToys من موجه الأوامر
&lt;/h1>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">winget uninstall --name PowerToys
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>لنحترم من يستطيعون فعل ما لا نستطيع فعله</title><link>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/</link><pubDate>Tue, 01 Aug 2023 23:42:31 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post لنحترم من يستطيعون فعل ما لا نستطيع فعله" />&lt;h1 id="لنحترم-الآخرين">لنحترم الآخرين
&lt;/h1>&lt;p>لنحترم من يستطيعون فعل ما لا نستطيع فعله&lt;/p>
&lt;p>في المجتمع، يوجد بشكل مفاجئ الكثير من الأشخاص الذين يصنفون الوظائف والمناصب ولا يظهرون الاحترام&lt;/p>
&lt;p>لنحترم من يقومون بأعمال لا يمكننا القيام بها، بغض النظر عن طبيعة العمل&lt;/p>
&lt;p>أريد أن أبقي هذا في ذهني&lt;/p></description></item><item><title>سبلاتون 2</title><link>http://kenji.blog/ar/p/%D8%B3%D8%A8%D9%84%D8%A7%D8%AA%D9%88%D9%86-2/</link><pubDate>Tue, 01 Aug 2023 00:26:30 +0900</pubDate><guid>http://kenji.blog/ar/p/%D8%B3%D8%A8%D9%84%D8%A7%D8%AA%D9%88%D9%86-2/</guid><description>&lt;img src="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.png" alt="Featured image of post سبلاتون 2" />&lt;h1 id="سبلاتون-2">سبلاتون 2
&lt;/h1>&lt;p>ربما تكون سبلاتون 2 هي اللعبة التي لعبتها لأطول فترة في حياتي.
لم ألعب وضع القصة تقريبًا، لكن التوفيق في المباريات عبر الإنترنت بنظام 4 ضد 4 مبني بشكل جيد جدًا، حيث أستطيع اللعب ضد أشخاص في نفس مستوى مهارتي،
مما يمنحها متعة لا تجعلك تشعر بالملل. من الممتع أيضًا قراءة تحركات الخصوم والحلفاء للتفكير في استراتيجيات للفوز.&lt;/p>
&lt;h1 id="الأسلحة">الأسلحة
&lt;/h1>&lt;p>الأسلحة التي أستخدمها غالبًا هي، بالترتيب: &amp;ldquo;Squeezer Foil&amp;rdquo;، &amp;ldquo;Splattershot Jr.&amp;quot;، &amp;ldquo;Splat Roller&amp;rdquo;، و&amp;quot;Flingza Roller Foil&amp;rdquo;.
&amp;ldquo;Splattershot Jr.&amp;rdquo; هو سلاح للمبتدئين، وكنت أستخدمه كثيرًا في البداية.&lt;/p>
&lt;p>نقاط الحبر لكل منها موضحة أدناه.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>السلاح&lt;/th>
&lt;th>نقاط الحبر&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Flingza Roller&lt;/td>
&lt;td>6,636,594p&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Splat Roller&lt;/td>
&lt;td>6,200,629p&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Splattershot Jr.&lt;/td>
&lt;td>4,211,759p&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Squeezer Foil&lt;/td>
&lt;td>744,678p&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Splattershot&lt;/td>
&lt;td>301,238p&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h1 id="عن-المستويات">عن المستويات
&lt;/h1>&lt;p>أشعر أنني أتنقل بين A+ و S+، وأستمر في حالة لا أستطيع فيها الصعود إلى قمة S+،
ولكنني أستمتع باللعب بدلاً من محاولة الصعود إلى القمة.
(إذا أصبحت في مرتبة عالية جدًا، سيصبح الخصوم أقوى وسيكون هناك توتر، مما يقلل من المتعة)&lt;/p>
&lt;h1 id="وقت-اللعب">وقت اللعب
&lt;/h1>&lt;p>لقد تجاوز وقت اللعب لدي 2500 ساعة.&lt;/p>
&lt;h1 id="أهدافي-المستقبلية">أهدافي المستقبلية
&lt;/h1>&lt;p>أريد الحفاظ على مستوى لعبي والاستمتاع، ولكنني أريد الوصول إلى الحد الأقصى للمال والعتاد.
منذ إصدار سبلاتون 3، زادت أوقات الانتظار أو أصبحت غير قادر على العثور على مباريات،
لذا أود أن أستمر في اللعب وأنا آمل ألا يقل عدد اللاعبين أكثر من ذلك.&lt;/p></description></item><item><title>حول جائزة Microsoft MVP (2023-2024)</title><link>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/</link><pubDate>Mon, 31 Jul 2023 19:15:14 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post حول جائزة Microsoft MVP (2023-2024)" />&lt;h1 id="حول-جائزة-microsoft-mvp-2023-2024">حول جائزة Microsoft MVP (2023-2024)
&lt;/h1>&lt;p>لقد حصلت مؤخرًا على جائزة Microsoft MVP (2023-2024).
هذا هو العام السابع على التوالي منذ عام 2017 الذي أحصل فيه على هذه الجائزة.&lt;/p>
&lt;p>الفئة التي فزت بها هي &lt;strong>Developer Technologies&lt;/strong> .&lt;/p>
&lt;p>بالنظر إلى أنشطتي السابقة، فقد قمت بما يلي:&lt;/p>
&lt;ul>
&lt;li>نشر الكود على &lt;a class="link" href="https://github.com/kenjinote" target="_blank" rel="noopener"
>GitHub&lt;/a>&lt;/li>
&lt;li>مشاركة المعلومات التقنية على المدونة و &lt;a class="link" href="https://twitter.com/kenjinote" target="_blank" rel="noopener"
>وسائل التواصل الاجتماعي (مثل Twitter)&lt;/a>&lt;/li>
&lt;li>النشر في &lt;a class="link" href="https://social.msdn.microsoft.com/Forums/ja-JP/home" target="_blank" rel="noopener"
>منتدى MSDN&lt;/a>&lt;/li>
&lt;li>تقديم ملاحظات حول منتجات مايكروسوفت&lt;/li>
&lt;/ul>
&lt;p>سأستمر في كتابة مقالات أفضل ومشاركة المعلومات في المستقبل.&lt;/p>
&lt;p>شكرا جزيلا لكم.&lt;/p></description></item><item><title>تاريخ الرياضيات</title><link>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/</link><pubDate>Sat, 22 Jul 2023 15:25:10 +0900</pubDate><guid>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/</guid><description>&lt;img src="http://kenji.blog/p/%E6%95%B0%E5%AD%A6%E3%81%AE%E6%AD%B4%E5%8F%B2/img.png" alt="Featured image of post تاريخ الرياضيات" />&lt;h3 id="مسائل-الإنشاء-الثلاث-في-اليونان-القديمة">مسائل الإنشاء الثلاث في اليونان القديمة
&lt;/h3>&lt;ol>
&lt;li>عند إعطاء دائرة، بناء مربع له نفس مساحة تلك الدائرة (مسألة تربيع الدائرة)&lt;/li>
&lt;li>عند تحديد زاوية اختيارية، تقسيمها إلى ثلاثة أقسام متساوية (مسألة تثليث الزاوية)&lt;/li>
&lt;li>عند إعطاء مكعب، بناء مكعب له ضعف حجم ذلك المكعب (مسألة مضاعفة المكعب)&lt;/li>
&lt;/ol>
&lt;h3 id="حلزون-أرخميدس">حلزون أرخميدس
&lt;/h3>&lt;p>على مستوى مستو، قم بتدوير نصف المستقيم OB حول نقطة ثابتة O بسرعة منتظمة. بافتراض أن الموضع الأولي هو OA،
تبدأ النقطة P في التحرك من O في نفس الوقت الذي تبدأ فيه في التحرك من OA، وتتحرك على طول OB بسرعة ثابتة، فإن الخط الذي ترسمه النقطة P
هو حلزون أرخميدس.&lt;/p>
&lt;h3 id="مبرهنة-بابوس">مبرهنة بابوس
&lt;/h3>&lt;ul>
&lt;li>الدُحروجة&lt;/li>
&lt;li>محارة نيكوميدس&lt;/li>
&lt;li>كيسويد ديوكليس&lt;/li>
&lt;li>طريقة المماس لفيرما&lt;/li>
&lt;li>طريقة الناظم لديكارت&lt;/li>
&lt;/ul>
&lt;h3 id="التسلسل-الزمني">التسلسل الزمني
&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>السنة&lt;/th>
&lt;th>الحدث&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>حوالي 3400 قبل الميلاد&lt;/td>
&lt;td>السومريون يستخدمون عملات طينية بديلة للحساب&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>حوالي 3000 قبل الميلاد&lt;/td>
&lt;td>ظهور رياضيات الهيروغليفية في مصر&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>حوالي 2800 قبل الميلاد&lt;/td>
&lt;td>حضارة وادي السند تستخدم أوزاناً ومقاييس تعتمد على النظام العشري&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>حوالي 2700 قبل الميلاد&lt;/td>
&lt;td>المصريون يستخدمون الحبال وثلاثيات فيثاغورس للتحقق من الزوايا&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>حوالي 2500 قبل الميلاد&lt;/td>
&lt;td>اكتشاف المعداد، وهو أداة تستخدم للحساب&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>حوالي 2500 قبل الميلاد&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="المراجع">المراجع
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://ar.wikipedia.org/wiki/%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" target="_blank" rel="noopener"
>تاريخ الرياضيات&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>توصية باستخدام كرة التتبع Deft Pro (M-DPT1MRBK)</title><link>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/</link><pubDate>Tue, 02 May 2023 23:28:33 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post توصية باستخدام كرة التتبع Deft Pro (M-DPT1MRBK)" />&lt;h1 id="حول-كرة-التتبع-deft-pro-m-dpt1mrbk-من-elecom">حول كرة التتبع Deft Pro M-DPT1MRBK من Elecom
&lt;/h1>&lt;p>لقد مر حوالي أسبوع منذ أن اشتريت كرة التتبع &amp;ldquo;Deft Pro M-DPT1MRBK&amp;rdquo; من Elecom ، لذا سأقوم بمراجعة تجربتي معها.&lt;/p>
&lt;p>&lt;strong>الميزات الرئيسية&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>عدد الأزرار كبير (8 أزرار)&lt;/li>
&lt;li>يمكن توصيله بـ 3 طرق: سلكي، مستقبل لاسلكي، وبلوتوث&lt;/li>
&lt;li>حجم الكرة كبير (قطر متوسط 44 ملم)&lt;/li>
&lt;li>سعر الشراء على أمازون: 7,012 ين (اعتبارًا من 2 مايو 2021)&lt;/li>
&lt;/ul>
&lt;h2 id="الإيجابيات">الإيجابيات
&lt;/h2>&lt;ul>
&lt;li>بالمقارنة مع الماوس، ليست هناك حاجة لتحريك المعصم، مما يقلل العبء على المعصم&lt;/li>
&lt;li>نظرًا لأن عدد الأزرار كبير، يمكنك تعيين وظائف مختلفة للأزرار
&lt;img src="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_1.png"
width="767"
height="686"
srcset="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_1_hu552d9af378dc908f7eb4fb5eb2e28a90_78909_480x0_resize_box_3.png 480w, 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_1_hu552d9af378dc908f7eb4fb5eb2e28a90_78909_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="111"
data-flex-basis="268px"
>
حاليًا أقوم بتعيينها كما هو موضح أعلاه. يمكنك أيضًا تغيير تعيينات الأزرار لكل تطبيق.
※ يتطلب تعيين الأزرار تثبيت برنامج مخصص.&lt;/li>
&lt;li>نظرًا لأن الكرة كبيرة، فمن السهل نسبيًا إجراء حركات دقيقة بين كرات التتبع&lt;/li>
&lt;/ul>
&lt;h2 id="السلبيات">السلبيات
&lt;/h2>&lt;ul>
&lt;li>يتراكم الغبار حول كرة التتبع، لذلك يجب إزالة الكرة وتنظيفها بانتظام (مرة واحدة كل بضعة أيام)&lt;/li>
&lt;li>نظرًا لأن الشعور التشغيلي يختلف عن الماوس (تحريك المؤشر بالسبابة والوسطى، وتشغيل عجلة الماوس بالإبهام)، يستغرق الأمر وقتًا للتعود عليه&lt;/li>
&lt;li>كتبت أعلاه أنه من السهل القيام بحركات دقيقة، لكن لا يزال من الصعب تحريك المؤشر بوحدة بكسل واحدة باستخدام كرة التتبع&lt;/li>
&lt;li>لا يمكن تشغيل العجلة أثناء الضغط على الزر الأيسر (على سبيل المثال، عند الرغبة في التكبير/التصغير أثناء تحديد نطاق في برنامج الرسام)&lt;/li>
&lt;/ul>
&lt;p>في الختام، أعتقد أنها من بين كرات التتبع الأغلى ثمناً، ولكن بشكل عام من السهل جدًا تشغيلها، وأعتقد أن العمل أصبح أكثر كفاءة.
آمل أن يكون هذا مفيدًا لأولئك الذين يفكرون في شرائها.&lt;/p></description></item><item><title>مثال باستخدام wxWidgets</title><link>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/</link><pubDate>Tue, 18 Apr 2023 00:18:22 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post مثال باستخدام wxWidgets" />&lt;h2 id="ما-هو-wxwidgets">ما هو wxWidgets
&lt;/h2>&lt;p>wxWidgets هي مكتبة واجهة مستخدم رسومية بلغة C++ تعمل على أنظمة أساسية مثل Windows و Mac و Linux و Android و iOS.&lt;/p>
&lt;h2 id="تثبيت-wxwidgets">تثبيت wxWidgets
&lt;/h2>&lt;ol>
&lt;li>افتح &lt;a class="link" href="https://www.wxwidgets.org/downloads/" target="_blank" rel="noopener"
>https://www.wxwidgets.org/downloads/&lt;/a> وقم بتنزيل &lt;code>Windows Installer&lt;/code>.&lt;/li>
&lt;li>قم بتشغيل &lt;code>wxMSW-3.2.2.1-Setup.exe&lt;/code> للتثبيت.&lt;/li>
&lt;li>من المجلد المثبت، افتح &amp;ldquo;C:\wxWidgets-3.2.2.1\build\msw\wx_vc17.sln&amp;rdquo;.&lt;/li>
&lt;li>بعد فتح &lt;code>wx_vc17.sln&lt;/code> ، حدد &lt;code>Build&lt;/code> &amp;gt; &lt;code>Batch Build&lt;/code>.&lt;/li>
&lt;li>انقر فوق الزر &lt;code>Select All&lt;/code> ثم انقر فوق الزر &lt;code>Rebuild&lt;/code>.&lt;/li>
&lt;li>بمجرد اكتمال البناء، أغلق Visual Studio مؤقتاً.&lt;/li>
&lt;/ol>
&lt;h2 id="إنشاء-مشروع-مثال">إنشاء مشروع مثال
&lt;/h2>&lt;ol>
&lt;li>افتح Visual Studio.&lt;/li>
&lt;li>حدد &lt;code>File&lt;/code> &amp;gt; &lt;code>New&lt;/code> &amp;gt; &lt;code>Project&lt;/code>.&lt;/li>
&lt;li>حدد &lt;code>Windows Desktop Application&lt;/code> (العلامات هي &lt;code>C++&lt;/code>، &lt;code>Windows&lt;/code>، &lt;code>Desktop&lt;/code>).&lt;/li>
&lt;li>أدخل &lt;code>wxWidgetsSample&lt;/code> في &lt;code>Project name&lt;/code>.&lt;/li>
&lt;li>انقر على &lt;code>Create&lt;/code>.&lt;/li>
&lt;li>انقر بزر الماوس الأيمن على &lt;code>wxWidgetsSample&lt;/code> وحدد &lt;code>Properties&lt;/code>.&lt;/li>
&lt;li>أضف &lt;code>C:\wxWidgets-3.2.2.1\include&lt;/code> و &lt;code>C:\wxWidgets-3.2.2.1\include\msvc&lt;/code> إلى &lt;code>Configuration Properties&lt;/code> &amp;gt; &lt;code>C/C++&lt;/code> &amp;gt; &lt;code>Additional Include Directories&lt;/code>.&lt;/li>
&lt;li>أضف &lt;code>C:\wxWidgets-3.2.2.1\lib\vc_x64_lib&lt;/code> إلى &lt;code>Configuration Properties&lt;/code> &amp;gt; &lt;code>Linker&lt;/code> &amp;gt; &lt;code>Additional Library Directories&lt;/code>.&lt;/li>
&lt;li>افتح &lt;code>wxWidgetsSample.cpp&lt;/code> واستبدله بالكود أدناه.&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;span class="lnt">36
&lt;/span>&lt;span class="lnt">37
&lt;/span>&lt;span class="lnt">38
&lt;/span>&lt;span class="lnt">39
&lt;/span>&lt;span class="lnt">40
&lt;/span>&lt;span class="lnt">41
&lt;/span>&lt;span class="lnt">42
&lt;/span>&lt;span class="lnt">43
&lt;/span>&lt;span class="lnt">44
&lt;/span>&lt;span class="lnt">45
&lt;/span>&lt;span class="lnt">46
&lt;/span>&lt;span class="lnt">47
&lt;/span>&lt;span class="lnt">48
&lt;/span>&lt;span class="lnt">49
&lt;/span>&lt;span class="lnt">50
&lt;/span>&lt;span class="lnt">51
&lt;/span>&lt;span class="lnt">52
&lt;/span>&lt;span class="lnt">53
&lt;/span>&lt;span class="lnt">54
&lt;/span>&lt;span class="lnt">55
&lt;/span>&lt;span class="lnt">56
&lt;/span>&lt;span class="lnt">57
&lt;/span>&lt;span class="lnt">58
&lt;/span>&lt;span class="lnt">59
&lt;/span>&lt;span class="lnt">60
&lt;/span>&lt;span class="lnt">61
&lt;/span>&lt;span class="lnt">62
&lt;/span>&lt;span class="lnt">63
&lt;/span>&lt;span class="lnt">64
&lt;/span>&lt;span class="lnt">65
&lt;/span>&lt;span class="lnt">66
&lt;/span>&lt;span class="lnt">67
&lt;/span>&lt;span class="lnt">68
&lt;/span>&lt;span class="lnt">69
&lt;/span>&lt;span class="lnt">70
&lt;/span>&lt;span class="lnt">71
&lt;/span>&lt;span class="lnt">72
&lt;/span>&lt;span class="lnt">73
&lt;/span>&lt;span class="lnt">74
&lt;/span>&lt;span class="lnt">75
&lt;/span>&lt;span class="lnt">76
&lt;/span>&lt;span class="lnt">77
&lt;/span>&lt;span class="lnt">78
&lt;/span>&lt;span class="lnt">79
&lt;/span>&lt;span class="lnt">80
&lt;/span>&lt;span class="lnt">81
&lt;/span>&lt;span class="lnt">82
&lt;/span>&lt;span class="lnt">83
&lt;/span>&lt;span class="lnt">84
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#pragma comment(linker,&amp;#34;\&amp;#34;/manifestdependency:type=&amp;#39;win32&amp;#39; name=&amp;#39;Microsoft.Windows.Common-Controls&amp;#39; version=&amp;#39;6.0.0.0&amp;#39; processorArchitecture=&amp;#39;*&amp;#39; publicKeyToken=&amp;#39;6595b64144ccf1df&amp;#39; language=&amp;#39;*&amp;#39;\&amp;#34;&amp;#34;)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;wx/wxprec.h&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#ifndef WX_PRECOMP
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;wx/wx.h&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#endif
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">MyApp&lt;/span> &lt;span class="o">:&lt;/span> &lt;span class="k">public&lt;/span> &lt;span class="n">wxApp&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">public&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">virtual&lt;/span> &lt;span class="kt">bool&lt;/span> &lt;span class="n">OnInit&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">class&lt;/span> &lt;span class="nc">MyFrame&lt;/span> &lt;span class="o">:&lt;/span> &lt;span class="k">public&lt;/span> &lt;span class="n">wxFrame&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">public&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">MyFrame&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">private&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">void&lt;/span> &lt;span class="n">OnHello&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">wxCommandEvent&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">event&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">void&lt;/span> &lt;span class="nf">OnExit&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">wxCommandEvent&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">event&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">void&lt;/span> &lt;span class="nf">OnAbout&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">wxCommandEvent&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">event&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">enum&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ID_Hello&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">wxIMPLEMENT_APP&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">MyApp&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">bool&lt;/span> &lt;span class="n">MyApp&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">OnInit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">MyFrame&lt;/span>&lt;span class="o">*&lt;/span> &lt;span class="n">frame&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="k">new&lt;/span> &lt;span class="n">MyFrame&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">frame&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">Show&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">true&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="nb">true&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">MyFrame&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">MyFrame&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">:&lt;/span> &lt;span class="n">wxFrame&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">NULL&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">wxID_ANY&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;Hello World&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">wxMenu&lt;/span>&lt;span class="o">*&lt;/span> &lt;span class="n">menuFile&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="k">new&lt;/span> &lt;span class="n">wxMenu&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">menuFile&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">Append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ID_Hello&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;&amp;amp;Hello...&lt;/span>&lt;span class="se">\t&lt;/span>&lt;span class="s">Ctrl-H&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s">&amp;#34;Help string shown in status bar for this menu item&amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">menuFile&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">AppendSeparator&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">menuFile&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">Append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">wxID_EXIT&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">wxMenu&lt;/span>&lt;span class="o">*&lt;/span> &lt;span class="n">menuHelp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="k">new&lt;/span> &lt;span class="n">wxMenu&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">menuHelp&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">Append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">wxID_ABOUT&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">wxMenuBar&lt;/span>&lt;span class="o">*&lt;/span> &lt;span class="n">menuBar&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="k">new&lt;/span> &lt;span class="n">wxMenuBar&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">menuBar&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">Append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">menuFile&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;&amp;amp;File&amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">menuBar&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">Append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">menuHelp&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;&amp;amp;Help&amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">SetMenuBar&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">menuBar&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">wxButton&lt;/span>&lt;span class="o">*&lt;/span> &lt;span class="n">button1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="k">new&lt;/span> &lt;span class="n">wxButton&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">this&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ID_Hello&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">_&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Hello&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">wxPoint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">20&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">20&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">wxSize&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">100&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">32&lt;/span>&lt;span class="p">));&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Connect&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ID_Hello&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">wxEVT_COMMAND_BUTTON_CLICKED&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">wxCommandEventHandler&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">MyFrame&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">OnHello&lt;/span>&lt;span class="p">));&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">wxButton&lt;/span>&lt;span class="o">*&lt;/span> &lt;span class="n">button2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="k">new&lt;/span> &lt;span class="n">wxButton&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">this&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">wxID_ABOUT&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">_&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;About&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">wxPoint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">20&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">60&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">wxSize&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">100&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">32&lt;/span>&lt;span class="p">));&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Connect&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">wxID_ABOUT&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">wxEVT_COMMAND_BUTTON_CLICKED&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">wxCommandEventHandler&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">MyFrame&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">OnAbout&lt;/span>&lt;span class="p">));&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">wxButton&lt;/span>&lt;span class="o">*&lt;/span> &lt;span class="n">button3&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="k">new&lt;/span> &lt;span class="n">wxButton&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">this&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">wxID_EXIT&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">_&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Exit&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">wxPoint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">20&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">100&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">wxSize&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">100&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">32&lt;/span>&lt;span class="p">));&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Connect&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">wxID_EXIT&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">wxEVT_COMMAND_BUTTON_CLICKED&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">wxCommandEventHandler&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">MyFrame&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">OnExit&lt;/span>&lt;span class="p">));&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">CreateStatusBar&lt;/span>&lt;span class="p">();&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">SetStatusText&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Welcome to wxWidgets!&amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Bind&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">wxEVT_MENU&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">MyFrame&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">OnHello&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="k">this&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ID_Hello&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Bind&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">wxEVT_MENU&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">MyFrame&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">OnAbout&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="k">this&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">wxID_ABOUT&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Bind&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">wxEVT_MENU&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">MyFrame&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">OnExit&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="k">this&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">wxID_EXIT&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">void&lt;/span> &lt;span class="n">MyFrame&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">OnExit&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">wxCommandEvent&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">event&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Close&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">true&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">void&lt;/span> &lt;span class="n">MyFrame&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">OnAbout&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">wxCommandEvent&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">event&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">wxMessageBox&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;This is a wxWidgets&amp;#39; Hello world sample&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s">&amp;#34;About Hello World&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">wxOK&lt;/span> &lt;span class="o">|&lt;/span> &lt;span class="n">wxICON_INFORMATION&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">void&lt;/span> &lt;span class="n">MyFrame&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">OnHello&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">wxCommandEvent&lt;/span>&lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">event&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">wxLogMessage&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Hello world from wxWidgets!&amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="10">
&lt;li>عند البناء والتشغيل، ستفتح نافذة مثل هذه.&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="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_1.png"
width="386"
height="243"
srcset="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_1_hu5f63ad1505c8497f33a78280f704873d_5545_480x0_resize_box_3.png 480w, 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_1_hu5f63ad1505c8497f33a78280f704873d_5545_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="158"
data-flex-basis="381px"
>&lt;/p>
&lt;h2 id="مراجع">مراجع
&lt;/h2>&lt;p>يتم توفير مشروع المثال أدناه.
&lt;a class="link" href="https://github.com/kenjinote/wxWidgetsSample" target="_blank" rel="noopener"
>wxWidgetsSample&lt;/a>&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://www.wxwidgets.org" target="_blank" rel="noopener"
>الموقع الرسمي&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://ken-ohwada.hatenadiary.org/entry/2022/07/14/165213" target="_blank" rel="noopener"
>لعبة باستخدام C++ و wxWidgets&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>هذا كل شيء.&lt;/p></description></item><item><title>قائمة مهام الأفلام</title><link>http://kenji.blog/ar/p/%E6%98%A0%E7%94%BBtodo%E3%83%AA%E3%82%B9%E3%83%88/</link><pubDate>Mon, 17 Apr 2023 00:34:13 +0900</pubDate><guid>http://kenji.blog/ar/p/%E6%98%A0%E7%94%BBtodo%E3%83%AA%E3%82%B9%E3%83%88/</guid><description>&lt;img src="http://kenji.blog/p/%E6%98%A0%E7%94%BBtodo%E3%83%AA%E3%82%B9%E3%83%88/image.jpg" alt="Featured image of post قائمة مهام الأفلام" />&lt;h1 id="الأفلام-التي-أريد-مشاهدتها-تحقق-منها-عند-مشاهدتها">الأفلام التي أريد مشاهدتها (تحقق منها عند مشاهدتها)
&lt;/h1>&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> ماكيا: عندما تزهر زهرة الوعد&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> أستاذ ومعادلته المحبوبة&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> حروب الصيف&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> أرقام مخفية&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> غود ويل هانتينغ&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> عقل جميل&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> نظرية كل شيء&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> الرجل الذي عرف اللانهاية&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> هوكينغ (بينيديكت كامبرباتش)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> تينتشي: الفلكي الساموراي&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> باي&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> 21&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> آي كيو (I.Q.)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> إثبات (Proof)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> 3 بلهاء&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> بوفالو &amp;lsquo;66&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> برتقالة آلية&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> باك درافت&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> طفل أساكوسا&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> توب غان&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> ذا ماتريكس: ريزريكشنز&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> أنا أسطورة&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> شيفرة دا فينشي&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> الشبكة الاجتماعية&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> شتاينز;غيت (STEINS;GATE)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> بلانيتيس (Planetes)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> جاذبية&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> فايوليت إيفرغاردن&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> سايكو-باس&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> قاتل الشياطين&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> الأميرة مونونوكي&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> ويني (Winny)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> بؤرة الصفر&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> زوتوبيا&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> اسمك.&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> أغيّر الطقس معك&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> العودة إلى المستقبل (1,2,3)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> شين غودزيلا&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> شين ألترامان&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> شين كامن رايدر&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> سوزومي&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> ذا فيرست سلام دانك&lt;/li>
&lt;/ul></description></item><item><title>قوالب صفحات ويب رائعة (html5up)</title><link>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/</link><pubDate>Mon, 17 Apr 2023 00:26:55 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post قوالب صفحات ويب رائعة (html5up)" />&lt;p>قوالب صفحات ويب رائعة&lt;/p>
&lt;ul>
&lt;li>html5up
&lt;a class="link" href="https://html5up.net/" target="_blank" rel="noopener"
>https://html5up.net/&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>اعتقدت أنني أود تجربتها، لذا فهذه مذكرة.&lt;/p></description></item><item><title>كيفية إخراج الوقت الحالي بتنسيق ISO8601 في C++</title><link>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-/</link><pubDate>Sat, 15 Apr 2023 19:35:27 +0900</pubDate><guid>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-/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية إخراج الوقت الحالي بتنسيق ISO8601 في C++" />&lt;h3 id="المتطلبات-الأساسية">المتطلبات الأساسية
&lt;/h3>&lt;ul>
&lt;li>معيار ISO C++ 20 (/std:c++20)&lt;/li>
&lt;/ul>
&lt;h3 id="الشفرة">الشفرة
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-c++" data-lang="c++">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;chrono&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#include&lt;/span> &lt;span class="cpf">&amp;lt;format&amp;gt;&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">string&lt;/span> &lt;span class="n">datetime&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">std&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">format&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;{:%FT%TZ}&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">system_clock&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="n">now&lt;/span>&lt;span class="p">());&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هذه كانت طريقة إخراج الوقت الحالي بتنسيق ISO8601 في C++.&lt;/p>
&lt;h3 id="مراجع">مراجع
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://eel.is/c&amp;#43;&amp;#43;draft/time.format" target="_blank" rel="noopener"
>std::format&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كيفية إنشاء اختصار لإيقاف تشغيل ويندوز</title><link>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/</link><pubDate>Tue, 11 Apr 2023 17:03:32 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية إنشاء اختصار لإيقاف تشغيل ويندوز" />&lt;p>أقدم لكم كيفية إنشاء اختصار لإيقاف تشغيل ويندوز.&lt;/p>
&lt;p>من المريح جداً وضع هذا الاختصار على سطح المكتب والنقر عليه نقراً مزدوجاً لإيقاف التشغيل.&lt;/p>
&lt;h2 id="طريقة-الإنشاء">طريقة الإنشاء
&lt;/h2>&lt;h4 id="1-انقر-بزر-الماوس-الأيمن-على-سطح-المكتب-وحدد-جديد--اختصار">1. انقر بزر الماوس الأيمن على سطح المكتب وحدد &lt;code>جديد&lt;/code> &amp;gt; &lt;code>اختصار&lt;/code>
&lt;/h4>&lt;p>&lt;img src="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_1.png"
width="568"
height="601"
srcset="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_1_hu34071110105a0a7e05ea19b3faf627f0_58330_480x0_resize_box_3.png 480w, 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_1_hu34071110105a0a7e05ea19b3faf627f0_58330_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="94"
data-flex-basis="226px"
>&lt;/p>
&lt;h4 id="2-ستظهر-شاشة-إنشاء-الاختصار-أدخل-shutdownexe--s--f--t-0-ثم-انقر-على-التالي">2. ستظهر شاشة إنشاء الاختصار، أدخل &lt;code>shutdown.exe -s -f -t 0&lt;/code> ثم انقر على &lt;code>التالي&lt;/code>
&lt;/h4>&lt;p>&lt;img src="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_2.png"
width="614"
height="454"
srcset="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_2_hu0fdb01c392b6fac60e6bb98f573f8713_17593_480x0_resize_box_3.png 480w, 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_2_hu0fdb01c392b6fac60e6bb98f573f8713_17593_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="135"
data-flex-basis="324px"
>&lt;/p>
&lt;h4 id="3-أدخل-اسم-الاختصار-إيقاف-التشغيل-ثم-انقر-على-إنهاء">3. أدخل اسم الاختصار &lt;code>إيقاف التشغيل&lt;/code> ثم انقر على &lt;code>إنهاء&lt;/code>
&lt;/h4>&lt;p>&lt;img src="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_3.png"
width="614"
height="454"
srcset="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_3_hub638dd79dd16a877bb5fea8c6f2bf142_11979_480x0_resize_box_3.png 480w, 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_3_hub638dd79dd16a877bb5fea8c6f2bf142_11979_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="135"
data-flex-basis="324px"
>&lt;/p>
&lt;h4 id="4-قم-بتغيير-أيقونة-الاختصار-الذي-تم-إنشاؤه">4. قم بتغيير أيقونة الاختصار الذي تم إنشاؤه
&lt;/h4>&lt;p>&lt;img src="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_4.png"
width="419"
height="469"
srcset="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_4_hua5d649daacdf0dbdf4f93bd3239c3858_27168_480x0_resize_box_3.png 480w, 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_4_hua5d649daacdf0dbdf4f93bd3239c3858_27168_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_4.png"
class="gallery-image"
data-flex-grow="89"
data-flex-basis="214px"
>&lt;/p>
&lt;p>انقر بزر الماوس الأيمن على الاختصار الذي تم إنشاؤه وحدد &lt;code>خصائص&lt;/code>&lt;/p>
&lt;p>&lt;img src="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_5.png"
width="432"
height="600"
srcset="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_5_hu313a9d69197efb75a0725e0e6793e592_24420_480x0_resize_box_3.png 480w, 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_5_hu313a9d69197efb75a0725e0e6793e592_24420_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_5.png"
class="gallery-image"
data-flex-grow="72"
data-flex-basis="172px"
>&lt;/p>
&lt;p>انقر على &lt;code>تغيير الأيقونة&lt;/code>&lt;/p>
&lt;p>&lt;img src="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_6.png"
width="340"
height="420"
srcset="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_6_hud40ff43810cbe8f07802320fab97e1e8_45995_480x0_resize_box_3.png 480w, 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_6_hud40ff43810cbe8f07802320fab97e1e8_45995_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_6.png"
class="gallery-image"
data-flex-grow="80"
data-flex-basis="194px"
>&lt;/p>
&lt;p>حدد الأيقونة المربعة الحمراء وانقر على &lt;code>موافق&lt;/code>، ثم انقر على &lt;code>موافق&lt;/code> مرة أخرى لإغلاق نافذة الخصائص.&lt;/p>
&lt;p>هذا كل شيء.&lt;/p>
&lt;p>&lt;img src="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.png"
width="126"
height="122"
srcset="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_480x0_resize_box_3.png 480w, 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_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="103"
data-flex-basis="247px"
>&lt;/p>
&lt;p>سيؤدي النقر المزدوج على الاختصار الذي تم إنشاؤه إلى إيقاف تشغيل ويندوز.&lt;/p>
&lt;p>ملاحظة: لن يتم عرض مربع حوار تأكيد إيقاف التشغيل.&lt;/p></description></item><item><title>كيفية تطبيق الفسيفساء على جزء معين من الصورة في paint.net</title><link>http://kenji.blog/ar/p/how-to-apply-mosaic-to-a-specific-part-of-an-image-in-paint-net/</link><pubDate>Tue, 11 Apr 2023 16:33:10 +0900</pubDate><guid>http://kenji.blog/ar/p/how-to-apply-mosaic-to-a-specific-part-of-an-image-in-paint-net/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية تطبيق الفسيفساء على جزء معين من الصورة في paint.net" />&lt;p>في هذه المقالة، سنشرح كيفية تطبيق الفسيفساء على جزء معين من الصورة باستخدام paint.net.&lt;/p>
&lt;p>عند تحميل الصور على الإنترنت، قد ترغب في بعض الأحيان في إخفاء أجزاء معينة بوضع فسيفساء عليها، وباستخدام paint.net يمكنك تعديل الصور بسهولة وسرعة.&lt;/p>
&lt;h2 id="الخطوات">الخطوات
&lt;/h2>&lt;h4 id="1-افتح-الصورة-التي-تريد-تعديلها-في-paintnet">1. افتح الصورة التي تريد تعديلها في paint.net
&lt;/h4>&lt;h4 id="2-استخدم-أداة-التحديد-لاختيار-الجزء-الذي-تريد-تغطيته-بالفسيفساء-يمكن-التحديد-المتعدد">2. استخدم أداة التحديد لاختيار الجزء الذي تريد تغطيته بالفسيفساء (يمكن التحديد المتعدد)
&lt;/h4>&lt;p>&lt;img src="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_2.png"
width="380"
height="344"
srcset="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_2_hub2f9dbafba1021c88614fe95fc580d3f_11592_480x0_resize_box_3.png 480w, 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_2_hub2f9dbafba1021c88614fe95fc580d3f_11592_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="110"
data-flex-basis="265px"
>&lt;/p>
&lt;h4 id="3-اختر-من-القائمة-تأثيرات-effects--تشويه-distort--فسيفساء-pixelate">3. اختر من القائمة: تأثيرات (Effects) &amp;gt; تشويه (Distort) &amp;gt; فسيفساء (Pixelate)
&lt;/h4>&lt;p>&lt;img src="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_1.png"
width="347"
height="197"
srcset="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_1_hu9217e3f3ef9abeb3d05f81497cc9e2c6_7552_480x0_resize_box_3.png 480w, 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_1_hu9217e3f3ef9abeb3d05f81497cc9e2c6_7552_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="176"
data-flex-basis="422px"
>&lt;/p>
&lt;ul>
&lt;li>يمكنك ضبط حجم الخلية للتحكم في خشونة الفسيفساء. كلما زادت القيمة، زادت درجة الإخفاء.&lt;/li>
&lt;li>[تصغير] اختر Bilinear (صقل متعدد العينات)&lt;/li>
&lt;li>[تكبير] اختر Nearest Neighbor (أقرب جار)&lt;/li>
&lt;/ul>
&lt;p>انقر على OK لإغلاق النافذة.&lt;/p>
&lt;h4 id="4-سيتم-تطبيق-الفسيفساء-قم-بحفظ-الصورة-بعد-ذلك">4. سيتم تطبيق الفسيفساء، قم بحفظ الصورة بعد ذلك.
&lt;/h4>&lt;p>&lt;img src="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.png"
width="380"
height="344"
srcset="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_480x0_resize_box_3.png 480w, 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_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="110"
data-flex-basis="265px"
>&lt;/p>
&lt;p>هذا كل شيء.&lt;/p></description></item><item><title>كيفية إضافة إطار للصور باستخدام paint.net</title><link>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/</link><pubDate>Tue, 11 Apr 2023 14:31:59 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية إضافة إطار للصور باستخدام paint.net" />&lt;p>سأوضح لك كيفية إضافة إطار للصور باستخدام paint.net.&lt;/p>
&lt;h2 id="الخطوات">الخطوات
&lt;/h2>&lt;h4 id="1-افتح-الصورة-التي-تريد-إضافة-إطار-لها-في-paintnet">1. افتح الصورة التي تريد إضافة إطار لها في paint.net
&lt;/h4>&lt;h4 id="2-قم-بتعيين-اللون-الثانوي-هذا-سيكون-لون-الإطار">2. قم بتعيين اللون الثانوي (هذا سيكون لون الإطار)
&lt;/h4>&lt;p>&lt;img src="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.png"
width="211"
height="249"
srcset="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_hua62af0f7d67e0ed0c246e20a82fe1998_44893_480x0_resize_box_3.png 480w, 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_hua62af0f7d67e0ed0c246e20a82fe1998_44893_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="84"
data-flex-basis="203px"
>&lt;/p>
&lt;p>إذا لم تكن لوحة الألوان معروضة، فاضغط على مفتاح &lt;code>F8&lt;/code> على لوحة المفاتيح.&lt;/p>
&lt;p>لتعيينه إلى اللون الأسود، انقر فوق &lt;img src="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_1.png"
width="15"
height="13"
srcset="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_1_huaca51541d504c6afa3b8c1f00eff82f6_257_480x0_resize_box_3.png 480w, 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_1_huaca51541d504c6afa3b8c1f00eff82f6_257_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="115"
data-flex-basis="276px"
>.&lt;/p>
&lt;h4 id="3-القائمة--الصورة--حدد-تغيير-حجم-القماش">3. القائمة &amp;gt; الصورة &amp;gt; حدد تغيير حجم القماش
&lt;/h4>&lt;p>&lt;img src="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_2.png"
width="277"
height="467"
srcset="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_2_huc4c336e94d4deff61f9c52eb8a834089_23405_480x0_resize_box_3.png 480w, 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_2_huc4c336e94d4deff61f9c52eb8a834089_23405_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="59"
data-flex-basis="142px"
>&lt;/p>
&lt;p>قم بزيادة العرض والارتفاع بمقدار 2 بكسل لكل منهما. زيادة بمقدار 2 بكسل تعني أن الإطار سيكون 1 بكسل.
إذا كنت تريد أن يكون الإطار 5 بكسل، فقم بزيادة العرض والارتفاع بمقدار 10 بكسل لكل منهما.&lt;/p>
&lt;p>حدد المرساة لتكون &amp;ldquo;الوسط&amp;rdquo;، ثم انقر فوق موافق.&lt;/p>
&lt;h4 id="4-سيتم-إضافة-إطار-للصورة-لذا-قم-بحفظ-الصورة">4. سيتم إضافة إطار للصورة، لذا قم بحفظ الصورة.
&lt;/h4>&lt;p>هذا كل شيء.&lt;/p></description></item><item><title>كيفية الحصول على ترتيب الصفحات الشائعة من Google Analytics ووضعه</title><link>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/</link><pubDate>Mon, 10 Apr 2023 20:26:57 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية الحصول على ترتيب الصفحات الشائعة من Google Analytics ووضعه" />&lt;h2 id="مقدمة">مقدمة
&lt;/h2>&lt;p>باستخدام خدمة تسمى &lt;strong>Ranklet&lt;/strong> ، يمكنك بسهولة الحصول على ترتيب الصفحات الشائعة من Google Analytics ووضعه.&lt;/p>
&lt;p>في هذه المقالة، سأوضح لك كيفية وضعه في مدونة HUGO.&lt;/p>
&lt;h2 id="صورة-للعمل">صورة للعمل
&lt;/h2>&lt;p>&lt;img src="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_1.png"
width="769"
height="759"
srcset="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_1_hu717de7196f67be0249dafd2187915cbc_172896_480x0_resize_box_3.png 480w, 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_1_hu717de7196f67be0249dafd2187915cbc_172896_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="101"
data-flex-basis="243px"
>&lt;/p>
&lt;h2 id="التحضير">التحضير
&lt;/h2>&lt;ul>
&lt;li>يجب إعداد Google Analytics في الموقع&lt;/li>
&lt;/ul>
&lt;h2 id="الخطوات">الخطوات
&lt;/h2>&lt;ol>
&lt;li>قم بالوصول إلى &lt;strong>Ranklet&lt;/strong>&lt;/li>
&lt;li>انقر فوق &lt;strong>Sign in with Google&lt;/strong> لتسجيل الدخول بحساب Google (يجب أن يكون مرتبطًا بحساب Google Analytics)
&lt;img src="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_2.png"
width="478"
height="834"
srcset="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_2_hufd6a9cea0728a6881e82fafb17789865_36794_480x0_resize_box_3.png 480w, 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_2_hufd6a9cea0728a6881e82fafb17789865_36794_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="57"
data-flex-basis="137px"
>&lt;/li>
&lt;/ol>
&lt;p>انقر فوق &lt;strong>السماح&lt;/strong>&lt;/p>
&lt;ol start="3">
&lt;li>قم بتعيين المعلومات الأساسية&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="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_3.png"
width="669"
height="849"
srcset="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_3_hu8c23b62b71c084f37537f97908add2df_53340_480x0_resize_box_3.png 480w, 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_3_hu8c23b62b71c084f37537f97908add2df_53340_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="78"
data-flex-basis="189px"
>
لقد قمت بإعداده كما هو موضح أعلاه.&lt;/p>
&lt;ul>
&lt;li>في &lt;strong>Google Analytics View&lt;/strong> حدد العرض الذي تريد الحصول على الترتيب له.&lt;/li>
&lt;/ul>
&lt;ol start="4">
&lt;li>قم بتعيين استبدال النص&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="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_4.png"
width="663"
height="359"
srcset="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_4_hu31425455692dc059183478d4c88b4e60_14253_480x0_resize_box_3.png 480w, 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_4_hu31425455692dc059183478d4c88b4e60_14253_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_4.png"
class="gallery-image"
data-flex-grow="184"
data-flex-basis="443px"
>
لقد قمت بإعداده كما هو موضح أعلاه.
تم تعيين هذا لإزالة &lt;code> | kenji.blog&lt;/code> من عنوان الصفحة.&lt;/p>
&lt;ol start="5">
&lt;li>قم بتعيين القالب&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>HTML (تم إخفاء أرقام الترتيب)&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">&amp;lt;div class=&amp;#34;ranklet ranklet-reset&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;table class=&amp;#34;ranklet-table&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;tbody class=&amp;#34;ranklet-pages&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{#context.pages}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;tr class=&amp;#34;ranklet-page&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;td class=&amp;#34;ranklet-image&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{#image}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;a href=&amp;#34;{{url}}&amp;#34; class=&amp;#34;ranklet-link&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;img class=&amp;#34;ranklet-img&amp;#34; src=&amp;#34;{{image}}&amp;#34; /&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;/a&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{/image}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;/td&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;td class=&amp;#34;ranklet-meta&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;div class=&amp;#34;ranklet-title&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;a href=&amp;#34;{{url}}&amp;#34; class=&amp;#34;ranklet-link&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{title}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;/a&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;/div&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{#description}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;div class=&amp;#34;ranklet-description&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;a href=&amp;#34;{{url}}&amp;#34; class=&amp;#34;ranklet-link&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{description}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;/a&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;/div&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{/description}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;/td&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;/tr&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{/context.pages}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;/tbody&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;lt;/table&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;lt;/div&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ul>
&lt;li>CSS (تم تغيير حجم الخط، وسيتم عرض الوصف في 3 أسطر)&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;span class="lnt">36
&lt;/span>&lt;span class="lnt">37
&lt;/span>&lt;span class="lnt">38
&lt;/span>&lt;span class="lnt">39
&lt;/span>&lt;span class="lnt">40
&lt;/span>&lt;span class="lnt">41
&lt;/span>&lt;span class="lnt">42
&lt;/span>&lt;span class="lnt">43
&lt;/span>&lt;span class="lnt">44
&lt;/span>&lt;span class="lnt">45
&lt;/span>&lt;span class="lnt">46
&lt;/span>&lt;span class="lnt">47
&lt;/span>&lt;span class="lnt">48
&lt;/span>&lt;span class="lnt">49
&lt;/span>&lt;span class="lnt">50
&lt;/span>&lt;span class="lnt">51
&lt;/span>&lt;span class="lnt">52
&lt;/span>&lt;span class="lnt">53
&lt;/span>&lt;span class="lnt">54
&lt;/span>&lt;span class="lnt">55
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">#ranklet-{{context.id}} {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> .ranklet-reset { // リセット
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> table, tr, td, div, span {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> margin: 0;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> padding: 0;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> border: 0;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> font-size: 100%;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> font: inherit;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> vertical-align: baseline;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> line-height: 1;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> box-sizing: border-box;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> .ranklet-table {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> border-collapse: separate;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> border-spacing: 8px 24px;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> width: 100%;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> word-break: break-all;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> td {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> vertical-align: middle;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> .ranklet-rank {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> text-align: center;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> font-size: 120%;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> .ranklet-image {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> text-align: center;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> img {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> max-width: 128px;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> max-height: 128px;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> .ranklet-meta {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> .ranklet-title {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> font-size: 20px;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> line-height: 125%;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> .ranklet-description {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> font-size: 16px;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> margin-top: 8px;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> line-height: 125%;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> display: -webkit-box;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> overflow: hidden;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -webkit-box-orient: vertical;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -webkit-line-clamp: 3; /* 行数 */
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ul>
&lt;li>لم يتم تغيير JavaScript&lt;/li>
&lt;/ul>
&lt;ol start="6">
&lt;li>انسخ HTML من النشر على الموقع&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="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_5.png"
width="1136"
height="210"
srcset="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_5_hu69f0184a74d22d1d54f42ee4dc3de643_22304_480x0_resize_box_3.png 480w, 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_5_hu69f0184a74d22d1d54f42ee4dc3de643_22304_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_5.png"
class="gallery-image"
data-flex-grow="540"
data-flex-basis="1298px"
>&lt;/p>
&lt;p>انسخ HTML المعروض&lt;/p>
&lt;ol start="7">
&lt;li>الصقه في قالب HUGO&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>قم بإنشاء &lt;code>layouts/partials/ranklet.html&lt;/code> والصق HTML المنسوخ&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">&amp;lt;div id=&amp;#34;ranklet-11958&amp;#34;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;script src=&amp;#34;//widget.ranklet.com/v1/ranklet/s3/widgets/11958/widget.js&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ul>
&lt;li>الصق الرمز أدناه في السطر الذي يسبق &lt;code>&amp;lt;/footer&amp;gt;&lt;/code> في &lt;code>layouts/_default/single.html&lt;/code>&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{{- partial &amp;#34;ranklet.html&amp;#34; . }}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هذا كل شيء. سيتم عرض الترتيب في أسفل هذه الصفحة كما هو موضح أدناه.&lt;/p></description></item><item><title>【حسب اللغة】ملخص بيئات تنفيذ الأكواد عبر الإنترنت</title><link>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/</link><pubDate>Sun, 09 Apr 2023 14:01:00 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post 【حسب اللغة】ملخص بيئات تنفيذ الأكواد عبر الإنترنت" />&lt;h2 id="python">Python
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://colab.research.google.com/#create=true" target="_blank" rel="noopener"
>Google Colaboratory&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>بيئة Google Colaboratory هي بيئة لتنفيذ Python يمكن تشغيلها عبر الإنترنت.&lt;/p>
&lt;ul>
&lt;li>يمكن أيضاً استخدام GPU.&lt;/li>
&lt;li>باستخدام دفاتر Colab، يمكنك كتابة كود قابل للتنفيذ ونص غني (مثل الصور و HTML و LaTeX وما إلى ذلك) في مستند واحد.&lt;/li>
&lt;/ul>
&lt;p>وهي مبنية على Jupyter Notebook.&lt;/p>
&lt;h2 id="rust">Rust
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://play.rust-lang.org/?version=stable&amp;amp;mode=debug&amp;amp;edition=2021" target="_blank" rel="noopener"
>Rust Playground&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="javascript">JavaScript
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://playcode.io/" target="_blank" rel="noopener"
>Javascript Playground&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="java">Java
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://paiza.io/ja/projects/new?language=java" target="_blank" rel="noopener"
>paiza.IO Online Java compiler&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="haskell">Haskell
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://play.haskell.org/" target="_blank" rel="noopener"
>Haskell Playground&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="swift">Swift
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://online.swiftplayground.run/" target="_blank" rel="noopener"
>Online Swift Playground&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="c">C++
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://www.onlinegdb.com/online_c&amp;#43;&amp;#43;_compiler" target="_blank" rel="noopener"
>C++ 14&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="أخرى">أخرى
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://aws.amazon.com/jp/cloud9/" target="_blank" rel="noopener"
>AWS Cloud9&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>بيئة تطوير متكاملة عبر الإنترنت تقدمها Amazon AWS. تأتي مع أدوات مجمعة مسبقاً لأكثر من 40 لغة برمجة مثل Node.js و JavaScript و Python و PHP و Ruby و Go و C++ وغيرها.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://vscode.dev/" target="_blank" rel="noopener"
>Visual Studio Code for the Web&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>بيئة تطوير عبر الإنترنت تقدمها Microsoft. ومع ذلك، لا يمكن تنفيذ أو تصحيح اللغات التي تتطلب تجميعاً (compile).&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://paiza.io/projects/CGAcQLfW-IOXYy8Dq2OHBw?locale=ja-jp" target="_blank" rel="noopener"
>paiza.IO&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>بيئة تنفيذ عبر الإنترنت تدعم 24 لغة رئيسية مثل C و C++ و Java و Ruby و Python و PHP و Perl وغيرها.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://codepen.io/" target="_blank" rel="noopener"
>CodePen&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>بيئة تنفيذ عبر الإنترنت لـ HTML و CSS و JavaScript.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://codeanywhere.com/" target="_blank" rel="noopener"
>codeanywhere&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>بيئة تطوير متكاملة (IDE) عبر الإنترنت. يمكنك مشاركة الكود والدردشة.&lt;/p></description></item><item><title>كيفية سرد الأعداد الأولية حتى 1000 باستخدام غربال إراتوستينس</title><link>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/</link><pubDate>Sun, 09 Apr 2023 12:54:24 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية سرد الأعداد الأولية حتى 1000 باستخدام غربال إراتوستينس" />&lt;h2 id="ما-هو-غربال-إراتوستينس">ما هو غربال إراتوستينس
&lt;/h2>&lt;p>غربال إراتوستينس هو خوارزمية لسرد الأعداد الأولية حتى عدد معين.
الخوارزمية بسيطة ويمكن تنفيذها باتباع الخطوات التالية:&lt;/p>
&lt;ol>
&lt;li>قم بإنشاء مصفوفة من القيم المنطقية (bool) تحتوي على N عنصرًا وهيئ جميع العناصر إلى true.&lt;/li>
&lt;li>قم بتعيين العنصرين الصفر والأول من المصفوفة إلى false (لأن 0 و 1 ليسا عددين أوليين).&lt;/li>
&lt;li>إذا كان العنصر الثاني في المصفوفة هو true ، فقم بطباعة 2 كعدد أولي.&lt;/li>
&lt;li>قم بتعيين جميع العناصر المضاعفة للعدد 2 بدءًا من $2^2$ إلى false ※&lt;/li>
&lt;li>إذا كان العنصر الثالث في المصفوفة هو true ، فقم بطباعة 3 كعدد أولي.&lt;/li>
&lt;li>قم بتعيين جميع العناصر المضاعفة للعدد 3 بدءًا من $3^2$ إلى false.&lt;/li>
&lt;li>كرر نفس العملية للعناصر الرابع والخامس ، &amp;hellip; ، والعنصر N.&lt;/li>
&lt;/ol>
&lt;p>※ السبب في تعيين العناصر الأكبر من المربع إلى false هو أن الأعداد الأصغر من المربع قد تمت معالجتها بالفعل (تم إكمال السرد).&lt;/p>
&lt;p>&lt;img src="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/Animation_Sieb_des_Eratosthenes.gif"
width="445"
height="369"
srcset="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/Animation_Sieb_des_Eratosthenes_hua63c6218ac9f9cdba93ccb20db392e0e_206214_480x0_resize_box_1.gif 480w, 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/Animation_Sieb_des_Eratosthenes_hua63c6218ac9f9cdba93ccb20db392e0e_206214_1024x0_resize_box_1.gif 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="120"
data-flex-basis="289px"
>&lt;/p>
&lt;h2 id="التنفيذ-في-rust">التنفيذ في Rust
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">fn main() {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> let n = 1000;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> let mut is_prime = vec![true; n+1];
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> is_prime[0] = false;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> is_prime[1] = false;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> for i in 2..=n {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> if is_prime[i] {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> println!(&amp;#34;{}&amp;#34;, i);
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> let mut j = i * i;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> while j &amp;lt;= n {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> is_prime[j] = false;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> j += i;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="نسخة-أسرع-قليلا">نسخة أسرع قليلاً
&lt;/h2>&lt;p>سنقوم بتنفيذ نسخة أسرع قليلاً مع مراعاة النقاط التالية:&lt;/p>
&lt;ul>
&lt;li>بدلاً من تهيئة المصفوفة إلى true ، نقوم بتهيئتها إلى false (هذا أسرع).&lt;/li>
&lt;li>نظرًا لأن مضاعفات 2 ليست أعدادًا أولية ، سنتخطى عملية تعيين مضاعفات 2 إلى false.&lt;/li>
&lt;li>ليس من الضروري التكرار حتى n ، إذا قمت بسرد الأعداد الأولية حتى الجذر التربيعي لـ n ، يمكنك سرد الأعداد الأولية حتى n.&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">fn main() {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> let n = 1000;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> let mut is_prime = vec![false; n+1];
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> is_prime[2] = true;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> for i in (3..=n).step_by(2) {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> is_prime[i] = true;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> for i in 3..=((n as f64).sqrt() as usize) {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> if is_prime[i] {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> let mut j = i * i;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> while j &amp;lt;= n {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> is_prime[j] = false;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> j += i * 2;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> for i in (2..=n).filter(|&amp;amp;x| is_prime[x]) {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> println!(&amp;#34;{}&amp;#34;, i);
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="مراجع">مراجع
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://ja.wikipedia.org/wiki/%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" target="_blank" rel="noopener"
>غربال إراتوستينس&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>طريقة تثبيت CocoaPods على mac</title><link>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/</link><pubDate>Sun, 09 Apr 2023 03:25:54 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post طريقة تثبيت CocoaPods على mac" />&lt;h1 id="التثبيت-عبر-الجهاز-الطرفي">التثبيت عبر الجهاز الطرفي
&lt;/h1>&lt;ol>
&lt;li>افتح الجهاز الطرفي&lt;/li>
&lt;li>قم بتنفيذ &lt;code>sudo gem install cocoapods&lt;/code>
→ لسبب ما، ظهرت رسالة الخطأ التالية وفشل التثبيت.&lt;/li>
&lt;/ol>
&lt;details>
&lt;summary>المخرجات&lt;/summary>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">ERROR: Error installing cocoapods:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> The last version of activesupport (&amp;gt;= 5.0, &amp;lt; 8) to support your Ruby &amp;amp; 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
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> activesupport requires Ruby version &amp;gt;= 2.7.0. The current ruby version is 2.6.10.210.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/details>
&lt;ol start="3">
&lt;li>لذلك قمت بالبحث عن رسالة الخطأ على الويب (انظر &amp;ldquo;المراجع&amp;rdquo; أدناه)، ونفذت الأمر التالي&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">/bin/bash -c &amp;#34;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;details>
&lt;summary>المخرجات&lt;/summary>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt"> 10
&lt;/span>&lt;span class="lnt"> 11
&lt;/span>&lt;span class="lnt"> 12
&lt;/span>&lt;span class="lnt"> 13
&lt;/span>&lt;span class="lnt"> 14
&lt;/span>&lt;span class="lnt"> 15
&lt;/span>&lt;span class="lnt"> 16
&lt;/span>&lt;span class="lnt"> 17
&lt;/span>&lt;span class="lnt"> 18
&lt;/span>&lt;span class="lnt"> 19
&lt;/span>&lt;span class="lnt"> 20
&lt;/span>&lt;span class="lnt"> 21
&lt;/span>&lt;span class="lnt"> 22
&lt;/span>&lt;span class="lnt"> 23
&lt;/span>&lt;span class="lnt"> 24
&lt;/span>&lt;span class="lnt"> 25
&lt;/span>&lt;span class="lnt"> 26
&lt;/span>&lt;span class="lnt"> 27
&lt;/span>&lt;span class="lnt"> 28
&lt;/span>&lt;span class="lnt"> 29
&lt;/span>&lt;span class="lnt"> 30
&lt;/span>&lt;span class="lnt"> 31
&lt;/span>&lt;span class="lnt"> 32
&lt;/span>&lt;span class="lnt"> 33
&lt;/span>&lt;span class="lnt"> 34
&lt;/span>&lt;span class="lnt"> 35
&lt;/span>&lt;span class="lnt"> 36
&lt;/span>&lt;span class="lnt"> 37
&lt;/span>&lt;span class="lnt"> 38
&lt;/span>&lt;span class="lnt"> 39
&lt;/span>&lt;span class="lnt"> 40
&lt;/span>&lt;span class="lnt"> 41
&lt;/span>&lt;span class="lnt"> 42
&lt;/span>&lt;span class="lnt"> 43
&lt;/span>&lt;span class="lnt"> 44
&lt;/span>&lt;span class="lnt"> 45
&lt;/span>&lt;span class="lnt"> 46
&lt;/span>&lt;span class="lnt"> 47
&lt;/span>&lt;span class="lnt"> 48
&lt;/span>&lt;span class="lnt"> 49
&lt;/span>&lt;span class="lnt"> 50
&lt;/span>&lt;span class="lnt"> 51
&lt;/span>&lt;span class="lnt"> 52
&lt;/span>&lt;span class="lnt"> 53
&lt;/span>&lt;span class="lnt"> 54
&lt;/span>&lt;span class="lnt"> 55
&lt;/span>&lt;span class="lnt"> 56
&lt;/span>&lt;span class="lnt"> 57
&lt;/span>&lt;span class="lnt"> 58
&lt;/span>&lt;span class="lnt"> 59
&lt;/span>&lt;span class="lnt"> 60
&lt;/span>&lt;span class="lnt"> 61
&lt;/span>&lt;span class="lnt"> 62
&lt;/span>&lt;span class="lnt"> 63
&lt;/span>&lt;span class="lnt"> 64
&lt;/span>&lt;span class="lnt"> 65
&lt;/span>&lt;span class="lnt"> 66
&lt;/span>&lt;span class="lnt"> 67
&lt;/span>&lt;span class="lnt"> 68
&lt;/span>&lt;span class="lnt"> 69
&lt;/span>&lt;span class="lnt"> 70
&lt;/span>&lt;span class="lnt"> 71
&lt;/span>&lt;span class="lnt"> 72
&lt;/span>&lt;span class="lnt"> 73
&lt;/span>&lt;span class="lnt"> 74
&lt;/span>&lt;span class="lnt"> 75
&lt;/span>&lt;span class="lnt"> 76
&lt;/span>&lt;span class="lnt"> 77
&lt;/span>&lt;span class="lnt"> 78
&lt;/span>&lt;span class="lnt"> 79
&lt;/span>&lt;span class="lnt"> 80
&lt;/span>&lt;span class="lnt"> 81
&lt;/span>&lt;span class="lnt"> 82
&lt;/span>&lt;span class="lnt"> 83
&lt;/span>&lt;span class="lnt"> 84
&lt;/span>&lt;span class="lnt"> 85
&lt;/span>&lt;span class="lnt"> 86
&lt;/span>&lt;span class="lnt"> 87
&lt;/span>&lt;span class="lnt"> 88
&lt;/span>&lt;span class="lnt"> 89
&lt;/span>&lt;span class="lnt"> 90
&lt;/span>&lt;span class="lnt"> 91
&lt;/span>&lt;span class="lnt"> 92
&lt;/span>&lt;span class="lnt"> 93
&lt;/span>&lt;span class="lnt"> 94
&lt;/span>&lt;span class="lnt"> 95
&lt;/span>&lt;span class="lnt"> 96
&lt;/span>&lt;span class="lnt"> 97
&lt;/span>&lt;span class="lnt"> 98
&lt;/span>&lt;span class="lnt"> 99
&lt;/span>&lt;span class="lnt">100
&lt;/span>&lt;span class="lnt">101
&lt;/span>&lt;span class="lnt">102
&lt;/span>&lt;span class="lnt">103
&lt;/span>&lt;span class="lnt">104
&lt;/span>&lt;span class="lnt">105
&lt;/span>&lt;span class="lnt">106
&lt;/span>&lt;span class="lnt">107
&lt;/span>&lt;span class="lnt">108
&lt;/span>&lt;span class="lnt">109
&lt;/span>&lt;span class="lnt">110
&lt;/span>&lt;span class="lnt">111
&lt;/span>&lt;span class="lnt">112
&lt;/span>&lt;span class="lnt">113
&lt;/span>&lt;span class="lnt">114
&lt;/span>&lt;span class="lnt">115
&lt;/span>&lt;span class="lnt">116
&lt;/span>&lt;span class="lnt">117
&lt;/span>&lt;span class="lnt">118
&lt;/span>&lt;span class="lnt">119
&lt;/span>&lt;span class="lnt">120
&lt;/span>&lt;span class="lnt">121
&lt;/span>&lt;span class="lnt">122
&lt;/span>&lt;span class="lnt">123
&lt;/span>&lt;span class="lnt">124
&lt;/span>&lt;span class="lnt">125
&lt;/span>&lt;span class="lnt">126
&lt;/span>&lt;span class="lnt">127
&lt;/span>&lt;span class="lnt">128
&lt;/span>&lt;span class="lnt">129
&lt;/span>&lt;span class="lnt">130
&lt;/span>&lt;span class="lnt">131
&lt;/span>&lt;span class="lnt">132
&lt;/span>&lt;span class="lnt">133
&lt;/span>&lt;span class="lnt">134
&lt;/span>&lt;span class="lnt">135
&lt;/span>&lt;span class="lnt">136
&lt;/span>&lt;span class="lnt">137
&lt;/span>&lt;span class="lnt">138
&lt;/span>&lt;span class="lnt">139
&lt;/span>&lt;span class="lnt">140
&lt;/span>&lt;span class="lnt">141
&lt;/span>&lt;span class="lnt">142
&lt;/span>&lt;span class="lnt">143
&lt;/span>&lt;span class="lnt">144
&lt;/span>&lt;span class="lnt">145
&lt;/span>&lt;span class="lnt">146
&lt;/span>&lt;span class="lnt">147
&lt;/span>&lt;span class="lnt">148
&lt;/span>&lt;span class="lnt">149
&lt;/span>&lt;span class="lnt">150
&lt;/span>&lt;span class="lnt">151
&lt;/span>&lt;span class="lnt">152
&lt;/span>&lt;span class="lnt">153
&lt;/span>&lt;span class="lnt">154
&lt;/span>&lt;span class="lnt">155
&lt;/span>&lt;span class="lnt">156
&lt;/span>&lt;span class="lnt">157
&lt;/span>&lt;span class="lnt">158
&lt;/span>&lt;span class="lnt">159
&lt;/span>&lt;span class="lnt">160
&lt;/span>&lt;span class="lnt">161
&lt;/span>&lt;span class="lnt">162
&lt;/span>&lt;span class="lnt">163
&lt;/span>&lt;span class="lnt">164
&lt;/span>&lt;span class="lnt">165
&lt;/span>&lt;span class="lnt">166
&lt;/span>&lt;span class="lnt">167
&lt;/span>&lt;span class="lnt">168
&lt;/span>&lt;span class="lnt">169
&lt;/span>&lt;span class="lnt">170
&lt;/span>&lt;span class="lnt">171
&lt;/span>&lt;span class="lnt">172
&lt;/span>&lt;span class="lnt">173
&lt;/span>&lt;span class="lnt">174
&lt;/span>&lt;span class="lnt">175
&lt;/span>&lt;span class="lnt">176
&lt;/span>&lt;span class="lnt">177
&lt;/span>&lt;span class="lnt">178
&lt;/span>&lt;span class="lnt">179
&lt;/span>&lt;span class="lnt">180
&lt;/span>&lt;span class="lnt">181
&lt;/span>&lt;span class="lnt">182
&lt;/span>&lt;span class="lnt">183
&lt;/span>&lt;span class="lnt">184
&lt;/span>&lt;span class="lnt">185
&lt;/span>&lt;span class="lnt">186
&lt;/span>&lt;span class="lnt">187
&lt;/span>&lt;span class="lnt">188
&lt;/span>&lt;span class="lnt">189
&lt;/span>&lt;span class="lnt">190
&lt;/span>&lt;span class="lnt">191
&lt;/span>&lt;span class="lnt">192
&lt;/span>&lt;span class="lnt">193
&lt;/span>&lt;span class="lnt">194
&lt;/span>&lt;span class="lnt">195
&lt;/span>&lt;span class="lnt">196
&lt;/span>&lt;span class="lnt">197
&lt;/span>&lt;span class="lnt">198
&lt;/span>&lt;span class="lnt">199
&lt;/span>&lt;span class="lnt">200
&lt;/span>&lt;span class="lnt">201
&lt;/span>&lt;span class="lnt">202
&lt;/span>&lt;span class="lnt">203
&lt;/span>&lt;span class="lnt">204
&lt;/span>&lt;span class="lnt">205
&lt;/span>&lt;span class="lnt">206
&lt;/span>&lt;span class="lnt">207
&lt;/span>&lt;span class="lnt">208
&lt;/span>&lt;span class="lnt">209
&lt;/span>&lt;span class="lnt">210
&lt;/span>&lt;span class="lnt">211
&lt;/span>&lt;span class="lnt">212
&lt;/span>&lt;span class="lnt">213
&lt;/span>&lt;span class="lnt">214
&lt;/span>&lt;span class="lnt">215
&lt;/span>&lt;span class="lnt">216
&lt;/span>&lt;span class="lnt">217
&lt;/span>&lt;span class="lnt">218
&lt;/span>&lt;span class="lnt">219
&lt;/span>&lt;span class="lnt">220
&lt;/span>&lt;span class="lnt">221
&lt;/span>&lt;span class="lnt">222
&lt;/span>&lt;span class="lnt">223
&lt;/span>&lt;span class="lnt">224
&lt;/span>&lt;span class="lnt">225
&lt;/span>&lt;span class="lnt">226
&lt;/span>&lt;span class="lnt">227
&lt;/span>&lt;span class="lnt">228
&lt;/span>&lt;span class="lnt">229
&lt;/span>&lt;span class="lnt">230
&lt;/span>&lt;span class="lnt">231
&lt;/span>&lt;span class="lnt">232
&lt;/span>&lt;span class="lnt">233
&lt;/span>&lt;span class="lnt">234
&lt;/span>&lt;span class="lnt">235
&lt;/span>&lt;span class="lnt">236
&lt;/span>&lt;span class="lnt">237
&lt;/span>&lt;span class="lnt">238
&lt;/span>&lt;span class="lnt">239
&lt;/span>&lt;span class="lnt">240
&lt;/span>&lt;span class="lnt">241
&lt;/span>&lt;span class="lnt">242
&lt;/span>&lt;span class="lnt">243
&lt;/span>&lt;span class="lnt">244
&lt;/span>&lt;span class="lnt">245
&lt;/span>&lt;span class="lnt">246
&lt;/span>&lt;span class="lnt">247
&lt;/span>&lt;span class="lnt">248
&lt;/span>&lt;span class="lnt">249
&lt;/span>&lt;span class="lnt">250
&lt;/span>&lt;span class="lnt">251
&lt;/span>&lt;span class="lnt">252
&lt;/span>&lt;span class="lnt">253
&lt;/span>&lt;span class="lnt">254
&lt;/span>&lt;span class="lnt">255
&lt;/span>&lt;span class="lnt">256
&lt;/span>&lt;span class="lnt">257
&lt;/span>&lt;span class="lnt">258
&lt;/span>&lt;span class="lnt">259
&lt;/span>&lt;span class="lnt">260
&lt;/span>&lt;span class="lnt">261
&lt;/span>&lt;span class="lnt">262
&lt;/span>&lt;span class="lnt">263
&lt;/span>&lt;span class="lnt">264
&lt;/span>&lt;span class="lnt">265
&lt;/span>&lt;span class="lnt">266
&lt;/span>&lt;span class="lnt">267
&lt;/span>&lt;span class="lnt">268
&lt;/span>&lt;span class="lnt">269
&lt;/span>&lt;span class="lnt">270
&lt;/span>&lt;span class="lnt">271
&lt;/span>&lt;span class="lnt">272
&lt;/span>&lt;span class="lnt">273
&lt;/span>&lt;span class="lnt">274
&lt;/span>&lt;span class="lnt">275
&lt;/span>&lt;span class="lnt">276
&lt;/span>&lt;span class="lnt">277
&lt;/span>&lt;span class="lnt">278
&lt;/span>&lt;span class="lnt">279
&lt;/span>&lt;span class="lnt">280
&lt;/span>&lt;span class="lnt">281
&lt;/span>&lt;span class="lnt">282
&lt;/span>&lt;span class="lnt">283
&lt;/span>&lt;span class="lnt">284
&lt;/span>&lt;span class="lnt">285
&lt;/span>&lt;span class="lnt">286
&lt;/span>&lt;span class="lnt">287
&lt;/span>&lt;span class="lnt">288
&lt;/span>&lt;span class="lnt">289
&lt;/span>&lt;span class="lnt">290
&lt;/span>&lt;span class="lnt">291
&lt;/span>&lt;span class="lnt">292
&lt;/span>&lt;span class="lnt">293
&lt;/span>&lt;span class="lnt">294
&lt;/span>&lt;span class="lnt">295
&lt;/span>&lt;span class="lnt">296
&lt;/span>&lt;span class="lnt">297
&lt;/span>&lt;span class="lnt">298
&lt;/span>&lt;span class="lnt">299
&lt;/span>&lt;span class="lnt">300
&lt;/span>&lt;span class="lnt">301
&lt;/span>&lt;span class="lnt">302
&lt;/span>&lt;span class="lnt">303
&lt;/span>&lt;span class="lnt">304
&lt;/span>&lt;span class="lnt">305
&lt;/span>&lt;span class="lnt">306
&lt;/span>&lt;span class="lnt">307
&lt;/span>&lt;span class="lnt">308
&lt;/span>&lt;span class="lnt">309
&lt;/span>&lt;span class="lnt">310
&lt;/span>&lt;span class="lnt">311
&lt;/span>&lt;span class="lnt">312
&lt;/span>&lt;span class="lnt">313
&lt;/span>&lt;span class="lnt">314
&lt;/span>&lt;span class="lnt">315
&lt;/span>&lt;span class="lnt">316
&lt;/span>&lt;span class="lnt">317
&lt;/span>&lt;span class="lnt">318
&lt;/span>&lt;span class="lnt">319
&lt;/span>&lt;span class="lnt">320
&lt;/span>&lt;span class="lnt">321
&lt;/span>&lt;span class="lnt">322
&lt;/span>&lt;span class="lnt">323
&lt;/span>&lt;span class="lnt">324
&lt;/span>&lt;span class="lnt">325
&lt;/span>&lt;span class="lnt">326
&lt;/span>&lt;span class="lnt">327
&lt;/span>&lt;span class="lnt">328
&lt;/span>&lt;span class="lnt">329
&lt;/span>&lt;span class="lnt">330
&lt;/span>&lt;span class="lnt">331
&lt;/span>&lt;span class="lnt">332
&lt;/span>&lt;span class="lnt">333
&lt;/span>&lt;span class="lnt">334
&lt;/span>&lt;span class="lnt">335
&lt;/span>&lt;span class="lnt">336
&lt;/span>&lt;span class="lnt">337
&lt;/span>&lt;span class="lnt">338
&lt;/span>&lt;span class="lnt">339
&lt;/span>&lt;span class="lnt">340
&lt;/span>&lt;span class="lnt">341
&lt;/span>&lt;span class="lnt">342
&lt;/span>&lt;span class="lnt">343
&lt;/span>&lt;span class="lnt">344
&lt;/span>&lt;span class="lnt">345
&lt;/span>&lt;span class="lnt">346
&lt;/span>&lt;span class="lnt">347
&lt;/span>&lt;span class="lnt">348
&lt;/span>&lt;span class="lnt">349
&lt;/span>&lt;span class="lnt">350
&lt;/span>&lt;span class="lnt">351
&lt;/span>&lt;span class="lnt">352
&lt;/span>&lt;span class="lnt">353
&lt;/span>&lt;span class="lnt">354
&lt;/span>&lt;span class="lnt">355
&lt;/span>&lt;span class="lnt">356
&lt;/span>&lt;span class="lnt">357
&lt;/span>&lt;span class="lnt">358
&lt;/span>&lt;span class="lnt">359
&lt;/span>&lt;span class="lnt">360
&lt;/span>&lt;span class="lnt">361
&lt;/span>&lt;span class="lnt">362
&lt;/span>&lt;span class="lnt">363
&lt;/span>&lt;span class="lnt">364
&lt;/span>&lt;span class="lnt">365
&lt;/span>&lt;span class="lnt">366
&lt;/span>&lt;span class="lnt">367
&lt;/span>&lt;span class="lnt">368
&lt;/span>&lt;span class="lnt">369
&lt;/span>&lt;span class="lnt">370
&lt;/span>&lt;span class="lnt">371
&lt;/span>&lt;span class="lnt">372
&lt;/span>&lt;span class="lnt">373
&lt;/span>&lt;span class="lnt">374
&lt;/span>&lt;span class="lnt">375
&lt;/span>&lt;span class="lnt">376
&lt;/span>&lt;span class="lnt">377
&lt;/span>&lt;span class="lnt">378
&lt;/span>&lt;span class="lnt">379
&lt;/span>&lt;span class="lnt">380
&lt;/span>&lt;span class="lnt">381
&lt;/span>&lt;span class="lnt">382
&lt;/span>&lt;span class="lnt">383
&lt;/span>&lt;span class="lnt">384
&lt;/span>&lt;span class="lnt">385
&lt;/span>&lt;span class="lnt">386
&lt;/span>&lt;span class="lnt">387
&lt;/span>&lt;span class="lnt">388
&lt;/span>&lt;span class="lnt">389
&lt;/span>&lt;span class="lnt">390
&lt;/span>&lt;span class="lnt">391
&lt;/span>&lt;span class="lnt">392
&lt;/span>&lt;span class="lnt">393
&lt;/span>&lt;span class="lnt">394
&lt;/span>&lt;span class="lnt">395
&lt;/span>&lt;span class="lnt">396
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Checking&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="err">`&lt;/span>&lt;span class="n">sudo&lt;/span>&lt;span class="err">`&lt;/span> &lt;span class="n">access&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">which&lt;/span> &lt;span class="n">may&lt;/span> &lt;span class="n">request&lt;/span> &lt;span class="n">your&lt;/span> &lt;span class="n">password&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">This&lt;/span> &lt;span class="n">script&lt;/span> &lt;span class="n">will&lt;/span> &lt;span class="n">install&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">brew&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">doc&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">man&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">man1&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">brew&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">zsh&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">site&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">functions&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">_brew&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">etc&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bash_completion&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">d&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">brew&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Homebrew&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">The&lt;/span> &lt;span class="n">following&lt;/span> &lt;span class="n">new&lt;/span> &lt;span class="n">directories&lt;/span> &lt;span class="n">will&lt;/span> &lt;span class="n">be&lt;/span> &lt;span class="n">created&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">etc&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">include&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">lib&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sbin&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">opt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">zsh&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">zsh&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">site&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">functions&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">linked&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Cellar&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Caskroom&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Frameworks&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">The&lt;/span> &lt;span class="n">Xcode&lt;/span> &lt;span class="n">Command&lt;/span> &lt;span class="n">Line&lt;/span> &lt;span class="n">Tools&lt;/span> &lt;span class="n">will&lt;/span> &lt;span class="n">be&lt;/span> &lt;span class="n">installed&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Press&lt;/span> &lt;span class="n">RETURN&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ENTER&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="k">continue&lt;/span> &lt;span class="ow">or&lt;/span> &lt;span class="n">any&lt;/span> &lt;span class="n">other&lt;/span> &lt;span class="n">key&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="n">abort&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sudo&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">mkdir&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">etc&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">include&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">lib&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sbin&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">opt&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">zsh&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">zsh&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">site&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">functions&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">linked&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Cellar&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Caskroom&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Frameworks&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sudo&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">chmod&lt;/span> &lt;span class="n">ug&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">rwx&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">etc&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">include&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">lib&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sbin&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">opt&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">zsh&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">zsh&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">site&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">functions&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">linked&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Cellar&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Caskroom&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Frameworks&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sudo&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">chmod&lt;/span> &lt;span class="n">go&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">w&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">zsh&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">zsh&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">site&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">functions&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sudo&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sbin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">chown&lt;/span> &lt;span class="n">kenji&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">etc&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">include&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">lib&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sbin&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">opt&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">zsh&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">zsh&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">site&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">functions&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">linked&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Cellar&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Caskroom&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Frameworks&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sudo&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">chgrp&lt;/span> &lt;span class="n">admin&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">etc&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">include&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">lib&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sbin&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">opt&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">zsh&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">share&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">zsh&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">site&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">functions&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">var&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">linked&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Cellar&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Caskroom&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Frameworks&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sudo&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">mkdir&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Homebrew&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sudo&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sbin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">chown&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">R&lt;/span> &lt;span class="n">kenji&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="n">admin&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Homebrew&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sudo&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">mkdir&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">Users&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">kenji&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Library&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Caches&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Homebrew&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sudo&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">chmod&lt;/span> &lt;span class="n">g&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="n">rwx&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">Users&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">kenji&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Library&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Caches&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Homebrew&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sudo&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sbin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">chown&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">R&lt;/span> &lt;span class="n">kenji&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">Users&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">kenji&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Library&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Caches&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Homebrew&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Searching&lt;/span> &lt;span class="n">online&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">the&lt;/span> &lt;span class="n">Command&lt;/span> &lt;span class="n">Line&lt;/span> &lt;span class="n">Tools&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sudo&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">touch&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">tmp&lt;/span>&lt;span class="o">/.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">apple&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">CommandLineTools&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">installondemand&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="ow">in&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">progress&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Installing&lt;/span> &lt;span class="n">Command&lt;/span> &lt;span class="n">Line&lt;/span> &lt;span class="n">Tools&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">Xcode&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">14.3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sudo&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sbin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">softwareupdate&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">i&lt;/span> &lt;span class="n">Command&lt;/span>\ &lt;span class="n">Line&lt;/span>\ &lt;span class="n">Tools&lt;/span>\ &lt;span class="k">for&lt;/span>\ &lt;span class="n">Xcode&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">14.3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Software&lt;/span> &lt;span class="n">Update&lt;/span> &lt;span class="n">Tool&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Finding&lt;/span> &lt;span class="n">available&lt;/span> &lt;span class="n">software&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Downloading&lt;/span> &lt;span class="n">Command&lt;/span> &lt;span class="n">Line&lt;/span> &lt;span class="n">Tools&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">Xcode&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Downloaded&lt;/span> &lt;span class="n">Command&lt;/span> &lt;span class="n">Line&lt;/span> &lt;span class="n">Tools&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">Xcode&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Installing&lt;/span> &lt;span class="n">Command&lt;/span> &lt;span class="n">Line&lt;/span> &lt;span class="n">Tools&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">Xcode&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Done&lt;/span> &lt;span class="n">with&lt;/span> &lt;span class="n">Command&lt;/span> &lt;span class="n">Line&lt;/span> &lt;span class="n">Tools&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">Xcode&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Done&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sudo&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">xcode&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">select&lt;/span> &lt;span class="o">--&lt;/span>&lt;span class="k">switch&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">Library&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Developer&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">CommandLineTools&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sudo&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">bin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">rm&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">f&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">tmp&lt;/span>&lt;span class="o">/.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">apple&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">CommandLineTools&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">installondemand&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="ow">in&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">progress&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="n">installing&lt;/span> &lt;span class="n">Homebrew&lt;/span>&lt;span class="o">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">remote&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Enumerating&lt;/span> &lt;span class="n">objects&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">236191&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">done&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">remote&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Counting&lt;/span> &lt;span class="n">objects&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">100&lt;/span>&lt;span class="o">%&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">504&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">504&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">done&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">remote&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Compressing&lt;/span> &lt;span class="n">objects&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">100&lt;/span>&lt;span class="o">%&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">327&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">327&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">done&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">remote&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Total&lt;/span> &lt;span class="mi">236191&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">delta&lt;/span> &lt;span class="mi">176&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">reused&lt;/span> &lt;span class="mi">468&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">delta&lt;/span> &lt;span class="mi">158&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">pack&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">reused&lt;/span> &lt;span class="mi">235687&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Receiving&lt;/span> &lt;span class="n">objects&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">100&lt;/span>&lt;span class="o">%&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">236191&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">236191&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="mf">68.37&lt;/span> &lt;span class="n">MiB&lt;/span> &lt;span class="o">|&lt;/span> &lt;span class="mf">15.51&lt;/span> &lt;span class="n">MiB&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">s&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">done&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Resolving&lt;/span> &lt;span class="n">deltas&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">100&lt;/span>&lt;span class="o">%&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">173058&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">173058&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">done&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">From&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">github&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">brew&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">branch&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="n">master&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="n">origin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">master&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">branch&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="n">test&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">runners&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="n">origin&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">test&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">runners&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">0.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">0.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">15&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">15&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">16&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">16&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">17&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">17&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.8&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">1.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">1.9&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">15&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">15&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">16&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">16&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">15&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">15&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">16&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">16&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">17&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">17&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">15&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">15&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">16&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">16&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">2.7&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">15&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">15&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">16&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">16&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">17&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">17&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">15&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">15&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">16&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">16&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.3&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.4&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">12&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">13&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">14&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">15&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">15&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">16&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">16&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">17&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">17&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">18&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">18&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">19&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">19&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">20&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">20&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">21&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">21&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">3.6&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">6&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">7&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">8&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">*&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">new&lt;/span> &lt;span class="n">tag&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span> &lt;span class="o">-&amp;gt;&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">9&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">HEAD&lt;/span> &lt;span class="n">is&lt;/span> &lt;span class="n">now&lt;/span> &lt;span class="n">at&lt;/span> &lt;span class="n">c51687009&lt;/span> &lt;span class="n">Merge&lt;/span> &lt;span class="n">pull&lt;/span> &lt;span class="n">request&lt;/span> &lt;span class="c1">#15168 from reitermarkus/api-ruby-source-path&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Installation&lt;/span> &lt;span class="n">successful&lt;/span>&lt;span class="o">!&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Homebrew&lt;/span> &lt;span class="n">has&lt;/span> &lt;span class="n">enabled&lt;/span> &lt;span class="n">anonymous&lt;/span> &lt;span class="n">aggregate&lt;/span> &lt;span class="n">formulae&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="n">cask&lt;/span> &lt;span class="n">analytics&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Read&lt;/span> &lt;span class="n">the&lt;/span> &lt;span class="n">analytics&lt;/span> &lt;span class="n">documentation&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="ow">and&lt;/span> &lt;span class="n">how&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="n">opt&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">out&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="n">here&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">docs&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">brew&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sh&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Analytics&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">No&lt;/span> &lt;span class="n">analytics&lt;/span> &lt;span class="n">data&lt;/span> &lt;span class="n">has&lt;/span> &lt;span class="n">been&lt;/span> &lt;span class="n">sent&lt;/span> &lt;span class="n">yet&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">nor&lt;/span> &lt;span class="n">will&lt;/span> &lt;span class="n">any&lt;/span> &lt;span class="n">be&lt;/span> &lt;span class="n">during&lt;/span> &lt;span class="n">this&lt;/span> &lt;span class="n">install&lt;/span> &lt;span class="n">run&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Homebrew&lt;/span> &lt;span class="n">is&lt;/span> &lt;span class="n">run&lt;/span> &lt;span class="n">entirely&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="n">unpaid&lt;/span> &lt;span class="n">volunteers&lt;/span>&lt;span class="o">.&lt;/span> &lt;span class="n">Please&lt;/span> &lt;span class="n">consider&lt;/span> &lt;span class="n">donating&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">github&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">brew&lt;/span>&lt;span class="c1">#donations&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Next&lt;/span> &lt;span class="n">steps&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">-&lt;/span> &lt;span class="n">Run&lt;/span> &lt;span class="n">these&lt;/span> &lt;span class="n">two&lt;/span> &lt;span class="n">commands&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">your&lt;/span> &lt;span class="n">terminal&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="n">add&lt;/span> &lt;span class="n">Homebrew&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="n">your&lt;/span> &lt;span class="n">PATH&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="n">echo&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="n">echo&lt;/span> &lt;span class="s1">&amp;#39;eval &amp;#34;$(/usr/local/bin/brew shellenv)&amp;#34;&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;gt;&amp;gt;&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">Users&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">kenji&lt;/span>&lt;span class="o">/.&lt;/span>&lt;span class="n">zprofile&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">eval&lt;/span> &lt;span class="s2">&amp;#34;$(/usr/local/bin/brew shellenv)&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">-&lt;/span> &lt;span class="n">Run&lt;/span> &lt;span class="n">brew&lt;/span> &lt;span class="n">help&lt;/span> &lt;span class="n">to&lt;/span> &lt;span class="n">get&lt;/span> &lt;span class="n">started&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">-&lt;/span> &lt;span class="n">Further&lt;/span> &lt;span class="n">documentation&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">docs&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">brew&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sh&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/details>
&lt;ol start="4">
&lt;li>قم بتنفيذ &lt;code>brew install cocoapods&lt;/code>&lt;/li>
&lt;/ol>
&lt;details>
&lt;summary>المخرجات&lt;/summary>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;span class="lnt">36
&lt;/span>&lt;span class="lnt">37
&lt;/span>&lt;span class="lnt">38
&lt;/span>&lt;span class="lnt">39
&lt;/span>&lt;span class="lnt">40
&lt;/span>&lt;span class="lnt">41
&lt;/span>&lt;span class="lnt">42
&lt;/span>&lt;span class="lnt">43
&lt;/span>&lt;span class="lnt">44
&lt;/span>&lt;span class="lnt">45
&lt;/span>&lt;span class="lnt">46
&lt;/span>&lt;span class="lnt">47
&lt;/span>&lt;span class="lnt">48
&lt;/span>&lt;span class="lnt">49
&lt;/span>&lt;span class="lnt">50
&lt;/span>&lt;span class="lnt">51
&lt;/span>&lt;span class="lnt">52
&lt;/span>&lt;span class="lnt">53
&lt;/span>&lt;span class="lnt">54
&lt;/span>&lt;span class="lnt">55
&lt;/span>&lt;span class="lnt">56
&lt;/span>&lt;span class="lnt">57
&lt;/span>&lt;span class="lnt">58
&lt;/span>&lt;span class="lnt">59
&lt;/span>&lt;span class="lnt">60
&lt;/span>&lt;span class="lnt">61
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">Warning&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Treating&lt;/span> &lt;span class="n">cocoapods&lt;/span> &lt;span class="n">as&lt;/span> &lt;span class="n">a&lt;/span> &lt;span class="n">formula&lt;/span>&lt;span class="o">.&lt;/span> &lt;span class="n">For&lt;/span> &lt;span class="n">the&lt;/span> &lt;span class="n">cask&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">use&lt;/span> &lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">cask&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">cocoapods&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Fetching&lt;/span> &lt;span class="n">dependencies&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">cocoapods&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">libyaml&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ca&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">certificates&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">openssl&lt;/span>&lt;span class="err">@&lt;/span>&lt;span class="mf">1.1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">readline&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="n">ruby&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Fetching&lt;/span> &lt;span class="n">libyaml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">ghcr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">io&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">v2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libyaml&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manifests&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mf">0.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">######################################################################## 100.0%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">ghcr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">io&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">v2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libyaml&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">blobs&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sha256&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="n">b49e62f014&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">from&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">pkg&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">containers&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">githubusercontent&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ghcr1&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">blobs&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sh&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">######################################################################## 100.0%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Fetching&lt;/span> &lt;span class="n">ca&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">certificates&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">ghcr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">io&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">v2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ca&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">certificates&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manifests&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">2023&lt;/span>&lt;span class="o">-&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">######################################################################## 100.0%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">ghcr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">io&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">v2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ca&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">certificates&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">blobs&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sha256&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">11&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">from&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">pkg&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">containers&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">githubusercontent&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ghcr1&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">blobs&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sh&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">######################################################################## 100.0%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Fetching&lt;/span> &lt;span class="n">openssl&lt;/span>&lt;span class="err">@&lt;/span>&lt;span class="mf">1.1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">ghcr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">io&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">v2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">openssl&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mf">1.1&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manifests&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="n">t&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">######################################################################## 100.0%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">ghcr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">io&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">v2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">openssl&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mf">1.1&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">blobs&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sha256&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">97676&lt;/span>&lt;span class="n">d&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">from&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">pkg&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">containers&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">githubusercontent&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ghcr1&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">blobs&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sh&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">######################################################################## 100.0%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Fetching&lt;/span> &lt;span class="n">readline&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">ghcr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">io&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">v2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">readline&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manifests&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mf">8.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">######################################################################## 100.0%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">ghcr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">io&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">v2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">readline&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">blobs&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sha256&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="n">abe9d3f3e&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">from&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">pkg&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">containers&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">githubusercontent&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ghcr1&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">blobs&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sh&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">######################################################################## 100.0%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Fetching&lt;/span> &lt;span class="n">ruby&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">ghcr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">io&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">v2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ruby&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manifests&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">######################################################################## 100.0%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">ghcr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">io&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">v2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ruby&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">blobs&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sha256&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="n">a4ac080688e87&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">from&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">pkg&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">containers&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">githubusercontent&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ghcr1&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">blobs&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sh&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">######################################################################## 100.0%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Fetching&lt;/span> &lt;span class="n">cocoapods&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">ghcr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">io&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">v2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">cocoapods&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">manifests&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mf">1.12&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">######################################################################## 100.0%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">ghcr&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">io&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">v2&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">homebrew&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">cocoapods&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">blobs&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sha256&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">11226288&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Downloading&lt;/span> &lt;span class="n">from&lt;/span> &lt;span class="n">https&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="o">//&lt;/span>&lt;span class="n">pkg&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">containers&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">githubusercontent&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ghcr1&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">blobs&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">sh&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">######################################################################## 100.0%&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Installing&lt;/span> &lt;span class="n">dependencies&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">cocoapods&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">libyaml&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">ca&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">certificates&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">openssl&lt;/span>&lt;span class="err">@&lt;/span>&lt;span class="mf">1.1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">readline&lt;/span> &lt;span class="ow">and&lt;/span> &lt;span class="n">ruby&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Installing&lt;/span> &lt;span class="n">cocoapods&lt;/span> &lt;span class="n">dependency&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">libyaml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Pouring&lt;/span> &lt;span class="n">libyaml&lt;/span>&lt;span class="o">--&lt;/span>&lt;span class="mf">0.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">5.&lt;/span>&lt;span class="n">ventura&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">bottle&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">tar&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gz&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">🍺&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Cellar&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">libyaml&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mf">0.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">10&lt;/span> &lt;span class="n">files&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">330&lt;/span>&lt;span class="n">KB&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Installing&lt;/span> &lt;span class="n">cocoapods&lt;/span> &lt;span class="n">dependency&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">ca&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">certificates&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Pouring&lt;/span> &lt;span class="n">ca&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">certificates&lt;/span>&lt;span class="o">--&lt;/span>&lt;span class="mi">2023&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mf">10.&lt;/span>&lt;span class="n">all&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">bottle&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">tar&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gz&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Regenerating&lt;/span> &lt;span class="n">CA&lt;/span> &lt;span class="n">certificate&lt;/span> &lt;span class="n">bundle&lt;/span> &lt;span class="n">from&lt;/span> &lt;span class="n">keychain&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">this&lt;/span> &lt;span class="n">may&lt;/span> &lt;span class="n">take&lt;/span> &lt;span class="n">a&lt;/span> &lt;span class="k">while&lt;/span>&lt;span class="o">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">🍺&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Cellar&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ca&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">certificates&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mi">2023&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">01&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">3&lt;/span> &lt;span class="n">files&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">216.9&lt;/span>&lt;span class="n">KB&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Installing&lt;/span> &lt;span class="n">cocoapods&lt;/span> &lt;span class="n">dependency&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">openssl&lt;/span>&lt;span class="err">@&lt;/span>&lt;span class="mf">1.1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Pouring&lt;/span> &lt;span class="n">openssl&lt;/span>&lt;span class="err">@&lt;/span>&lt;span class="mf">1.1&lt;/span>&lt;span class="o">--&lt;/span>&lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="n">t&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ventura&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">bottle&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">tar&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gz&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">🍺&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Cellar&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">openssl&lt;/span>&lt;span class="err">@&lt;/span>&lt;span class="mf">1.1&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mf">1.1&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="n">t&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">101&lt;/span> &lt;span class="n">files&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">18.5&lt;/span>&lt;span class="n">MB&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Installing&lt;/span> &lt;span class="n">cocoapods&lt;/span> &lt;span class="n">dependency&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">readline&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Pouring&lt;/span> &lt;span class="n">readline&lt;/span>&lt;span class="o">--&lt;/span>&lt;span class="mf">8.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">1.&lt;/span>&lt;span class="n">ventura&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">bottle&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">tar&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gz&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">🍺&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Cellar&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">readline&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mf">8.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">50&lt;/span> &lt;span class="n">files&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">1.7&lt;/span>&lt;span class="n">MB&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Installing&lt;/span> &lt;span class="n">cocoapods&lt;/span> &lt;span class="n">dependency&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">ruby&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Pouring&lt;/span> &lt;span class="n">ruby&lt;/span>&lt;span class="o">--&lt;/span>&lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">2.&lt;/span>&lt;span class="n">ventura&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">bottle&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">tar&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gz&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">🍺&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Cellar&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ruby&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mf">3.2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">16&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">605&lt;/span> &lt;span class="n">files&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">46.3&lt;/span>&lt;span class="n">MB&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Installing&lt;/span> &lt;span class="n">cocoapods&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Pouring&lt;/span> &lt;span class="n">cocoapods&lt;/span>&lt;span class="o">--&lt;/span>&lt;span class="mf">1.12&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mf">0.&lt;/span>&lt;span class="n">ventura&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">bottle&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">tar&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gz&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="err">🍺&lt;/span> &lt;span class="o">/&lt;/span>&lt;span class="n">usr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Cellar&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">cocoapods&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="mf">1.12&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">13&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="mi">436&lt;/span> &lt;span class="n">files&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">27.8&lt;/span>&lt;span class="n">MB&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">==&amp;gt;&lt;/span> &lt;span class="n">Running&lt;/span> &lt;span class="err">`&lt;/span>&lt;span class="n">brew&lt;/span> &lt;span class="n">cleanup&lt;/span> &lt;span class="n">cocoapods&lt;/span>&lt;span class="err">`&lt;/span>&lt;span class="o">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Disable&lt;/span> &lt;span class="n">this&lt;/span> &lt;span class="n">behaviour&lt;/span> &lt;span class="n">by&lt;/span> &lt;span class="n">setting&lt;/span> &lt;span class="n">HOMEBREW_NO_INSTALL_CLEANUP&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Hide&lt;/span> &lt;span class="n">these&lt;/span> &lt;span class="n">hints&lt;/span> &lt;span class="n">with&lt;/span> &lt;span class="n">HOMEBREW_NO_ENV_HINTS&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">see&lt;/span> &lt;span class="err">`&lt;/span>&lt;span class="n">man&lt;/span> &lt;span class="n">brew&lt;/span>&lt;span class="err">`&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/details>
&lt;ol start="5">
&lt;li>قم بتنفيذ &lt;code>pod --version&lt;/code>&lt;/li>
&lt;/ol>
&lt;details>
&lt;summary>المخرجات&lt;/summary>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">1.12.0
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/details>
&lt;p>يبدو أنه تم التثبيت بنجاح.&lt;/p>
&lt;h1 id="المراجع">المراجع
&lt;/h1>&lt;ul>
&lt;li>&lt;a class="link" href="https://stackoverflow.com/questions/75755162/installing-cocoapods" target="_blank" rel="noopener"
>Installing &amp;ldquo;CocoaPods&amp;rdquo;&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كيفية الحصول على عدد السجلات المنشأة يوميًا باستخدام SOQL في Salesforce</title><link>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/</link><pubDate>Sun, 09 Apr 2023 02:50:30 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية الحصول على عدد السجلات المنشأة يوميًا باستخدام SOQL في Salesforce" />&lt;h1 id="كيفية-الحصول-على-عدد-السجلات-المنشأة-يوميا-باستخدام-soql-في-salesforce">كيفية الحصول على عدد السجلات المنشأة يوميًا باستخدام SOQL في Salesforce
&lt;/h1>&lt;ol>
&lt;li>افتح وحدة تحكم المطور.&lt;/li>
&lt;li>افتح علامة التبويب &lt;code>Query Editor&lt;/code>.&lt;/li>
&lt;li>الصق جملة SOQL التالية وقم بتشغيلها.&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">select&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">day_only&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">createdDate&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">count&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">createdDate&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">from&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">account&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">group&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">by&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">day_only&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">createdDate&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">order&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">by&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">count&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">createdDate&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">desc&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">limit&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>يرجى تغيير &lt;code>account&lt;/code> إلى اسم الكائن الذي تريد الحصول عليه وتشغيله.&lt;/p>
&lt;h1 id="المراجع">المراجع
&lt;/h1>&lt;ul>
&lt;li>&lt;a class="link" href="https://stackoverflow.com/questions/9187737/is-there-a-way-to-group-by-the-date-portion-of-a-datetime-field-in-soql" target="_blank" rel="noopener"
>Is there a way to group by the date portion of a datetime field in SOQL?&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كيفية رسم الرسوم البيانية باستخدام Python (matplotlib.pyplot)</title><link>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/</link><pubDate>Sun, 09 Apr 2023 01:02:19 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية رسم الرسوم البيانية باستخدام Python (matplotlib.pyplot)" />&lt;p>&lt;img src="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_1.png"
width="1200"
height="288"
srcset="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_1_hue3f23818eeeec9c43d6452cc0f61fb52_43864_480x0_resize_box_3.png 480w, 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_1_hue3f23818eeeec9c43d6452cc0f61fb52_43864_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="416"
data-flex-basis="1000px"
>&lt;/p>
&lt;h1 id="المتطلبات">المتطلبات
&lt;/h1>&lt;ul>
&lt;li>حساب جوجل&lt;/li>
&lt;/ul>
&lt;h1 id="الخطوات">الخطوات
&lt;/h1>&lt;ol>
&lt;li>اذهب إلى &lt;a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener"
>https://colab.research.google.com/&lt;/a>&lt;/li>
&lt;li>اختر &amp;ldquo;ملف&amp;rdquo; -&amp;gt; &amp;ldquo;دفتر ملاحظات جديد&amp;rdquo;&lt;/li>
&lt;li>الصق الكود التالي وقم بتشغيله&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">matplotlib.pyplot&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">plt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">numpy&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">np&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">x&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">linspace&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">pi&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">500&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sin&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">label&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;sin curve&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cos&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="n">label&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;cos curve&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">legend&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="c1"># إظهار وسيلة الإيضاح&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">show&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h1 id="النتيجة">النتيجة
&lt;/h1>&lt;p>&lt;img src="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.png"
width="568"
height="413"
srcset="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_480x0_resize_box_3.png 480w, 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_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="137"
data-flex-basis="330px"
>&lt;/p>
&lt;h1 id="المراجع">المراجع
&lt;/h1>&lt;ul>
&lt;li>&lt;a class="link" href="https://matplotlib.org/3.5.3/api/_as_gen/matplotlib.pyplot.html" target="_blank" rel="noopener"
>matplotlib.pyplot — Matplotlib 3.5.3 documentation&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كيفية التغريد باستخدام Twitter API و Google Colaboratory</title><link>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/</link><pubDate>Sat, 08 Apr 2023 18:48:32 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية التغريد باستخدام Twitter API و Google Colaboratory" />&lt;h1 id="المتطلبات">المتطلبات
&lt;/h1>&lt;ul>
&lt;li>Twitter API&lt;/li>
&lt;li>Twitter API SECRET&lt;/li>
&lt;li>Twitter ACCESS TOKEN&lt;/li>
&lt;li>Twitter ACCESS TOKEN SECRET&lt;/li>
&lt;li>حساب Google&lt;/li>
&lt;/ul>
&lt;p>يرجى الرجوع إلى المواقع المرجعية لمعرفة كيفية الحصول على Twitter API.&lt;/p>
&lt;h1 id="خطوات-التغريد-باستخدام-api">خطوات التغريد باستخدام API
&lt;/h1>&lt;ol>
&lt;li>قم بزيارة &lt;a class="link" href="https://colab.research.google.com/" target="_blank" rel="noopener"
>https://colab.research.google.com/&lt;/a>&lt;/li>
&lt;li>حدد &amp;ldquo;ملف&amp;rdquo; -&amp;gt; &amp;ldquo;دفتر ملاحظات جديد&amp;rdquo;&lt;/li>
&lt;li>الصق الكود التالي وقم بتشغيله (استخدم القيم الفعلية التي حصلت عليها بنفسك)&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">API_KEY = &amp;#39;9Smu2f2RoLqbVQHQq6n79Z2JW&amp;#39;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">API_SECRET = &amp;#39;uGVRIkLL2l8sRyPv2Lr4mXxXppnQF1isMoRnvktcXCtFgAK2R8&amp;#39;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ACCESS_TOKEN = &amp;#39;0367292979164670705-7hSErDoQbO6fkFtnn5UY0vqpvecy0O&amp;#39;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ACCESS_TOKEN_SECRET = &amp;#39;pUv81U9GVzZirz5g4AxZPHAJ4GpSXnBo8GUcZ1egtjw9q&amp;#39;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="3">
&lt;li>الصق الكود التالي وقم بتشغيله&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">import tweepy
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="4">
&lt;li>الصق الكود التالي وقم بتشغيله (API v1.1)&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">auth = tweepy.OAuthHandler(API_KEY, API_SECRET)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">api = tweepy.API(auth)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">api.update_status(&amp;#34;hello&amp;#34;)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>→ سيتم نشر تغريدة &lt;code>hello&lt;/code>&lt;/p>
&lt;ol start="5">
&lt;li>الصق الكود التالي وقم بتشغيله (API v2.0)&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">client = tweepy.Client(consumer_key=API_KEY, consumer_secret=API_SECRET, access_token=ACCESS_TOKEN, access_token_secret=ACCESS_TOKEN_SECRET)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">client.create_tweet(text=&amp;#39;hello v2&amp;#39;)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>→ سيتم نشر تغريدة &lt;code>hello v2&lt;/code>&lt;/p>
&lt;p>هذا كل شيء&lt;/p>
&lt;h1 id="المراجع">المراجع
&lt;/h1>&lt;ul>
&lt;li>&lt;a class="link" href="https://bloomtectec.com/twitter-api-application-procedure/" target="_blank" rel="noopener"
>[اعتبارًا من أبريل 2021] شرح شامل لطلب استخدام Twitter API مع أمثلة للاستخدام ولقطات شاشة&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://bloomtectec.com/use-twitter-api-in-google-colab/" target="_blank" rel="noopener"
>[لا حاجة لإعدادات مزعجة!] نوصي بـ Google Colaboratory كبيئة تجريبية لـ Twitter API [سنشارك الكود المصدري أيضًا]&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://3pysci.com/tweepy-28/" target="_blank" rel="noopener"
>[Tweepy] Twitter API v2: تغريدة، رد، تغريدة مع استطلاع، تغريدة مع وسائط (v1.1) [Python]&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كيفية بناء OpenSSL على Windows</title><link>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/</link><pubDate>Fri, 07 Apr 2023 21:06:32 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية بناء OpenSSL على Windows" />&lt;h1 id="ما-هو-openssl">ما هو OpenSSL
&lt;/h1>&lt;p>إنه مكتبة مفتوحة المصدر توفر المعالجة اللازمة لإجراء اتصالات مشفرة.&lt;/p>
&lt;p>لاستخدامه من برنامج، يتم نشر كود مصدر لغة C، لذلك تحتاج إلى بناء وإنشاء مكتبة.&lt;/p>
&lt;p>أدناه، سوف نقدم إجراء البناء.&lt;/p>
&lt;h1 id="إعداد-بيئة-البناء">إعداد بيئة البناء
&lt;/h1>&lt;ul>
&lt;li>
&lt;p>&lt;strong>Perl&lt;/strong>&lt;/p>
&lt;p>قم بتنزيل &lt;code>strawberry-perl-5.32.1.1-64bit.msi&lt;/code> من &lt;a class="link" href="https://strawberryperl.com/" target="_blank" rel="noopener"
>https://strawberryperl.com/&lt;/a>. أعتقد أن أحدث إصدار جيد.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NASM&lt;/strong>&lt;/p>
&lt;p>قم بتنزيل &lt;code>2.16.01/nasm-2.16.01-win64.zip&lt;/code> من &lt;code>Download&lt;/code> في &lt;a class="link" href="https://www.nasm.us/" target="_blank" rel="noopener"
>https://www.nasm.us/&lt;/a>. أعتقد أن أحدث إصدار بخلاف rc جيد.
بعد التثبيت، يجب عليك تسجيل المجلد الذي تم تثبيت NASM فيه في متغير البيئة PATH.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Visual Studio 2022&lt;/strong> أو &lt;strong>Build Tools for Visual Studio 2022&lt;/strong>&lt;/p>
&lt;p>قم بتثبيت &lt;code>Visual Studio 2022 Community&lt;/code> أو &lt;code>Build Tools for Visual Studio 2022&lt;/code> من &lt;a class="link" href="https://visualstudio.microsoft.com/ja/downloads/" target="_blank" rel="noopener"
>https://visualstudio.microsoft.com/ja/downloads/&lt;/a>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h1 id="إجراء-بناء-openssl-على-windows">إجراء بناء OpenSSL على Windows
&lt;/h1>&lt;ol>
&lt;li>قم بتنزيل وفك ضغط &lt;code>openssl-3.1.0.tar.gz&lt;/code> من &lt;a class="link" href="https://www.openssl.org/source/" target="_blank" rel="noopener"
>https://www.openssl.org/source/&lt;/a>. إذا لم تتمكن من فك ضغطه، فقم بتشغيل &lt;code>tar -xzf openssl-3.1.0.tar.gz&lt;/code> في موجه الأوامر.&lt;/li>
&lt;li>ابدأ موجه الأوامر &lt;strong>بصلاحيات المسؤول&lt;/strong>&lt;/li>
&lt;li>افتح المجلد الذي تم فك ضغطه&lt;/li>
&lt;li>قم بتشغيل الأمر التالي ※قم بتغيير جزء &lt;code>Community&lt;/code> وفقًا لإصدار Visual Studio الذي قمت بتثبيته&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="s2">&amp;#34;C:\Program Files\Microsoft Visual Studio&lt;/span>&lt;span class="se">\202&lt;/span>&lt;span class="s2">2\Community\VC\Auxiliary\Build&lt;/span>&lt;span class="se">\v&lt;/span>&lt;span class="s2">cvarsall.bat&amp;#34;&lt;/span> &lt;span class="n">x64&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="5">
&lt;li>قم بتشغيل الأمر التالي&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">perl Configure VC-WIN64A
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="6">
&lt;li>قم بتشغيل الأمر التالي (يستغرق وقتًا طويلاً)&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">nmake
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="7">
&lt;li>قم بتشغيل الأمر التالي (يستغرق وقتًا طويلاً)&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">nmake test
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="8">
&lt;li>قم بتشغيل الأمر التالي&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">nmake install
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>في حالة النجاح، سيتم تثبيت OpenSSL في &lt;code>C:\Program Files\OpenSSL&lt;/code>.&lt;/p>
&lt;p>هذا كل شيء&lt;/p>
&lt;h1 id="المراجع">المراجع
&lt;/h1>&lt;p>&lt;a class="link" href="https://ja.wikipedia.org/wiki/OpenSSL" target="_blank" rel="noopener"
>https://ja.wikipedia.org/wiki/OpenSSL&lt;/a>&lt;/p></description></item><item><title>ما هو i18n؟</title><link>http://kenji.blog/ar/p/i18n%E3%81%A8%E3%81%AF/</link><pubDate>Fri, 07 Apr 2023 00:42:02 +0900</pubDate><guid>http://kenji.blog/ar/p/i18n%E3%81%A8%E3%81%AF/</guid><description>&lt;img src="http://kenji.blog/p/i18n%E3%81%A8%E3%81%AF/img.png" alt="Featured image of post ما هو i18n؟" />&lt;h1 id="ما-هو-i18n">ما هو i18n؟
&lt;/h1>&lt;p>مصطلح &lt;code>i18n&lt;/code> هو اختصار لكلمة &lt;code>Internationalization&lt;/code>، والتي تعني التدويل. نظرًا لأن كلمة &lt;code>Internationalization&lt;/code> طويلة، يتم اختصارها إلى &lt;code>i18n&lt;/code>، حيث يوجد 18 حرفًا بين الحرف الأول &lt;code>i&lt;/code> والحرف الأخير &lt;code>n&lt;/code>.&lt;/p>
&lt;p>يتم استخدامه أحيانًا في سياق تدويل البرمجيات.&lt;/p>
&lt;p>تشمل العناصر الرئيسية المستهدفة في التدويل ما يلي: &lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>&lt;/p>
&lt;ul>
&lt;li>مجموعة الأحرف (مثل رموز الأحرف القياسية)&lt;/li>
&lt;li>اتجاه الكتابة (من اليسار إلى اليمين، من اليمين إلى اليسار، من الأعلى إلى الأسفل باتجاه اليسار، إلخ)&lt;/li>
&lt;li>النصوص&lt;/li>
&lt;li>الخطوط&lt;/li>
&lt;li>التنسيق
&lt;ul>
&lt;li>الأرقام (مثل فاصلة العشرات، فاصلة الآلاف، عدد الخانات التي يتم تقسيمها، إلخ)&lt;/li>
&lt;li>التاريخ والوقت (مثل طريقة كتابة السنة والشهر واليوم، اختلافات التقويمات المستخدمة مثل التقويم الهجري/الميلادي/العبري/الياباني، إلخ)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>فروق التوقيت لمعلومات التاريخ والوقت&lt;/li>
&lt;li>معلومات العملة&lt;/li>
&lt;/ul>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>&lt;a class="link" href="https://ar.wikipedia.org/wiki/%D8%AA%D8%AF%D9%88%D9%8A%D9%84_%D9%88%D8%AA%D9%88%D8%B7%D9%8A%D9%86" target="_blank" rel="noopener"
>التدويل والتوطين - ويكيبيديا&lt;/a>&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>طريقة إنشاء عرض تقديمي باستخدام HTML (reveal.js)</title><link>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/</link><pubDate>Thu, 06 Apr 2023 23:23:46 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post طريقة إنشاء عرض تقديمي باستخدام HTML (reveal.js)" />&lt;h1 id="طريقة-إنشاء-عرض-تقديمي-باستخدام-html">طريقة إنشاء عرض تقديمي باستخدام HTML
&lt;/h1>&lt;p>أداة reveal.js هي أداة لإنشاء العروض التقديمية باستخدام HTML و Markdown، وتحتوي على الميزات التالية:&lt;/p>
&lt;ul>
&lt;li>ميزات عرض تقديمي متنوعة مثل المعادلات الرياضية، الرسوم المتحركة، وعمليات السحب&lt;/li>
&lt;li>إمكانية تخصيص السمة والتخطيط&lt;/li>
&lt;li>ميزات تنقل تدعم أجهزة متعددة مثل الماوس، لوحة المفاتيح، ولوحة اللمس&lt;/li>
&lt;li>توفير ميزات متقدمة مثل التشغيل التلقائي للشرائح وتضمين الفيديو&lt;/li>
&lt;li>إمكانية التصدير بصيغة PDF&lt;/li>
&lt;/ul>
&lt;p>من خلال هذه الميزات، يمكن للمستخدمين بسهولة إنشاء عروض تقديمية تفاعلية وجذابة.&lt;/p>
&lt;h1 id="تثبيت-واستخدام-revealjs">تثبيت واستخدام reveal.js
&lt;/h1>&lt;p>أسهل طريقة للاستخدام هي تنزيل ملف ZIP بالكامل من الصفحة التالية وفك ضغطه.&lt;/p>
&lt;ol>
&lt;li>افتح &lt;a class="link" href="https://revealjs.com/installation" target="_blank" rel="noopener"
>https://revealjs.com/installation&lt;/a> وقم بتنزيل &lt;code>master.zip&lt;/code> من الرابط&lt;/li>
&lt;li>افتح ملف index.html الموجود في المجلد المستخرج باستخدام المتصفح&lt;/li>
&lt;li>قم بتعديل index.html لإنشاء العرض التقديمي الخاص بك&lt;/li>
&lt;/ol>
&lt;p>※ تمت كتابة كود HTML تجريبي في demo.html لذا يمكنك استخدامه كمرجع.&lt;/p>
&lt;h1 id="طرق-الاستفادة">طرق الاستفادة
&lt;/h1>&lt;p>يمكنك نشر العرض التقديمي الذي قمت بإنشائه كصفحة ويب كما هو، أو تصديره كملف PDF.
أيضًا، نظرًا لأن مصدر العرض التقديمي عبارة عن نص، فمن السهل إدارته باستخدام أنظمة التحكم في الإصدار.&lt;/p>
&lt;p>يبدو أنه يمكنك أيضًا إنشاء عروض تقديمية بتنسيق Markdown.&lt;/p>
&lt;h1 id="المراجع">المراجع
&lt;/h1>&lt;ul>
&lt;li>&lt;a class="link" href="https://qiita.com/Targityen/items/40ae4795e2cb77c1adc6" target="_blank" rel="noopener"
>لنستخدم reveal.js للعروض التقديمية المستقبلية&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://qiita.com/jkjoluvjlajelljicvjzojieoaid/items/01cd7ff819bc2e69b652" target="_blank" rel="noopener"
>قائمة أمثلة على صيغة Markdown&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كيفية إنشاء صور توضيحية باستخدام الذكاء الاصطناعي (StableDiffusion)</title><link>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/</link><pubDate>Thu, 06 Apr 2023 00:43:19 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية إنشاء صور توضيحية باستخدام الذكاء الاصطناعي (StableDiffusion)" />&lt;h1 id="ما-هو-stable-diffusion">ما هو Stable diffusion
&lt;/h1>&lt;p>Stable diffusion هو ذكاء اصطناعي لإنشاء الصور من المعلومات النصية المدخلة، طوره فريق بحث في جامعة ميونخ في ألمانيا.
من خلال تدريبه على صور متنوعة، يمكنه إنشاء صور مختلفة من الصور الواقعية إلى الرسوم التوضيحية.&lt;/p>
&lt;p>في هذه المرة، سأقدم طريقة لإنشاء صور توضيحية باستخدام البيانات المدربة مسبقًا لـ Stable diffusion.&lt;/p>
&lt;h1 id="الأشياء-المطلوبة">الأشياء المطلوبة
&lt;/h1>&lt;ul>
&lt;li>حساب Google&lt;/li>
&lt;/ul>
&lt;p>فقط&lt;/p>
&lt;h1 id="خطوات-الإنشاء">خطوات الإنشاء
&lt;/h1>&lt;ol>
&lt;li>افتح &lt;a class="link" href="https://colab.research.google.com" target="_blank" rel="noopener"
>https://colab.research.google.com&lt;/a>&lt;/li>
&lt;li>من &lt;code>ملف&lt;/code> في الزاوية العلوية اليسرى، حدد &lt;code>إنشاء دفتر ملاحظات جديد&lt;/code>&lt;/li>
&lt;li>من &lt;code>تعديل&lt;/code>، حدد &lt;code>إعدادات دفتر الملاحظات&lt;/code>&lt;/li>
&lt;li>قم بتغيير &lt;code>مسرع الأجهزة&lt;/code> إلى &lt;code>GPU&lt;/code>
&lt;img src="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_2.png"
width="627"
height="324"
srcset="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_2_hud7bbdf6a24e33b2b36528d9e25b016c8_23961_480x0_resize_box_3.png 480w, 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_2_hud7bbdf6a24e33b2b36528d9e25b016c8_23961_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="193"
data-flex-basis="464px"
>&lt;/li>
&lt;li>الصق الكود التالي وقم بتشغيله&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">!pip install diffusers==0.8.0 transformers
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="6">
&lt;li>الصق الكود التالي وقم بتشغيله&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">from diffusers import StableDiffusionPipeline
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="7">
&lt;li>الصق الكود التالي وقم بتشغيله&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">pipe = StableDiffusionPipeline.from_pretrained(&amp;#34;gsdf/Counterfeit-V2.5&amp;#34;)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">pipe.to(&amp;#34;cuda&amp;#34;)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="8">
&lt;li>الصق الكود التالي وقم بتشغيله&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">prompt = &amp;#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&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">n_prompt = &amp;#34;EasyNegative, extra fingers,fewer fingers&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">image = pipe(prompt, negative_prompt = n_prompt).images[0]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">image
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>إن &lt;code>Prompt&lt;/code> المستخدم هنا مبني على &lt;code>Prompt&lt;/code> من &lt;a class="link" href="https://huggingface.co/gsdf/Counterfeit-V2.5" target="_blank" rel="noopener"
>https://huggingface.co/gsdf/Counterfeit-V2.5&lt;/a>.&lt;/p>
&lt;h2 id="نتائج-الإنشاء-بعض-منها">نتائج الإنشاء (بعض منها)
&lt;/h2>&lt;p>&lt;img src="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_1.png"
width="512"
height="512"
srcset="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_1_hu1ec19e515fd7538067cc14f2c3c8bddf_594392_480x0_resize_box_3.png 480w, 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_1_hu1ec19e515fd7538067cc14f2c3c8bddf_594392_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;p>&lt;img src="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_3.png"
width="512"
height="512"
srcset="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_3_hu67e673668e1b02812ead4fb15912ac36_533749_480x0_resize_box_3.png 480w, 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_3_hu67e673668e1b02812ead4fb15912ac36_533749_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;p>&lt;img src="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_4.png"
width="512"
height="512"
srcset="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_4_hu2b826ec3ad4d7685d995efaa40aac0c5_597506_480x0_resize_box_3.png 480w, 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_4_hu2b826ec3ad4d7685d995efaa40aac0c5_597506_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_4.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;h2 id="مراجع">مراجع
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://huggingface.co/gsdf/Counterfeit-V2.5" target="_blank" rel="noopener"
>https://huggingface.co/gsdf/Counterfeit-V2.5&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://www.youtube.com/watch?v=l8-fVSM2PVQ" target="_blank" rel="noopener"
>حاولت إنشاء برنامج توليد صور باستخدام الذكاء الاصطناعي (AI) في 15 دقيقة【برمجة حية】&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>أدوات لتحليل محتويات الملف القابل للتنفيذ (exe)</title><link>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/</link><pubDate>Wed, 05 Apr 2023 23:31:06 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post أدوات لتحليل محتويات الملف القابل للتنفيذ (exe)" />&lt;h1 id="ما-هو-الملف-القابل-للتنفيذ-exe">ما هو الملف القابل للتنفيذ (exe)؟
&lt;/h1>&lt;p>ملف يمكن تشغيله على نظام Windows. وهو مكتوب في الغالب بتنسيق يسمى تنسيق PE.
يحتوي على كود لغة الآلة للتنفيذ والموارد مثل الرموز والصور.&lt;/p>
&lt;p>هناك العديد من الأدوات لتحليل الملفات القابلة للتنفيذ، لذا سأقدمها هذه المرة.&lt;/p>
&lt;h2 id="7-zip">7-Zip
&lt;/h2>&lt;p>&lt;img src="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.png"
width="297"
height="170"
srcset="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_hu9085a5feff69a2c6829ff5c46ff00393_6059_480x0_resize_box_3.png 480w, 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_hu9085a5feff69a2c6829ff5c46ff00393_6059_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="174"
data-flex-basis="419px"
>&lt;/p>
&lt;p>غالباً ما يتم إنشاء ملفات EXE عن طريق ضغط الملفات لأن حجمها يميل إلى أن يكون كبيراً. في هذه الحالة، باستخدام 7-Zip، وهو برنامج ضغط واستخراج ملفات، يمكنك استخراج الملف القابل للتنفيذ والتحقق من محتوياته. أداة أخرى مماثلة يمكنها القيام بذلك هي WinRAR.&lt;/p>
&lt;h2 id="resource-hacker">Resource Hacker
&lt;/h2>&lt;p>&lt;img src="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_2.png"
width="186"
height="186"
srcset="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_2_hu79aaf5f76ad7c56f4d42723e7059a469_60178_480x0_resize_box_3.png 480w, 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_2_hu79aaf5f76ad7c56f4d42723e7059a469_60178_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;p>يمكنك استخراج الموارد (الرموز والصور النقطية ومربعات الحوار والسلاسل وما إلى ذلك) الموجودة داخل ملف EXE. بالإضافة إلى ذلك، نظراً لأنه يعمل أيضاً كمحرر ثنائي (Hex Editor)، يمكنك تحرير وإعادة كتابة محتويات ملف EXE.&lt;/p>
&lt;h2 id="pe-explorer">PE Explorer
&lt;/h2>&lt;p>&lt;img src="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_3.png"
width="186"
height="186"
srcset="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_3_hueb15d1af1c62b25c13fb3d7dc03fc6df_64201_480x0_resize_box_3.png 480w, 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_3_hueb15d1af1c62b25c13fb3d7dc03fc6df_64201_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;p>يمكنك تحليل ملفات PE لنظام التشغيل Windows (EXE ، DLL ، OCX ، SYS ، برامج التشغيل). يوفر PE Explorer وظائف تحليل متنوعة، مثل عرض بنية الملف، ورأس الملف، وإدخالات الدليل، والوظائف والرموز المصدرة.&lt;/p>
&lt;h2 id="dependency-walker">Dependency Walker
&lt;/h2>&lt;p>&lt;img src="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_4.png"
width="200"
height="200"
srcset="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_4_hub63c69aff9d8b5946247e847a7ad1fc0_3219_480x0_resize_box_3.png 480w, 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_4_hub63c69aff9d8b5946247e847a7ad1fc0_3219_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_4.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;p>يمكنك التحقق من ملفات DLL التي يعتمد عليها ملف EXE والتأكد من تحميلها بشكل صحيح. يمكنك أيضاً تتبع استدعاءات الوظائف لملفات DLL.&lt;/p>
&lt;h2 id="ghidra">Ghidra
&lt;/h2>&lt;p>&lt;img src="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_5.png"
width="498"
height="337"
srcset="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_5_hu5dc3fee7c4c873ff8adc099ca0ffbefc_53940_480x0_resize_box_3.png 480w, 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_5_hu5dc3fee7c4c873ff8adc099ca0ffbefc_53940_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_5.png"
class="gallery-image"
data-flex-grow="147"
data-flex-basis="354px"
>&lt;/p>
&lt;p>إنها أداة قوية للهندسة العكسية طورتها وكالة الأمن القومي الأمريكية (NSA) ومتاحة مجاناً كمصدر مفتوح. لا تقوم هذه الأداة بتفكيك ملفات EXE فحسب (تحويلها إلى لغة التجميع)، بل إنها تحتوي أيضاً على ميزة فك التجميع (Decompilation) إلى شكل قريب من لغة C، مما يجعلها تحظى بشعبية كبيرة.&lt;/p>
&lt;h2 id="ida-free--ida-pro">IDA Free / IDA Pro
&lt;/h2>&lt;p>&lt;img src="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_6.png"
width="256"
height="256"
srcset="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_6_hu960ac9a27bf840a560548c99c16556b4_3581_480x0_resize_box_3.png 480w, 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_6_hu960ac9a27bf840a560548c99c16556b4_3581_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_6.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;p>إنه مفكك (Disassembler) ومفكك تجميع (Decompiler) عالي الأداء أصبح معياراً صناعياً عالمياً في تحليل البرامج الضارة والهندسة العكسية. نسخة Pro باهظة الثمن للغاية، ولكن بالنسبة للأغراض الشخصية أو غير التجارية، يمكنك استخدام النسخة المحدودة الوظائف &amp;ldquo;IDA Free&amp;rdquo; مجاناً.&lt;/p>
&lt;h2 id="x64dbg-x32dbg">x64dbg (x32dbg)
&lt;/h2>&lt;p>&lt;img src="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_7.png"
width="479"
height="430"
srcset="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_7_hube21c1a0d75785c568f5805ce2a13d30_21845_480x0_resize_box_3.png 480w, 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_7_hube21c1a0d75785c568f5805ce2a13d30_21845_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_7.png"
class="gallery-image"
data-flex-grow="111"
data-flex-basis="267px"
>&lt;/p>
&lt;p>إنه مصحح أخطاء (Debugger) مفتوح المصدر لنظام Windows. يتخصص في &amp;ldquo;التحليل الديناميكي&amp;rdquo;، والذي يحلل المحتويات وحالة الذاكرة خطوة بخطوة أثناء تشغيل الملف القابل للتنفيذ، وغالباً ما يُستخدم لفك تشفير crackme (برامج التحدي للتحليل) والتحقيق في سلوك البرامج الضارة.&lt;/p>
&lt;h2 id="ilspy--dotpeek">ILSpy / dotPeek
&lt;/h2>&lt;p>&lt;img src="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_8.png"
width="256"
height="256"
srcset="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_8_hu85c069d4379e159e6158cf86ba41fdc9_34476_480x0_resize_box_3.png 480w, 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_8_hu85c069d4379e159e6158cf86ba41fdc9_34476_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_8.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;p>إذا تم إنشاء ملف EXE المستهدف باستخدام لغة من عائلة .NET مثل C#، فيمكنك استخدام هذه الأدوات لفك تجميعه (Decompile) إلى حالة متطابقة تقريباً مع الكود المصدري الأصلي وكشف محتوياته.&lt;/p>
&lt;p>هذه الأدوات مفيدة للتحقق من محتويات ملف EXE، ولكن يجب أن تكون حذراً. يمكن أن يؤدي تحرير الملفات أو استخدامها لأغراض غير قانونية إلى مشاكل في حقوق الطبع والنشر والأمن، لذا يرجى استخدامها بفهم كامل.&lt;/p></description></item><item><title>كيفية تبديل التطبيقات مثل Windows (Alt+Tab) على Mac</title><link>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/</link><pubDate>Wed, 05 Apr 2023 02:20:12 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية تبديل التطبيقات مثل Windows (Alt+Tab) على Mac" />&lt;h1 id="مقدمة">مقدمة
&lt;/h1>&lt;p>أقدم لكم طريقة لتبديل التطبيقات على Mac بشكل مشابه لـ Windows (Alt+Tab).&lt;/p>
&lt;p>نظرًا لصعوبة تحقيق ذلك عن طريق تغيير الإعدادات القياسية، فإن هذه الطريقة تتطلب تثبيت تطبيق.&lt;/p>
&lt;h1 id="صورة-توضيحية-للعمل">صورة توضيحية للعمل
&lt;/h1>&lt;p>&lt;img src="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/animation.gif"
width="640"
height="200"
srcset="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/animation_hu0429bb2e6c44af4c82057c8719de4732_563361_480x0_resize_box_1.gif 480w, 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/animation_hu0429bb2e6c44af4c82057c8719de4732_563361_1024x0_resize_box_1.gif 1024w"
loading="lazy"
alt="animation.gif"
class="gallery-image"
data-flex-grow="320"
data-flex-basis="768px"
>&lt;/p>
&lt;h1 id="طريقة-الإعداد-macos-ventura">طريقة الإعداد (macOS Ventura)
&lt;/h1>&lt;ol>
&lt;li>افتح &lt;a class="link" href="https://alt-tab-macos.netlify.app" target="_blank" rel="noopener"
>https://alt-tab-macos.netlify.app&lt;/a>&lt;/li>
&lt;li>انقر على &lt;code>Download the latest release&lt;/code>&lt;/li>
&lt;li>افتح التطبيق الذي تم تنزيله&lt;/li>
&lt;li>اتبع الخطوات للتثبيت&lt;/li>
&lt;/ol>
&lt;p>الآن، يمكنك تبديل التطبيقات باستخدام Alt+Tab كما هو الحال في Windows.&lt;/p>
&lt;p>انتهى&lt;/p></description></item><item><title>كيفية مطابقة مفاتيح اختصار النسخ واللصق في نظام Mac مع Windows</title><link>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/</link><pubDate>Wed, 05 Apr 2023 00:49:02 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية مطابقة مفاتيح اختصار النسخ واللصق في نظام Mac مع Windows" />&lt;h1 id="مقدمة">مقدمة
&lt;/h1>&lt;p>عند التبديل بين استخدام Windows و Mac، تختلف مفاتيح اختصار لوحة المفاتيح شائعة الاستخدام مثل النسخ واللصق والتراجع.
سأقدم هنا طريقة لمطابقتها.&lt;/p>
&lt;h1 id="طريقة-الإعداد-macos-ventura">طريقة الإعداد (macOS Ventura)
&lt;/h1>&lt;ol>
&lt;li>افتح إعدادات النظام&lt;/li>
&lt;li>حدد لوحة المفاتيح&lt;/li>
&lt;li>حدد اختصارات لوحة المفاتيح&lt;/li>
&lt;li>حدد مفاتيح التعديل&lt;/li>
&lt;li>عيّن مفتاح Control(^) إلى &amp;ldquo;⌘ Command&amp;rdquo;&lt;/li>
&lt;li>عيّن مفتاح Command(⌘) إلى &amp;ldquo;^ Control&amp;rdquo;&lt;/li>
&lt;li>انقر فوق تم&lt;/li>
&lt;/ol>
&lt;p>هذا كل شيء&lt;/p></description></item><item><title>كيفية تغيير اختصار لوحة المفاتيح للتبديل بين إدخال اليابانية والإنجليزية على mac</title><link>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/</link><pubDate>Tue, 04 Apr 2023 23:02:12 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية تغيير اختصار لوحة المفاتيح للتبديل بين إدخال اليابانية والإنجليزية على mac" />&lt;h1 id="مقدمة">مقدمة
&lt;/h1>&lt;p>أنا أستخدم لوحة مفاتيح أمريكية (US keyboard)، وفي نظام Windows أقوم بالتبديل إلى الإدخال الياباني باستخدام &lt;code>Alt + `&lt;/code>.
أردت التبديل باستخدام نفس المفتاح على نظام mac، وبعد البحث وجدت أنه يمكن تغييره في الإعدادات.&lt;/p>
&lt;h1 id="طريقة-الإعداد-macos-ventura">طريقة الإعداد (macOS Ventura)
&lt;/h1>&lt;ol>
&lt;li>افتح إعدادات النظام&lt;/li>
&lt;li>حدد لوحة المفاتيح&lt;/li>
&lt;li>حدد اختصارات لوحة المفاتيح&lt;/li>
&lt;li>حدد مصادر الإدخال&lt;/li>
&lt;li>انقر نقرًا مزدوجًا على تمثيل الاختصار على يمين &amp;ldquo;تحديد المصدر التالي في قائمة الإدخال&amp;rdquo;&lt;/li>
&lt;li>أدخل &lt;code>Alt + `&lt;/code>&lt;/li>
&lt;li>انقر فوق تم&lt;/li>
&lt;/ol>
&lt;p>الآن، ستتمكن من التبديل بين الإنجليزية ⇔ اليابانية باستخدام &lt;code>Alt + `&lt;/code>.
ومع ذلك، بشكل افتراضي، يتم تضمين الكاتاكانا في التبديل، لذلك قمت بإزالة الكاتاكانا من مصادر الإدخال باستخدام الخطوات التالية.&lt;/p>
&lt;ol>
&lt;li>افتح إعدادات النظام&lt;/li>
&lt;li>حدد لوحة المفاتيح&lt;/li>
&lt;li>انقر على تحرير على يمين &lt;code>اليابانية - إدخال روماجي&lt;/code> في مصادر الإدخال&lt;/li>
&lt;li>انقر فوق &lt;code>اليابانية - إدخال روماجي&lt;/code>&lt;/li>
&lt;li>قم بإلغاء تحديد كاتاكانا في أوضاع الإدخال&lt;/li>
&lt;li>انقر فوق تم&lt;/li>
&lt;/ol>
&lt;p>هذا كل شيء&lt;/p></description></item><item><title>كيفية العثور على موقع ملف تنفيذي في مسار Windows</title><link>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/</link><pubDate>Mon, 03 Apr 2023 00:02:55 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية العثور على موقع ملف تنفيذي في مسار Windows" />&lt;h1 id="كيفية-العثور-على-موقع-ملف-تنفيذي-في-مسار-windows">كيفية العثور على موقع ملف تنفيذي في مسار Windows
&lt;/h1>&lt;p>عند تشغيل أمر بتحديد ملف تنفيذي، قد ترغب في معرفة مكان هذا الملف التنفيذي. في مثل هذه الحالات، يمكنك استخدام الأمر أدناه للتحقق من موقع الملف التنفيذي.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">where &lt;/span>&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="n">اسم&lt;/span> &lt;span class="n">الملف&lt;/span> &lt;span class="n">التنفيذي&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>على سبيل المثال، إذا كنت تريد معرفة موقع برنامج الرسام (mspaint.exe)، افعل ما يلي:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">where &lt;/span>&lt;span class="n">mspaint&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">exe&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h1 id="المراجع">المراجع
&lt;/h1>&lt;ul>
&lt;li>&lt;a class="link" href="https://superuser.com/questions/49104/how-do-i-find-the-location-of-an-executable-in-windows" target="_blank" rel="noopener"
>How do I find the location of an executable in Windows?&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>شراء mac mini(2018)</title><link>http://kenji.blog/ar/p/%D8%B4%D8%B1%D8%A7%D8%A1-mac-mini2018/</link><pubDate>Sun, 02 Apr 2023 18:05:30 +0900</pubDate><guid>http://kenji.blog/ar/p/%D8%B4%D8%B1%D8%A7%D8%A1-mac-mini2018/</guid><description>&lt;img src="http://kenji.blog/p/mac-mini2018%E3%82%92%E8%B3%BC%E5%85%A5/img.png" alt="Featured image of post شراء mac mini(2018)" />&lt;h1 id="شراء-mac-mini2018">شراء mac mini(2018)
&lt;/h1>&lt;p>اشتريت جهاز mac mini(2018) مستعملًا من طراز قديم على Mercari. المواصفات كالتالي:&lt;/p>
&lt;ul>
&lt;li>المعالج: 3.2GHz 6-core Intel Core i7&lt;/li>
&lt;li>الذاكرة: 32GB&lt;/li>
&lt;li>التخزين: 1TB SSD&lt;/li>
&lt;/ul>
&lt;p>السعر 77,000 ين.&lt;/p>
&lt;h1 id="سبب-الشراء">سبب الشراء
&lt;/h1>&lt;ul>
&lt;li>أستخدم جهاز mac mini بنفس المواصفات تقريبًا في العمل لتطوير تطبيقات الهواتف الذكية، وأردت إعداد بيئة تطوير في المنزل أيضًا (خاصة بيئة تشغيل xcode).&lt;/li>
&lt;li>أمتلك جهاز macbook pro، ولكني اشتريته قبل 9 سنوات وهو بطيء جدًا لذا لا أستخدمه تقريبًا.&lt;/li>
&lt;li>كنت أرغب شخصيًا في تطوير تطبيقات iOS.&lt;/li>
&lt;/ul>
&lt;h1 id="قمت-بتثبيت-xcode-و-intelij-idea-على-الفور">قمت بتثبيت xcode و inteliJ IDEA على الفور
&lt;/h1>&lt;p>إصدار xcode هو Version 14.3 (14E222b)
&lt;img src="http://kenji.blog/p/mac-mini2018%E3%82%92%E8%B3%BC%E5%85%A5/img_1.png"
width="642"
height="331"
srcset="http://kenji.blog/p/mac-mini2018%E3%82%92%E8%B3%BC%E5%85%A5/img_1_hu62db0034d30abaeb581954f95aa17251_77271_480x0_resize_box_3.png 480w, http://kenji.blog/p/mac-mini2018%E3%82%92%E8%B3%BC%E5%85%A5/img_1_hu62db0034d30abaeb581954f95aa17251_77271_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="193"
data-flex-basis="465px"
>&lt;/p>
&lt;p>إصدار inteliJ IDEA هو 2023.1
&lt;img src="http://kenji.blog/p/mac-mini2018%E3%82%92%E8%B3%BC%E5%85%A5/img_2.png"
width="570"
height="386"
srcset="http://kenji.blog/p/mac-mini2018%E3%82%92%E8%B3%BC%E5%85%A5/img_2_hud92d5f30e3391929dea80140d8f5dfb2_79324_480x0_resize_box_3.png 480w, http://kenji.blog/p/mac-mini2018%E3%82%92%E8%B3%BC%E5%85%A5/img_2_hud92d5f30e3391929dea80140d8f5dfb2_79324_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="147"
data-flex-basis="354px"
>&lt;/p>
&lt;p>هيا بنا! سأبدأ في التطوير!&lt;/p></description></item><item><title>حول موقع الصور "Unsplash" الذي يمكن استخدامه للمدونات</title><link>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/</link><pubDate>Sun, 02 Apr 2023 14:44:17 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post حول موقع الصور "Unsplash" الذي يمكن استخدامه للمدونات" />&lt;h2 id="حول-unsplash">حول &amp;ldquo;Unsplash&amp;rdquo;
&lt;/h2>&lt;p>&lt;a class="link" href="https://unsplash.com/ja/" target="_blank" rel="noopener"
>https://unsplash.com/ja/&lt;/a>&lt;/p>
&lt;p>خلاصة موقع مواد الصور &amp;ldquo;Unsplash&amp;rdquo; هي كما يلي:&lt;/p>
&lt;ul>
&lt;li>يمكن استخدام جميع الصور مجانًا&lt;/li>
&lt;li>يُسمح بالاستخدام التجاري&lt;/li>
&lt;li>يُسمح بتعديل الصور&lt;/li>
&lt;li>لا يُشترط الحصول على إذن استخدام&lt;/li>
&lt;li>لا يُشترط ذكر المصدر&lt;/li>
&lt;/ul>
&lt;p>إنه سهل الاستخدام للغاية عند كتابة مقالات في المدونة، لذا يرجى تجربته.&lt;/p>
&lt;p>※ فيما يتعلق بالترخيص، يرجى الرجوع إلى &amp;ldquo;الحاشية&amp;rdquo; أدناه. &lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>&lt;/p>
&lt;p>سأقوم أيضًا باستخدامه في هذا الموقع.&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>&lt;a class="link" href="https://unsplash.com/ja/%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9" target="_blank" rel="noopener"
>ترخيص Unsplash&lt;/a>&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title>كيفية عرض اللغة اليابانية في egui</title><link>http://kenji.blog/ar/p/how-to-display-japanese-in-egui-ar/</link><pubDate>Sat, 01 Apr 2023 03:17:52 +0900</pubDate><guid>http://kenji.blog/ar/p/how-to-display-japanese-in-egui-ar/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية عرض اللغة اليابانية في egui" />&lt;h2 id="الحصول-على-مثال-egui">الحصول على مثال egui
&lt;/h2>&lt;p>يمكنك تشغيل مثال egui بالأوامر التالية.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">git clone https://github.com/emilk/eframe_template/ egui_test
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cd egui_test
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cargo run
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="تحميل-خط-يدعم-اليابانية">تحميل خط يدعم اليابانية
&lt;/h2>&lt;p>لعرض اللغة اليابانية، تحتاج إلى تحميل خط يدعمها.&lt;/p>
&lt;p>في &lt;code>src/app.rs&lt;/code>، أضف الأسطر التالية داخل طريقة &lt;code>pub fn new&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-rust" data-lang="rust">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// تحميل خط يدعم اللغة اليابانية
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="kd">let&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">mut&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">fonts&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">egui&lt;/span>::&lt;span class="n">FontDefinitions&lt;/span>::&lt;span class="n">default&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="n">fonts&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">font_data&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">insert&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="s">&amp;#34;Meiryo&amp;#34;&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">to_owned&lt;/span>&lt;span class="p">(),&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">egui&lt;/span>::&lt;span class="n">FontData&lt;/span>::&lt;span class="n">from_static&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="fm">include_bytes!&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;C:/Windows/Fonts/Meiryo.ttc&amp;#34;&lt;/span>&lt;span class="p">)),&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="n">fonts&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">families&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">entry&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">egui&lt;/span>::&lt;span class="n">FontFamily&lt;/span>::&lt;span class="n">Proportional&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">or_default&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">insert&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s">&amp;#34;Meiryo&amp;#34;&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">to_owned&lt;/span>&lt;span class="p">());&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="n">cc&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">egui_ctx&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">set_fonts&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">fonts&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="الآن-يمكنك-عرض-اللغة-اليابانية">الآن يمكنك عرض اللغة اليابانية.
&lt;/h2>&lt;p>&lt;img src="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.png"
width="279"
height="120"
srcset="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_480x0_resize_box_3.png 480w, 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_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="232"
data-flex-basis="558px"
>&lt;/p></description></item><item><title>كيفية تفعيل KaTeX (عرض المعادلات بأسلوب LaTeX) في hugo</title><link>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/</link><pubDate>Fri, 31 Mar 2023 23:11:26 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية تفعيل KaTeX (عرض المعادلات بأسلوب LaTeX) في hugo" />&lt;h1 id="ما-هو-katex">ما هو KaTeX؟
&lt;/h1>&lt;p>KaTeX هي مكتبة javascript لعرض المعادلات الرياضية بأسلوب LaTeX في HTML.&lt;/p>
&lt;p>على وجه التحديد، يمكنك عرض معادلات مثل التالية:&lt;/p>
$$f(x) = x^2 + x + 41$$
&lt;p>يبدو أن هناك مكتبات أخرى لعرض المعادلات بأسلوب LaTeX، لكن KaTeX معروفة بكونها بسيطة وسريعة.&lt;/p>
&lt;h1 id="كيفية-إضافته-إلى-hugo">كيفية إضافته إلى hugo
&lt;/h1>&lt;ol>
&lt;li>قم بإنشاء ملف جديد &lt;code>layouts/partials/math.html&lt;/code> في بنية مجلدات hugo.&lt;/li>
&lt;/ol>
&lt;p>يجب أن يكون المحتوى كالتالي:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">&amp;lt;link rel=&amp;#34;stylesheet&amp;#34; href=&amp;#34;https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/katex.min.css&amp;#34; integrity=&amp;#34;sha384-vKruj+a13U8yHIkAyGgK1J3ArTLzrFGBbBc0tDp4ad/EyewESeXE/Iv67Aj8gKZ0&amp;#34; crossorigin=&amp;#34;anonymous&amp;#34;&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;lt;script defer src=&amp;#34;https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/katex.min.js&amp;#34; integrity=&amp;#34;sha384-PwRUT/YqbnEjkZO0zZxNqcxACrXe+j766U2amXcgMg5457rve2Y7I6ZJSm2A0mS4&amp;#34; crossorigin=&amp;#34;anonymous&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;lt;script defer src=&amp;#34;https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/contrib/auto-render.min.js&amp;#34; integrity=&amp;#34;sha384-+VBxd3r6XgURycqtZ117nYw44OOcIax56Z4dCRWbxyPt0Koah1uHoK0o4+/RRE05&amp;#34; crossorigin=&amp;#34;anonymous&amp;#34;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;lt;script&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">document.addEventListener(&amp;#34;DOMContentLoaded&amp;#34;, function() {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> renderMathInElement(
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> document.body,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> delimiters: [
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {left: &amp;#34;$$&amp;#34;, right: &amp;#34;$$&amp;#34;, display: true},
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {left: &amp;#34;\\[&amp;#34;, right: &amp;#34;\\]&amp;#34;, display: true},
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {left: &amp;#34;$&amp;#34;, right: &amp;#34;$&amp;#34;, display: false},
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {left: &amp;#34;\\(&amp;#34;, right: &amp;#34;\\)&amp;#34;, display: false}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> });
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> });
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;lt;/script&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="2">
&lt;li>بعد ذلك، أضف الكود التالي إلى الملف الحالي &lt;code>layouts/partials/extend_head.html&lt;/code>.&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{{ if or .Params.math .Site.Params.math }}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{ partial &amp;#34;math.html&amp;#34; . }}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">{{ end }}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="3">
&lt;li>الآن أصبحت جاهزًا لاستخدام KaTeX.&lt;/li>
&lt;/ol>
&lt;p>عن طريق إضافة &lt;code>math: true&lt;/code> إلى front matter للصفحة، يمكنك تفعيل KaTeX.&lt;/p>
&lt;ol start="4">
&lt;li>كل ما عليك فعله بعد ذلك هو كتابة المعادلات بأسلوب LaTeX في نص المقالة.&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">$$ e^{i \pi} = -1 $$
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>عندما تكتب كما هو موضح أعلاه، سيتم عرضها كالتالي:&lt;/p>
$$ e^{i \pi} = -1 $$
&lt;h1 id="مراجع">مراجع
&lt;/h1>&lt;ul>
&lt;li>&lt;a class="link" href="https://reorx.github.io/hugo-PaperModX/docs/math-typesetting/" target="_blank" rel="noopener"
>Math Typesetting | PaperModX&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://katex.org/docs/autorender.html" target="_blank" rel="noopener"
>KaTex Auto-render Extension&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://www.storange.jp/2017/02/katex.html" target="_blank" rel="noopener"
>إدخال KaTeX | The Strange Storage&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>كتب أعمال موصى بها</title><link>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/</link><pubDate>Sun, 19 Mar 2023 18:13:14 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كتب أعمال موصى بها" />&lt;h2 id="كيف-تكسب-الأصدقاء-وتؤثر-في-الناس">كيف تكسب الأصدقاء وتؤثر في الناس
&lt;/h2>&lt;p>&lt;a class="link" href="https://amzn.to/3YTv0Dr" target="_blank" rel="noopener"
>https://amzn.to/3YTv0Dr&lt;/a>&lt;/p>
&lt;p>&lt;img src="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_1.png"
width="158"
height="218"
srcset="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_1_hu0b4e8b3b2e8876499a2f9254f3b03b70_47860_480x0_resize_box_3.png 480w, 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_1_hu0b4e8b3b2e8876499a2f9254f3b03b70_47860_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="72"
data-flex-basis="173px"
>&lt;/p>
&lt;h2 id="الشجاعة-لتكون-غير-محبوب">الشجاعة لتكون غير محبوب
&lt;/h2>&lt;p>&lt;a class="link" href="https://amzn.to/3n3SVCQ" target="_blank" rel="noopener"
>https://amzn.to/3n3SVCQ&lt;/a>&lt;/p>
&lt;p>&lt;img src="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_4.png"
width="154"
height="218"
srcset="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_4_huda24c6b40e214f1b3d7c78666e957c42_67528_480x0_resize_box_3.png 480w, 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_4_huda24c6b40e214f1b3d7c78666e957c42_67528_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_4.png"
class="gallery-image"
data-flex-grow="70"
data-flex-basis="169px"
>&lt;/p>
&lt;h2 id="تحول-الحياة-استراتيجية-الحياة-لعصر-المائة-عام">تحول الحياة: استراتيجية الحياة لعصر المائة عام
&lt;/h2>&lt;p>&lt;a class="link" href="https://amzn.to/3TtKUDf" target="_blank" rel="noopener"
>https://amzn.to/3TtKUDf&lt;/a>&lt;/p>
&lt;p>&lt;img src="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_3.png"
width="163"
height="218"
srcset="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_3_hu8ca572c69f660691f78f4503d6e98a90_44702_480x0_resize_box_3.png 480w, 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_3_hu8ca572c69f660691f78f4503d6e98a90_44702_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="74"
data-flex-basis="179px"
>&lt;/p>
&lt;h2 id="العادات-السبع-للناس-الأكثر-فعالية">العادات السبع للناس الأكثر فعالية
&lt;/h2>&lt;p>&lt;a class="link" href="https://amzn.to/3TqfjSO" target="_blank" rel="noopener"
>https://amzn.to/3TqfjSO&lt;/a>&lt;/p>
&lt;p>&lt;img src="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_2.png"
width="140"
height="218"
srcset="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_2_hu532c5c80cffe57a2c6e7fc7e8a9fb9dc_33323_480x0_resize_box_3.png 480w, 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_2_hu532c5c80cffe57a2c6e7fc7e8a9fb9dc_33323_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="64"
data-flex-basis="154px"
>&lt;/p></description></item><item><title>إضافات Chrome الموصى بها</title><link>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/</link><pubDate>Sun, 19 Mar 2023 02:54:30 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post إضافات Chrome الموصى بها" />&lt;h1 id="إضافات-chrome-الموصى-بها">إضافات Chrome الموصى بها
&lt;/h1>&lt;p>سأقدم إضافات Chrome التي أستخدمها حاليًا. على الرغم من أنها لـ Chrome، إلا أنه يمكن استخدامها أيضًا في Microsoft Edge.&lt;/p>
&lt;h2 id="1-simplegestures">1. simpleGestures
&lt;/h2>&lt;p>&lt;img src="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_2.png"
width="640"
height="400"
srcset="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_2_hu4bcd797593a745b5f9b4cb285de52b24_52497_480x0_resize_box_3.png 480w, 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_2_hu4bcd797593a745b5f9b4cb285de52b24_52497_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="160"
data-flex-basis="384px"
>&lt;/p>
&lt;p>إضافة تتيح لك استخدام إيماءات الماوس.
يمكنك التحكم في المتصفح دون استخدام لوحة المفاتيح أو محاذاة الأزرار على شريط الأدوات.&lt;/p>
&lt;p>على سبيل المثال، يمكنك الرجوع عن طريق الضغط باستمرار على زر الماوس الأيمن وتحريك الماوس إلى اليسار، أو التقدم عن طريق الضغط باستمرار على زر الماوس الأيمن وتحريك الماوس إلى اليمين.&lt;/p>
&lt;p>هذه أيضًا مفتوحة المصدر، لذا فهي موثوقة للغاية.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://chrome.google.com/webstore/detail/simplegestures/flfminafiamnggnldfpilnfnmbgmiegn" target="_blank" rel="noopener"
>simpleGestures&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://github.com/RyutaKojima/simpleGestures" target="_blank" rel="noopener"
>github&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="2-ublock-origin">2. uBlock Origin
&lt;/h2>&lt;p>&lt;img src="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_3.png"
width="100"
height="100"
srcset="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_3_hu67a45412a01a15e955f073af8a67274e_3982_480x0_resize_box_3.png 480w, 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_3_hu67a45412a01a15e955f073af8a67274e_3982_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;p>إضافة تحظر الإعلانات. إنها مفتوحة المصدر وموثوقة للغاية. بالإضافة إلى ذلك، فهي تستخدم القليل من وحدة المعالجة المركزية والذاكرة وتعمل بسلاسة.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://microsoftedge.microsoft.com/addons/detail/ublock-origin/odfafepnkmbhccpbejgmiehpchacaeak" target="_blank" rel="noopener"
>uBlock Origin&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://github.com/gorhill/uBlock/" target="_blank" rel="noopener"
>github&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="3-ترجمة-deepl">3. ترجمة DeepL
&lt;/h2>&lt;p>&lt;img src="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.png"
width="640"
height="400"
srcset="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_hub3c737317700497686769948a4bd0d5d_91291_480x0_resize_box_3.png 480w, 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_hub3c737317700497686769948a4bd0d5d_91291_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="160"
data-flex-basis="384px"
>&lt;/p>
&lt;p>إضافة Chrome تتيح لك ترجمة الصفحات باستخدام خدمة الترجمة الشهيرة عالميًا DeepL. عند تحديد النص الذي تريد ترجمته في المتصفح، سيتم عرض أيقونة DeepL، وسيؤدي النقر عليها إلى ترجمته تلقائيًا.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://chrome.google.com/webstore/detail/deepl-translate-reading-w/cofdbpoegempjloogbagkncekinflcnj?hl=ja" target="_blank" rel="noopener"
>DeepL Translator&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="4-شريط-جانبي-chatgpt">4. شريط جانبي ChatGPT
&lt;/h2>&lt;p>&lt;img src="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_5.png"
width="640"
height="400"
srcset="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_5_hu10d1b065dcac4fe890e2b430c09f6a86_129788_480x0_resize_box_3.png 480w, 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_5_hu10d1b065dcac4fe890e2b430c09f6a86_129788_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_5.png"
class="gallery-image"
data-flex-grow="160"
data-flex-basis="384px"
>&lt;/p>
&lt;p>إضافة تتيح لك استخدام ChatGPT في شريط جانبي. يمكنك عرض الشريط الجانبي بالضغط على Ctrl+P وطرح الأسئلة على الذكاء الاصطناعي على الفور.
إذا تم تحديد أي نص في الصفحة، فسيتم نسخه مباشرة إلى سؤالك، حتى تتمكن من السؤال على الفور باستخدام Ctrl+Enter.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://chrome.google.com/webstore/detail/chatgpt-sidebar-support-g/difoiogjjojoaoomphldepapgpbgkhkb" target="_blank" rel="noopener"
>ChatGPT Sidebar&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="5-salesforce-devtools">5. Salesforce DevTools
&lt;/h2>&lt;p>&lt;img src="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_1.png"
width="640"
height="400"
srcset="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_1_hue339a6462b95e183512b6c5779072273_131133_480x0_resize_box_3.png 480w, 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_1_hue339a6462b95e183512b6c5779072273_131133_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="160"
data-flex-basis="384px"
>&lt;/p>
&lt;p>إضافة تضيف ميزات مفيدة لتطوير Salesforce.
أعتقد أن هذا غير ضروري لأولئك الذين لا يستخدمون Salesforce.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://chrome.google.com/webstore/detail/salesforce-devtools/ehgmhinnhggigkogkbhnbodhbfjgncjf" target="_blank" rel="noopener"
>Salesforce DevTools&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>تجربة egui</title><link>http://kenji.blog/ar/p/%D8%AA%D8%AC%D8%B1%D8%A8%D8%A9-egui/</link><pubDate>Sat, 18 Mar 2023 10:27:02 +0900</pubDate><guid>http://kenji.blog/ar/p/%D8%AA%D8%AC%D8%B1%D8%A8%D8%A9-egui/</guid><description>&lt;img src="http://kenji.blog/p/egui%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B/demo.gif" alt="Featured image of post تجربة egui" />&lt;h1 id="ما-هو-egui">ما هو egui
&lt;/h1>&lt;p>إنها مكتبة واجهة مستخدم رسومية يمكن استخدامها مع rust.&lt;/p>
&lt;h1 id="تجربة-egui">تجربة egui
&lt;/h1>&lt;p>يمكنك تشغيل نموذج egui بالأوامر التالية.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">git clone https://github.com/emilk/eframe_template/ egui_test
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cd egui_test
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cargo run
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>بعد ذلك، يمكنك تجربة أشياء مختلفة أثناء التعديل على الكود النموذجي.&lt;/p>
&lt;h1 id="مرجع">مرجع
&lt;/h1>&lt;p>&lt;a class="link" href="https://github.com/emilk/egui" target="_blank" rel="noopener"
>المستودع الرسمي على github&lt;/a>&lt;/p></description></item><item><title>كيفية تحديث rustc</title><link>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/</link><pubDate>Sat, 18 Mar 2023 10:27:02 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية تحديث rustc" />&lt;h1 id="كيفية-تحديث-rustc">كيفية تحديث rustc
&lt;/h1>&lt;p>ما عليك سوى تشغيل الأمر التالي.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">rustup update
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h1 id="مثال-على-المخرجات">مثال على المخرجات
&lt;/h1>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="n">rustup&lt;/span> &lt;span class="n">update&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">syncing&lt;/span> &lt;span class="n">channel&lt;/span> &lt;span class="n">updates&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="s1">&amp;#39;stable-x86_64-pc-windows-msvc&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">warning&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">Signature&lt;/span> &lt;span class="n">verification&lt;/span> &lt;span class="n">failed&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="s1">&amp;#39;https://static.rust-lang.org/dist/channel-rust-stable.toml&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">latest&lt;/span> &lt;span class="n">update&lt;/span> &lt;span class="n">on&lt;/span> &lt;span class="mi">2023&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">03&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">09&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">rust&lt;/span> &lt;span class="n">version&lt;/span> &lt;span class="mf">1.68&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="n">c8cc3432&lt;/span> &lt;span class="mi">2023&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">03&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">06&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">downloading&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;rust-src&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">downloading&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;cargo&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">downloading&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;clippy&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">downloading&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;rust-docs&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">downloading&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;rust-std&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">downloading&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;rustc&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mf">63.9&lt;/span> &lt;span class="n">MiB&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="mf">63.9&lt;/span> &lt;span class="n">MiB&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">100&lt;/span> &lt;span class="o">%&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="mf">37.5&lt;/span> &lt;span class="n">MiB&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">s&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="n">s&lt;/span> &lt;span class="n">ETA&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="n">s&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">downloading&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;rustfmt&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">removing&lt;/span> &lt;span class="n">previous&lt;/span> &lt;span class="n">version&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;rust-src&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">removing&lt;/span> &lt;span class="n">previous&lt;/span> &lt;span class="n">version&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;cargo&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">removing&lt;/span> &lt;span class="n">previous&lt;/span> &lt;span class="n">version&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;clippy&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">removing&lt;/span> &lt;span class="n">previous&lt;/span> &lt;span class="n">version&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;rust-docs&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">removing&lt;/span> &lt;span class="n">previous&lt;/span> &lt;span class="n">version&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;rust-std&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">removing&lt;/span> &lt;span class="n">previous&lt;/span> &lt;span class="n">version&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;rustc&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">removing&lt;/span> &lt;span class="n">previous&lt;/span> &lt;span class="n">version&lt;/span> &lt;span class="n">of&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;rustfmt&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">installing&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;rust-src&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">installing&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;cargo&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">installing&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;clippy&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">installing&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;rust-docs&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mf">19.4&lt;/span> &lt;span class="n">MiB&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="mf">19.4&lt;/span> &lt;span class="n">MiB&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">100&lt;/span> &lt;span class="o">%&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="mf">2.4&lt;/span> &lt;span class="n">MiB&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">s&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="mi">6&lt;/span>&lt;span class="n">s&lt;/span> &lt;span class="n">ETA&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="n">s&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">installing&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;rust-std&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mf">27.6&lt;/span> &lt;span class="n">MiB&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="mf">27.6&lt;/span> &lt;span class="n">MiB&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">100&lt;/span> &lt;span class="o">%&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="mf">12.7&lt;/span> &lt;span class="n">MiB&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">s&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="n">s&lt;/span> &lt;span class="n">ETA&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="n">s&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">installing&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;rustc&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mf">63.9&lt;/span> &lt;span class="n">MiB&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="mf">63.9&lt;/span> &lt;span class="n">MiB&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">100&lt;/span> &lt;span class="o">%&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="mf">13.8&lt;/span> &lt;span class="n">MiB&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">s&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="n">s&lt;/span> &lt;span class="n">ETA&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="n">s&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">installing&lt;/span> &lt;span class="n">component&lt;/span> &lt;span class="s1">&amp;#39;rustfmt&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">checking&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">updates&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">downloading&lt;/span> &lt;span class="bp">self&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">update&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">stable&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">x86_64&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">pc&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">windows&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">msvc&lt;/span> &lt;span class="n">updated&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">rustc&lt;/span> &lt;span class="mf">1.68&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="n">c8cc3432&lt;/span> &lt;span class="mi">2023&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">03&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">06&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">from&lt;/span> &lt;span class="n">rustc&lt;/span> &lt;span class="mf">1.64&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="mi">0&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">a55dd71d5&lt;/span> &lt;span class="mi">2022&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">09&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">19&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">info&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">cleaning&lt;/span> &lt;span class="n">up&lt;/span> &lt;span class="n">downloads&lt;/span> &lt;span class="o">&amp;amp;&lt;/span> &lt;span class="n">tmp&lt;/span> &lt;span class="n">directories&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>طريقة التخلص من ضوضاء AG03</title><link>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/</link><pubDate>Sat, 18 Mar 2023 01:17:10 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post طريقة التخلص من ضوضاء AG03" />&lt;h1 id="طريقة-التخلص-من-ضوضاء-yamaha-ag03">طريقة التخلص من ضوضاء YAMAHA AG03
&lt;/h1>&lt;p>عند الاستماع إلى صوت الكمبيوتر الشخصي عبر شاشة AG03، كان هناك ضوضاء مزعجة بانتظام (مرة واحدة كل دقيقة إلى 3 دقائق).
وبعد البحث، يبدو أن هناك طريقة للتعامل مع ضوضاء AG03 على النحو التالي:&lt;/p>
&lt;p>&lt;a class="link" href="https://jp.yamaha.com/support/updates/yamaha_steinberg_usb_driver_for_win.html" target="_blank" rel="noopener"
>https://jp.yamaha.com/support/updates/yamaha_steinberg_usb_driver_for_win.html&lt;/a>&lt;/p>
&lt;p>بعد تنزيل وتثبيت Yamaha Steinberg USB Driver من الموقع أعلاه، تم التخلص من الضوضاء.&lt;/p>
&lt;div style="background:#fff;width:120px;height:215px;box-sizing:border-box;border:1px solid #ccc;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;">&lt;div style="line-height:0;">&lt;img src="https://static.jp.mercari.com/assets/img/common/jp/logo_horizontal.png" width="105">&lt;/div>&lt;a href="https://jp.mercari.com/item/m10570024971?afid=1916658352" style="width:100px;height:100px;background:#eee;" target="_self">&lt;img src="https://ambassador-system.mercari.com/v1/i?id=m10570024971&amp;svc=m" style="line-height:0;width:100px;height:100px;object-fit:contain;"/>&lt;/a>&lt;div style="padding:12px 0;width:100%;text-align:center;">&lt;a href="https://jp.mercari.com/item/m10570024971?afid=1916658352" style="width:100px;height:32px;background-color:#E32B36;border-radius:4px;line-height:14px;text-align:center;color:#fff;font-weight:bold;border:0;font-size:12px;display:inline-flex;justify-content:center;align-items:center;" target="_self">اشتر الآن&lt;/a>&lt;/div>&lt;/div>
&lt;h1 id="المراجع">المراجع
&lt;/h1>&lt;p>&lt;a class="link" href="https://web.archive.org/web/20201003230738/http://yamaha.custhelp.com/app/answers/detail/a_id/7202" target="_blank" rel="noopener"
>https://web.archive.org/web/20201003230738/http://yamaha.custhelp.com/app/answers/detail/a_id/7202&lt;/a>&lt;/p></description></item><item><title>أجهزة الكمبيوتر الطرفية الموصى بها</title><link>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/</link><pubDate>Tue, 28 Feb 2023 00:51:49 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post أجهزة الكمبيوتر الطرفية الموصى بها" />&lt;h1 id="أجهزة-الكمبيوتر-الطرفية-الموصى-بها-والتي-يرغب-بها-مهندس-نشط">أجهزة الكمبيوتر الطرفية الموصى بها والتي يرغب بها مهندس نشط
&lt;/h1>&lt;h2 id="لوحة-المفاتيح">لوحة المفاتيح
&lt;/h2>&lt;p>قبل كل شيء، يوصى باستخدام لوحة مفاتيح ذات سعة إلكتروستاتيكية لا تلامسية يصعب كسرها.
لقد امتلكت &lt;a class="link" href="https://amzn.to/3IzOOFO" target="_blank" rel="noopener"
>RealForce&lt;/a> لأكثر من 10 سنوات، ولا يزال بإمكاني استخدامه بنشاط حتى اليوم.
النوع الذي أستخدمه هو تخطيط إنجليزي هادئ.&lt;/p>
&lt;p>ومع ذلك، في الآونة الأخيرة، كنت مهتمًا أيضًا بلوحة مفاتيح تسمى &lt;a class="link" href="https://amzn.to/3Z5skmR" target="_blank" rel="noopener"
>Logitech MX Keys&lt;/a>.&lt;/p>
&lt;h2 id="كرة-التتبع">كرة التتبع
&lt;/h2>&lt;p>بالنسبة لجهاز التأشير، يوصى باستخدام كرة التتبع بدلاً من الماوس لأنها تقلل من التعب.&lt;/p>
&lt;p>الجهاز الذي أستخدمه هو &lt;a class="link" href="https://amzn.to/3IYOwtf" target="_blank" rel="noopener"
>Logitech MX Ergo&lt;/a>. هذا منتج باهظ الثمن يكلف أكثر من 10000 ين، لكنني أعتقد أن قيمته تفوق سعره بكثير.&lt;/p>
&lt;p>أنا مهتم أيضًا بـ &lt;a class="link" href="https://amzn.to/3Zu5tB8" target="_blank" rel="noopener"
>DEFT PRO(M-DPT1MRXBK)&lt;/a>، وهو نوع يحتوي على كرة كبيرة ويتم تشغيله بواسطة السبابة والأصبع الأوسط.
&lt;img src="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_1.png"
width="700"
height="680"
srcset="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_1_hu930fae58f4873e2ed261c55e6b025235_528450_480x0_resize_box_3.png 480w, 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_1_hu930fae58f4873e2ed261c55e6b025235_528450_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="102"
data-flex-basis="247px"
>&lt;/p>
&lt;h2 id="شاشة-العرض">شاشة العرض
&lt;/h2>&lt;p>أي شيء جيد، لكن يوصى بشاشة 4K عالية الدقة.&lt;/p>
&lt;p>أنا أستخدم حاليًا &lt;a class="link" href="https://amzn.to/3y0ViIW" target="_blank" rel="noopener"
>شاشة 4K من DELL&lt;/a>.&lt;/p>
&lt;p>أرغب الآن في الحصول على شاشة عريضة من &lt;a class="link" href="https://amzn.to/3kz7BZH" target="_blank" rel="noopener"
>EIZO&lt;/a> أو &lt;a class="link" href="https://amzn.to/3xZleo1" target="_blank" rel="noopener"
>DELL&lt;/a>.&lt;/p></description></item><item><title>حول fontplus.jp</title><link>http://kenji.blog/ar/p/fontplus.jp/</link><pubDate>Tue, 07 Feb 2023 20:59:01 +0900</pubDate><guid>http://kenji.blog/ar/p/fontplus.jp/</guid><description>&lt;img src="http://kenji.blog/p/fontplus.jp/img.png" alt="Featured image of post حول fontplus.jp" />&lt;h1 id="خدمة-fontplusjp-لاستخدام-خطوط-الويب-المدفوعة">خدمة fontplus.jp لاستخدام خطوط الويب المدفوعة
&lt;/h1>&lt;p>&lt;a class="link" href="https://fontplus.jp/" target="_blank" rel="noopener"
>https://fontplus.jp/&lt;/a>&lt;/p>
&lt;p>مقابل 1,100 ين شهريًا، يمكنك استخدام جميع الخطوط، وهو يدعم أيضًا الاستخدام على مواقع ويب متعددة.&lt;/p></description></item><item><title>استخدام علامات HTML في HUGO</title><link>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/</link><pubDate>Tue, 17 Jan 2023 19:20:32 +0900</pubDate><guid>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/</guid><description>&lt;img src="http://kenji.blog/p/hugo%E3%81%A7html%E3%82%BF%E3%82%B0%E3%82%92%E4%BD%BF%E3%81%86/img.png" alt="Featured image of post استخدام علامات HTML في HUGO" />&lt;p>افتراضيًا، لا يسمح HUGO باستخدام علامات HTML في المقالات، ولكن بإضافة الكود التالي إلى ملف config.toml، سيصبح ذلك ممكنًا.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-toml" data-lang="toml">&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="nx">markup&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">goldmark&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">renderer&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">unsafe&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="kc">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>المرجع: &lt;a class="link" href="https://gohugo.io/getting-started/configuration-markup" target="_blank" rel="noopener"
>Configure Markup&lt;/a>&lt;/p></description></item><item><title>البحث عن رعاة على GitHub</title><link>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/</link><pubDate>Tue, 17 Jan 2023 18:13:56 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post البحث عن رعاة على GitHub" />&lt;h1 id="البحث-عن-رعاة-على-github">البحث عن رعاة على GitHub
&lt;/h1>&lt;p>سأكون سعيداً إذا أصبحت راعياً على GitHub من خلال الزر أدناه.&lt;/p>
&lt;iframe src="https://github.com/sponsors/kenjinote/button" title="Sponsor kenjinote" height="35" width="116" style="border: 0;">&lt;/iframe>
&lt;p>سأستخدمه في تطوير الأدوات وغيرها.&lt;/p>
&lt;p>سأبذل قصارى جهدي حتى أتمكن من الحصول على شهادة توقيع الرمز!&lt;/p></description></item><item><title>حول الأزرار</title><link>http://kenji.blog/ar/p/%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%A4%E3%81%84%E3%81%A6/</link><pubDate>Sat, 14 Jan 2023 20:24:00 +0900</pubDate><guid>http://kenji.blog/ar/p/%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%A4%E3%81%84%E3%81%A6/</guid><description>&lt;img src="http://kenji.blog/p/%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%A4%E3%81%84%E3%81%A6/img.png" alt="Featured image of post حول الأزرار" />&lt;h1 id="ما-هو-الزر">ما هو الزر
&lt;/h1>&lt;p>الزر هو أحد عناصر تحكم واجهة المستخدم الرسومية (GUI) ويمكن تنفيذه باستخدام واجهة برمجة تطبيقات (API) القياسية في نظام Windows.
عند النقر فوق منطقة على الشاشة (الضغط على زر الماوس الأيسر، ثم إفلات زر الماوس الأيسر)،
يمكنك تنفيذ العملية المحددة في البرنامج.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">// إنشاء زر
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">CreateWindow(
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> TEXT(&amp;#34;BUTTON&amp;#34;),
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> TEXT(&amp;#34;Close&amp;#34;),
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> WS_CHILD|WS_VISIBLE,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 10,10,128,30,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> hWnd,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> (HMENU)ID_BUTTON1,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ((LPCREATESTRUCT)lParam)-&amp;gt;hInstance,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 0);
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ...
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> // يتم إرسال رسالة WM_COMMAND من نظام التشغيل إلى النافذة عند النقر.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> case WM_COMMAND:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> switch(LOWORD(wParam))
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> case ID_BUTTON1:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> SendMessage(hWnd,WM_CLOSE,0,0);
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> break;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> }
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> break;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>يتوفر نموذج التعليمات البرمجية أدناه.
&lt;a class="link" href="https://github.com/kenjinote/button" target="_blank" rel="noopener"
>button&lt;/a>&lt;/p></description></item><item><title>اشتريت جهاز ThinkPad (مستعمل)</title><link>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/</link><pubDate>Fri, 13 Jan 2023 19:07:00 +0900</pubDate><guid>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/</guid><description>&lt;img src="http://kenji.blog/p/thinkpad%E4%B8%AD%E5%8F%A4%E3%82%92%E8%B2%B7%E3%81%A3%E3%81%9F/img.png" alt="Featured image of post اشتريت جهاز ThinkPad (مستعمل)" />&lt;h1 id="اشتريت-جهاز-كمبيوتر-محمول-thinkpad-مستعمل">اشتريت جهاز كمبيوتر محمول ThinkPad (مستعمل)
&lt;/h1>&lt;p>نظرًا لأن عملي على الكمبيوتر المحمول يتم بشكل أساسي من خلال الاتصال بسطح المكتب البعيد للأجهزة الأخرى، فلم أكن بحاجة إلى جهاز كمبيوتر عالي المواصفات. كان من الممكن أن يكون جهاز ChromeBook مناسبًا، ولكن نظرًا لعدم وجود تصميم جيد أو دقة عالية، اشتريت جهاز ThinkPad.&lt;/p>
&lt;p>المواصفات مذكورة أدناه، وكان السعر حوالي 55,000 ين باستخدام نقاط مختلفة.&lt;/p>
&lt;h2 id="thinkpad-t470s">ThinkPad T470s
&lt;/h2>&lt;ul>
&lt;li>وحدة المعالجة المركزية: Intel Core i7 7600U&lt;/li>
&lt;li>ذاكرة الوصول العشوائي: 24 جيجابايت&lt;/li>
&lt;li>محرك الأقراص الثابتة (SSD): 512 جيجابايت&lt;/li>
&lt;li>نظام التشغيل: Windows 10 Pro 64bit&lt;/li>
&lt;li>الشاشة: 14.0 بوصة عريضة (لوحة غير لامعة)&lt;/li>
&lt;li>الدقة: شاشة WQHD 2560×1440&lt;/li>
&lt;li>الوزن: حوالي 1.32 كجم&lt;/li>
&lt;li>ملاحظات: لوحة مفاتيح إنجليزية&lt;/li>
&lt;/ul>
&lt;p>نظرًا لأنه مستعمل، اعتقدت أنه قد يكون هناك بعض علامات الاستخدام أو الخدوش، لكنه كان جيدًا تمامًا دون أي مشاكل.
البطارية تعمل أيضًا بشكل جيد حتى الآن.&lt;/p>
&lt;h2 id="الشكاوى-التي-يمكنني-التفكير-فيها-حتى-الآن">الشكاوى التي يمكنني التفكير فيها حتى الآن
&lt;/h2>&lt;ul>
&lt;li>لا يوجد مفتاح &lt;code>Pause&lt;/code> أو مفتاح &lt;code>App&lt;/code>. كنت أستخدم مفتاح &lt;code>Pause&lt;/code> كاختصار لفتح إعدادات النظام. أيضًا، كنت أستخدم مفتاح &lt;code>App&lt;/code> لفتح القوائم المنبثقة، لذا من غير المريح عدم وجوده.&lt;/li>
&lt;li>يوجد مفتاحا &lt;code>PageUp&lt;/code> و &lt;code>PageDown&lt;/code> بجوار مفاتيح الأسهم على لوحة المفاتيح، لذلك غالبًا ما أضغط عليهما عن طريق الخطأ. ربما سأعتاد على هذا.&lt;/li>
&lt;/ul>
&lt;h2 id="أجهزة-كمبيوتر-أخرى-فكرت-فيها-لكن-لم-أشتريها">أجهزة كمبيوتر أخرى فكرت فيها لكن لم أشتريها
&lt;/h2>&lt;ul>
&lt;li>ASUS Chromebook Flip C436FA (C436FA-ENG)&lt;/li>
&lt;li>HP كمبيوتر محمول HP15s-fq&lt;/li>
&lt;/ul>
&lt;p>المواد المرجعية: &lt;a class="link" href="https://www.lenovojp.com/business/product/note/pdf/thinkpad_t470s.pdf" target="_blank" rel="noopener"
>ThinkPad T470s&lt;/a>&lt;/p></description></item><item><title>اتصال عن بعد سهل باستخدام TeamViewer</title><link>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/</link><pubDate>Fri, 13 Jan 2023 01:45:00 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post اتصال عن بعد سهل باستخدام TeamViewer" />&lt;h1 id="اتصال-عن-بعد-سهل-باستخدام-teamviewer">اتصال عن بعد سهل باستخدام TeamViewer
&lt;/h1>&lt;p>يجعل TeamViewer من السهل الاتصال بسطح المكتب عن بعد.&lt;/p>
&lt;p>قم بتشغيل TeamViewer على كل من الكمبيوتر المحلي والكمبيوتر البعيد،
وأدخل المعرف (ID) وكلمة المرور (Password) الخاصة بالكمبيوتر البعيد على الكمبيوتر المحلي لإجراء الاتصال.&lt;/p>
&lt;p>للاتصال عن بعد باستخدام سطر الأوامر، استخدم ما يلي:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">%ProgramFiles%\TeamViewer\TeamViewer.exe -i &amp;lt;ID&amp;gt; -P &amp;lt;Password&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>أدخل معرف الكمبيوتر البعيد في &lt;code>&amp;lt;ID&amp;gt;&lt;/code>، وكلمة المرور الخاصة به في &lt;code>&amp;lt;Password&amp;gt;&lt;/code>.&lt;/p>
&lt;p>من المفيد إنشاء ملف اختصار باستخدام الأمر أعلاه لتخطي إدخال المعرف وكلمة المرور في كل مرة.&lt;/p>
&lt;p>الموقع المرجعي: &lt;a class="link" href="https://community.teamviewer.com/English/kb/articles/34447-command-line-parameters" target="_blank" rel="noopener"
>Command line parameters&lt;/a>&lt;/p></description></item><item><title>مجموعة اقتباسات</title><link>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/</link><pubDate>Sat, 15 Oct 2022 17:00:43 +0900</pubDate><guid>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/</guid><description>&lt;img src="http://kenji.blog/p/%E5%90%8D%E8%A8%80%E9%9B%86/img.png" alt="Featured image of post مجموعة اقتباسات" />&lt;blockquote>
&lt;p>يتعلم الحمقى من التجربة، بينما يتعلم الحكماء من التاريخ (أوتو فون بسمارك)&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>لا تعطني سمكة، بل علمني كيف أصطادها (لاوتزه)&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>ابق جائعاً، ابق أحمقاً (ستيف جوبز)&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>أن تنجز العمل أفضل من أن تسعى للمثالية (مارك زوكربيرج)&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>حافظ على البساطة (جيمس جوسلينج)&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>ليس لدي وقت للقلق بشأن من لا يحبني. أنا مشغول جدًا بحب الأشخاص الذين يحبونني. (سنوبي)&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>أعظم سعادة للإنسان هي &amp;ldquo;العثور على عمل يستفيد من قدراته&amp;rdquo; (كارل ماركس)&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>إذا كانت المعرفة القليلة خطيرة، فأين هو الرجل الذي يملك الكثير ليخرج من دائرة الخطر؟ (توماس هكسلي 1877)&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>واصل تويدلدي قائلاً: &amp;ldquo;على العكس من ذلك، إذا كان الأمر كذلك، فقد يكون؛ وإذا كان كذلك، فسيكون؛ لكن بما أنه ليس كذلك، فهو ليس كذلك. هذا هو المنطق.&amp;rdquo; (لويس كارول، &amp;ldquo;من خلال الزجاج&amp;rdquo; 1872)&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>ليس من المبالغة وصف كلود شانون بأنه أبو عصر المعلومات، وإنجازاته الأكاديمية هي من بين أعظم إنجازات القرن العشرين. (تقييم جمعية الرياضيات الأمريكية)&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>أولئك الذين يدركون الحالة الحالية للنظرية الرمزية للجبر، يعلمون أن صحة عملية التحليل لا تعتمد على تفسير الرموز المستخدمة، بل فقط على قوانين دمجها. (جورج بول، في بداية كتابه &amp;ldquo;التحليل الرياضي للمنطق&amp;rdquo; 1847)&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="http://kenji.blog/p/%E5%90%8D%E8%A8%80%E9%9B%86/img_1.png"
width="621"
height="799"
srcset="http://kenji.blog/p/%E5%90%8D%E8%A8%80%E9%9B%86/img_1_hu404afed9786080ce0c01fe76d3eb48b9_374719_480x0_resize_box_3.png 480w, http://kenji.blog/p/%E5%90%8D%E8%A8%80%E9%9B%86/img_1_hu404afed9786080ce0c01fe76d3eb48b9_374719_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="77"
data-flex-basis="186px"
>&lt;/p></description></item><item><title>محرر الرسوم البيانية</title><link>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/</link><pubDate>Thu, 13 Oct 2022 23:31:11 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post محرر الرسوم البيانية" />&lt;h1 id="محرر-الرسوم-البيانية">محرر الرسوم البيانية
&lt;/h1>&lt;p>هذه مقدمة لصفحة ويب تتيح لك إنشاء رسوم بيانية بسيطة.&lt;/p>
&lt;p>&lt;a class="link" href="https://csacademy.com/app/graph_editor/" target="_blank" rel="noopener"
>https://csacademy.com/app/graph_editor/&lt;/a>&lt;/p>
&lt;p>يمكنك إنشاء رسوم بيانية عن طريق إدخال القيم الرقمية.
بالإضافة إلى ذلك، يبدو أنه يمكنك أيضًا تحريك العناصر باستخدام الماوس.&lt;/p>
&lt;p>من خلال النقر على &lt;code>Directed&lt;/code>، يمكنك أيضًا إنشاء رسوم بيانية موجهة.&lt;/p>
&lt;p>&lt;img src="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_1.png"
width="300"
height="300"
srcset="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_1_hu8da2a7e6049b3e95e8ba3eb3a30bc8ba_14422_480x0_resize_box_3.png 480w, 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_1_hu8da2a7e6049b3e95e8ba3eb3a30bc8ba_14422_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;p>يمكنك حفظ الرسوم البيانية التي قمت بإنشائها أو الرسوم البيانية التي تم إنشاؤها عبر &lt;code>Download as PNG&lt;/code> كصور.&lt;/p></description></item><item><title>حل مشكلة البائع المتجول باستخدام Mathematica</title><link>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/</link><pubDate>Wed, 12 Oct 2022 19:05:58 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post حل مشكلة البائع المتجول باستخدام Mathematica" />&lt;h1 id="حل-مشكلة-البائع-المتجول-باستخدام-mathematica">حل مشكلة البائع المتجول باستخدام Mathematica
&lt;/h1>&lt;h2 id="مشكلة">مشكلة
&lt;/h2>&lt;blockquote class="twitter-tweet">&lt;p lang="ja" dir="ltr">電車でこんな広告を見かけました😁📸 &lt;a href="https://t.co/iXEgvtXrpL">pic.twitter.com/iXEgvtXrpL&lt;/a>&lt;/p>&amp;mdash; 早稲田大学 早水桃子研究室 (@hayamizu_lab) &lt;a href="https://x.com/hayamizu_lab/status/1579806418982825984?ref_src=twsrc%5Etfw">October 11, 2022&lt;/a>&lt;/blockquote>
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8">&lt;/script>
&lt;h2 id="حل">حل
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">d=SparseArray[{{1,2}-&amp;gt;10,{2,1}-&amp;gt;10,{1,5}-&amp;gt;15,{5,1}-&amp;gt;15,{1,4}-&amp;gt;12,{4,1}-&amp;gt;12,{1,3}-&amp;gt;20,{3,1}-&amp;gt;20,{2,5}-&amp;gt;10,{5,2}-&amp;gt;10,{3,4}-&amp;gt;10,{4,3}-&amp;gt;10,{3,8}-&amp;gt;30,{8,3}-&amp;gt;30,{3,7}-&amp;gt;20,{7,3}-&amp;gt;20,{3,6}-&amp;gt;25,{6,3}-&amp;gt;25,{4,5}-&amp;gt;15,{5,4}-&amp;gt;15,{4,8}-&amp;gt;20,{8,4}-&amp;gt;20,{5,9}-&amp;gt;18,{9,5}-&amp;gt;18,{5,8}-&amp;gt;15,{8,5}-&amp;gt;15,{6,7}-&amp;gt;5,{7,6}-&amp;gt;5,{7,8}-&amp;gt;35,{8,7}-&amp;gt;35,{8,9}-&amp;gt;12,{9,8}-&amp;gt;12},{9,9},Infinity];
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>إنشاء مصفوفة باستخدام وظيفة SparseArray. يمثل كل عنصر المسافة بين المدن في صف وعمود هذا العنصر. على سبيل المثال، العنصر الأول &lt;code>{1,2}-&amp;gt;10&lt;/code> يعني أن المسافة بين 1 و 2 هي 10. العنصر قبل الأخير &lt;code>{9,9}&lt;/code> يشير إلى حجم المصفوفة، والعنصر الأخير &lt;code>Infinity&lt;/code> يعني أن طول المسار بين المدن غير المحددة لا نهائي. وبعبارة أخرى، يعني أنه لا يوجد مسار.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{len,tour}=FindShortestTour[{1,2,3,4,5,6,7,8,9},DistanceFunction-&amp;gt;(d[[#1,#2]]&amp;amp;)]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>يمكنك بسهولة حل مشكلة البائع المتجول باستخدام وظيفة FindShortestTour. تمثل &lt;code>{1,2,3,4,5,6,7,8,9}&lt;/code> أرقام المدن. تمرر &lt;code>DistanceFunction-&amp;gt;(d[[#1,#2]]&amp;amp;)&lt;/code> المصفوفة d التي تمثل المسافات بين المدن.&lt;/p>
&lt;h2 id="انتاج">انتاج
&lt;/h2>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{137, {1, 2, 5, 9, 8, 7, 6, 3, 4}}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>المخرجات هي أقصر مسافة والمسار في ذلك الوقت. أقصر مسافة هي &lt;code>137&lt;/code>، والمسار هو &lt;code>1→2→5→9→8→7→6→3→4→1&lt;/code>. إذا تم تغيير الترتيب إلى ABC، فسيصبح &lt;code>A, B, E, I, H, G, F, C, D&lt;/code>.&lt;/p></description></item><item><title>تحديد جميع مربعات الاختيار في صفحة الويب</title><link>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/</link><pubDate>Wed, 05 Oct 2022 20:07:06 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post تحديد جميع مربعات الاختيار في صفحة الويب" />&lt;p>لتحديد جميع مربعات الاختيار في صفحة ويب، افتح أدوات المطور (DevTools) بالضغط على F12، ثم الصق الكود التالي في وحدة التحكم (Console) وقم بتشغيله.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-js" data-lang="js">&lt;span class="line">&lt;span class="cl">&lt;span class="kd">let&lt;/span> &lt;span class="nx">boxes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">document&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">querySelectorAll&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;input[type=&amp;#34;checkbox&amp;#34;]&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="kd">let&lt;/span> &lt;span class="nx">i&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nx">i&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="nx">boxes&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">length&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="nx">i&lt;/span>&lt;span class="o">++&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">!&lt;/span>&lt;span class="nx">boxes&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="nx">i&lt;/span>&lt;span class="p">].&lt;/span>&lt;span class="nx">disabled&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">boxes&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="nx">i&lt;/span>&lt;span class="p">].&lt;/span>&lt;span class="nx">checked&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">true&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>أو،&lt;/p>
&lt;p>أنشئ إشارة مرجعية جديدة، وفي عنوان التسجيل (الجزء الذي تكتب فيه عادةً https://&amp;hellip;) الصق الكود التالي.
افتح صفحة الويب التي تريد تحديد مربعات الاختيار فيها، وانقر على الإشارة المرجعية التي أنشأتها، وسيتم تحديد جميع مربعات الاختيار.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">javascript:(function(){let boxes=document.querySelectorAll(&amp;#39;input[type=&amp;#34;checkbox&amp;#34;]&amp;#39;);for(let i=0;i&amp;lt;boxes.length;i++){if(!boxes[i].disabled){boxes[i].checked=true;}}})();
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>إذا كنت تريد إلغاء تحديد الكل، فقم بتغيير جزء &lt;code>boxes[i].checked = true;&lt;/code> في البرنامج النصي أعلاه إلى &lt;code>boxes[i].checked = false;&lt;/code>.&lt;/p></description></item><item><title>معادلاتي الرياضية المفضلة</title><link>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/</link><pubDate>Wed, 05 Oct 2022 13:24:50 +0900</pubDate><guid>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/</guid><description>&lt;img src="http://kenji.blog/p/%E5%A5%BD%E3%81%8D%E3%81%AA%E6%95%B0%E5%BC%8F/img.png" alt="Featured image of post معادلاتي الرياضية المفضلة" />&lt;h2 id="مبرهنة-ويلسون">مبرهنة ويلسون
&lt;/h2>&lt;p>عندما يكون $p$ عددًا أوليًا، فإن $(p−1)!≡−1 \pmod p$&lt;/p>
&lt;h2 id="صيغة-أويلر">صيغة أويلر
&lt;/h2>&lt;p>$e^{iπ}+1=0$&lt;/p>
&lt;h2 id="مبرهنة-فيرما-الأخيرة">مبرهنة فيرما الأخيرة
&lt;/h2>&lt;p>لأي عدد صحيح $n≥3$，لا توجد أعداد صحيحة موجبة $x,y,z$ تحقق $x^n+y^n=z^n$&lt;/p>
&lt;h2 id="مشكلة-بازل">مشكلة بازل
&lt;/h2>&lt;p>$1/1^2+1/2^2+1/3^2+1/4^2+...=π^2/6$&lt;/p>
&lt;h2 id="متعددة-الحدود-لأويلر-المولدة-للأعداد-الأولية">متعددة الحدود لأويلر المولدة للأعداد الأولية
&lt;/h2>&lt;p>$n^2+n+41$ ينتج أعدادًا أولية لجميع الأعداد الصحيحة $n$ من $0$ إلى $39$&lt;/p></description></item><item><title>تثبيت التطبيقات بالأوامر باستخدام WinGet</title><link>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/</link><pubDate>Wed, 05 Oct 2022 12:15:20 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post تثبيت التطبيقات بالأوامر باستخدام WinGet" />&lt;h2 id="المتطلبات-الأساسية">المتطلبات الأساسية
&lt;/h2>&lt;p>أن يكون نظام التشغيل Windows 11&lt;/p>
&lt;h2 id="الخطوات">الخطوات
&lt;/h2>&lt;ol>
&lt;li>قم بتثبيت &lt;code>App Installer&lt;/code> من Microsoft Store
&lt;a class="link" href="https://www.microsoft.com/store/productId/9NBLGGH4NNS1" target="_blank" rel="noopener"
>https://www.microsoft.com/store/productId/9NBLGGH4NNS1&lt;/a>&lt;/li>
&lt;li>قم بتثبيت التطبيق باستخدام موجه الأوامر
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">winget&lt;/span> &lt;span class="n">install&lt;/span> &lt;span class="n">Google&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="py">Chrome&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;/li>
&lt;/ol>
&lt;h2 id="التطبيقات-الرئيسية-التي-يمكن-تثبيتها">التطبيقات الرئيسية التي يمكن تثبيتها
&lt;/h2>&lt;ul>
&lt;li>Google Chrome (الأمر &lt;code>winget install Google.Chrome&lt;/code>)&lt;/li>
&lt;li>Microsoft Edge (الأمر &lt;code>winget install Microsoft.Edge&lt;/code>)&lt;/li>
&lt;li>Microsoft Teams (الأمر &lt;code>winget install Microsoft.Teams&lt;/code>)&lt;/li>
&lt;li>Microsoft Office (الأمر &lt;code>winget install Microsoft.Office&lt;/code>)&lt;/li>
&lt;li>Visual Studio Code (الأمر &lt;code>winget install vscode&lt;/code>)&lt;/li>
&lt;li>Slack (الأمر &lt;code>winget install SlackTechnologies.Slack&lt;/code>)&lt;/li>
&lt;li>Discord (الأمر &lt;code>winget install Discord.Discord&lt;/code>)&lt;/li>
&lt;li>Docker Desktop (الأمر &lt;code>winget install Docker.DockerDesktop&lt;/code>)&lt;/li>
&lt;li>Git (الأمر &lt;code>winget install Git&lt;/code>)&lt;/li>
&lt;li>7zip (الأمر &lt;code>winget install 7zip&lt;/code>)&lt;/li>
&lt;li>VLC (الأمر &lt;code>winget install VideoLAN.VLC&lt;/code>)&lt;/li>
&lt;/ul>
&lt;h2 id="المراجع">المراجع
&lt;/h2>&lt;p>&lt;a class="link" href="https://learn.microsoft.com/ja-jp/windows/package-manager/winget/" target="_blank" rel="noopener"
>استخدام أداة winget لتثبيت التطبيقات وإدارتها&lt;/a>&lt;/p>
&lt;h3 id="ملاحظة-جانبية">ملاحظة جانبية
&lt;/h3>&lt;p>اعتقدت أنه يمكنني تثبيت Paint.Net أيضًا، لكن لم أتمكن من ذلك.&lt;/p>
&lt;p>&lt;a class="link" href="https://forums.getpaint.net/topic/118574-please-add-paintnet-to-the-available-packages-for-windows-package-manager-winget/" target="_blank" rel="noopener"
>https://forums.getpaint.net/topic/118574-please-add-paintnet-to-the-available-packages-for-windows-package-manager-winget/&lt;/a>&lt;/p></description></item><item><title>ميزات Rust</title><link>http://kenji.blog/ar/p/rust%E3%81%AE%E7%89%B9%E5%BE%B4/</link><pubDate>Mon, 03 Oct 2022 22:47:20 +0900</pubDate><guid>http://kenji.blog/ar/p/rust%E3%81%AE%E7%89%B9%E5%BE%B4/</guid><description>&lt;img src="http://kenji.blog/p/rust%E3%81%AE%E7%89%B9%E5%BE%B4/img.png" alt="Featured image of post ميزات Rust" />&lt;h1 id="ميزات-rust">ميزات Rust
&lt;/h1>&lt;ul>
&lt;li>لغة برمجة مفتوحة المصدر حديثة نسبياً يتم تطويرها بواسطة Mozilla&lt;/li>
&lt;li>لغة سريعة بدون جمع القمامة، متخصصة في برمجة النظم&lt;/li>
&lt;li>تمتلك آلية فريدة للملكية والاستعارة كمواصفات لغة لضمان أمان الذاكرة&lt;/li>
&lt;li>تعمل عبر منصات متعددة&lt;/li>
&lt;li>تمتلك مدير حزم ممتاز يسمى Cargo بشكل قياسي&lt;/li>
&lt;/ul></description></item><item><title>إعداد المتغيرات ديناميكيًا في Github Actions</title><link>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/</link><pubDate>Sun, 02 Oct 2022 02:33:35 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post إعداد المتغيرات ديناميكيًا في Github Actions" />&lt;p>لإعداد المتغيرات ديناميكيًا في Github Actions، يمكنك تحقيق ذلك عن طريق الإضافة إلى $env:GITHUB_ENV كما هو موضح أدناه.&lt;/p>
&lt;p>【بالنسبة لنظام التشغيل Windows】&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;span class="lnt">36
&lt;/span>&lt;span class="lnt">37
&lt;/span>&lt;span class="lnt">38
&lt;/span>&lt;span class="lnt">39
&lt;/span>&lt;span class="lnt">40
&lt;/span>&lt;span class="lnt">41
&lt;/span>&lt;span class="lnt">42
&lt;/span>&lt;span class="lnt">43
&lt;/span>&lt;span class="lnt">44
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-mysql" data-lang="mysql">&lt;span class="line">&lt;span class="cl">&lt;span class="n">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">Rust&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">on&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">push&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">branches&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;master&amp;#34;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">pull_request&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">branches&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;master&amp;#34;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="n">env&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">CARGO_TERM_COLOR&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">always&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="n">jobs&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">build&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">runs&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="k">on&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ubuntu&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">latest&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">steps&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">uses&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">actions&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">checkout&lt;/span>&lt;span class="o">@&lt;/span>&lt;span class="n">v3&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">Get&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">Environment&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">run&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">echo&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;VERSION=1.0.0&amp;#39;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">&amp;gt;&amp;gt;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">$&lt;/span>&lt;span class="n">GITHUB_ENV&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">echo&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;NAME=1.0.0&amp;#39;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">&amp;gt;&amp;gt;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">$&lt;/span>&lt;span class="n">GITHUB_ENV&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">Display&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">Environment&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">run&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">echo&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">$&lt;/span>&lt;span class="n">env&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="n">VERSION&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">echo&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">$&lt;/span>&lt;span class="n">env&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="n">NAME&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">Create&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">Release&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">create_release&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">uses&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">actions&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">create&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="k">release&lt;/span>&lt;span class="o">@&lt;/span>&lt;span class="n">v1&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">env&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">GITHUB_TOKEN&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">${{&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">secrets&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">GITHUB_TOKEN&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">}}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">with&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">tag_name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">${{&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">env&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">VERSION&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">}}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">release_name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">${{&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">env&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">VERSION&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">}}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">draft&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">false&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">prerelease&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">false&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">Upload&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">Release&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">Asset&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">upload&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="k">release&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">asset&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">uses&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">actions&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">upload&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="k">release&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">asset&lt;/span>&lt;span class="o">@&lt;/span>&lt;span class="n">v1&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">env&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">GITHUB_TOKEN&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">${{&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">secrets&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">GITHUB_TOKEN&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">}}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">with&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">upload_url&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">${{&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">steps&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">create_release&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">outputs&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">upload_url&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">}}&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="c1"># This pulls from the CREATE RELEASE step above, referencing it&amp;#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
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">asset_path&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">target&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="k">release&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="err">${{&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">env&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">NAME&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">}}&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">exe&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">asset_name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">${{&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">env&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">NAME&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">}}&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">exe&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">asset_content_type&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">application&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">octet&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">stream&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>【بالنسبة لنظام التشغيل Linux】&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">name: Rust
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">on:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> push:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> branches: [ &amp;#34;main&amp;#34; ]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> pull_request:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> branches: [ &amp;#34;main&amp;#34; ]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">env:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> CARGO_TERM_COLOR: always
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">jobs:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> build:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> runs-on: ubuntu-latest
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> steps:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> - uses: actions/checkout@v3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> - name: Get Environment
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> run: |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> echo &amp;#39;VERSION=1.0.0&amp;#39; &amp;gt;&amp;gt; $GITHUB_ENV
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> echo &amp;#39;NAME=hello&amp;#39; &amp;gt;&amp;gt; $GITHUB_ENV
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> - name: Display Environment
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> run: |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> echo ${{ env.VERSION }}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> echo ${{ env.NAME }}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>حذف العلامات في git</title><link>http://kenji.blog/ar/p/git%E3%81%A7%E3%82%BF%E3%82%B0%E3%82%92%E6%B6%88%E3%81%99/</link><pubDate>Sun, 02 Oct 2022 02:18:04 +0900</pubDate><guid>http://kenji.blog/ar/p/git%E3%81%A7%E3%82%BF%E3%82%B0%E3%82%92%E6%B6%88%E3%81%99/</guid><description>&lt;img src="http://kenji.blog/p/git%E3%81%A7%E3%82%BF%E3%82%B0%E3%82%92%E6%B6%88%E3%81%99/img.png" alt="Featured image of post حذف العلامات في git" />&lt;h1 id="حذف-العلامة-المحلية">حذف العلامة المحلية
&lt;/h1>&lt;ol>
&lt;li>تحقق من العلامات المحلية الموجودة باستخدام &lt;code>git tag&lt;/code>.&lt;/li>
&lt;li>احذف العلامة باستخدام &lt;code>git tag -d v0.1.0&lt;/code>. (استبدل &lt;code>v0.1.0&lt;/code> بالعلامة التي تريد حذفها)&lt;/li>
&lt;/ol>
&lt;h1 id="حذف-العلامة-عن-بعد">حذف العلامة عن بعد
&lt;/h1>&lt;ol>
&lt;li>تحقق من العلامات الموجودة عن بعد باستخدام &lt;code>git ls-remote --tags&lt;/code>.&lt;/li>
&lt;li>احذف العلامة الموجودة عن بعد باستخدام &lt;code>git push origin --delete v0.1.0&lt;/code>. (استبدل &lt;code>v0.1.0&lt;/code> بالعلامة التي تريد حذفها)&lt;/li>
&lt;/ol>
&lt;h2 id="مراجع">مراجع
&lt;/h2>&lt;p>&lt;a class="link" href="https://qumeru.com/magazine/528" target="_blank" rel="noopener"
>كيفية حذف علامة git محليا وعن بعد!&lt;/a>&lt;/p></description></item><item><title>عرض نافذة بسيطة في Rust</title><link>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/</link><pubDate>Sat, 01 Oct 2022 19:08:58 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post عرض نافذة بسيطة في Rust" />&lt;p>عرض نافذة بسيطة في Rust&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-Cargo.toml" data-lang="Cargo.toml">&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="nx">package&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">name&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;win&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">version&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;0.1.0&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">edition&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;2021&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c"># See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="nx">dependencies&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nx">winapi&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">version&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;0.3&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">features&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;winuser&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>المصدر أدناه&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;span class="lnt">36
&lt;/span>&lt;span class="lnt">37
&lt;/span>&lt;span class="lnt">38
&lt;/span>&lt;span class="lnt">39
&lt;/span>&lt;span class="lnt">40
&lt;/span>&lt;span class="lnt">41
&lt;/span>&lt;span class="lnt">42
&lt;/span>&lt;span class="lnt">43
&lt;/span>&lt;span class="lnt">44
&lt;/span>&lt;span class="lnt">45
&lt;/span>&lt;span class="lnt">46
&lt;/span>&lt;span class="lnt">47
&lt;/span>&lt;span class="lnt">48
&lt;/span>&lt;span class="lnt">49
&lt;/span>&lt;span class="lnt">50
&lt;/span>&lt;span class="lnt">51
&lt;/span>&lt;span class="lnt">52
&lt;/span>&lt;span class="lnt">53
&lt;/span>&lt;span class="lnt">54
&lt;/span>&lt;span class="lnt">55
&lt;/span>&lt;span class="lnt">56
&lt;/span>&lt;span class="lnt">57
&lt;/span>&lt;span class="lnt">58
&lt;/span>&lt;span class="lnt">59
&lt;/span>&lt;span class="lnt">60
&lt;/span>&lt;span class="lnt">61
&lt;/span>&lt;span class="lnt">62
&lt;/span>&lt;span class="lnt">63
&lt;/span>&lt;span class="lnt">64
&lt;/span>&lt;span class="lnt">65
&lt;/span>&lt;span class="lnt">66
&lt;/span>&lt;span class="lnt">67
&lt;/span>&lt;span class="lnt">68
&lt;/span>&lt;span class="lnt">69
&lt;/span>&lt;span class="lnt">70
&lt;/span>&lt;span class="lnt">71
&lt;/span>&lt;span class="lnt">72
&lt;/span>&lt;span class="lnt">73
&lt;/span>&lt;span class="lnt">74
&lt;/span>&lt;span class="lnt">75
&lt;/span>&lt;span class="lnt">76
&lt;/span>&lt;span class="lnt">77
&lt;/span>&lt;span class="lnt">78
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-main.rs" data-lang="main.rs">&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#![windows_subsystem = &lt;/span>&lt;span class="s">&amp;#34;windows&amp;#34;&lt;/span>&lt;span class="cp">]&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">use&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">winapi&lt;/span>::&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">um&lt;/span>::&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">winuser&lt;/span>::&lt;span class="p">{&lt;/span>&lt;span class="n">RegisterClassW&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">WNDCLASSW&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">CS_HREDRAW&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">CS_VREDRAW&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">LoadIconW&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">IDI_APPLICATION&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">LoadCursorW&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">IDC_ARROW&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">CreateWindowExW&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ShowWindow&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">SW_NORMAL&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">UpdateWindow&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">GetMessageW&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">TranslateMessage&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">DispatchMessageW&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">MSG&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="no">WM_DESTROY&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">PostQuitMessage&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">DefWindowProcW&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">WS_OVERLAPPEDWINDOW&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="no">CW_USEDEFAULT&lt;/span>&lt;span class="p">},&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">wingdi&lt;/span>::&lt;span class="p">{&lt;/span>&lt;span class="n">GetStockObject&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">WHITE_BRUSH&lt;/span>&lt;span class="p">},&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">},&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">shared&lt;/span>::&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">windef&lt;/span>::&lt;span class="p">{&lt;/span>&lt;span class="no">HWND&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">HBRUSH&lt;/span>&lt;span class="p">},&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">minwindef&lt;/span>::&lt;span class="p">{&lt;/span>&lt;span class="no">UINT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">WPARAM&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">LPARAM&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">LRESULT&lt;/span>&lt;span class="p">},&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">},&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="p">};&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">use&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">std&lt;/span>::&lt;span class="n">ptr&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">use&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">std&lt;/span>::&lt;span class="n">mem&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">fn&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">unsafe&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="kd">let&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">class_name&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">encode&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;my_window_class_name&amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">if&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">!&lt;/span>&lt;span class="n">register_wndclass&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">class_name&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">return&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="kd">let&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">hwnd&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">create_window&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">class_name&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">if&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">hwnd&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">is_null&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">return&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">ShowWindow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hwnd&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">SW_NORMAL&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">UpdateWindow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hwnd&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="kd">let&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">mut&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">msg&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">mem&lt;/span>::&lt;span class="n">uninitialized&lt;/span>::&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="no">MSG&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">loop&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">if&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">GetMessageW&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">&amp;amp;&lt;/span>&lt;span class="k">mut&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">msg&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ptr&lt;/span>::&lt;span class="n">null_mut&lt;/span>&lt;span class="p">(),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">==&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">return&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">TranslateMessage&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">&amp;amp;&lt;/span>&lt;span class="k">mut&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">msg&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">DispatchMessageW&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">&amp;amp;&lt;/span>&lt;span class="k">mut&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">msg&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">fn&lt;/span> &lt;span class="nf">encode&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">source&lt;/span>: &lt;span class="kp">&amp;amp;&lt;/span>&lt;span class="kt">str&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>-&amp;gt; &lt;span class="nb">Vec&lt;/span>&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="kt">u16&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">source&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">encode_utf16&lt;/span>&lt;span class="p">().&lt;/span>&lt;span class="n">chain&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">Some&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">)).&lt;/span>&lt;span class="n">collect&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">unsafe&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">fn&lt;/span> &lt;span class="nf">register_wndclass&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">class_name&lt;/span>: &lt;span class="kp">&amp;amp;&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="kt">u16&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="w"> &lt;/span>-&amp;gt; &lt;span class="kt">bool&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="kd">let&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">mut&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">winc&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">mem&lt;/span>::&lt;span class="n">zeroed&lt;/span>::&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="no">WNDCLASSW&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">winc&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">style&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">CS_HREDRAW&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">CS_VREDRAW&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">winc&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">lpfnWndProc&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="nb">Some&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">win_proc&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">winc&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">hIcon&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">LoadIconW&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ptr&lt;/span>::&lt;span class="n">null_mut&lt;/span>&lt;span class="p">(),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">IDI_APPLICATION&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">winc&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">hCursor&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">LoadCursorW&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ptr&lt;/span>::&lt;span class="n">null_mut&lt;/span>&lt;span class="p">(),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">IDC_ARROW&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">winc&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">hbrBackground&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">GetStockObject&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="no">WHITE_BRUSH&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">as&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="kt">i32&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">as&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">HBRUSH&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">winc&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">lpszClassName&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">class_name&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">as_ptr&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">RegisterClassW&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">winc&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">unsafe&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">fn&lt;/span> &lt;span class="nf">create_window&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">class_name&lt;/span>: &lt;span class="kp">&amp;amp;&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="kt">u16&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="w"> &lt;/span>-&amp;gt; &lt;span class="nc">HWND&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">CreateWindowExW&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">class_name&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">as_ptr&lt;/span>&lt;span class="p">(),&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">encode&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Hello, World!&amp;#34;&lt;/span>&lt;span class="p">).&lt;/span>&lt;span class="n">as_ptr&lt;/span>&lt;span class="p">(),&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="no">WS_OVERLAPPEDWINDOW&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="no">CW_USEDEFAULT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">CW_USEDEFAULT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">ptr&lt;/span>::&lt;span class="n">null_mut&lt;/span>&lt;span class="p">(),&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">ptr&lt;/span>::&lt;span class="n">null_mut&lt;/span>&lt;span class="p">(),&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">ptr&lt;/span>::&lt;span class="n">null_mut&lt;/span>&lt;span class="p">(),&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">ptr&lt;/span>::&lt;span class="n">null_mut&lt;/span>&lt;span class="p">(),&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">unsafe&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">extern&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s">&amp;#34;system&amp;#34;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">fn&lt;/span> &lt;span class="nf">win_proc&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hwnd&lt;/span>: &lt;span class="nc">HWND&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">msg&lt;/span>: &lt;span class="nc">UINT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">w_param&lt;/span>: &lt;span class="nc">WPARAM&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">l_param&lt;/span>: &lt;span class="nc">LPARAM&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>-&amp;gt; &lt;span class="nc">LRESULT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">match&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">msg&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="no">WM_DESTROY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&amp;gt;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">PostQuitMessage&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">_&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&amp;gt;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">return&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">DefWindowProcW&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hwnd&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">msg&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">w_param&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">l_param&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">};&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="مرجع">مرجع
&lt;/h2>&lt;p>&lt;a class="link" href="https://qiita.com/benki/items/c01f7da1e1a71cc91d11" target="_blank" rel="noopener"
>برمجة Windows في Rust - قسم CreateWindow&lt;/a>&lt;/p></description></item><item><title>كتابة الاختبارات في Rust</title><link>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/</link><pubDate>Sat, 01 Oct 2022 02:00:59 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كتابة الاختبارات في Rust" />&lt;p>لكتابة اختبارات في Rust، قم بإنشاء دالة وأضف السمة &lt;code>#[test]&lt;/code> سطراً واحداً فوق تعريف دالة الاختبار.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-rust" data-lang="rust">&lt;span class="line">&lt;span class="cl">&lt;span class="k">fn&lt;/span> &lt;span class="nf">plus&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a&lt;/span>:&lt;span class="kt">i32&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">b&lt;/span>:&lt;span class="kt">i32&lt;/span>&lt;span class="p">)&lt;/span>-&amp;gt;&lt;span class="kt">i32&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="n">b&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="cp">#[test]&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">fn&lt;/span> &lt;span class="nf">plus_test&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="fm">assert_eq!&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">plus&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>يمكن تنفيذ كود الاختبار باستخدام &lt;code>cargo test&lt;/code>. عند نجاح الاختبار، يتم إخراج &lt;code>ok&lt;/code>.
عند الفشل، يتم إخراج &lt;code>FAILED&lt;/code>.&lt;/p>
&lt;p>في حالة النجاح&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;span class="lnt">9
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">C:&lt;span class="se">\U&lt;/span>sers&lt;span class="se">\a&lt;/span>dmin&lt;span class="se">\D&lt;/span>esktop&lt;span class="se">\t&lt;/span>est1&amp;gt;cargo &lt;span class="nb">test&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Compiling test1 v0.1.0 &lt;span class="o">(&lt;/span>C:&lt;span class="se">\U&lt;/span>sers&lt;span class="se">\a&lt;/span>dmin&lt;span class="se">\D&lt;/span>esktop&lt;span class="se">\t&lt;/span>est1&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Finished &lt;span class="nb">test&lt;/span> &lt;span class="o">[&lt;/span>unoptimized + debuginfo&lt;span class="o">]&lt;/span> target&lt;span class="o">(&lt;/span>s&lt;span class="o">)&lt;/span> in 0.35s
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Running unittests src&lt;span class="se">\m&lt;/span>ain.rs &lt;span class="o">(&lt;/span>target&lt;span class="se">\d&lt;/span>ebug&lt;span class="se">\d&lt;/span>eps&lt;span class="se">\t&lt;/span>est1-be5d3118bc52cb3a.exe&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">running &lt;span class="m">1&lt;/span> &lt;span class="nb">test&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">test&lt;/span> plus_test ... ok
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">test&lt;/span> result: ok. &lt;span class="m">1&lt;/span> passed&lt;span class="p">;&lt;/span> &lt;span class="m">0&lt;/span> failed&lt;span class="p">;&lt;/span> &lt;span class="m">0&lt;/span> ignored&lt;span class="p">;&lt;/span> &lt;span class="m">0&lt;/span> measured&lt;span class="p">;&lt;/span> &lt;span class="m">0&lt;/span> filtered out&lt;span class="p">;&lt;/span> finished in 0.00s
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>في حالة الفشل&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">C:&lt;span class="se">\U&lt;/span>sers&lt;span class="se">\a&lt;/span>dmin&lt;span class="se">\D&lt;/span>esktop&lt;span class="se">\t&lt;/span>est1&amp;gt;cargo &lt;span class="nb">test&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Compiling test1 v0.1.0 &lt;span class="o">(&lt;/span>C:&lt;span class="se">\U&lt;/span>sers&lt;span class="se">\a&lt;/span>dmin&lt;span class="se">\D&lt;/span>esktop&lt;span class="se">\t&lt;/span>est1&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Finished &lt;span class="nb">test&lt;/span> &lt;span class="o">[&lt;/span>unoptimized + debuginfo&lt;span class="o">]&lt;/span> target&lt;span class="o">(&lt;/span>s&lt;span class="o">)&lt;/span> in 0.33s
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Running unittests src&lt;span class="se">\m&lt;/span>ain.rs &lt;span class="o">(&lt;/span>target&lt;span class="se">\d&lt;/span>ebug&lt;span class="se">\d&lt;/span>eps&lt;span class="se">\t&lt;/span>est1-be5d3118bc52cb3a.exe&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">running &lt;span class="m">1&lt;/span> &lt;span class="nb">test&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">test&lt;/span> plus_test ... FAILED
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">failures:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">---- plus_test stdout ----
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">thread &lt;span class="s1">&amp;#39;plus_test&amp;#39;&lt;/span> panicked at &lt;span class="s1">&amp;#39;assertion failed: `(left == right)`
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> left: `2`,
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> right: `3`&amp;#39;&lt;/span>, src&lt;span class="se">\m&lt;/span>ain.rs:7:5
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">note: run with &lt;span class="sb">`&lt;/span>&lt;span class="nv">RUST_BACKTRACE&lt;/span>&lt;span class="o">=&lt;/span>1&lt;span class="sb">`&lt;/span> environment variable to display a backtrace
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">failures:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> plus_test
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">test&lt;/span> result: FAILED. &lt;span class="m">0&lt;/span> passed&lt;span class="p">;&lt;/span> &lt;span class="m">1&lt;/span> failed&lt;span class="p">;&lt;/span> &lt;span class="m">0&lt;/span> ignored&lt;span class="p">;&lt;/span> &lt;span class="m">0&lt;/span> measured&lt;span class="p">;&lt;/span> &lt;span class="m">0&lt;/span> filtered out&lt;span class="p">;&lt;/span> finished in 0.00s
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">error: &lt;span class="nb">test&lt;/span> failed, to rerun pass &lt;span class="s1">&amp;#39;--bin test1&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>عرض MessageBox في Rust</title><link>http://kenji.blog/ar/p/%D8%B9%D8%B1%D8%B6-messagebox-%D9%81%D9%8A-rust/</link><pubDate>Fri, 30 Sep 2022 23:54:31 +0900</pubDate><guid>http://kenji.blog/ar/p/%D8%B9%D8%B1%D8%B6-messagebox-%D9%81%D9%8A-rust/</guid><description>&lt;img src="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.png" alt="Featured image of post عرض MessageBox في Rust" />&lt;p>يمكنك عرض MessageBox في Rust باتباع الخطوات التالية.&lt;/p>
&lt;ol>
&lt;li>قم بتثبيت Rust. راجع &lt;a class="link" href="https://kenji.blog/posts/rust%E3%81%AE%E3%81%AF%E3%81%98%E3%82%81%E3%81%8B%E3%81%9F/" target="_blank" rel="noopener"
>كيفية البدء مع Rust&lt;/a>&lt;/li>
&lt;li>قم بتشغيل &lt;code>cargo new --bin MessageBox&lt;/code> في موجه الأوامر.&lt;/li>
&lt;li>انتقل إلى الدليل &lt;code>MessageBox&lt;/code>.&lt;/li>
&lt;li>افتح &lt;code>Cargo.toml&lt;/code> وقم بتعديله كما يلي.&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-toml" data-lang="toml">&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="nx">package&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">name&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;hello_world&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">version&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;0.1.0&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">edition&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;2021&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c"># See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="nx">dependencies&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">winapi&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;0.2.7&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nx">user32-sys&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s2">&amp;#34;0.2.0&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="5">
&lt;li>افتح &lt;code>src\main.rs&lt;/code> وقم بتعديله كما يلي.&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-main.rs" data-lang="main.rs">&lt;span class="line">&lt;span class="cl">&lt;span class="k">extern&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">crate&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">user32&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">extern&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">crate&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">winapi&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">use&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">std&lt;/span>::&lt;span class="n">ffi&lt;/span>::&lt;span class="n">CString&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">use&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">user32&lt;/span>::&lt;span class="n">MessageBoxA&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">use&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">winapi&lt;/span>::&lt;span class="n">winuser&lt;/span>::&lt;span class="p">{&lt;/span>&lt;span class="no">MB_OK&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">MB_ICONINFORMATION&lt;/span>&lt;span class="p">};&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">fn&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="kd">let&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">lp_text&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">CString&lt;/span>::&lt;span class="n">new&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Hello, world!&amp;#34;&lt;/span>&lt;span class="p">).&lt;/span>&lt;span class="n">unwrap&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="kd">let&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">lp_caption&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">CString&lt;/span>::&lt;span class="n">new&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;MessageBox Example&amp;#34;&lt;/span>&lt;span class="p">).&lt;/span>&lt;span class="n">unwrap&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">unsafe&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">MessageBoxA&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">std&lt;/span>::&lt;span class="n">ptr&lt;/span>::&lt;span class="n">null_mut&lt;/span>&lt;span class="p">(),&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">lp_text&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">as_ptr&lt;/span>&lt;span class="p">(),&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">lp_caption&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">as_ptr&lt;/span>&lt;span class="p">(),&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="no">MB_OK&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="no">MB_ICONINFORMATION&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ol start="6">
&lt;li>
&lt;p>قم بتشغيل &lt;code>cargo run&lt;/code> في موجه الأوامر.
&lt;img src="http://kenji.blog/p/rust%E3%81%A7messagebox%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B/img.png"
width="160"
height="152"
srcset="http://kenji.blog/p/rust%E3%81%A7messagebox%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B/img_hu634f1117052e2b61756baa5f3866eef5_4266_480x0_resize_box_3.png 480w, http://kenji.blog/p/rust%E3%81%A7messagebox%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B/img_hu634f1117052e2b61756baa5f3866eef5_4266_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="105"
data-flex-basis="252px"
>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>لإنشاء إصدار (release build)، قم بتشغيل &lt;code>cargo build --release&lt;/code>.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h1 id="مرجع">مرجع
&lt;/h1>&lt;p>&lt;a class="link" href="https://wesleywiser.github.io/post/rust-windows-messagebox-hello-world/" target="_blank" rel="noopener"
>Hello World MesssageBox example in Rust&lt;/a>&lt;/p></description></item><item><title>ما معنى أن تفهم؟</title><link>http://kenji.blog/ar/p/ma-mana-an-tafham/</link><pubDate>Sat, 24 Sep 2022 02:38:18 +0900</pubDate><guid>http://kenji.blog/ar/p/ma-mana-an-tafham/</guid><description>&lt;img src="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.png" alt="Featured image of post ما معنى أن تفهم؟" />&lt;h1 id="ما-معنى-أن-تفهم">ما معنى أن تفهم؟
&lt;/h1>&lt;p>مرحباً!&lt;/p>
&lt;p>اليوم أود أن أتحدث عن موضوع &amp;ldquo;ما معنى أن تفهم؟&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="هل-الفهم-غامض-في-الواقع">هل &amp;ldquo;الفهم&amp;rdquo; غامض في الواقع؟
&lt;/h2>&lt;p>في الحياة اليومية، هناك لحظات تشعر فيها &amp;ldquo;لقد فهمت!&amp;rdquo;. ولكن إذا فكرت في الأمر جيداً، هل هذا &amp;ldquo;الفهم&amp;rdquo; هو حقاً استيعاب كامل؟&lt;/p>
&lt;p>على سبيل المثال، قيادة السيارة. إذا ضغطت على دواسة الوقود ستتقدم، وإذا ضغطت على المكابح ستتوقف. قد يمكن القول بأنك &amp;ldquo;تفهم&amp;rdquo; هذا. ومع ذلك، أعتقد أن القليلين فقط يمكنهم الشرح بالتفصيل عما يحدث داخل المحرك.&lt;/p>
&lt;hr>
&lt;h2 id="هل-الفهم-الكامل-ضروري">هل الفهم الكامل ضروري؟
&lt;/h2>&lt;p>في الواقع، حتى لو لم نفهم كل شيء بشكل كامل، فغالباً لا يشكل ذلك عائقاً في حياتنا اليومية. حتى لو لم تكن تعرف التركيب الداخلي لهاتف ذكي، يمكنك إجراء مكالمة أو إرسال رسالة.&lt;/p>
&lt;p>ومع ذلك، هذا لا يعني أنه يجب علينا التقليل من شأن &amp;ldquo;الفهم&amp;rdquo;. إذا تعمق فهمنا، فقد تولد اكتشافات وإدراكات جديدة.&lt;/p>
&lt;hr>
&lt;h2 id="هناك-الكثير-من-الأشياء-التي-لا-نفهمها-أيضا">هناك الكثير من الأشياء التي لا نفهمها أيضاً
&lt;/h2>&lt;p>هناك الكثير من الأشياء في العالم التي لم يتم تفسيرها بعد. على سبيل المثال، آليات المشاعر والوعي البشري، أو أصل الكون. هذه المجالات لم يتم &amp;ldquo;فهمها&amp;rdquo; بالكامل حتى مع تقدم العلوم.&lt;/p>
&lt;p>في عالم الرياضيات أيضاً، هناك مسائل بسيطة ولكنها غير محلولة، مثل &amp;ldquo;حدسية غولدباخ&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="قيمة-الفهم">قيمة &amp;ldquo;الفهم&amp;rdquo;
&lt;/h2>&lt;p>عندما تزداد الأشياء التي &amp;ldquo;نفهمها&amp;rdquo;، يمكننا الشرح بثقة والتواصل مع الآخرين بفعالية. بالإضافة إلى ذلك، فإن امتلاك المعرفة يوفر ميزة وهي عدم الانخداع بسهولة بالمعلومات المضللة.&lt;/p>
&lt;hr>
&lt;h2 id="التواضع-أمر-مهم">التواضع أمر مهم
&lt;/h2>&lt;p>إن إدراك أننا &amp;ldquo;لا نفهم&amp;rdquo; بعض الأمور يؤدي إلى التواضع. وبسبب هذا الإدراك تحديداً، تنشأ الرغبة في الاستمرار في التعلم.&lt;/p>
&lt;hr>
&lt;p>وبناءً على ذلك، على الرغم من أن &amp;ldquo;الفهم&amp;rdquo; مهم، إلا أن الاستيعاب الكامل لكل شيء أمر صعب. الأهم من ذلك هو معرفة حدود فهمنا وامتلاك الدافع لمواصلة التعلم، أليس كذلك؟&lt;/p></description></item><item><title>لماذا أحب الرياضيات وأجهزة الكمبيوتر</title><link>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/</link><pubDate>Fri, 23 Sep 2022 01:56:52 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post لماذا أحب الرياضيات وأجهزة الكمبيوتر" />&lt;h2 id="فكرت-في-سبب-حبي-للرياضيات-وأجهزة-الكمبيوتر">فكرت في سبب حبي للرياضيات وأجهزة الكمبيوتر
&lt;/h2>&lt;h3 id="المساواة-للجميع">المساواة للجميع
&lt;/h3>&lt;p>بغض النظر عن الشخص أو موقفه أو مكانه، فإنها تعطي دائمًا نفس المخرجات لنفس المدخلات.&lt;/p>
&lt;h3 id="قواعد-واضحة">قواعد واضحة
&lt;/h3>&lt;p>القواعد محددة بوضوح، ولا يوجد أي عبثية أو ظلم.&lt;/p>
&lt;h3 id="الإجابات-والنظريات-المستنتجة-صحيحة-إلى-الأبد">الإجابات والنظريات المستنتجة صحيحة إلى الأبد
&lt;/h3>&lt;p>لا داعي للقلق من أن يتم تغيير الإجابة التي تم التوصل إليها لاحقًا.&lt;/p>
&lt;h3 id="هناك-مستوى-معتدل-من-الصعوبة">هناك مستوى معتدل من الصعوبة
&lt;/h3>&lt;p>هناك دائمًا مشاكل لم يتم حلها، ويمكنك دائمًا تحدي نفسك لحلها.&lt;/p></description></item><item><title>ما يحتاجه المجتمع</title><link>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/</link><pubDate>Fri, 23 Sep 2022 01:37:43 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post ما يحتاجه المجتمع" />&lt;h1 id="ما-يحتاجه-المجتمع">ما يحتاجه المجتمع
&lt;/h1>&lt;p>شعرت أن إرشادات مجتمع سكراتش راقية جداً وجيدة.
تمت كتابة ما يلي.&lt;/p>
&lt;blockquote>
&lt;p>تعامل مع الجميع باحترام.&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>حافظ على سلامتك: لا تنشر معلوماتك الشخصية أو معلومات الاتصال بك.&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>اترك تعليقات مفيدة.&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>افهم ثقافة الريمكس.&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>كن صادقاً.&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>اجعل الموقع مكاناً مريحاً.&lt;/p>
&lt;/blockquote>
&lt;p>أعتقد أن وجهات النظر هذه تنطبق على أي مجتمع.&lt;/p>
&lt;p>&lt;a class="link" href="https://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" target="_blank" rel="noopener"
>https://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&lt;/a>&lt;/p></description></item><item><title>عظماء الرياضيات</title><link>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/</link><pubDate>Thu, 22 Sep 2022 23:06:37 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post عظماء الرياضيات" />&lt;h3 id="فيرما-p-de-fermat-1601-1665">فيرما (P. de Fermat, 1601-1665)
&lt;/h3>&lt;p>عالم رياضيات فرنسي من أبرز علماء القرن السابع عشر. وضع أسس الهندسة التحليلية، ونظرية الاحتمالات، وحساب التفاضل. كما أنه يعتبر مؤسس نظرية الأعداد.&lt;/p>
&lt;h3 id="ديوفانتوس-diophantus-حوالي-207-291">ديوفانتوس (Diophantus, حوالي 207-291)
&lt;/h3>&lt;p>عالم رياضيات يوناني. اشتهر بإدخال الرموز ودراسة الحلول النسبية. عمله الرئيسي هو &amp;ldquo;الحساب&amp;rdquo;. يُعرف المجال الذي يسعى لإيجاد الحلول النسبية للمعادلات بتحليل ديوفانتين.&lt;/p>
&lt;h3 id="أويلر-l-euler-1707-1783">أويلر (L. Euler, 1707-1783)
&lt;/h3>&lt;p>ملك الرياضيات الذي ولد في سويسرا. حقق إنجازات في كل مجالات الرياضيات تقريبًا. ترك أكثر من 700 ورقة بحثية و45 كتابًا.&lt;/p>
&lt;h3 id="ليجاندر-a-m-legendre-1752-1833">ليجاندر (A. M. Legendre, 1752-1833)
&lt;/h3>&lt;p>عالم رياضيات فرنسي. ترك العديد من الإنجازات في نظرية الأعداد، والتكاملات الإهليلجية، ومسائل الجاذبية. كلمة &amp;ldquo;نظرية الأعداد&amp;rdquo; (Number Theory) مشتقة من كتابه الرئيسي الذي يحمل نفس الاسم.&lt;/p>
&lt;h3 id="كومر-e-e-kummer-1810-1893">كومر (E. E. Kummer, 1810-1893)
&lt;/h3>&lt;p>عالم رياضيات ألماني. حقق نتائج عظيمة بتطبيق نظرية الأعداد للحقول السيكلوتومية على مبرهنة فيرما الأخيرة.&lt;/p>
&lt;h3 id="ديكارت-r-descartes-1596-1650">ديكارت (R. Descartes, 1596-1650)
&lt;/h3>&lt;p>فيلسوف فرنسي مبتكر. من أهم أعماله &amp;ldquo;مقال عن المنهج&amp;rdquo;، و&amp;quot;الهندسة&amp;quot;، و&amp;quot;علم الكونيات&amp;quot;.&lt;/p>
&lt;h3 id="باسكال-b-pascal-1623-1662">باسكال (B. Pascal, 1623-1662)
&lt;/h3>&lt;p>فيلسوف فرنسي اشتهر بأبحاثه في نظرية الاحتمالات والموائع. انضم لاحقًا إلى الحركة الجانسنية وشارك في أنشطة دينية. كتاب &amp;ldquo;خواطر&amp;rdquo; (Pensées) كتب في تلك الفترة.&lt;/p>
&lt;h3 id="باشي-c-g-bachet-1581-1638">باشي (C. G. Bachet, 1581-1638)
&lt;/h3>&lt;p>نبيل فرنسي درس الألغاز العددية كهواية. نشر ترجمة لاتينية لكتاب &amp;ldquo;الحساب&amp;rdquo; لديوفانتوس، وأضاف أبحاثه الخاصة كتعليقات.&lt;/p>
&lt;h3 id="واليس-j-wallis-1616-1703">واليس (J. Wallis, 1616-1703)
&lt;/h3>&lt;p>عالم رياضيات إنجليزي. أعطى شكلًا رياضيًا لمفهوم النهايات في عمله الرئيسي &amp;ldquo;حساب اللانهاية&amp;rdquo;، وساهم في وضع أسس حساب التفاضل والتكامل.&lt;/p>
&lt;h3 id="برونكر-w-brouncker-1620-1684">برونكر (W. Brouncker, 1620-1684)
&lt;/h3>&lt;p>نبيل أيرلندي. أول رئيس للجمعية الملكية (الأكاديمية البريطانية). كان مهتمًا بالرياضيات وتبادل الأفكار مع واليس وغيره.&lt;/p>
&lt;h3 id="لاغرانج-j-l-lagrange-1736-1813">لاغرانج (J. L. Lagrange, 1736-1813)
&lt;/h3>&lt;p>عالم رياضيات فرنسي ولد في إيطاليا. خلف أويلر كمدير لقسم الرياضيات في أكاديمية برلين. حقق إنجازات عظيمة في نظرية الأعداد والميكانيكا التحليلية.&lt;/p>
&lt;h3 id="سيغل-c-l-siegel-1896-1981">سيغل (C. L. Siegel, 1896-1981)
&lt;/h3>&lt;p>عالم نظرية أعداد ألماني. قدم مساهمات عديدة في النظرية التحليلية للأعداد.&lt;/p>
&lt;h3 id="فيبوناتشي-l-fibonacci-حوالي-1175-1250">فيبوناتشي (L. Fibonacci, حوالي 1175-1250)
&lt;/h3>&lt;p>عالم رياضيات إيطالي. استخدم الأرقام الهندية العربية في كتابه &amp;ldquo;كتاب الحساب&amp;rdquo; وساهم في نشرها. كما ناقش الأعداد المتطابقة في كتابه &amp;ldquo;كتاب المربعات&amp;rdquo;.&lt;/p>
&lt;h3 id="بيكر-a-baker-1939-">بيكر (A. Baker, 1939-)
&lt;/h3>&lt;p>عالم نظرية أعداد إنجليزي. حصل على ميدالية فيلدز مع هيسوكه هيروناكا لمساهماته في نظرية الأعداد التجاوزية.&lt;/p>
&lt;h3 id="بوانكاريه-j-poincare-1854-1912">بوانكاريه (J. Poincare, 1854-1912)
&lt;/h3>&lt;p>عالم رياضيات فرنسي، يُلقب بآخر علماء الرياضيات الشاملين. ترك أعمالًا بارزة في نظرية الدوال ذات الشكل الذاتي، والهندسة اللاإقليدية، والمعادلات التفاضلية، والميكانيكا السماوية، والديناميكا الكهربائية، بالإضافة إلى النقد العلمي.&lt;/p>
&lt;h3 id="مورديل-l-j-mordell-1888-1972">مورديل (L. J. Mordell, 1888-1972)
&lt;/h3>&lt;p>عالم رياضيات أمريكي المولد. والداه مهاجران من ليتوانيا. له العديد من الأوراق البحثية في نظرية المعادلات الديوفانتية، وتعتبر مبرهنة مورديل في نظرية المنحنيات الإهليلجية مشهورة بشكل خاص. قام فايل بتعميمها لتشمل المنحنيات الجبرية العامة، ومن هنا شهدت الهندسة الجبرية الحسابية تطورًا هائلًا.&lt;/p>
&lt;h3 id="فايل-a-weil-1906-">فايل (A. Weil, 1906-)
&lt;/h3>&lt;p>عالم رياضيات فرنسي من أصل يهودي. اهتم بمسألة فيرما في شبابه، وقام بمراجعة جذرية للهندسة الجبرية بهدف تطبيقها على نظرية الأعداد، واضعًا لها أسسًا صارمة. معروف أيضًا بكتاباته في تاريخ الرياضيات.&lt;/p>
&lt;h3 id="ميرسين-m-mersenne-1588-1648">ميرسين (M. Mersenne, 1588-1648)
&lt;/h3>&lt;p>كاهن فرنسي من رهبنة المينيم. عمل كوسيط للمراسلات بين علماء الرياضيات في مختلف المناطق. الأعداد المعروفة باسم أعداد ميرسين ابتكرها في الواقع فيرما.&lt;/p>
&lt;h3 id="روبرفال-g-p-de-roberval-1602-1675">روبرفال (G. P. de Roberval, 1602-1675)
&lt;/h3>&lt;p>عالم رياضيات فرنسي. كان تقريبًا الشخص الوحيد في ذلك الوقت الذي حصل على منصب أستاذ كعالم رياضيات، واشتهر بأبحاثه حول الدويري.&lt;/p>
&lt;h3 id="أبيل-n-h-abel-1802-1829">أبيل (N. H. Abel, 1802-1829)
&lt;/h3>&lt;p>عالم رياضيات نرويجي. حقق إنجازات بارزة مثل استحالة حل المعادلات العامة من الدرجة الخامسة جبريًا، ونظرية الدوال الإهليلجية، ونظرية تكاملات أبيل، لكنه توفي في سن مبكرة.&lt;/p>
&lt;h3 id="جاكوبي-k-g-jacob-1804-1851">جاكوبي (K. G. Jacob, 1804-1851)
&lt;/h3>&lt;p>عالم رياضيات ألماني من أصل يهودي. ترك إنجازات عظيمة في نظرية الدوال الإهليلجية، ونظرية دوال ثيتا، والمعادلات التفاضلية، وحساب التغيرات. قدم أعمال أبيل للعالم. يُعرف أيضًا برفضه للبراغماتية، معتبرًا هدف العلم هو &amp;ldquo;شرف العقل البشري&amp;rdquo;.&lt;/p>
&lt;h3 id="غاوس-c-f-gauss-1777-1855">غاوس (C. F. Gauss, 1777-1855)
&lt;/h3>&lt;p>ملك الرياضيات الذي ولد في ألمانيا. اشتهر بأبحاثه في نظرية الأعداد، والهندسة اللاإقليدية، والجيوديسيا، والمتسلسلات الهندسية الفائقة، ونظرية السطوح، والمغناطيسية الأرضية. كان كماليًا ولم ينشر نتائجه إلا إذا كانت على درجة عالية من الاكتمال لدرجة لا تترك مجالًا للشك. عمله الرئيسي هو &amp;ldquo;استقصاءات حسابية&amp;rdquo;.&lt;/p>
&lt;h3 id="لامي-g-lame-1795-1870">لامي (G. Lame, 1795-1870)
&lt;/h3>&lt;p>عالم رياضيات فرنسي. ساهم في ميكانيكا المرونة ونظرية التوصيل الحراري وغيرها.&lt;/p>
&lt;h3 id="ليوفيل-j-liouville-1809-1882">ليوفيل (J. Liouville, 1809-1882)
&lt;/h3>&lt;p>عالم رياضيات فرنسي. ساهم في المعادلات التفاضلية، ونظرية الأعداد التجاوزية، ونظرية الدوال.&lt;/p>
&lt;h3 id="كوشي-a-l-cauchy-1789-1857">كوشي (A. L. Cauchy, 1789-1857)
&lt;/h3>&lt;p>عالم رياضيات فرنسي. غزير الإنتاج وله العديد من الإنجازات في الفيزياء النظرية والرياضيات. يقال إنه يحظى باحترام في فرنسا يعادل احترام غاوس.&lt;/p>
&lt;h3 id="غالوا-e-galois-1811-1832">غالوا (E. Galois, 1811-1832)
&lt;/h3>&lt;p>عالم رياضيات فرنسي. أوضح مبرهنة أبيل التي تنص على أن المعادلات من الدرجة الخامسة فما فوق لا يمكن حلها جبريًا بشكل عام، وذلك بإدخال مفهوم الزمرة. قُتل في مبارزة في سن مبكرة، ويُعرف الآن أن السبب كان مشكلة تافهة تتعلق بامرأة.&lt;/p>
&lt;h3 id="هينزيل-k-hensel-1861-1941">هينزيل (K. Hensel, 1861-1941)
&lt;/h3>&lt;p>عالم رياضيات ألماني. تلميذ كرونكر. طبق الأساليب الدالية لإدخال نظرية الأعداد التائية (التحليل التائي) في نظرية الأعداد.&lt;/p>
&lt;h3 id="هاسه-h-hasse-1898-1979">هاسه (H. Hasse, 1898-1979)
&lt;/h3>&lt;p>عالم رياضيات ألماني. تلميذ هينزيل، ساهم في وضع أسس التحليل التائي وتطبيقاته. عمل على تنظيم نظرية حقول الأصناف، ودراسة دوال L للمنحنيات الإهليلجية.&lt;/p>
&lt;h3 id="كرونكر-l-kronecker-1823-1891">كرونكر (L. Kronecker, 1823-1891)
&lt;/h3>&lt;p>عالم رياضيات ألماني من أصل يهودي. ساهم في نظرية الدوال الإهليلجية ونظرية الأعداد. يُعرف باقتراحه الأساس الحسابي للرياضيات، لكن شخصيته القوية الذاتية وانتقاداته غير المبررة لزميله في جامعة برلين، فايرشتراس، وعرقلته لتوظيف كانتور أعطت صورة سلبية عن حياته.&lt;/p>
&lt;h3 id="هيلبرت-d-hilbert-1862-1943">هيلبرت (D. Hilbert, 1862-1943)
&lt;/h3>&lt;p>عالم رياضيات ألماني. ترك بصمة هائلة في جميع مجالات الرياضيات، بما في ذلك نظرية الثوابت، ونظرية الأعداد الجبرية، وأسس الرياضيات. المسائل الثلاث والعشرون التي اقترحها في المؤتمر الدولي لعلماء الرياضيات في باريس (1900) كان لها تأثير كبير على تطور الرياضيات.&lt;/p>
&lt;h3 id="ريمان-b-riemann-1826-1866">ريمان (B. Riemann, 1826-1866)
&lt;/h3>&lt;p>عالم رياضيات ألماني. حقق إنجازات رئيسية تتعلق بأسس الرياضيات، مثل مفهوم سطح ريمان في نظرية الدوال العقدية، وهندسة ريمان.&lt;/p>
&lt;h3 id="فالتينغز-g-faltings-1954-">فالتينغز (G. Faltings, 1954-)
&lt;/h3>&lt;p>عالم رياضيات ألماني. أثبت حدسية مورديل في عام 1983.&lt;/p>
&lt;h3 id="وايلز-a-wiles-1953-">وايلز (A. Wiles, 1953-)
&lt;/h3>&lt;p>عالم رياضيات بريطاني المولد. الرائد في هذا المجال، قدم مساهمات كبيرة في البحث مثل التخمين الرئيسي لإيواساوا وحدسية بيرتش وسوينيرتون-داير.&lt;/p>
&lt;h3 id="المراجع">المراجع
&lt;/h3>&lt;p>تم حل مبرهنة فيرما الأخيرة! من أويلر إلى إثبات وايلز (كودانشا)&lt;/p></description></item><item><title>سرد عناوين النوافذ</title><link>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/</link><pubDate>Tue, 20 Sep 2022 17:03:15 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post سرد عناوين النوافذ" />&lt;h1 id="سرد-عناوين-النوافذ">سرد عناوين النوافذ
&lt;/h1>&lt;p>طريقة لسرد عناوين النوافذ المفتوحة حاليًا باستخدام PowerShell.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">Get-Process&lt;/span>&lt;span class="p">|&lt;/span>&lt;span class="n">where&lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="nv">$_&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">mainWindowTItle&lt;/span>&lt;span class="p">}|&lt;/span>&lt;span class="nb">Select-Object&lt;/span> &lt;span class="n">MainWindowTitle&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>نموذج الإخراج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;span class="lnt">9
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">MainWindowTitle
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">---------------
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Windows PowerShell
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Internet Explorer
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">بدون عنوان - الرسام
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">بدون عنوان - المفكرة
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">مدير المهام
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">تجربة إدخال Windows
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">مستند - الدفتر
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>حذف سريع ومجمع للمجلدات الكبيرة</title><link>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/</link><pubDate>Tue, 20 Sep 2022 16:04:02 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post حذف سريع ومجمع للمجلدات الكبيرة" />&lt;h2 id="حذف-سريع-ومجمع-للمجلدات-الكبيرة">حذف سريع ومجمع للمجلدات الكبيرة
&lt;/h2>&lt;p>عند حذف مجلد كبير باستخدام مستكشف الملفات، تكون العملية بطيئة لأنه يتم استكشاف محتويات المجلد بالكامل قبل تنفيذ الحذف.
كما هو موضح أدناه، إذا قمت بالحذف باستخدام الأوامر، فسيتم تنفيذ الاستكشاف والحذف في نفس الوقت، حتى تتمكن من حذف المجلدات الكبيرة بسرعة.&lt;/p>
&lt;ol>
&lt;li>في موجه الأوامر، انتقل إلى التسلسل الهرمي للمجلد المستهدف.&lt;/li>
&lt;li>قم بتنفيذ &lt;code>DEL /F /Q /S FolderName &amp;gt; NUL&lt;/code>.&lt;/li>
&lt;li>قم بتنفيذ &lt;code>RMDIR /Q /S FolderName&lt;/code>.&lt;/li>
&lt;/ol></description></item><item><title>أمر حذف جميع بيانات Chatter في Salesforce</title><link>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/</link><pubDate>Mon, 19 Sep 2022 21:59:14 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post أمر حذف جميع بيانات Chatter في Salesforce" />&lt;h1 id="أمر-حذف-جميع-بيانات-chatter-في-salesforce">أمر حذف جميع بيانات Chatter في Salesforce
&lt;/h1>&lt;p>هذا الأمر يقوم بحذف جميع المنشورات والمرفقات في Salesforce Chatter.
افتح وحدة تحكم المطور، ثم اختر &amp;ldquo;Open Execute anonymous Window&amp;rdquo; من قائمة Debug، والصق الكود التالي وقم بتنفيذه.
أستخدمه شخصياً عندما تكون سعة تخزين المؤسسة على وشك الامتلاء.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">delete [select id from FeedItem];
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">delete [select id from FeedAttachment];
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">delete [select id from ContentDocument];
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">// إفراغ سلة المهملات
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">database.emptyRecycleBin([select id from ContentDocument where IsDeleted = true ALL ROWS]);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>مجموعة اختصارات وحيل ويندوز</title><link>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/</link><pubDate>Sun, 18 Sep 2022 23:49:29 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post مجموعة اختصارات وحيل ويندوز" />&lt;p>هذه مجموعة صغيرة من الحيل والاختصارات التي تستخدم عادة في ويندوز. نأمل أن تكون مفيدة لأولئك الذين بدأوا للتو في استخدام ويندوز.
تمت كتابة هذه الحيل مع الأخذ في الاعتبار Windows 11، لكن أعتقد أن الكثير منها يعمل أيضًا في Windows 10.&lt;/p>
&lt;h2 id="إغلاق-النافذة">إغلاق النافذة
&lt;/h2>&lt;ul>
&lt;li>&lt;code>Alt + F4&lt;/code> بينما النافذة نشطة&lt;/li>
&lt;li>&lt;code>Ctrl + W&lt;/code> بينما النافذة نشطة. إغلاق علامة التبويب أو النافذة (فقط للتطبيقات المدعومة)&lt;/li>
&lt;li>انقر نقرًا مزدوجًا فوق الرمز الأيسر في شريط عنوان النافذة&lt;/li>
&lt;li>انقر فوق &lt;code>×&lt;/code> في شريط عنوان النافذة&lt;/li>
&lt;/ul>
&lt;h2 id="عرض-سطح-المكتب">عرض سطح المكتب
&lt;/h2>&lt;ul>
&lt;li>&lt;code>Win + D&lt;/code>. اضغط عليه مرتين للعودة إلى حالة النافذة السابقة. مفيد عندما تريد عرض سطح المكتب للحظة.&lt;/li>
&lt;li>&lt;code>Win + M&lt;/code>. تصغير كل التطبيقات. الضغط عليه مرتين لن يعيد النوافذ إلى حالتها السابقة.&lt;/li>
&lt;/ul>
&lt;h2 id="الإدخال-الصوتي">الإدخال الصوتي
&lt;/h2>&lt;ul>
&lt;li>&lt;code>Win + H&lt;/code>. بدء الإدخال الصوتي. لإنهاء الإدخال الصوتي، اضغط على &lt;code>Esc&lt;/code> أو &lt;code>Win + H&lt;/code> مرة أخرى.&lt;/li>
&lt;/ul>
&lt;h2 id="عرض-قائمة-النقر-بزر-الماوس-الأيمن-التقليدية-في-مستكشف-الملفات">عرض قائمة النقر بزر الماوس الأيمن التقليدية في مستكشف الملفات
&lt;/h2>&lt;ul>
&lt;li>اضغط على &lt;code>Shift + F10&lt;/code> أو مفتاح التطبيق. مفتاح التطبيق هو المفتاح الموجود في أسفل يمين لوحة المفاتيح.&lt;/li>
&lt;/ul>
&lt;h2 id="تحديد-منطقة-والتقاط-الشاشة">تحديد منطقة والتقاط الشاشة
&lt;/h2>&lt;ul>
&lt;li>يمكنك تحديد منطقة لالتقاط الشاشة باستخدام &lt;code>Win + Shift + S&lt;/code>.&lt;/li>
&lt;li>يمكنك التقاط الشاشة بالكامل باستخدام &lt;code>Win + Print Screen&lt;/code> أو ببساطة &lt;code>Print Screen&lt;/code>.
(إذا أضفت &lt;code>Win&lt;/code>، سيتم إخراج صورة الالتقاط إلى &lt;code>C:\Users\اسم المستخدم\Pictures\Screenshots&lt;/code>.)&lt;/li>
&lt;li>يمكنك التقاط النافذة الحالية باستخدام &lt;code>Alt + Print Screen&lt;/code>.&lt;/li>
&lt;/ul>
&lt;h2 id="تشغيل-التطبيقات-المثبتة-على-شريط-المهام">تشغيل التطبيقات المثبتة على شريط المهام
&lt;/h2>&lt;ul>
&lt;li>يمكنك تشغيل التطبيقات المثبتة على شريط المهام باستخدام &lt;code>Win + مفتاح الرقم&lt;/code>.&lt;br>
على سبيل المثال، الضغط على &lt;code>Win + 1&lt;/code> سيبدأ تشغيل التطبيق الموجود في أقصى اليسار على شريط المهام.&lt;/li>
&lt;li>يمكنك نقل التركيز إلى أيقونات شريط المهام باستخدام &lt;code>Win + T&lt;/code>، ثم يمكنك الضغط على &lt;code>Win + T&lt;/code> عدة مرات،
أو التبديل باستخدام &lt;code>←&lt;/code> أو &lt;code>→&lt;/code> واضغط على &lt;code>Enter&lt;/code> لتشغيل التطبيق المحدد.&lt;/li>
&lt;/ul>
&lt;h2 id="تكبيرتصغير">تكبير/تصغير
&lt;/h2>&lt;ul>
&lt;li>سيبدأ &lt;code>Win + +&lt;/code> تشغيل عدسة ويندوز المكبرة. بعد ذلك، يمكنك التكبير/التصغير باستخدام &lt;code>Win + + or -&lt;/code>.&lt;/li>
&lt;li>في المفكرة أو المتصفحات، يمكنك التكبير/التصغير باستخدام &lt;code>Ctrl + + or -&lt;/code> (للتطبيقات المدعومة فقط).&lt;/li>
&lt;/ul>
&lt;h2 id="قفل-ويندوز">قفل ويندوز
&lt;/h2>&lt;ul>
&lt;li>&lt;code>Win + L&lt;/code>&lt;/li>
&lt;li>&lt;code>Ctrl + Alt + Del&lt;/code> ← &lt;code>Space&lt;/code> أو &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="إيقاف-تشغيل-ويندوز">إيقاف تشغيل ويندوز
&lt;/h2>&lt;ul>
&lt;li>عندما يتم عرض سطح المكتب باستخدام &lt;code>Win + M&lt;/code> أو &lt;code>Win + D&lt;/code>، أو عندما يكون شريط المهام نشطًا باستخدام &lt;code>Win + T&lt;/code> أو &lt;code>Win + B&lt;/code>، اضغط على &lt;code>Alt + F4&lt;/code>، وسيتم عرض مربع الحوار أدناه، فتأكد من تحديد &amp;ldquo;إيقاف التشغيل&amp;rdquo; واضغط على &lt;code>Enter&lt;/code>.
يمكن أيضًا استخدام &lt;code>Win + R&lt;/code> ← &lt;code>Alt + F4&lt;/code> ← &lt;code>Alt + F4&lt;/code>.
&lt;img src="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_20.png"
width="482"
height="278"
srcset="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_20_hu3f12d2ce7faedc7d3b710fa8f12c5de2_12927_480x0_resize_box_3.png 480w, 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_20_hu3f12d2ce7faedc7d3b710fa8f12c5de2_12927_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_20.png"
class="gallery-image"
data-flex-grow="173"
data-flex-basis="416px"
>&lt;/li>
&lt;li>يمكنك إيقاف التشغيل بالضغط على &lt;code>Win + X&lt;/code> ← &lt;code>U&lt;/code> ← &lt;code>U&lt;/code>.&lt;/li>
&lt;li>في موجه الأوامر أو مربع حوار &amp;ldquo;تشغيل&amp;rdquo; (&lt;code>Win + R&lt;/code>)، اكتب &lt;code>shutdown /s /t 0&lt;/code> لإيقاف التشغيل. إضافة &lt;code>/f&lt;/code> سيؤدي إلى فرض إيقاف التشغيل.&lt;/li>
&lt;/ul>
&lt;h2 id="إعادة-تشغيل-ويندوز">إعادة تشغيل ويندوز
&lt;/h2>&lt;ul>
&lt;li>عندما يتم عرض سطح المكتب باستخدام &lt;code>Win + M&lt;/code> أو &lt;code>Win + D&lt;/code>، أو عندما يكون شريط المهام نشطًا باستخدام &lt;code>Win + T&lt;/code> أو &lt;code>Win + B&lt;/code>، اضغط على &lt;code>Alt + F4&lt;/code>، وسيتم عرض مربع الحوار أدناه، اضغط على &lt;code>↓&lt;/code> مرة واحدة لاختيار &amp;ldquo;إعادة التشغيل&amp;rdquo; واضغط على &lt;code>Enter&lt;/code>.
　يمكن أيضًا استخدام &lt;code>Win + R&lt;/code> ← &lt;code>Alt + F4&lt;/code> ← &lt;code>Alt + F4&lt;/code>.
&lt;img src="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_21.png"
width="482"
height="278"
srcset="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_21_hu7c3e02e460e465bf24597063ff70f70a_13423_480x0_resize_box_3.png 480w, 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_21_hu7c3e02e460e465bf24597063ff70f70a_13423_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_21.png"
class="gallery-image"
data-flex-grow="173"
data-flex-basis="416px"
>&lt;/li>
&lt;li>يمكنك إعادة التشغيل بالضغط على &lt;code>Win + X&lt;/code> ← &lt;code>U&lt;/code> ← &lt;code>R&lt;/code>.&lt;/li>
&lt;li>يمكنك إعادة التشغيل بكتابة &lt;code>shutdown /r /t 0&lt;/code>. إضافة &lt;code>/f&lt;/code> سيؤدي إلى فرض إعادة التشغيل.&lt;/li>
&lt;/ul>
&lt;h2 id="وضع-السكون-لويندوز">وضع السكون لويندوز
&lt;/h2>&lt;ul>
&lt;li>عندما يتم عرض سطح المكتب باستخدام &lt;code>Win + M&lt;/code> أو &lt;code>Win + D&lt;/code>، أو عندما يكون شريط المهام نشطًا باستخدام &lt;code>Win + T&lt;/code> أو &lt;code>Win + B&lt;/code>، اضغط على &lt;code>Alt + F4&lt;/code>، وسيتم عرض مربع الحوار أدناه، اضغط على &lt;code>↑&lt;/code> مرة واحدة لاختيار &amp;ldquo;سكون&amp;rdquo; واضغط على &lt;code>Enter&lt;/code>.
يمكن أيضًا استخدام &lt;code>Win + R&lt;/code> ← &lt;code>Alt + F4&lt;/code> ← &lt;code>Alt + F4&lt;/code>.
&lt;img src="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_23.png"
width="482"
height="278"
srcset="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_23_hub63f427cb79a50e4f112143a1cf4a9d1_14945_480x0_resize_box_3.png 480w, 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_23_hub63f427cb79a50e4f112143a1cf4a9d1_14945_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_23.png"
class="gallery-image"
data-flex-grow="173"
data-flex-basis="416px"
>&lt;/li>
&lt;li>&lt;code>Win + R&lt;/code> ← أو في موجه الأوامر اكتب &lt;code>rundll32.exe powrprof.dll,SetSuspendState&lt;/code> لوضع الجهاز في وضع الإسبات.&lt;/li>
&lt;/ul>
&lt;h2 id="تسجيل-الخروج-من-ويندوز-تسجيل-الخروج">تسجيل الخروج من ويندوز (تسجيل الخروج)
&lt;/h2>&lt;ul>
&lt;li>عندما يتم عرض سطح المكتب باستخدام &lt;code>Win + M&lt;/code> أو &lt;code>Win + D&lt;/code>، أو عندما يكون شريط المهام نشطًا باستخدام &lt;code>Win + T&lt;/code> أو &lt;code>Win + B&lt;/code>، اضغط على &lt;code>Alt + F4&lt;/code>، وسيتم عرض مربع الحوار أدناه، اضغط على &lt;code>↑&lt;/code> مرتين لاختيار &amp;ldquo;تسجيل الخروج&amp;rdquo; واضغط على &lt;code>Enter&lt;/code>.
يمكن أيضًا استخدام &lt;code>Win + R&lt;/code> ← &lt;code>Alt + F4&lt;/code> ← &lt;code>Alt + F4&lt;/code>.
&lt;img src="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_22.png"
width="482"
height="278"
srcset="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_22_hu6a4b716975acad63f398b15e49c71e3e_12765_480x0_resize_box_3.png 480w, 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_22_hu6a4b716975acad63f398b15e49c71e3e_12765_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_22.png"
class="gallery-image"
data-flex-grow="173"
data-flex-basis="416px"
>&lt;/li>
&lt;li>&lt;code>Win + X&lt;/code> ← &lt;code>U&lt;/code> ← &lt;code>I&lt;/code>&lt;/li>
&lt;li>&lt;code>Ctrl + Alt + Del&lt;/code> ← مرتين &lt;code>Tab&lt;/code> أو مرتين &lt;code>↓&lt;/code> ← &lt;code>Enter&lt;/code> أو &lt;code>Space&lt;/code>&lt;/li>
&lt;li>يمكنك تسجيل الخروج بكتابة &lt;code>logoff&lt;/code>.&lt;/li>
&lt;/ul>
&lt;h2 id="نقل-النافذة-باستخدام-لوحة-المفاتيح">نقل النافذة باستخدام لوحة المفاتيح
&lt;/h2>&lt;ul>
&lt;li>&lt;code>Win + ←&lt;/code> : نقل لليسار&lt;/li>
&lt;li>&lt;code>Win + →&lt;/code> : نقل لليمين&lt;/li>
&lt;li>&lt;code>Win + ↑&lt;/code> : نقل لأعلى / تكبير&lt;/li>
&lt;li>&lt;code>Win + ↓&lt;/code> : نقل لأسفل / تصغير&lt;/li>
&lt;li>&lt;code>Win + Shift + ← or →&lt;/code> : التنقل بين الشاشات المتعددة&lt;/li>
&lt;li>&lt;code>Win + Alt + ← or → or ↑ or ↓&lt;/code> : نقل النافذة دون تكبيرها أو تصغيرها&lt;/li>
&lt;li>عندما لا تكون مصغرة، اضغط على &lt;code>Alt + Space&lt;/code>، ثم &lt;code>M&lt;/code>، ثم تحرك باستخدام مفاتيح الأسهم.&lt;br>
※ نظرًا لأن النافذة ستتبع مؤشر الماوس، يمكنك إنقاذ نافذة حتى لو كانت معروضة خارج الشاشة.&lt;/li>
&lt;/ul>
&lt;h2 id="إنهاء-عملية-في-إدارة-المهام">إنهاء عملية في إدارة المهام
&lt;/h2>&lt;p>&lt;img src="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_24.png"
width="256"
height="192"
srcset="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_24_hud914f1b692d77f8e130a72e443261168_30639_480x0_resize_box_3.png 480w, 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_24_hud914f1b692d77f8e130a72e443261168_30639_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_24.png"
class="gallery-image"
data-flex-grow="133"
data-flex-basis="320px"
>&lt;/p>
&lt;ol>
&lt;li>يمكنك فتح إدارة المهام بالضغط على &lt;code>Ctrl + Shift + Esc&lt;/code>.&lt;/li>
&lt;li>يمكنك تبديل علامات التبويب بالضغط على &lt;code>Ctrl + Tab&lt;/code>.&lt;/li>
&lt;li>في علامة التبويب &amp;ldquo;التفاصيل&amp;rdquo;، بعد الضغط على &lt;code>Tab&lt;/code>، يمكنك البحث عن عملية تطابق بداية الاسم عن طريق إدخال أحرف باللغة الإنجليزية باستخدام لوحة المفاتيح.&lt;/li>
&lt;li>مع تحديد اسم العملية، يمكنك إنهائها عن طريق الضغط على مفتاح &lt;code>Delete&lt;/code> متبوعًا بمفتاح &lt;code>Enter&lt;/code>.&lt;/li>
&lt;/ol>
&lt;h2 id="إنهاء-عملية-بتحديد-اسمها-عن-طريق-الأمر">إنهاء عملية بتحديد اسمها عن طريق الأمر
&lt;/h2>&lt;ul>
&lt;li>يمكنك إنهاء العملية باستخدام &lt;code>taskkill /f /im اسم-العملية&lt;/code>.
على سبيل المثال، يمكنك إنهاء مستكشف الملفات باستخدام &lt;code>taskkill /f /im explorer.exe&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="تشغيل-نسخ-متعددة-من-نفس-البرنامج-من-أيقونة-شريط-المهام">تشغيل نسخ متعددة من نفس البرنامج من أيقونة شريط المهام
&lt;/h2>&lt;ul>
&lt;li>من خلال النقر بزر الماوس الأيسر مع الاستمرار في الضغط على مفتاح &lt;code>Shift&lt;/code> على شريط المهام، يمكنك تشغيل نسخ متعددة من نفس البرنامج. (للتطبيقات التي تدعم التشغيل المتعدد فقط)&lt;/li>
&lt;/ul>
&lt;h2 id="تشغيل-برنامج-بصلاحيات-المسؤول">تشغيل برنامج بصلاحيات المسؤول
&lt;/h2>&lt;ul>
&lt;li>يمكنك تشغيل البرنامج بصلاحيات المسؤول بالضغط على &lt;code>Ctrl + Shift&lt;/code> أثناء تشغيله.&lt;/li>
&lt;/ul>
&lt;h2 id="بدء-تشغيل-مستكشف-الملفات">بدء تشغيل مستكشف الملفات
&lt;/h2>&lt;ul>
&lt;li>يمكنك بدء تشغيل مستكشف الملفات بالضغط على &lt;code>Win + E&lt;/code>.&lt;/li>
&lt;li>اضغط على &lt;code>Win + R&lt;/code> لإظهار مربع حوار &amp;ldquo;تشغيل&amp;rdquo;، واكتب &lt;code>explorer&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>.&lt;/li>
&lt;li>يمكنك إنشاء مجلد جديد باستخدام &lt;code>Ctrl + Shift + N&lt;/code>.&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-موجه-الأوامر-في-الموقع-المفتوح-في-مستكشف-الملفات">فتح موجه الأوامر في الموقع المفتوح في مستكشف الملفات
&lt;/h2>&lt;ul>
&lt;li>في Windows 11، يمكنك تشغيل موجه الأوامر من &amp;ldquo;Terminal&amp;rdquo; في قائمة النقر بزر الماوس الأيمن.&lt;/li>
&lt;li>أيضًا، يمكنك تشغيل موجه الأوامر عن طريق كتابة &lt;code>cmd&lt;/code> في شريط العناوين والضغط على &lt;code>Enter&lt;/code>.&lt;/li>
&lt;/ul>
&lt;h2 id="عرض-سجل-الحافظة">عرض سجل الحافظة
&lt;/h2>&lt;ul>
&lt;li>يمكنك عرض سجل الحافظة بالضغط على &lt;code>Win + V&lt;/code>.
من خلال تحديد النص أو الصورة المنسوخة سابقًا، يمكنك نسخها مرة أخرى.&lt;/li>
&lt;/ul>
&lt;h2 id="تشغيل-مربع-حوار">تشغيل (مربع حوار)
&lt;/h2>&lt;p>&lt;img src="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_28.png"
width="399"
height="206"
srcset="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_28_hu5bd9c2c0efc8db87c1a7be24174584ba_8257_480x0_resize_box_3.png 480w, 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_28_hu5bd9c2c0efc8db87c1a7be24174584ba_8257_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_28.png"
class="gallery-image"
data-flex-grow="193"
data-flex-basis="464px"
>&lt;/p>
&lt;ul>
&lt;li>يمكنك تشغيل مربع حوار &amp;ldquo;تشغيل&amp;rdquo; باستخدام &lt;code>Win + R&lt;/code>.&lt;/li>
&lt;/ul>
&lt;p>فيما يلي بعض الأوامر التي يمكنك تنفيذها من &amp;ldquo;تشغيل&amp;rdquo; أو من موجه الأوامر.&lt;/p>
&lt;h2 id="فتح-edge">فتح Edge
&lt;/h2>&lt;p>&lt;img src="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_18.png"
width="256"
height="256"
srcset="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_18_hu2d7f1fd1a05d0eb8d4cb2a622c92fc65_40033_480x0_resize_box_3.png 480w, 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_18_hu2d7f1fd1a05d0eb8d4cb2a622c92fc65_40033_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_18.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>msedge&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-internet-explorer-11-ie11">فتح Internet Explorer 11 (IE11)
&lt;/h2>&lt;p>&lt;img src="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_25.png"
width="244"
height="228"
srcset="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_25_hub8b3dcd80a8b22b84e862a37d10a8d82_67766_480x0_resize_box_3.png 480w, 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_25_hub8b3dcd80a8b22b84e862a37d10a8d82_67766_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_25.png"
class="gallery-image"
data-flex-grow="107"
data-flex-basis="256px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>powershell.exe -Command &amp;quot;(New-Object -ComObject InternetExplorer.Application).Visible = $true&amp;quot;&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-terminal">فتح Terminal
&lt;/h2>&lt;p>&lt;img src="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_19.png"
width="256"
height="192"
srcset="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_19_huba670cecd7c1e41d044624c4278dce95_12032_480x0_resize_box_3.png 480w, 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_19_huba670cecd7c1e41d044624c4278dce95_12032_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_19.png"
class="gallery-image"
data-flex-grow="133"
data-flex-basis="320px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>wt&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-لوحة-التحكم">فتح لوحة التحكم
&lt;/h2>&lt;p>&lt;img src="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_15.png"
width="256"
height="192"
srcset="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_15_hua164d31c327d40ccd81ec7cd0798a08c_37353_480x0_resize_box_3.png 480w, 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_15_hua164d31c327d40ccd81ec7cd0798a08c_37353_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_15.png"
class="gallery-image"
data-flex-grow="133"
data-flex-basis="320px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>control&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;li>يمكنك فتحه أيضًا بـ &lt;code>explorer.exe shell:::{26EE0668-A00A-44D7-9371-BEB064C98683}&lt;/code>.&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-المفكرة">فتح المفكرة
&lt;/h2>&lt;p>&lt;img src="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_4.png"
width="192"
height="256"
srcset="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_4_hu8fd04f5788375cf1e91ec94379e2e218_17267_480x0_resize_box_3.png 480w, 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_4_hu8fd04f5788375cf1e91ec94379e2e218_17267_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_4.png"
class="gallery-image"
data-flex-grow="75"
data-flex-basis="180px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>notepad&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-الآلة-الحاسبة">فتح الآلة الحاسبة
&lt;/h2>&lt;p>&lt;img src="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_5.png"
width="192"
height="256"
srcset="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_5_hud38bddc861d08a6c0e618a52fbfadb9d_18242_480x0_resize_box_3.png 480w, 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_5_hud38bddc861d08a6c0e618a52fbfadb9d_18242_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_5.png"
class="gallery-image"
data-flex-grow="75"
data-flex-basis="180px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>calc&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-الرسام">فتح الرسام
&lt;/h2>&lt;p>&lt;img src="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_6.png"
width="236"
height="246"
srcset="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_6_huaf13165ac0572566abd830a37f5d0cef_37772_480x0_resize_box_3.png 480w, 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_6_huaf13165ac0572566abd830a37f5d0cef_37772_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_6.png"
class="gallery-image"
data-flex-grow="95"
data-flex-basis="230px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>mspaint&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-powershell">فتح PowerShell
&lt;/h2>&lt;p>&lt;img src="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_7.png"
width="238"
height="180"
srcset="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_7_huc312ccf5dbdb1b6edae5dc06174466bf_18265_480x0_resize_box_3.png 480w, 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_7_huc312ccf5dbdb1b6edae5dc06174466bf_18265_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_7.png"
class="gallery-image"
data-flex-grow="132"
data-flex-basis="317px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>powershell&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-visual-studio-code">فتح Visual Studio Code
&lt;/h2>&lt;p>&lt;img src="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_8.png"
width="256"
height="256"
srcset="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_8_hu819451b32a2c272ab10c72dbab15e316_9360_480x0_resize_box_3.png 480w, 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_8_hu819451b32a2c272ab10c72dbab15e316_9360_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_8.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>code&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-excel">فتح Excel
&lt;/h2>&lt;p>&lt;img src="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_9.png"
width="256"
height="256"
srcset="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_9_hufe95cb8f1915673ee373611cd0239b90_12403_480x0_resize_box_3.png 480w, 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_9_hufe95cb8f1915673ee373611cd0239b90_12403_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_9.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>excel&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;br>
※ فقط في حالة تثبيت Excel.&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-word">فتح Word
&lt;/h2>&lt;p>&lt;img src="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_10.png"
width="256"
height="256"
srcset="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_10_hu66f202be8d6fd020b50c8768fa2e6a4c_12479_480x0_resize_box_3.png 480w, 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_10_hu66f202be8d6fd020b50c8768fa2e6a4c_12479_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_10.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>winword&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;br>
※ فقط في حالة تثبيت Word.&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-powerpoint">فتح PowerPoint
&lt;/h2>&lt;p>&lt;img src="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_11.png"
width="256"
height="256"
srcset="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_11_hue1fee55e2f89dec256779909b6e45e73_16603_480x0_resize_box_3.png 480w, 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_11_hue1fee55e2f89dec256779909b6e45e73_16603_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_11.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>powerpnt&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;br>
※ فقط في حالة تثبيت PowerPoint.&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-تكوين-النظام">فتح تكوين النظام
&lt;/h2>&lt;p>&lt;img src="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_1.png"
width="665"
height="437"
srcset="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_1_hu9eac5a45f3cec150f6d24f7cc9194bcc_17777_480x0_resize_box_3.png 480w, 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_1_hu9eac5a45f3cec150f6d24f7cc9194bcc_17777_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="152"
data-flex-basis="365px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>msconfig&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-خصائص-النظام">فتح خصائص النظام
&lt;/h2>&lt;p>&lt;img src="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_2.png"
width="479"
height="533"
srcset="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_2_hu3929e3da9eca5e07cd9c2d5cc64dbd1e_20161_480x0_resize_box_3.png 480w, 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_2_hu3929e3da9eca5e07cd9c2d5cc64dbd1e_20161_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="89"
data-flex-basis="215px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>sysdm.cpl&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-معلومات-حول-ويندوز">فتح معلومات حول ويندوز
&lt;/h2>&lt;p>&lt;img src="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_27.png"
width="536"
height="472"
srcset="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_27_hue408b4bef2bf493ba35bfd5153ef0069_18050_480x0_resize_box_3.png 480w, 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_27_hue408b4bef2bf493ba35bfd5153ef0069_18050_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_27.png"
class="gallery-image"
data-flex-grow="113"
data-flex-basis="272px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>winver&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-لوحة-المفاتيح-على-الشاشة">فتح لوحة المفاتيح على الشاشة
&lt;/h2>&lt;p>&lt;img src="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_14.png"
width="248"
height="197"
srcset="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_14_hu1a8155193c62d74a0ebaff13a210723b_38736_480x0_resize_box_3.png 480w, 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_14_hu1a8155193c62d74a0ebaff13a210723b_38736_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_14.png"
class="gallery-image"
data-flex-grow="125"
data-flex-basis="302px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>osk&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-الدفتر">فتح الدفتر
&lt;/h2>&lt;p>&lt;img src="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_12.png"
width="191"
height="232"
srcset="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_12_hu6fb1edb2f260aa83d67ca8cca1dd668a_38511_480x0_resize_box_3.png 480w, 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_12_hu6fb1edb2f260aa83d67ca8cca1dd668a_38511_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_12.png"
class="gallery-image"
data-flex-grow="82"
data-flex-basis="197px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>wordpad&lt;/code> أو &lt;code>write&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-محرر-التسجيل">فتح محرر التسجيل
&lt;/h2>&lt;p>&lt;img src="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_13.png"
width="212"
height="224"
srcset="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_13_hu32fb6574ff10cc1f2401fc64ed114687_7891_480x0_resize_box_3.png 480w, 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_13_hu32fb6574ff10cc1f2401fc64ed114687_7891_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_13.png"
class="gallery-image"
data-flex-grow="94"
data-flex-basis="227px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>regedit&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-البرامج-والميزات">فتح البرامج والميزات
&lt;/h2>&lt;ul>
&lt;li>اكتب &lt;code>explorer.exe shell:::{7b81be6a-ce2b-4676-a29e-eb907a5126c5}&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-خصائص-لوحة-المفاتيح">فتح خصائص لوحة المفاتيح
&lt;/h2>&lt;ul>
&lt;li>اكتب &lt;code>explorer.exe shell:::{725BE8F7-668E-4C7B-8F90-46BDB0936430}&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-خصائص-الماوس">فتح خصائص الماوس
&lt;/h2>&lt;p>&lt;img src="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_16.png"
width="465"
height="518"
srcset="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_16_hu4b8368d82eda62c47aa07a16e184c48d_28920_480x0_resize_box_3.png 480w, 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_16_hu4b8368d82eda62c47aa07a16e184c48d_28920_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_16.png"
class="gallery-image"
data-flex-grow="89"
data-flex-basis="215px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>explorer.exe shell:::{6C8EEC18-8D75-41B2-A177-8831D59D2D50}&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-الصوت">فتح الصوت
&lt;/h2>&lt;p>&lt;img src="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_3.png"
width="465"
height="518"
srcset="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_3_hu07d343f29d286da7b6e29fffcdf11463_27424_480x0_resize_box_3.png 480w, 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_3_hu07d343f29d286da7b6e29fffcdf11463_27424_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="89"
data-flex-basis="215px"
>&lt;/p>
&lt;ul>
&lt;li>اكتب &lt;code>explorer.exe shell:::{F2DDFC82-8F12-4CDD-B7DC-D4FE1425AA4D}&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="فتح-حسابات-المستخدمين">فتح حسابات المستخدمين
&lt;/h2>&lt;ul>
&lt;li>اكتب &lt;code>explorer.exe shell:::{60632754-c523-4b62-b45c-4172da012619}&lt;/code> ثم اضغط على &lt;code>Enter&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="نسخ-السلسلة-من-مربع-رسالة-قياسي">نسخ السلسلة من مربع رسالة قياسي
&lt;/h2>&lt;p>&lt;img src="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_26.png"
width="352"
height="134"
srcset="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_26_hu8464019115eff050aa2f4030d8b469e9_4904_480x0_resize_box_3.png 480w, 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_26_hu8464019115eff050aa2f4030d8b469e9_4904_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_26.png"
class="gallery-image"
data-flex-grow="262"
data-flex-basis="630px"
>&lt;/p>
&lt;ul>
&lt;li>يمكنك استخدام &lt;code>Ctrl + C&lt;/code> لنسخ النص من مربع رسالة قياسي.
عند نسخ مربع الرسالة أعلاه، سيتم نسخ ما يلي إلى الحافظة:&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[Window Title]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ワードパッド
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[Main Instruction]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ドキュメント への変更内容を保存しますか?
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">[保存する(S)] [保存しない(N)] [キャンセル]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="تخزين-إخراج-موجه-الأوامر-في-الحافظة">تخزين إخراج موجه الأوامر في الحافظة
&lt;/h2>&lt;p>إضافة &lt;code> | clip&lt;/code> (أنبوب + clip) بعد الأمر، مثل &lt;code>echo &amp;quot;hello&amp;quot; | clip&lt;/code>، يمكنه نسخ الإخراج القياسي إلى الحافظة.&lt;/p>
&lt;h2 id="إخراج-تسلسل-المجلدات-كملف-نصي">إخراج تسلسل المجلدات كملف نصي
&lt;/h2>&lt;p>يمكنك استخدام الأمر &lt;code>tree&lt;/code> في موجه الأوامر لإخراج تسلسل المجلدات بصيغة شجرة.&lt;/p>
&lt;p>مثال للإخراج&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;span class="lnt">36
&lt;/span>&lt;span class="lnt">37
&lt;/span>&lt;span class="lnt">38
&lt;/span>&lt;span class="lnt">39
&lt;/span>&lt;span class="lnt">40
&lt;/span>&lt;span class="lnt">41
&lt;/span>&lt;span class="lnt">42
&lt;/span>&lt;span class="lnt">43
&lt;/span>&lt;span class="lnt">44
&lt;/span>&lt;span class="lnt">45
&lt;/span>&lt;span class="lnt">46
&lt;/span>&lt;span class="lnt">47
&lt;/span>&lt;span class="lnt">48
&lt;/span>&lt;span class="lnt">49
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">C:.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">├─.idea
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ └─libraries
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">├─binaryeditorbz
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">├─blog
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ ├─archetypes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ ├─content
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ ├─data
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ ├─layouts
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ ├─static
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ └─themes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ └─PaperMod
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ ├─.git
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ ├─branches
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ ├─hooks
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ ├─info
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ ├─logs
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ │ └─refs
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ │ ├─heads
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ │ └─remotes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ │ └─origin
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ ├─objects
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ │ ├─info
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ │ └─pack
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ └─refs
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ ├─heads
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ ├─remotes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ │ └─origin
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ └─tags
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ ├─.github
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ ├─ISSUE_TEMPLATE
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ └─workflows
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ ├─assets
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ ├─css
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ │ ├─common
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ │ ├─core
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ │ ├─extended
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ │ ├─hljs
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ │ └─includes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ └─js
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ ├─i18n
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ ├─images
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ └─layouts
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ ├─partials
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ └─templates
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ ├─shortcodes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ └─_default
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ └─_markup
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">(إلخ)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="مراجع">مراجع
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://support.microsoft.com/ja-jp/windows/windows-%E3%81%AE%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89-%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88-dcc61a57-8ff0-cffe-9796-cb9706c75eec" target="_blank" rel="noopener"
>اختصارات لوحة مفاتيح Windows&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>جاذبية paint.net</title><link>http://kenji.blog/ar/p/paint.net%E3%81%AE%E9%AD%85%E5%8A%9B/</link><pubDate>Wed, 14 Sep 2022 19:33:31 +0900</pubDate><guid>http://kenji.blog/ar/p/paint.net%E3%81%AE%E9%AD%85%E5%8A%9B/</guid><description>&lt;img src="http://kenji.blog/p/paint.net%E3%81%AE%E9%AD%85%E5%8A%9B/img.png" alt="Featured image of post جاذبية paint.net" />&lt;p>سأقدم لكم paint.net، وهو برنامج تحرير صور أستخدمه غالبًا أثناء أعمال التطوير الخاصة بي.&lt;/p>
&lt;p>&lt;img src="http://kenji.blog/p/paint.net%E3%81%AE%E9%AD%85%E5%8A%9B/img_1.png"
width="986"
height="793"
srcset="http://kenji.blog/p/paint.net%E3%81%AE%E9%AD%85%E5%8A%9B/img_1_hu7b03baa3250c24dbfc5edac442a5c4c7_981205_480x0_resize_box_3.png 480w, http://kenji.blog/p/paint.net%E3%81%AE%E9%AD%85%E5%8A%9B/img_1_hu7b03baa3250c24dbfc5edac442a5c4c7_981205_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="124"
data-flex-basis="298px"
>&lt;/p>
&lt;h1 id="ميزات-مفيدة-غير-متوفرة-في-الرسام-القياسي-لنظام-windows">ميزات مفيدة غير متوفرة في الرسام القياسي لنظام Windows
&lt;/h1>&lt;ul>
&lt;li>يمكنه التعامل مع الشفافية/العتامة&lt;/li>
&lt;li>يمكنه التحديد التلقائي لأشكال النطاقات المعقدة&lt;/li>
&lt;li>يمكنه التعامل مع الطبقات&lt;/li>
&lt;li>يمكنه ضبط المستويات والسطوع والتباين وما إلى ذلك&lt;/li>
&lt;li>يمكن تطبيق تأثيرات مختلفة (تمويه، تشويه، ضوضاء، إلخ)&lt;/li>
&lt;/ul>
&lt;h1 id="ميزات-أخرى">ميزات أخرى
&lt;/h1>&lt;ul>
&lt;li>مجاني للاستخدام&lt;/li>
&lt;li>خفيف الأداء نسبيًا&lt;/li>
&lt;li>بديهي الاستخدام وليس به الكثير من التعقيد&lt;/li>
&lt;li>يدعم لغات متعددة&lt;/li>
&lt;/ul>
&lt;p>إنه برنامج عالي الوظائف ولكنه سهل الاستخدام. أنا شخصياً لم أتقن جميع ميزاته بعد.&lt;/p>
&lt;h1 id="التثبيت-من-هنا">التثبيت من هنا
&lt;/h1>&lt;p>&lt;a class="link" href="https://www.getpaint.net/download.html" target="_blank" rel="noopener"
>https://www.getpaint.net/download.html&lt;/a>&lt;/p>
&lt;p>إذا اخترت الإصدار المجاني، يرجى النقر فوق الجزء المؤطر باللون الأحمر في الرابط أدناه.&lt;/p>
&lt;p>&lt;img src="http://kenji.blog/p/paint.net%E3%81%AE%E9%AD%85%E5%8A%9B/img_2.png"
width="754"
height="275"
srcset="http://kenji.blog/p/paint.net%E3%81%AE%E9%AD%85%E5%8A%9B/img_2_hu81a3dce724a3d5bbc649f5ff4fffc8aa_30455_480x0_resize_box_3.png 480w, http://kenji.blog/p/paint.net%E3%81%AE%E9%AD%85%E5%8A%9B/img_2_hu81a3dce724a3d5bbc649f5ff4fffc8aa_30455_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="274"
data-flex-basis="658px"
>&lt;/p>
&lt;p>يبدو أنه إذا قمت بالتثبيت عبر متجر Microsoft، فسيكون مدفوعًا ولكن في المقابل يتيح التحديثات التلقائية.
حتى مع الإصدار المجاني، يمكنك التحديث بسلاسة نسبيًا لأنه يعلمك بأحدث معلومات التحديث.&lt;/p></description></item><item><title>كيفية إعداد نطاق مخصص لمستودع Github</title><link>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/</link><pubDate>Tue, 13 Sep 2022 01:16:40 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية إعداد نطاق مخصص لمستودع Github" />&lt;p>لإعداد نطاق مخصص لمستودع Github، تحتاج إلى تغيير إعدادات DNS للنطاق.
هنا، سنفترض أنك تدير نطاقك باستخدام
&lt;a href="https://px.a8.net/svt/ejp?a8mat=3TJBXA+BKRHS2+50+2HHVNM" rel="nofollow">Onamae.com&lt;/a>
&lt;img border="0" width="1" height="1" src="https://www19.a8.net/0.gif?a8mat=3TJBXA+BKRHS2+50+2HHVNM" alt="">
لشرح العملية.
يمكن إجراء إعدادات مماثلة عن طريق إعادة كتابة سجلات A في مسجلات أخرى.&lt;/p>
&lt;h2 id="تغيير-إعدادات-dns-في-onamaecom">تغيير إعدادات DNS في Onamae.com
&lt;/h2>&lt;p>لتغيير إعدادات DNS للنطاق، قم بتسجيل الدخول إلى لوحة التحكم الخاصة بـ
&lt;a href="https://px.a8.net/svt/ejp?a8mat=3TJBXA+BKRHS2+50+2HHVNM" rel="nofollow">Onamae.com&lt;/a>
&lt;img border="0" width="1" height="1" src="https://www19.a8.net/0.gif?a8mat=3TJBXA+BKRHS2+50+2HHVNM" alt="">.
بعد تسجيل الدخول، انتقل إلى شاشة إدارة النطاق.
بمجرد وصولك إلى شاشة إدارة النطاق، قم بتغيير إعدادات DNS.
لتغيير إعدادات DNS، اتبع الخطوات التالية.&lt;/p>
&lt;ol>
&lt;li>قم بزيارة &lt;a class="link" href="https://www.onamae.com/" target="_blank" rel="noopener"
>https://www.onamae.com/&lt;/a> وانقر على &amp;ldquo;تسجيل الدخول إلى Onamae.com Navi&amp;rdquo;&lt;/li>
&lt;li>أدخل &amp;ldquo;معرف Onamae (معرف العضو)&amp;rdquo; و &amp;ldquo;كلمة المرور&amp;rdquo; وانقر على زر تسجيل الدخول&lt;/li>
&lt;li>انقر على &amp;ldquo;إعدادات خادم الأسماء&amp;rdquo;&lt;/li>
&lt;li>انقر على &amp;ldquo;إعدادات DNS للنطاق&amp;rdquo;&lt;/li>
&lt;li>حدد النطاق الذي تريد إعداده وانقر على &amp;ldquo;التالي&amp;rdquo;&lt;/li>
&lt;li>انقر على &amp;ldquo;إعداد&amp;rdquo; على يمين &amp;ldquo;استخدام إعداد سجل DNS&amp;rdquo;&lt;/li>
&lt;li>حدد A لـ TYPE، وأدخل 3600 لـ TTL، و &amp;ldquo;185.199.108.153&amp;rdquo; لـ VALUE، وانقر على &amp;ldquo;إضافة&amp;rdquo;&lt;/li>
&lt;li>على غرار الخطوة 7، أضف &amp;ldquo;185.199.109.153&amp;rdquo; و &amp;ldquo;185.199.110.153&amp;rdquo; و &amp;ldquo;185.199.111.153&amp;rdquo;&lt;/li>
&lt;li>في &amp;ldquo;تأكيد تغيير خادم الأسماء لإعداد سجل DNS&amp;rdquo;، تأكد من تحديد المربع وانقر على &amp;ldquo;المتابعة إلى شاشة الإعداد&amp;rdquo;&lt;/li>
&lt;li>إذا ظهرت شاشة تقول &amp;ldquo;لمنع تغييرات إعدادات DNS غير المقصودة&amp;rdquo;، فانقر على &amp;ldquo;عدم الإعداد&amp;rdquo; (حدد حسب الضرورة)&lt;/li>
&lt;li>تحقق من الإعدادات وانقر على &amp;ldquo;إعداد&amp;rdquo;
&lt;img src="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/img.png"
width="656"
height="140"
srcset="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/img_hu4809a0e7ac5f7d8dfe8c6643786c9385_7354_480x0_resize_box_3.png 480w, 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/img_hu4809a0e7ac5f7d8dfe8c6643786c9385_7354_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="468"
data-flex-basis="1124px"
>&lt;/li>
&lt;li>يكمل هذا إعدادات DNS. قد يستغرق الأمر ما يصل إلى 72 ساعة تقريبًا حتى يكتمل التحديث.&lt;/li>
&lt;li>إذا لم تنعكس التغييرات بعد 72 ساعة، فيرجى الاتصال بدعم Onamae.com.&lt;/li>
&lt;/ol>
&lt;p>للتحقق مما إذا كانت الإعدادات قد انعكست في بيئتك المحلية، يرجى محاولة تشغيل الأمر التالي.
استبدل &lt;code>example.com&lt;/code> بالنطاق الذي تريد التحقق منه.&lt;/p>
&lt;h3 id="لنظامي-التشغيل-linux-و-mac">لنظامي التشغيل Linux و Mac
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">dig example.com +noall +answer -t A
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>إذا كانت النتيجة كما يلي، فقد تم تطبيق الإعدادات.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">example.com. &lt;span class="m">0&lt;/span> IN A 185.199.108.153
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">example.com. &lt;span class="m">0&lt;/span> IN A 185.199.109.153
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">example.com. &lt;span class="m">0&lt;/span> IN A 185.199.110.153
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">example.com. &lt;span class="m">0&lt;/span> IN A 185.199.111.153
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="لنظام-التشغيل-windows">لنظام التشغيل Windows
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">nslookup -q&lt;span class="o">=&lt;/span>a example.com 8.8.8.8
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>إذا كانت النتيجة كما يلي، فقد تم تطبيق الإعدادات.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;span class="lnt">9
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">サーバー: dns.google
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Address: 8.8.8.8
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">権限のない回答:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">名前: example.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Addresses: 185.199.108.153
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 185.199.109.153
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 185.199.110.153
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 185.199.111.153
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إعداد-نطاق-مخصص-لمستودع-github">إعداد نطاق مخصص لمستودع Github
&lt;/h2>&lt;ol>
&lt;li>افتح صفحة المستودع وانقر على Settings (الإعدادات)&lt;/li>
&lt;li>انقر على Pages (الصفحات)&lt;/li>
&lt;li>إذا كنت تنشر مصدر المستودع كما هو، فحدد &amp;ldquo;Deploy from a branch&amp;rdquo; ضمن Source. إذا كنت تبني المصدر مثل HUGO، فحدد &amp;ldquo;GitHub Actions&amp;rdquo;.&lt;/li>
&lt;li>حدد الفرع الذي سيتم نشره ضمن Branch وانقر على Save&lt;/li>
&lt;li>أدخل النطاق الذي حصلت عليه في Custom domain (نطاق مخصص) وانقر على Save.&lt;/li>
&lt;li>إذا لزم الأمر، حدد المربع &amp;ldquo;Enforce HTTPS&amp;rdquo; لتمكين دعم HTTPS&lt;/li>
&lt;/ol>
&lt;p>[PR]
&lt;a href="https://px.a8.net/svt/ejp?a8mat=3TJBXA+BKRHS2+50+2HQGAP" rel="nofollow">
&lt;img border="0" width="468" height="60" alt="" src="https://www24.a8.net/svt/bgt?aid=231009310700&amp;wid=003&amp;eno=01&amp;mid=s00000000018015072000&amp;mc=1">&lt;/a>
&lt;img border="0" width="1" height="1" src="https://www14.a8.net/0.gif?a8mat=3TJBXA+BKRHS2+50+2HQGAP" alt="">&lt;/p></description></item><item><title>إنشاء .gitignore باستخدام أمر dotnet</title><link>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/</link><pubDate>Tue, 13 Sep 2022 00:25:12 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post إنشاء .gitignore باستخدام أمر dotnet" />&lt;p>يعد أمر dotnet.exe مفيدًا لأنه يسمح لك حتى بإنشاء برامج بسيطة، لذلك من الملائم أن يكون جاهزًا للاستخدام.&lt;/p>
&lt;h2 id="تثبيت-حزمة-net-sdk">تثبيت حزمة .NET SDK
&lt;/h2>&lt;p>نظرًا لأن dotnet.exe مضمن في .NET SDK، قم أولاً بتثبيت .NET SDK.
قم بتشغيل cmd.exe بامتيازات المسؤول ونفذ الأمر التالي.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-cmd" data-lang="cmd">&lt;span class="line">&lt;span class="cl">winget install Microsoft.DotNet.SDK.6
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="إنشاء-gitignore">إنشاء .gitignore
&lt;/h2>&lt;p>الأمر الخاص بإنشاء .gitignore باستخدام dotnet.exe هو كما يلي:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">dotnet new gitignore
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>ملف .gitignore الذي تم إنشاؤه هو كما يلي:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt"> 10
&lt;/span>&lt;span class="lnt"> 11
&lt;/span>&lt;span class="lnt"> 12
&lt;/span>&lt;span class="lnt"> 13
&lt;/span>&lt;span class="lnt"> 14
&lt;/span>&lt;span class="lnt"> 15
&lt;/span>&lt;span class="lnt"> 16
&lt;/span>&lt;span class="lnt"> 17
&lt;/span>&lt;span class="lnt"> 18
&lt;/span>&lt;span class="lnt"> 19
&lt;/span>&lt;span class="lnt"> 20
&lt;/span>&lt;span class="lnt"> 21
&lt;/span>&lt;span class="lnt"> 22
&lt;/span>&lt;span class="lnt"> 23
&lt;/span>&lt;span class="lnt"> 24
&lt;/span>&lt;span class="lnt"> 25
&lt;/span>&lt;span class="lnt"> 26
&lt;/span>&lt;span class="lnt"> 27
&lt;/span>&lt;span class="lnt"> 28
&lt;/span>&lt;span class="lnt"> 29
&lt;/span>&lt;span class="lnt"> 30
&lt;/span>&lt;span class="lnt"> 31
&lt;/span>&lt;span class="lnt"> 32
&lt;/span>&lt;span class="lnt"> 33
&lt;/span>&lt;span class="lnt"> 34
&lt;/span>&lt;span class="lnt"> 35
&lt;/span>&lt;span class="lnt"> 36
&lt;/span>&lt;span class="lnt"> 37
&lt;/span>&lt;span class="lnt"> 38
&lt;/span>&lt;span class="lnt"> 39
&lt;/span>&lt;span class="lnt"> 40
&lt;/span>&lt;span class="lnt"> 41
&lt;/span>&lt;span class="lnt"> 42
&lt;/span>&lt;span class="lnt"> 43
&lt;/span>&lt;span class="lnt"> 44
&lt;/span>&lt;span class="lnt"> 45
&lt;/span>&lt;span class="lnt"> 46
&lt;/span>&lt;span class="lnt"> 47
&lt;/span>&lt;span class="lnt"> 48
&lt;/span>&lt;span class="lnt"> 49
&lt;/span>&lt;span class="lnt"> 50
&lt;/span>&lt;span class="lnt"> 51
&lt;/span>&lt;span class="lnt"> 52
&lt;/span>&lt;span class="lnt"> 53
&lt;/span>&lt;span class="lnt"> 54
&lt;/span>&lt;span class="lnt"> 55
&lt;/span>&lt;span class="lnt"> 56
&lt;/span>&lt;span class="lnt"> 57
&lt;/span>&lt;span class="lnt"> 58
&lt;/span>&lt;span class="lnt"> 59
&lt;/span>&lt;span class="lnt"> 60
&lt;/span>&lt;span class="lnt"> 61
&lt;/span>&lt;span class="lnt"> 62
&lt;/span>&lt;span class="lnt"> 63
&lt;/span>&lt;span class="lnt"> 64
&lt;/span>&lt;span class="lnt"> 65
&lt;/span>&lt;span class="lnt"> 66
&lt;/span>&lt;span class="lnt"> 67
&lt;/span>&lt;span class="lnt"> 68
&lt;/span>&lt;span class="lnt"> 69
&lt;/span>&lt;span class="lnt"> 70
&lt;/span>&lt;span class="lnt"> 71
&lt;/span>&lt;span class="lnt"> 72
&lt;/span>&lt;span class="lnt"> 73
&lt;/span>&lt;span class="lnt"> 74
&lt;/span>&lt;span class="lnt"> 75
&lt;/span>&lt;span class="lnt"> 76
&lt;/span>&lt;span class="lnt"> 77
&lt;/span>&lt;span class="lnt"> 78
&lt;/span>&lt;span class="lnt"> 79
&lt;/span>&lt;span class="lnt"> 80
&lt;/span>&lt;span class="lnt"> 81
&lt;/span>&lt;span class="lnt"> 82
&lt;/span>&lt;span class="lnt"> 83
&lt;/span>&lt;span class="lnt"> 84
&lt;/span>&lt;span class="lnt"> 85
&lt;/span>&lt;span class="lnt"> 86
&lt;/span>&lt;span class="lnt"> 87
&lt;/span>&lt;span class="lnt"> 88
&lt;/span>&lt;span class="lnt"> 89
&lt;/span>&lt;span class="lnt"> 90
&lt;/span>&lt;span class="lnt"> 91
&lt;/span>&lt;span class="lnt"> 92
&lt;/span>&lt;span class="lnt"> 93
&lt;/span>&lt;span class="lnt"> 94
&lt;/span>&lt;span class="lnt"> 95
&lt;/span>&lt;span class="lnt"> 96
&lt;/span>&lt;span class="lnt"> 97
&lt;/span>&lt;span class="lnt"> 98
&lt;/span>&lt;span class="lnt"> 99
&lt;/span>&lt;span class="lnt">100
&lt;/span>&lt;span class="lnt">101
&lt;/span>&lt;span class="lnt">102
&lt;/span>&lt;span class="lnt">103
&lt;/span>&lt;span class="lnt">104
&lt;/span>&lt;span class="lnt">105
&lt;/span>&lt;span class="lnt">106
&lt;/span>&lt;span class="lnt">107
&lt;/span>&lt;span class="lnt">108
&lt;/span>&lt;span class="lnt">109
&lt;/span>&lt;span class="lnt">110
&lt;/span>&lt;span class="lnt">111
&lt;/span>&lt;span class="lnt">112
&lt;/span>&lt;span class="lnt">113
&lt;/span>&lt;span class="lnt">114
&lt;/span>&lt;span class="lnt">115
&lt;/span>&lt;span class="lnt">116
&lt;/span>&lt;span class="lnt">117
&lt;/span>&lt;span class="lnt">118
&lt;/span>&lt;span class="lnt">119
&lt;/span>&lt;span class="lnt">120
&lt;/span>&lt;span class="lnt">121
&lt;/span>&lt;span class="lnt">122
&lt;/span>&lt;span class="lnt">123
&lt;/span>&lt;span class="lnt">124
&lt;/span>&lt;span class="lnt">125
&lt;/span>&lt;span class="lnt">126
&lt;/span>&lt;span class="lnt">127
&lt;/span>&lt;span class="lnt">128
&lt;/span>&lt;span class="lnt">129
&lt;/span>&lt;span class="lnt">130
&lt;/span>&lt;span class="lnt">131
&lt;/span>&lt;span class="lnt">132
&lt;/span>&lt;span class="lnt">133
&lt;/span>&lt;span class="lnt">134
&lt;/span>&lt;span class="lnt">135
&lt;/span>&lt;span class="lnt">136
&lt;/span>&lt;span class="lnt">137
&lt;/span>&lt;span class="lnt">138
&lt;/span>&lt;span class="lnt">139
&lt;/span>&lt;span class="lnt">140
&lt;/span>&lt;span class="lnt">141
&lt;/span>&lt;span class="lnt">142
&lt;/span>&lt;span class="lnt">143
&lt;/span>&lt;span class="lnt">144
&lt;/span>&lt;span class="lnt">145
&lt;/span>&lt;span class="lnt">146
&lt;/span>&lt;span class="lnt">147
&lt;/span>&lt;span class="lnt">148
&lt;/span>&lt;span class="lnt">149
&lt;/span>&lt;span class="lnt">150
&lt;/span>&lt;span class="lnt">151
&lt;/span>&lt;span class="lnt">152
&lt;/span>&lt;span class="lnt">153
&lt;/span>&lt;span class="lnt">154
&lt;/span>&lt;span class="lnt">155
&lt;/span>&lt;span class="lnt">156
&lt;/span>&lt;span class="lnt">157
&lt;/span>&lt;span class="lnt">158
&lt;/span>&lt;span class="lnt">159
&lt;/span>&lt;span class="lnt">160
&lt;/span>&lt;span class="lnt">161
&lt;/span>&lt;span class="lnt">162
&lt;/span>&lt;span class="lnt">163
&lt;/span>&lt;span class="lnt">164
&lt;/span>&lt;span class="lnt">165
&lt;/span>&lt;span class="lnt">166
&lt;/span>&lt;span class="lnt">167
&lt;/span>&lt;span class="lnt">168
&lt;/span>&lt;span class="lnt">169
&lt;/span>&lt;span class="lnt">170
&lt;/span>&lt;span class="lnt">171
&lt;/span>&lt;span class="lnt">172
&lt;/span>&lt;span class="lnt">173
&lt;/span>&lt;span class="lnt">174
&lt;/span>&lt;span class="lnt">175
&lt;/span>&lt;span class="lnt">176
&lt;/span>&lt;span class="lnt">177
&lt;/span>&lt;span class="lnt">178
&lt;/span>&lt;span class="lnt">179
&lt;/span>&lt;span class="lnt">180
&lt;/span>&lt;span class="lnt">181
&lt;/span>&lt;span class="lnt">182
&lt;/span>&lt;span class="lnt">183
&lt;/span>&lt;span class="lnt">184
&lt;/span>&lt;span class="lnt">185
&lt;/span>&lt;span class="lnt">186
&lt;/span>&lt;span class="lnt">187
&lt;/span>&lt;span class="lnt">188
&lt;/span>&lt;span class="lnt">189
&lt;/span>&lt;span class="lnt">190
&lt;/span>&lt;span class="lnt">191
&lt;/span>&lt;span class="lnt">192
&lt;/span>&lt;span class="lnt">193
&lt;/span>&lt;span class="lnt">194
&lt;/span>&lt;span class="lnt">195
&lt;/span>&lt;span class="lnt">196
&lt;/span>&lt;span class="lnt">197
&lt;/span>&lt;span class="lnt">198
&lt;/span>&lt;span class="lnt">199
&lt;/span>&lt;span class="lnt">200
&lt;/span>&lt;span class="lnt">201
&lt;/span>&lt;span class="lnt">202
&lt;/span>&lt;span class="lnt">203
&lt;/span>&lt;span class="lnt">204
&lt;/span>&lt;span class="lnt">205
&lt;/span>&lt;span class="lnt">206
&lt;/span>&lt;span class="lnt">207
&lt;/span>&lt;span class="lnt">208
&lt;/span>&lt;span class="lnt">209
&lt;/span>&lt;span class="lnt">210
&lt;/span>&lt;span class="lnt">211
&lt;/span>&lt;span class="lnt">212
&lt;/span>&lt;span class="lnt">213
&lt;/span>&lt;span class="lnt">214
&lt;/span>&lt;span class="lnt">215
&lt;/span>&lt;span class="lnt">216
&lt;/span>&lt;span class="lnt">217
&lt;/span>&lt;span class="lnt">218
&lt;/span>&lt;span class="lnt">219
&lt;/span>&lt;span class="lnt">220
&lt;/span>&lt;span class="lnt">221
&lt;/span>&lt;span class="lnt">222
&lt;/span>&lt;span class="lnt">223
&lt;/span>&lt;span class="lnt">224
&lt;/span>&lt;span class="lnt">225
&lt;/span>&lt;span class="lnt">226
&lt;/span>&lt;span class="lnt">227
&lt;/span>&lt;span class="lnt">228
&lt;/span>&lt;span class="lnt">229
&lt;/span>&lt;span class="lnt">230
&lt;/span>&lt;span class="lnt">231
&lt;/span>&lt;span class="lnt">232
&lt;/span>&lt;span class="lnt">233
&lt;/span>&lt;span class="lnt">234
&lt;/span>&lt;span class="lnt">235
&lt;/span>&lt;span class="lnt">236
&lt;/span>&lt;span class="lnt">237
&lt;/span>&lt;span class="lnt">238
&lt;/span>&lt;span class="lnt">239
&lt;/span>&lt;span class="lnt">240
&lt;/span>&lt;span class="lnt">241
&lt;/span>&lt;span class="lnt">242
&lt;/span>&lt;span class="lnt">243
&lt;/span>&lt;span class="lnt">244
&lt;/span>&lt;span class="lnt">245
&lt;/span>&lt;span class="lnt">246
&lt;/span>&lt;span class="lnt">247
&lt;/span>&lt;span class="lnt">248
&lt;/span>&lt;span class="lnt">249
&lt;/span>&lt;span class="lnt">250
&lt;/span>&lt;span class="lnt">251
&lt;/span>&lt;span class="lnt">252
&lt;/span>&lt;span class="lnt">253
&lt;/span>&lt;span class="lnt">254
&lt;/span>&lt;span class="lnt">255
&lt;/span>&lt;span class="lnt">256
&lt;/span>&lt;span class="lnt">257
&lt;/span>&lt;span class="lnt">258
&lt;/span>&lt;span class="lnt">259
&lt;/span>&lt;span class="lnt">260
&lt;/span>&lt;span class="lnt">261
&lt;/span>&lt;span class="lnt">262
&lt;/span>&lt;span class="lnt">263
&lt;/span>&lt;span class="lnt">264
&lt;/span>&lt;span class="lnt">265
&lt;/span>&lt;span class="lnt">266
&lt;/span>&lt;span class="lnt">267
&lt;/span>&lt;span class="lnt">268
&lt;/span>&lt;span class="lnt">269
&lt;/span>&lt;span class="lnt">270
&lt;/span>&lt;span class="lnt">271
&lt;/span>&lt;span class="lnt">272
&lt;/span>&lt;span class="lnt">273
&lt;/span>&lt;span class="lnt">274
&lt;/span>&lt;span class="lnt">275
&lt;/span>&lt;span class="lnt">276
&lt;/span>&lt;span class="lnt">277
&lt;/span>&lt;span class="lnt">278
&lt;/span>&lt;span class="lnt">279
&lt;/span>&lt;span class="lnt">280
&lt;/span>&lt;span class="lnt">281
&lt;/span>&lt;span class="lnt">282
&lt;/span>&lt;span class="lnt">283
&lt;/span>&lt;span class="lnt">284
&lt;/span>&lt;span class="lnt">285
&lt;/span>&lt;span class="lnt">286
&lt;/span>&lt;span class="lnt">287
&lt;/span>&lt;span class="lnt">288
&lt;/span>&lt;span class="lnt">289
&lt;/span>&lt;span class="lnt">290
&lt;/span>&lt;span class="lnt">291
&lt;/span>&lt;span class="lnt">292
&lt;/span>&lt;span class="lnt">293
&lt;/span>&lt;span class="lnt">294
&lt;/span>&lt;span class="lnt">295
&lt;/span>&lt;span class="lnt">296
&lt;/span>&lt;span class="lnt">297
&lt;/span>&lt;span class="lnt">298
&lt;/span>&lt;span class="lnt">299
&lt;/span>&lt;span class="lnt">300
&lt;/span>&lt;span class="lnt">301
&lt;/span>&lt;span class="lnt">302
&lt;/span>&lt;span class="lnt">303
&lt;/span>&lt;span class="lnt">304
&lt;/span>&lt;span class="lnt">305
&lt;/span>&lt;span class="lnt">306
&lt;/span>&lt;span class="lnt">307
&lt;/span>&lt;span class="lnt">308
&lt;/span>&lt;span class="lnt">309
&lt;/span>&lt;span class="lnt">310
&lt;/span>&lt;span class="lnt">311
&lt;/span>&lt;span class="lnt">312
&lt;/span>&lt;span class="lnt">313
&lt;/span>&lt;span class="lnt">314
&lt;/span>&lt;span class="lnt">315
&lt;/span>&lt;span class="lnt">316
&lt;/span>&lt;span class="lnt">317
&lt;/span>&lt;span class="lnt">318
&lt;/span>&lt;span class="lnt">319
&lt;/span>&lt;span class="lnt">320
&lt;/span>&lt;span class="lnt">321
&lt;/span>&lt;span class="lnt">322
&lt;/span>&lt;span class="lnt">323
&lt;/span>&lt;span class="lnt">324
&lt;/span>&lt;span class="lnt">325
&lt;/span>&lt;span class="lnt">326
&lt;/span>&lt;span class="lnt">327
&lt;/span>&lt;span class="lnt">328
&lt;/span>&lt;span class="lnt">329
&lt;/span>&lt;span class="lnt">330
&lt;/span>&lt;span class="lnt">331
&lt;/span>&lt;span class="lnt">332
&lt;/span>&lt;span class="lnt">333
&lt;/span>&lt;span class="lnt">334
&lt;/span>&lt;span class="lnt">335
&lt;/span>&lt;span class="lnt">336
&lt;/span>&lt;span class="lnt">337
&lt;/span>&lt;span class="lnt">338
&lt;/span>&lt;span class="lnt">339
&lt;/span>&lt;span class="lnt">340
&lt;/span>&lt;span class="lnt">341
&lt;/span>&lt;span class="lnt">342
&lt;/span>&lt;span class="lnt">343
&lt;/span>&lt;span class="lnt">344
&lt;/span>&lt;span class="lnt">345
&lt;/span>&lt;span class="lnt">346
&lt;/span>&lt;span class="lnt">347
&lt;/span>&lt;span class="lnt">348
&lt;/span>&lt;span class="lnt">349
&lt;/span>&lt;span class="lnt">350
&lt;/span>&lt;span class="lnt">351
&lt;/span>&lt;span class="lnt">352
&lt;/span>&lt;span class="lnt">353
&lt;/span>&lt;span class="lnt">354
&lt;/span>&lt;span class="lnt">355
&lt;/span>&lt;span class="lnt">356
&lt;/span>&lt;span class="lnt">357
&lt;/span>&lt;span class="lnt">358
&lt;/span>&lt;span class="lnt">359
&lt;/span>&lt;span class="lnt">360
&lt;/span>&lt;span class="lnt">361
&lt;/span>&lt;span class="lnt">362
&lt;/span>&lt;span class="lnt">363
&lt;/span>&lt;span class="lnt">364
&lt;/span>&lt;span class="lnt">365
&lt;/span>&lt;span class="lnt">366
&lt;/span>&lt;span class="lnt">367
&lt;/span>&lt;span class="lnt">368
&lt;/span>&lt;span class="lnt">369
&lt;/span>&lt;span class="lnt">370
&lt;/span>&lt;span class="lnt">371
&lt;/span>&lt;span class="lnt">372
&lt;/span>&lt;span class="lnt">373
&lt;/span>&lt;span class="lnt">374
&lt;/span>&lt;span class="lnt">375
&lt;/span>&lt;span class="lnt">376
&lt;/span>&lt;span class="lnt">377
&lt;/span>&lt;span class="lnt">378
&lt;/span>&lt;span class="lnt">379
&lt;/span>&lt;span class="lnt">380
&lt;/span>&lt;span class="lnt">381
&lt;/span>&lt;span class="lnt">382
&lt;/span>&lt;span class="lnt">383
&lt;/span>&lt;span class="lnt">384
&lt;/span>&lt;span class="lnt">385
&lt;/span>&lt;span class="lnt">386
&lt;/span>&lt;span class="lnt">387
&lt;/span>&lt;span class="lnt">388
&lt;/span>&lt;span class="lnt">389
&lt;/span>&lt;span class="lnt">390
&lt;/span>&lt;span class="lnt">391
&lt;/span>&lt;span class="lnt">392
&lt;/span>&lt;span class="lnt">393
&lt;/span>&lt;span class="lnt">394
&lt;/span>&lt;span class="lnt">395
&lt;/span>&lt;span class="lnt">396
&lt;/span>&lt;span class="lnt">397
&lt;/span>&lt;span class="lnt">398
&lt;/span>&lt;span class="lnt">399
&lt;/span>&lt;span class="lnt">400
&lt;/span>&lt;span class="lnt">401
&lt;/span>&lt;span class="lnt">402
&lt;/span>&lt;span class="lnt">403
&lt;/span>&lt;span class="lnt">404
&lt;/span>&lt;span class="lnt">405
&lt;/span>&lt;span class="lnt">406
&lt;/span>&lt;span class="lnt">407
&lt;/span>&lt;span class="lnt">408
&lt;/span>&lt;span class="lnt">409
&lt;/span>&lt;span class="lnt">410
&lt;/span>&lt;span class="lnt">411
&lt;/span>&lt;span class="lnt">412
&lt;/span>&lt;span class="lnt">413
&lt;/span>&lt;span class="lnt">414
&lt;/span>&lt;span class="lnt">415
&lt;/span>&lt;span class="lnt">416
&lt;/span>&lt;span class="lnt">417
&lt;/span>&lt;span class="lnt">418
&lt;/span>&lt;span class="lnt">419
&lt;/span>&lt;span class="lnt">420
&lt;/span>&lt;span class="lnt">421
&lt;/span>&lt;span class="lnt">422
&lt;/span>&lt;span class="lnt">423
&lt;/span>&lt;span class="lnt">424
&lt;/span>&lt;span class="lnt">425
&lt;/span>&lt;span class="lnt">426
&lt;/span>&lt;span class="lnt">427
&lt;/span>&lt;span class="lnt">428
&lt;/span>&lt;span class="lnt">429
&lt;/span>&lt;span class="lnt">430
&lt;/span>&lt;span class="lnt">431
&lt;/span>&lt;span class="lnt">432
&lt;/span>&lt;span class="lnt">433
&lt;/span>&lt;span class="lnt">434
&lt;/span>&lt;span class="lnt">435
&lt;/span>&lt;span class="lnt">436
&lt;/span>&lt;span class="lnt">437
&lt;/span>&lt;span class="lnt">438
&lt;/span>&lt;span class="lnt">439
&lt;/span>&lt;span class="lnt">440
&lt;/span>&lt;span class="lnt">441
&lt;/span>&lt;span class="lnt">442
&lt;/span>&lt;span class="lnt">443
&lt;/span>&lt;span class="lnt">444
&lt;/span>&lt;span class="lnt">445
&lt;/span>&lt;span class="lnt">446
&lt;/span>&lt;span class="lnt">447
&lt;/span>&lt;span class="lnt">448
&lt;/span>&lt;span class="lnt">449
&lt;/span>&lt;span class="lnt">450
&lt;/span>&lt;span class="lnt">451
&lt;/span>&lt;span class="lnt">452
&lt;/span>&lt;span class="lnt">453
&lt;/span>&lt;span class="lnt">454
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-gdscript3" data-lang="gdscript3">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Ignore Visual Studio temporary files, build results, and&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## files generated by popular Visual Studio add-ons.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">##&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># User-specific files&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">rsuser&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">suo&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">user&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">userosscache&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">sln&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">docstates&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># User-specific files (MonoDevelop/Xamarin Studio)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">userprefs&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Mono auto generated files&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">mono_crash&lt;/span>&lt;span class="o">.*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Build results&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Dd&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">ebug&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Dd&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">ebugPublic&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Rr&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">elease&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Rr&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">eleases&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">x64&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">x86&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Ww&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="n">Ii&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="n">Nn&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="mi">32&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Aa&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="n">Rr&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="n">Mm&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Aa&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="n">Rr&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="n">Mm&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="mi">64&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">bld&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Bb&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="ow">in&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Oo&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">bj&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Ll&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">og&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Ll&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">ogs&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Visual Studio 2015/2017 cache/options directory&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">vs&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Uncomment if you have tasks that create the project&amp;#39;s static files in wwwroot&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#wwwroot/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Visual Studio 2017 auto generated files&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Generated&lt;/span>\ &lt;span class="n">Files&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># MSTest test Results&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Tt&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">est&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">Rr&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">esult&lt;/span>&lt;span class="o">*/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Bb&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">uild&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">Ll&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">og&lt;/span>&lt;span class="o">.*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># NUnit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">VisualState&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">xml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">TestResult&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">xml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">nunit&lt;/span>&lt;span class="o">-*.&lt;/span>&lt;span class="n">xml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Build Results of an ATL Project&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Dd&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">ebugPS&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Rr&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">eleasePS&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">dlldata&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">c&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Benchmark Results&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">BenchmarkDotNet&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">Artifacts&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># .NET&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">project&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">lock&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">json&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">project&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fragment&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">lock&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">json&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">artifacts&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Tye&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">tye&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ASP.NET Scaffolding&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ScaffoldingReadMe&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">txt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># StyleCop&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">StyleCopReport&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">xml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Files built by Visual Studio&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*&lt;/span>&lt;span class="n">_i&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">c&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*&lt;/span>&lt;span class="n">_p&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">c&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*&lt;/span>&lt;span class="n">_h&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">h&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">ilk&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">meta&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">obj&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">iobj&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">pch&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">pdb&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">ipdb&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">pgc&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">pgd&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">rsp&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">sbr&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">tlb&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">tli&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">tlh&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">tmp&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">tmp_proj&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*&lt;/span>&lt;span class="n">_wpftmp&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">csproj&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">log&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">vspscc&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">vssscc&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">builds&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">pidb&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">svclog&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">scc&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Chutzpah Test files&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">_Chutzpah&lt;/span>&lt;span class="o">*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Visual C++ cache files&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ipch&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">aps&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">ncb&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">opendb&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">opensdf&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">sdf&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">cachefile&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">VC&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">db&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">VC&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">VC&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">opendb&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Visual Studio profiler&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">psess&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">vsp&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">vspx&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">sap&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Visual Studio Trace Files&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">e2e&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># TFS 2012 Local Workspace&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">$&lt;/span>&lt;span class="n">tf&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Guidance Automation Toolkit&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">gpState&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ReSharper is a .NET coding add-in&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">_ReSharper&lt;/span>&lt;span class="o">*/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">Rr&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">e&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">Ss&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">harper&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">DotSettings&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">user&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># TeamCity is a build add-in&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">_TeamCity&lt;/span>&lt;span class="o">*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># DotCover is a Code Coverage Tool&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">dotCover&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># AxoCover is a Code Coverage Tool&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">axoCover&lt;/span>&lt;span class="o">/*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">!.&lt;/span>&lt;span class="n">axoCover&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">settings&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">json&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Coverlet is a free, cross platform Code Coverage Tool&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">coverage&lt;/span>&lt;span class="o">*.&lt;/span>&lt;span class="n">json&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">coverage&lt;/span>&lt;span class="o">*.&lt;/span>&lt;span class="n">xml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">coverage&lt;/span>&lt;span class="o">*.&lt;/span>&lt;span class="n">info&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Visual Studio code coverage results&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">coverage&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">coveragexml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># NCrunch&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">_NCrunch_&lt;/span>&lt;span class="o">*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.*&lt;/span>&lt;span class="n">crunch&lt;/span>&lt;span class="o">*.&lt;/span>&lt;span class="n">local&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">xml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">nCrunchTemp_&lt;/span>&lt;span class="o">*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># MightyMoose&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">mm&lt;/span>&lt;span class="o">.*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">AutoTest&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">Net&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Web workbench (sass)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">sass&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">cache&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Installshield output folder&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Ee&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">xpress&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># DocProject is a documentation generator add-in&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">DocProject&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">buildhelp&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">DocProject&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Help&lt;/span>&lt;span class="o">/*.&lt;/span>&lt;span class="n">HxT&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">DocProject&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Help&lt;/span>&lt;span class="o">/*.&lt;/span>&lt;span class="n">HxC&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">DocProject&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Help&lt;/span>&lt;span class="o">/*.&lt;/span>&lt;span class="n">hhc&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">DocProject&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Help&lt;/span>&lt;span class="o">/*.&lt;/span>&lt;span class="n">hhk&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">DocProject&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Help&lt;/span>&lt;span class="o">/*.&lt;/span>&lt;span class="n">hhp&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">DocProject&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Help&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Html2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">DocProject&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">Help&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">html&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Click-Once directory&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">publish&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Publish Web Output&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">Pp&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">ublish&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">xml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">azurePubxml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Note: Comment the next line if you want to checkin your web deploy settings,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># but database connection strings (with potential passwords) will be unencrypted&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">pubxml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">publishproj&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Microsoft Azure Web App publish settings. Comment the next line if you want to&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># checkin your Azure Web App publish settings, but sensitive information contained&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># in these scripts will be unencrypted&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">PublishScripts&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># NuGet Packages&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">nupkg&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># NuGet Symbol Packages&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">snupkg&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># The packages folder can be ignored because of Package Restore&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">**/&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">Pp&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">ackages&lt;/span>&lt;span class="o">/*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># except build/, which is used as an MSBuild target.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">!**/&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">Pp&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">ackages&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">build&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Uncomment if necessary however generally it will be regenerated when needed&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#!**/[Pp]ackages/repositories.config&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># NuGet v3&amp;#39;s project.json files produces more ignorable files&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">nuget&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">props&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">nuget&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">targets&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Microsoft Azure Build Output&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">csx&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">build&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">csdef&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Microsoft Azure Emulator&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ecf&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">rcf&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Windows Store app package directories and files&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">AppPackages&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">BundleArtifacts&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Package&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">StoreAssociation&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">xml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">_pkginfo&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">txt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">appx&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">appxbundle&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">appxupload&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Visual Studio cache files&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># files ending in .cache can be ignored&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">Cc&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">ache&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># but keep track of directories ending in .cache&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">!&lt;/span>&lt;span class="err">?&lt;/span>&lt;span class="o">*.&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">Cc&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">ache&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Others&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ClientBin&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">~$*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*~&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">dbmdl&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">dbproj&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">schemaview&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">jfm&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">pfx&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">publishsettings&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">orleans&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">codegen&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cs&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Including strong name files can present a security risk&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># (https://github.com/github/gitignore/pull/2483#issue-259490424)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#*.snk&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Since there are multiple workflows, uncomment next line to ignore bower_components&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#bower_components/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># RIA/Silverlight projects&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Generated_Code&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Backup &amp;amp; report files from converting an old project file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># to a newer Visual Studio version. Backup files are not needed,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># because we have git ;-)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">_UpgradeReport_Files&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Backup&lt;/span>&lt;span class="o">*/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">UpgradeLog&lt;/span>&lt;span class="o">*.&lt;/span>&lt;span class="n">XML&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">UpgradeLog&lt;/span>&lt;span class="o">*.&lt;/span>&lt;span class="n">htm&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ServiceFabricBackup&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">rptproj&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">bak&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># SQL Server files&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">mdf&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">ldf&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">ndf&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Business Intelligence projects&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">rdl&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">data&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">bim&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">layout&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">bim_&lt;/span>&lt;span class="o">*.&lt;/span>&lt;span class="n">settings&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">rptproj&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">rsuser&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*-&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">Bb&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">ackup&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">rdl&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*-&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">Bb&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">ackup&lt;/span> &lt;span class="p">([&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">rdl&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*-&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">Bb&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">ackup&lt;/span> &lt;span class="p">([&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">rdl&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Microsoft Fakes&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">FakesAssemblies&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># GhostDoc plugin setting file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">GhostDoc&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">xml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Node.js Tools for Visual Studio&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">ntvs_analysis&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dat&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">node_modules&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Visual Studio 6 build log&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">plg&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Visual Studio 6 workspace options file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">opt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Visual Studio 6 auto-generated workspace file (contains which files were open etc.)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">vbw&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Visual Studio LightSwitch build output&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">**/*.&lt;/span>&lt;span class="n">HTMLClient&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">GeneratedArtifacts&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">**/*.&lt;/span>&lt;span class="n">DesktopClient&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">GeneratedArtifacts&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">**/*.&lt;/span>&lt;span class="n">DesktopClient&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ModelManifest&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">xml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">**/*.&lt;/span>&lt;span class="n">Server&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">GeneratedArtifacts&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">**/*.&lt;/span>&lt;span class="n">Server&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">ModelManifest&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">xml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">_Pvt_Extensions&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Paket dependency manager&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">paket&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">paket&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">exe&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">paket&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">files&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># FAKE - F# Make&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">fake&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># CodeRush personal settings&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">cr&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">personal&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Python Tools for Visual Studio (PTVS)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">__pycache__&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">pyc&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Cake - Uncomment if you are using it&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># tools/**&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># !tools/packages.config&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Tabs Studio&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">tss&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Telerik&amp;#39;s JustMock configuration file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">jmconfig&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># BizTalk build output&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">btp&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cs&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">btm&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cs&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">odx&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cs&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">xsd&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cs&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># OpenCover UI analysis results&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">OpenCover&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Azure Stream Analytics local run output&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ASALocalRun&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># MSBuild Binary and Structured Log&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">binlog&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># NVidia Nsight GPU debugger configuration file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">nvuser&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># MFractors (Xamarin productivity tool) working folder&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">mfractor&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Local History for Visual Studio&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">localhistory&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># BeatPulse healthcheck temp database&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">healthchecksdb&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Backup folder for Package Reference Convert tool in Visual Studio 2017&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">MigrationBackup&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Ionide (cross platform F# VS Code tools) working folder&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">ionide&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Fody - auto-generated XML schema&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">FodyWeavers&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">xsd&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">##&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Visual studio for Mac&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">##&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># globs&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Makefile&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="ow">in&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">userprefs&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">usertasks&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">config&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">make&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">config&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">status&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">aclocal&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">m4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">install&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">sh&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">autom4te&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cache&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">tar&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">gz&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">tarballs&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">test&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">results&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Mac bundle stuff&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">dmg&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">app&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># General&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">DS_Store&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">AppleDouble&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">LSOverride&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Icon must end with two \r&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Icon&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Thumbnails&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">_&lt;/span>&lt;span class="o">*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Files that might appear in the root of a volume&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">DocumentRevisions&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">V100&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">fseventsd&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">Spotlight&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">V100&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">TemporaryItems&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">Trashes&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">VolumeIcon&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">icns&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">com&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">apple&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">timemachine&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">donotpresent&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Directories potentially created on remote AFP share&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">AppleDB&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">AppleDesktop&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Network&lt;/span> &lt;span class="n">Trash&lt;/span> &lt;span class="n">Folder&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Temporary&lt;/span> &lt;span class="n">Items&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">apdisk&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Windows thumbnail cache files&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Thumbs&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">db&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ehthumbs&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">db&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ehthumbs_vista&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">db&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Dump file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">stackdump&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Folder config file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="n">Dd&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="n">esktop&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ini&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Recycle Bin used on file shares&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">$&lt;/span>&lt;span class="n">RECYCLE&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">BIN&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Windows Installer files&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">cab&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">msi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">msix&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">msm&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">msp&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Windows shortcuts&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">lnk&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># JetBrains Rider&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">idea&lt;/span>&lt;span class="o">/&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">*.&lt;/span>&lt;span class="n">sln&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">iml&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">##&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Visual Studio Code&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">##&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">.&lt;/span>&lt;span class="n">vscode&lt;/span>&lt;span class="o">/*&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">!.&lt;/span>&lt;span class="n">vscode&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">settings&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">json&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">!.&lt;/span>&lt;span class="n">vscode&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">tasks&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">json&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">!.&lt;/span>&lt;span class="n">vscode&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">launch&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">json&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">!.&lt;/span>&lt;span class="n">vscode&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="n">extensions&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">json&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>على الرغم من وجود العديد من الملفات لـ Visual Studio، إلا أنها تتضمن أيضًا ملفات لا تتطلب عادةً إدارة بواسطة git، مثل &amp;ldquo;.DS_Store&amp;rdquo; على أجهزة Mac.&lt;/p>
&lt;h2 id="المواقع-المرجعية">المواقع المرجعية
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://docs.microsoft.com/ja-jp/dotnet/core/install/windows?tabs=net60" target="_blank" rel="noopener"
>تثبيت .NET على نظام Windows&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>11 من ألعابي المفضلة</title><link>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/</link><pubDate>Mon, 12 Sep 2022 19:28:50 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post 11 من ألعابي المفضلة" />&lt;p>عندما أتذكر ألعابي المفضلة، أجد أن معظمها من الألعاب الكلاسيكية الخالدة.
بما أن العديد منها قديم، إذا لم تلعبها بعد، فأنصحك بتجربتها.&lt;/p>
&lt;h2 id="غيم-بوي-game-boy">غيم بوي (Game Boy)
&lt;/h2>&lt;p>&lt;img src="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_1.png"
width="300"
height="365"
srcset="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_1_hu3e93850260927d2ca0508aaabeb65e85_100200_480x0_resize_box_3.png 480w, 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_1_hu3e93850260927d2ca0508aaabeb65e85_100200_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="82"
data-flex-basis="197px"
>
أول جهاز غيم بوي كان وحدة تحكم محمولة أصدرتها نينتندو عام 1989.
بعد ذلك، تم إصدار أجهزة تالية مثل غيم بوي كولر وغيم بوي أدفانس.&lt;/p>
&lt;h3 id="-ساغا-2-أسطورة-الكنوز-saga2-秘宝伝説">① ساغا 2: أسطورة الكنوز (Sa・Ga2 秘宝伝説)
&lt;/h3>&lt;p>&lt;img src="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_2.png"
width="300"
height="419"
srcset="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_2_hu43aa9545e862274f62403fd117d11c30_247115_480x0_resize_box_3.png 480w, 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_2_hu43aa9545e862274f62403fd117d11c30_247115_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="71"
data-flex-basis="171px"
>
لعبة تقمص أدوار (RPG) أصدرتها سكوير (سكوير إنكس حاليًا) في عام 1990.
القصة تدور حول جمع كنوز تسمى &amp;ldquo;الكنوز المقدسة&amp;rdquo; عبر مراحل مختلفة،
وهي أول لعبة RPG لعبتها في حياتي.&lt;/p>
&lt;h3 id="-كيربي-دريم-لاند-星のカービィ">② كيربي دريم لاند (星のカービィ)
&lt;/h3>&lt;p>&lt;img src="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_3.png"
width="300"
height="350"
srcset="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_3_hu0e2b5ac71ca0bd227f71e503dbe94bc6_170917_480x0_resize_box_3.png 480w, 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_3_hu0e2b5ac71ca0bd227f71e503dbe94bc6_170917_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="85"
data-flex-basis="205px"
>
لعبة أكشن أصدرتها نينتندو عام 1992. تم تطويرها بواسطة HAL Laboratory.
لعبة تتقدم فيها عن طريق ابتلاع الأعداء أو استنشاق الهواء للطفو في الجو.
الموسيقى والمؤثرات الصوتية مصممة بشكل جيد للغاية، مما يجعلها لعبة مليئة بالإيقاع.&lt;/p>
&lt;h3 id="-بوكيمون-ريد-وجرين-ポケットモンスター-赤緑">③ بوكيمون ريد وجرين (ポケットモンスター 赤・緑)
&lt;/h3>&lt;p>&lt;img src="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_4.png"
width="600"
height="338"
srcset="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_4_hu7ba0e1f65107e5c20a30c245d9f58ae1_369551_480x0_resize_box_3.png 480w, 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_4_hu7ba0e1f65107e5c20a30c245d9f58ae1_369551_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_4.png"
class="gallery-image"
data-flex-grow="177"
data-flex-basis="426px"
>
لعبة RPG أصدرتها نينتندو عام 1996. تم تطويرها بواسطة Nintendo EAD، Game Freak، و Creatures.
بعد ذلك، تحولت إلى أنمي وحققت شعبية هائلة، لكنني لم ألعب سوى هذا الإصدار الأول.&lt;/p>
&lt;h2 id="سوبر-نينتندو-super-famicom">سوبر نينتندو (Super Famicom)
&lt;/h2>&lt;p>&lt;img src="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_5.png"
width="600"
height="266"
srcset="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_5_huad11a387bc527c77f3dc50722dcbe71e_95134_480x0_resize_box_3.png 480w, 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_5_huad11a387bc527c77f3dc50722dcbe71e_95134_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_5.png"
class="gallery-image"
data-flex-grow="225"
data-flex-basis="541px"
>
جهاز ألعاب منزلي أصدرته نينتندو عام 1990. يُعرف في الخارج باسم SNES (Super Nintendo Entertainment System).&lt;/p>
&lt;h3 id="-سوبر-ماريو-كارت-スーパーマリオカート">④ سوبر ماريو كارت (スーパーマリオカート)
&lt;/h3>&lt;p>&lt;img src="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_6.png"
width="273"
height="500"
srcset="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_6_hufd407ac1367cf89272f19478255c8fb8_345614_480x0_resize_box_3.png 480w, 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_6_hufd407ac1367cf89272f19478255c8fb8_345614_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_6.png"
class="gallery-image"
data-flex-grow="54"
data-flex-basis="131px"
>
لعبة مخصصة لجهاز سوبر نينتندو أصدرتها الشركة عام 1992.
لعبة سباق تتنافس فيها على المراكز بينما تعرقل خصومك برمي عناصر مثل الأصداف والموز.
أتذكر أنني لعبتها مع عائلتي وأصدقائي.&lt;/p>
&lt;h3 id="-دراغون-كويست-5-عروس-السماء-ドラゴンクエストv-天空の花嫁">⑤ دراغون كويست 5: عروس السماء (ドラゴンクエストV 天空の花嫁)
&lt;/h3>&lt;p>&lt;img src="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_7.png"
width="300"
height="511"
srcset="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_7_hua74c1fb9d68b702d91ef66bdb2d5d98b_299824_480x0_resize_box_3.png 480w, 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_7_hua74c1fb9d68b702d91ef66bdb2d5d98b_299824_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_7.png"
class="gallery-image"
data-flex-grow="58"
data-flex-basis="140px"
>
لعبة RPG أصدرتها إينيكس عام 1992.
تحتوي اللعبة على عناصر مثل اختيار شريكة الزواج، وإمكانية جعل الوحوش التي تهزمها تنضم إليك.
لعبتها كثيرًا حتى تمكنت من جعل عدة وحوش من نوع &amp;ldquo;ميتال سلايم&amp;rdquo; (Metal Slime) ينضمون إلي.&lt;/p>
&lt;h3 id="-فاينل-فانتسي-5-ファイナルファンタジーv">⑥ فاينل فانتسي 5 (ファイナルファンタジーV)
&lt;/h3>&lt;p>&lt;img src="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_8.png"
width="300"
height="168"
srcset="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_8_hu436060f51fbe2bacd7e14a949683aa78_79328_480x0_resize_box_3.png 480w, 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_8_hu436060f51fbe2bacd7e14a949683aa78_79328_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_8.png"
class="gallery-image"
data-flex-grow="178"
data-flex-basis="428px"
>
لعبة RPG أصدرتها سكوير عام 1992.
تحتوي على عنصر تعميق اللعب من خلال اختيار وظائف (Jobs) وإتقان المهارات.
كما في دراغون كويست، أتذكر أنني كنت أرفع مستواي في الكهوف بلا توقف.&lt;/p>
&lt;h3 id="-مغامرة-تورنيكو-الكبرى-الزنزانة-الغامضة-トルネコの大冒険-不思議のダンジョン">⑦ مغامرة تورنيكو الكبرى: الزنزانة الغامضة (トルネコの大冒険 不思議のダンジョン)
&lt;/h3>&lt;p>&lt;img src="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_9.png"
width="300"
height="547"
srcset="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_9_huf53b606ed61f5c15f0df49ad13e49ec8_318133_480x0_resize_box_3.png 480w, 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_9_huf53b606ed61f5c15f0df49ad13e49ec8_318133_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_9.png"
class="gallery-image"
data-flex-grow="54"
data-flex-basis="131px"
>
لعبة روجلايك (Roguelike) أصدرتها شونسوفت عام 1993.
وهي سلف سلسلة الزنزانة الغامضة (Mystery Dungeon).
تتميز بأن شكل الزنزانة يتغير عشوائيًا في كل مرة.
شعارها كان &amp;ldquo;لعبة RPG يمكنك لعبها 1000 مرة&amp;rdquo;.&lt;/p>
&lt;h3 id="-الزنزانة-الغامضة-2-شيرين-المتجول-不思議のダンジョン2-風来のシレン">⑧ الزنزانة الغامضة 2: شيرين المتجول (不思議のダンジョン2 風来のシレン)
&lt;/h3>&lt;p>&lt;img src="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_15.png"
width="300"
height="538"
srcset="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_15_hu20d7e1ac46b9aa246626c2316c605072_252589_480x0_resize_box_3.png 480w, 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_15_hu20d7e1ac46b9aa246626c2316c605072_252589_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_15.png"
class="gallery-image"
data-flex-grow="55"
data-flex-basis="133px"
>
لعبة روجلايك أصدرتها شونسوفت عام 1995.
وهي تكملة لسلسلة الزنزانة الغامضة &amp;ldquo;مغامرة تورنيكو الكبرى&amp;rdquo;.
يوجد متاجر داخل الزنازين، حيث يمكنك شراء العناصر.
(إذا خرجت من المتجر دون شراء، سيطاردك صاحب المتجر).&lt;/p>
&lt;h3 id="-ماذر-2-mother2">⑨ ماذر 2 (MOTHER2)
&lt;/h3>&lt;p>&lt;img src="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_11.png"
width="277"
height="500"
srcset="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_11_huc9569cdf9793ce314b2038283529730d_132246_480x0_resize_box_3.png 480w, 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_11_huc9569cdf9793ce314b2038283529730d_132246_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_11.png"
class="gallery-image"
data-flex-grow="55"
data-flex-basis="132px"
>
الإصدار الثاني من سلسلة MOTHER أصدرته نينتندو عام 1994. تم تطويره بواسطة Ape و HAL Laboratory.
بعد ذلك، تم إصدار MOTHER3 في عام 2006. من إنتاج شيغيساتو إيتوي،
وهي مليئة بنظرة فريدة للعالم وكلمات فلسفية.&lt;/p>
&lt;h3 id="-أسطورة-زيلدا-وصلة-إلى-الماضي-ゼルダの伝説-神々のトライフォース">⑩ أسطورة زيلدا: وصلة إلى الماضي (ゼルダの伝説 神々のトライフォース)
&lt;/h3>&lt;p>&lt;img src="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_14.png"
width="276"
height="498"
srcset="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_14_hu224d656baa1b4164cdd4a067c6d88d26_298137_480x0_resize_box_3.png 480w, 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_14_hu224d656baa1b4164cdd4a067c6d88d26_298137_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_14.png"
class="gallery-image"
data-flex-grow="55"
data-flex-basis="133px"
>
لعبة أكشن ومغامرة أصدرتها نينتندو عام 1991.
لعبة تتقدم فيها عن طريق جمع عناصر مختلفة وحل ألغاز بسيطة.
تم إصدار العديد من التكملات لها لاحقًا. (&lt;a class="link" href="https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AB%E3%83%80%E3%81%AE%E4%BC%9D%E8%AA%AC%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA%E3%81%AE%E4%BD%9C%E5%93%81%E3%83%BB%E9%96%A2%E9%80%A3%E4%BD%9C%E5%93%81%E3%81%AE%E4%B8%80%E8%A6%A7" target="_blank" rel="noopener"
>المرجع&lt;/a>)&lt;/p>
&lt;h2 id="نينتندو-سويتش-nintendo-switch">نينتندو سويتش (Nintendo Switch)
&lt;/h2>&lt;p>&lt;img src="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_13.png"
width="600"
height="324"
srcset="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_13_huf5d97a9af892bf0a7a6a5b9a9eb646da_154207_480x0_resize_box_3.png 480w, 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_13_huf5d97a9af892bf0a7a6a5b9a9eb646da_154207_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_13.png"
class="gallery-image"
data-flex-grow="185"
data-flex-basis="444px"
>
جهاز ألعاب منزلي أصدرته نينتندو عام 2017.&lt;/p>
&lt;h3 id="-سبلاتون-2-スプラトゥーン２">⑪ سبلاتون 2 (スプラトゥーン２)
&lt;/h3>&lt;p>&lt;img src="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.png"
width="340"
height="550"
srcset="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_480x0_resize_box_3.png 480w, 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_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_12.png"
class="gallery-image"
data-flex-grow="61"
data-flex-basis="148px"
>
لعبة تصويب وأكشن أصدرتها نينتندو عام 2017.
لعبة تهدف فيها إلى الفوز عن طريق تأمين المناطق باستخدام الحبر وهزيمة الخصوم.
في عام 2022، تم إصدار التكملة سبلاتون 3.&lt;/p></description></item><item><title>أمر لمنع إنشاء .DS_Store تلقائياً في macOS</title><link>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/</link><pubDate>Mon, 12 Sep 2022 16:03:42 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post أمر لمنع إنشاء .DS_Store تلقائياً في macOS" />&lt;p>أمر لمنع إنشاء .DS_Store تلقائياً في macOS هو كالتالي.
يرجى تنفيذه في الوحدة الطرفية (Terminal).&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">defaults write com.apple.desktopservices DSDontWriteNetworkStores &lt;span class="nb">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>بعد تنفيذ الأمر، قم بإعادة تشغيل الباحث (Finder).&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">killall Finder
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>لإعادة الإعدادات إلى ما كانت عليه، يرجى تنفيذ الأمر التالي.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">defaults delete com.apple.desktopservices DSDontWriteNetworkStores &lt;span class="nb">false&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>كما في السابق، إذا قمت بتغيير الإعدادات، قم بإعادة تشغيل الباحث (Finder).&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">killall Finder
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>حذف ملفات .DS_Store دفعة واحدة باستخدام PowerShell</title><link>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/</link><pubDate>Mon, 12 Sep 2022 10:11:42 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post حذف ملفات .DS_Store دفعة واحدة باستخدام PowerShell" />&lt;p>انقل الدليل الحالي إلى المجلد المستهدف وقم بتشغيل الأمر التالي لحذف ملفات .DS_Store دفعة واحدة، بما في ذلك المجلدات الفرعية.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">Get-ChildItem&lt;/span> &lt;span class="p">.&lt;/span> &lt;span class="n">-include&lt;/span> &lt;span class="s1">&amp;#39;.DS_Store&amp;#39;&lt;/span> &lt;span class="n">-Recurse&lt;/span> &lt;span class="n">-Force&lt;/span> &lt;span class="p">|&lt;/span> &lt;span class="nb">Remove-Item&lt;/span> &lt;span class="n">-Force&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>أكواد قصيرة يمكن استخدامها في HUGO</title><link>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/</link><pubDate>Sun, 11 Sep 2022 22:59:52 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post أكواد قصيرة يمكن استخدامها في HUGO" />&lt;h1 id="أكواد-قصيرة-يمكن-استخدامها-في-hugo">أكواد قصيرة يمكن استخدامها في HUGO
&lt;/h1>&lt;h2 id="youtube">YouTube
&lt;/h2>&lt;p>&lt;code>{{&amp;lt;youtube 123456abc&amp;gt;}}&lt;/code>&lt;/p>
&lt;h2 id="twitter">Twitter
&lt;/h2>&lt;p>&lt;code>{{&amp;lt;twitter 123456abc&amp;gt;}}&lt;/code>&lt;/p>
&lt;h2 id="instagram">Instagram
&lt;/h2>&lt;p>&lt;code>{{&amp;lt;instagram 123456abc&amp;gt;}}&lt;/code>&lt;/p>
&lt;h2 id="flickr">Flickr
&lt;/h2>&lt;p>&lt;code>{{&amp;lt;flickr 123456abc&amp;gt;}}&lt;/code>&lt;/p>
&lt;h2 id="vimeo">Vimeo
&lt;/h2>&lt;p>&lt;code>{{&amp;lt;vimeo 123456abc&amp;gt;}}&lt;/code>&lt;/p>
&lt;h2 id="أخرى">أخرى
&lt;/h2>&lt;p>&lt;a class="link" href="https://gohugo.io/content-management/shortcodes/" target="_blank" rel="noopener"
>Shortcodes&lt;/a>&lt;/p>
&lt;h2 id="ملاحظة-جانبية">ملاحظة جانبية
&lt;/h2>&lt;p>إذا كنت تريد التعبير عن &lt;code>{{&amp;lt; foo &amp;gt;}}&lt;/code> على الموقع، فيجب عليك كتابتها كـ &lt;code>{{&amp;lt;/* foo */&amp;gt;}}&lt;/code>.&lt;/p></description></item><item><title>تغيير تخطيط صورة PaperMod</title><link>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/</link><pubDate>Sun, 11 Sep 2022 18:50:40 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post تغيير تخطيط صورة PaperMod" />&lt;p>بالنسبة للتخطيط الافتراضي، يتم وضع الصورة في المركز بعرض 100%، لكنني شعرت في بعض الأحيان أنها كبيرة قليلاً، لذا حاولت التفاف الصورة أسفل العنوان وتغيير العرض إلى حوالي 150 بكسل.&lt;/p>
&lt;p>مواقع تغيير الملفات هي كما يلي.&lt;/p>
&lt;h2 id="blankcss">blank.css
&lt;/h2>&lt;p>لتغيير الهوامش وحجم الصورة وخطوط عرض النص، أضف الوصف التالي إلى blank.css.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-css:blank.css" data-lang="css:blank.css">&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">entry-content&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kp">-webkit-&lt;/span>&lt;span class="n">line-clamp&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">entry-footer&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">text-align&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">right&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">entry-cover&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">margin-bottom&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">initial&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">text-align&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">center&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">entry-cover&lt;/span> &lt;span class="nt">img&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">border-radius&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="kt">px&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">display&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">inline&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">max-width&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">100&lt;/span>&lt;span class="kt">%&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">post-meta&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">display&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">block&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">text-align&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">right&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="post-entrycss">post-entry.css
&lt;/h2>&lt;p>نظرًا لأنه لم يكن من الممكن حذف التعريف على جانب blank.css، احذف السطر التالي في post-entry.css.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-css:post-entry.css" data-lang="css:post-entry.css">&lt;span class="line">&lt;span class="cl">&lt;span class="p">.&lt;/span>&lt;span class="nc">entry-cover&lt;/span> &lt;span class="nt">img&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">border-radius&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="nf">var&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">--&lt;/span>&lt;span class="n">radius&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pointer-events&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">none&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c">/* width: 100%; */&lt;/span> &lt;span class="err">←&lt;/span> &lt;span class="err">احذف&lt;/span> &lt;span class="err">هذا&lt;/span> &lt;span class="err">السطر&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">height&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="kc">auto&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="listhtml">list.html
&lt;/h2>&lt;p>لتغيير تخطيط الصورة، قمت بتغيير الأجزاء التالية من list.html.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-html:list.html" data-lang="html:list.html">&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">article&lt;/span> &lt;span class="na">class&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;{{ $class }}&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c">&amp;lt;!-- {{- $isHidden := (site.Params.cover.hidden | default site.Params.cover.hiddenInList) }} --&amp;gt;&amp;lt;!-- تحرك لأسفل --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c">&amp;lt;!-- {{- partial &amp;#34;cover.html&amp;#34; (dict &amp;#34;cxt&amp;#34; . &amp;#34;IsHome&amp;#34; true &amp;#34;isHidden&amp;#34; $isHidden) }} --&amp;gt;&amp;lt;!-- تحرك لأسفل --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">header&lt;/span> &lt;span class="na">class&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;entry-header&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">h2&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{- .Title }}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{- if .Draft }}&lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">sup&lt;/span>&lt;span class="p">&amp;gt;&amp;lt;&lt;/span>&lt;span class="nt">span&lt;/span> &lt;span class="na">class&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;entry-isdraft&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>&lt;span class="ni">&amp;amp;nbsp;&amp;amp;nbsp;&lt;/span>[draft]&lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">span&lt;/span>&lt;span class="p">&amp;gt;&amp;lt;/&lt;/span>&lt;span class="nt">sup&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>{{- end }}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">h2&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">header&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">div&lt;/span> &lt;span class="na">style&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;display:flex;&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>&lt;span class="c">&amp;lt;!-- إضافة --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">div&lt;/span> &lt;span class="na">style&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;max-width:150px;margin:11px 15px 0px 0px;&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>&lt;span class="c">&amp;lt;!-- إضافة --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{- $isHidden := (site.Params.cover.hidden | default site.Params.cover.hiddenInList) }}&lt;span class="c">&amp;lt;!-- انتقل من الأعلى --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{- partial &amp;#34;cover.html&amp;#34; (dict &amp;#34;cxt&amp;#34; . &amp;#34;IsHome&amp;#34; true &amp;#34;isHidden&amp;#34; $isHidden) }}&lt;span class="c">&amp;lt;!-- انتقل من الأعلى --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">div&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>&lt;span class="c">&amp;lt;!-- إضافة --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">div&lt;/span> &lt;span class="na">style&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;width:100%;&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>&lt;span class="c">&amp;lt;!-- إضافة --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{- if (ne (.Param &amp;#34;hideSummary&amp;#34;) true) }}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">div&lt;/span> &lt;span class="na">class&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;entry-content&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">p&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>{{ .Summary | plainify | htmlUnescape }}{{ if .Truncated }}...{{ end }}&lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">p&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">div&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{- end }}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{- if not (.Param &amp;#34;hideMeta&amp;#34;) }}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">footer&lt;/span> &lt;span class="na">class&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;entry-footer&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{- partial &amp;#34;post_meta.html&amp;#34; . -}}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">footer&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {{- end }}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;&lt;/span>&lt;span class="nt">a&lt;/span> &lt;span class="na">class&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;entry-link&amp;#34;&lt;/span> &lt;span class="na">aria-label&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;post link to {{ .Title | plainify }}&amp;#34;&lt;/span> &lt;span class="na">href&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s">&amp;#34;{{ .Permalink }}&amp;#34;&lt;/span>&lt;span class="p">&amp;gt;&amp;lt;/&lt;/span>&lt;span class="nt">a&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">div&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>&lt;span class="c">&amp;lt;!-- إضافة --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">div&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>&lt;span class="c">&amp;lt;!-- إضافة --&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">&amp;lt;/&lt;/span>&lt;span class="nt">article&lt;/span>&lt;span class="p">&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>يبدو أن هناك عددًا لا بأس به من الطلبات المماثلة.&lt;/p>
&lt;p>&lt;a class="link" href="https://github.com/adityatelange/hugo-PaperMod/discussions/159#discussioncomment-247844" target="_blank" rel="noopener"
>https://github.com/adityatelange/hugo-PaperMod/discussions/159#discussioncomment-247844&lt;/a>&lt;/p>
&lt;p>سأكون ممتنًا لو تفضل المطورون الأصليون بدعمه أيضًا.&lt;/p></description></item><item><title>كيفية إعداد Twitter Card في PaperMod</title><link>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/</link><pubDate>Sat, 10 Sep 2022 18:41:22 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية إعداد Twitter Card في PaperMod" />&lt;h1 id="مقدمة">مقدمة
&lt;/h1>&lt;p>يدعم قالب PaperMod ميزة Twitter Card.
ومع ذلك، يجب كتابة إعدادات Twitter Card في &lt;code>config.toml&lt;/code> أو في معلومات رأس &lt;code>*.md&lt;/code> لكل مقال.
إذا تم تعيينها في كل من المقال و &lt;code>config.toml&lt;/code>، فستكون الأولوية لمعلومات رأس كل مقال.&lt;/p>
&lt;h1 id="طريقة-الإعداد">طريقة الإعداد
&lt;/h1>&lt;h2 id="configtoml">config.toml
&lt;/h2>&lt;p>في &lt;code>config.toml&lt;/code>، أضف عنصرًا يسمى &lt;code>images&lt;/code> ضمن &lt;code>[params]&lt;/code>.
في &lt;code>images&lt;/code>، اكتب مسار الصورة التي سيتم عرضها في Twitter Card.
إذا كنت ستضع الصورة في مجلد &lt;code>static&lt;/code>، فيكفي تحديد اسم الملف فقط.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">[params]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> images = [&amp;#34;twitter_card.jpg&amp;#34;]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>هيكل المجلد&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">root
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ config.toml (اكتب هنا)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">├─content
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ └─posts
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ └─مجلد المقال
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ │ index.md (اكتب هنا)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ └─images
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">│ cover.png (ضع هنا)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">└─static
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> twitter_card.jpg (ضع هنا)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="معلومات-رأس-كل-مقال">معلومات رأس كل مقال
&lt;/h2>&lt;p>في معلومات رأس كل مقال، أضف عنصرًا يسمى &lt;code>image&lt;/code> تحت &lt;code>cover&lt;/code>.
إذا قمت بتعيين &lt;code>relative&lt;/code> إلى &lt;code>true&lt;/code>، يمكنك تحديده بمسار نسبي من &lt;code>*.md&lt;/code> للمقال.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">cover:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> image: &amp;#34;images/cover.jpg&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> relative: true
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="إذا-كنت-لا-ترغب-في-عرضها-أعلى-المقال">إذا كنت لا ترغب في عرضها أعلى المقال
&lt;/h3>&lt;p>إذا كنت لا ترغب في عرض صورة الغلاف أعلى المقال، أضف عنصرًا يسمى &lt;code>hidden&lt;/code> تحت &lt;code>cover&lt;/code> وقم بتعيينه إلى &lt;code>true&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">cover:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> image: &amp;#34;images/cover.jpg&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> relative: true
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> hidden: true
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h1 id="حول-حجم-الصورة">حول حجم الصورة
&lt;/h1>&lt;p>حاليًا، يبدو أن حجم Twitter Card في مواصفات PaperMod يدعم فقط &lt;code>summary_large_image&lt;/code>.
الحجم المناسب (الدقة) لـ &lt;code>summary_large_image&lt;/code> مختلف عليه، ولكن يبدو أن &lt;code>800 x 418&lt;/code> (نسبة الصورة 1.91:1) جيدة.&lt;/p>
&lt;p>&lt;a class="link" href="https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/summary-card-with-large-image" target="_blank" rel="noopener"
>الموقع المرجعي 1&lt;/a>
&lt;a class="link" href="https://developers.facebook.com/docs/sharing/best-practices" target="_blank" rel="noopener"
>الموقع المرجعي 2&lt;/a>&lt;/p>
&lt;p>إذا أمكن، نوصي بتغيير حجم الصورة قبل النشر.&lt;/p>
&lt;h1 id="كيفية-التحقق-من-الإعدادات">كيفية التحقق من الإعدادات
&lt;/h1>&lt;p>للتحقق من إعدادات Twitter Card، استخدم &lt;a class="link" href="https://cards-dev.twitter.com/validator" target="_blank" rel="noopener"
>Twitter Card Validator&lt;/a>.
ومع ذلك، في بيئتي لم يتم عرض المعاينة بشكل صحيح، لذلك إذا لم يتم عرض المعاينة، نوصي بالتحقق منها مرة واحدة قبل النشر باستخدام حساب خاص أو ما شابه.&lt;/p></description></item><item><title>استخدام GitHub Copilot في IntelliJ IDEA</title><link>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/</link><pubDate>Sat, 10 Sep 2022 09:44:55 +0900</pubDate><guid>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/</guid><description>&lt;img src="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img.png" alt="Featured image of post استخدام GitHub Copilot في IntelliJ IDEA" />&lt;h1 id="مقدمة">مقدمة
&lt;/h1>&lt;p>GitHub Copilot هي أداة لإكمال التعليمات البرمجية تعتمد على الذكاء الاصطناعي طورتها GitHub.
إذا قمت بتثبيت إضافة GitHub Copilot في بيئة التطوير IntelliJ IDEA، يمكنك استخدام GitHub Copilot في IntelliJ IDEA.
لتفعيلها، تحتاج إلى حساب Github.&lt;/p>
&lt;h1 id="طريقة-التثبيت">طريقة التثبيت
&lt;/h1>&lt;ol>
&lt;li>اختر Settings (الإعدادات) من قائمة File (ملف) في IntelliJ IDEA&lt;/li>
&lt;li>اختر Plugins (الإضافات) وابحث عن &amp;ldquo;GitHub Copilot&amp;rdquo; في البحث
&lt;img src="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_0.png"
width="984"
height="713"
srcset="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_0_hu1a17f06d84f4c3bc905993428da2585e_52443_480x0_resize_box_3.png 480w, http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_0_hu1a17f06d84f4c3bc905993428da2585e_52443_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="138"
data-flex-basis="331px"
>&lt;/li>
&lt;li>قم بالتثبيت من زر التثبيت (Install)
&lt;img src="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_1.png"
width="440"
height="288"
srcset="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_1_hu760c08385147deb656e4c3f97738e20a_11542_480x0_resize_box_3.png 480w, http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_1_hu760c08385147deb656e4c3f97738e20a_11542_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="152"
data-flex-basis="366px"
>&lt;/li>
&lt;li>اضغط على زر Restart IDE (إعادة تشغيل بيئة التطوير) لإعادة تشغيل IntelliJ IDEA
&lt;img src="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_2.png"
width="984"
height="713"
srcset="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_2_hue7ac4db80b402fe88ff676c2505b2e26_63613_480x0_resize_box_3.png 480w, http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_2_hue7ac4db80b402fe88ff676c2505b2e26_63613_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="138"
data-flex-basis="331px"
>
&lt;img src="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_3.png"
width="370"
height="128"
srcset="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_3_huf684fa748633ae887c193539a3f1f778_4849_480x0_resize_box_3.png 480w, http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_3_huf684fa748633ae887c193539a3f1f778_4849_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="289"
data-flex-basis="693px"
>
بمجرد إعادة تشغيل IntelliJ IDEA، يكتمل التثبيت.&lt;/li>
&lt;/ol>
&lt;h1 id="التفعيل">التفعيل
&lt;/h1>&lt;ol>
&lt;li>انقر على الأيقونة في أسفل اليمين&lt;/li>
&lt;li>انقر على Login to Github (تسجيل الدخول إلى Github)
&lt;img src="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_4.png"
width="179"
height="97"
srcset="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_4_huda05efd9621c0a19fb78fc4f90866e22_2661_480x0_resize_box_3.png 480w, http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_4_huda05efd9621c0a19fb78fc4f90866e22_2661_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_4.png"
class="gallery-image"
data-flex-grow="184"
data-flex-basis="442px"
>&lt;/li>
&lt;li>انقر على زر Copy and Open (نسخ وفتح)
&lt;img src="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_6.png"
width="422"
height="199"
srcset="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_6_hua124fecdd3632e6b95f8259e5e606e1a_8284_480x0_resize_box_3.png 480w, http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_6_hua124fecdd3632e6b95f8259e5e606e1a_8284_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_6.png"
class="gallery-image"
data-flex-grow="212"
data-flex-basis="508px"
>&lt;/li>
&lt;li>سيفتح المتصفح. إذا لم تكن مسجلاً الدخول إلى Github، قم بتسجيل الدخول، ثم الصق الرمز باستخدام Ctrl+V وانقر على زر Continue (متابعة)
&lt;img src="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_7.png"
width="579"
height="530"
srcset="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_7_hub4e276df82537681adc4331944f40166_19231_480x0_resize_box_3.png 480w, http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_7_hub4e276df82537681adc4331944f40166_19231_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_7.png"
class="gallery-image"
data-flex-grow="109"
data-flex-basis="262px"
>&lt;/li>
&lt;li>انقر على زر Authorize GitHub Copilot Plugin (تصريح إضافة GitHub Copilot)
&lt;img src="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_8.png"
width="546"
height="689"
srcset="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_8_hu1e48fa0fb5989dc3e0616b0ee84b6476_33153_480x0_resize_box_3.png 480w, http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_8_hu1e48fa0fb5989dc3e0616b0ee84b6476_33153_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_8.png"
class="gallery-image"
data-flex-grow="79"
data-flex-basis="190px"
>
&lt;img src="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_9.png"
width="454"
height="337"
srcset="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_9_hu73bf5cd6f6a7ddf7aa8e1b63387b9c7d_7965_480x0_resize_box_3.png 480w, http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_9_hu73bf5cd6f6a7ddf7aa8e1b63387b9c7d_7965_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_9.png"
class="gallery-image"
data-flex-grow="134"
data-flex-basis="323px"
>
إذا ظهرت الشاشة أعلاه، فقد اكتمل التفعيل.&lt;/li>
&lt;/ol>
&lt;h1 id="تجربة-الاستخدام">تجربة الاستخدام
&lt;/h1>&lt;p>&lt;img src="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_10.png"
width="330"
height="136"
srcset="http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_10_hu25143f366631b8ce9af8689b387ca520_6039_480x0_resize_box_3.png 480w, http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_10_hu25143f366631b8ce9af8689b387ca520_6039_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_10.png"
class="gallery-image"
data-flex-grow="242"
data-flex-basis="582px"
>
عند إدخال بضعة أحرف في محرر IntelliJ IDEA، سيقترح GitHub Copilot استمرار التعليمات البرمجية.
استمتع بميزة الإكمال القوية المدعومة بالذكاء الاصطناعي!&lt;/p></description></item><item><title>كيفية تثبيت Go</title><link>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/</link><pubDate>Sat, 10 Sep 2022 00:48:17 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post كيفية تثبيت Go" />&lt;h1 id="مقدمة">مقدمة
&lt;/h1>&lt;p>Go هي لغة برمجة حديثة نسبيًا أصدرتها Google في عام 2009.
إن المترجم والأدوات والمكتبات الخاصة بـ Go مفتوحة المصدر.
بالإضافة إلى ذلك، Go هي لغة ذات كتابة ثابتة مثل C و Java، ولكنها لا تستخدم المؤشرات مثل لغة C.&lt;/p>
&lt;h1 id="طريقة-التثبيت">طريقة التثبيت
&lt;/h1>&lt;p>&lt;a class="link" href="https://go.dev/dl/" target="_blank" rel="noopener"
>تثبيت Go&lt;/a>&lt;/p>
&lt;p>المثبتات متاحة لكل منصة من الموقع أعلاه.&lt;/p>
&lt;p>اتبع التعليمات التي تظهر على الشاشة لمتابعة التثبيت.
&lt;img src="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/img.png"
width="495"
height="387"
srcset="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/img_hudec02a4f1dfaca9415d58a56d502b14f_18782_480x0_resize_box_3.png 480w, 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/img_hudec02a4f1dfaca9415d58a56d502b14f_18782_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="127"
data-flex-basis="306px"
>&lt;/p>
&lt;p>&lt;img src="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/img_1.png"
width="495"
height="387"
srcset="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/img_1_hu803f0fb268a2cf0fa74e4e36a5b3a765_20314_480x0_resize_box_3.png 480w, 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/img_1_hu803f0fb268a2cf0fa74e4e36a5b3a765_20314_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="127"
data-flex-basis="306px"
>&lt;/p>
&lt;p>&lt;img src="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/img_2.png"
width="495"
height="387"
srcset="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/img_2_hu05fb3923212918b7539badd0200ea75c_11067_480x0_resize_box_3.png 480w, 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/img_2_hu05fb3923212918b7539badd0200ea75c_11067_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="127"
data-flex-basis="306px"
>&lt;/p>
&lt;p>&lt;img src="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/img_3.png"
width="495"
height="387"
srcset="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/img_3_hu316d63501ec24e1e74dc3cb674d4cc1f_11612_480x0_resize_box_3.png 480w, 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/img_3_hu316d63501ec24e1e74dc3cb674d4cc1f_11612_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="127"
data-flex-basis="306px"
>&lt;/p>
&lt;p>&lt;img src="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/img_5.png"
width="495"
height="387"
srcset="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/img_5_hu8bb188f8700bed3c70acaed6e511012d_14167_480x0_resize_box_3.png 480w, 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/img_5_hu8bb188f8700bed3c70acaed6e511012d_14167_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_5.png"
class="gallery-image"
data-flex-grow="127"
data-flex-basis="306px"
>&lt;/p>
&lt;p>&lt;img src="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/img_6.png"
width="495"
height="387"
srcset="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/img_6_hu0a1b7e9cf2cb725ed5a7ea7685880608_16796_480x0_resize_box_3.png 480w, 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/img_6_hu0a1b7e9cf2cb725ed5a7ea7685880608_16796_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_6.png"
class="gallery-image"
data-flex-grow="127"
data-flex-basis="306px"
>&lt;/p>
&lt;p>اكتمل التثبيت. إنه سهل، أليس كذلك؟&lt;/p>
&lt;h1 id="برنامجك-الأول">برنامجك الأول
&lt;/h1>&lt;p>احفظ البرنامج التالي باسم &lt;code>hello.go&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-go" data-lang="go">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">package&lt;/span> &lt;span class="nx">main&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="s">&amp;#34;fmt&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kd">func&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">fmt&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="nf">Printf&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;Hello World\n&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>عندما تقوم بتشغيل &lt;code>go run hello.go&lt;/code> من موجه الأوامر أو الجهاز الطرفي، سيتم إخراج &lt;code>Hello, world!&lt;/code>.&lt;/p>
&lt;p>إذا كنت تريد التجميع، فإن تشغيل &lt;code>go build hello.go&lt;/code> سيولد &lt;code>hello.exe&lt;/code>.
سيؤدي تشغيل &lt;code>hello.exe&lt;/code> إلى إخراج &lt;code>Hello, world!&lt;/code>.&lt;/p>
&lt;h1 id="يمكنك-أيضا-تشغيل-التعليمات-البرمجية-على-صفحة-الويب">يمكنك أيضًا تشغيل التعليمات البرمجية على صفحة الويب
&lt;/h1>&lt;p>&lt;a class="link" href="https://go.dev/play/" target="_blank" rel="noopener"
>https://go.dev/play/&lt;/a>&lt;/p>
&lt;p>&lt;img src="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/img_7.png"
width="793"
height="668"
srcset="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/img_7_hu4549f097b6cd8fd929d9562692076ffb_15605_480x0_resize_box_3.png 480w, 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/img_7_hu4549f097b6cd8fd929d9562692076ffb_15605_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_7.png"
class="gallery-image"
data-flex-grow="118"
data-flex-basis="284px"
>&lt;/p>
&lt;h1 id="المستندات">المستندات
&lt;/h1>&lt;p>&lt;a class="link" href="http://go.shibu.jp/" target="_blank" rel="noopener"
>http://go.shibu.jp/&lt;/a>&lt;/p>
&lt;p>التفسيرات اللازمة لتعلم Go مجمعة في الرابط أعلاه.
التقنيات المتعلقة بـ Go مفتوحة ومكتملة لدرجة أنك لست بحاجة إلى شراء نصوص ورقية.&lt;/p>
&lt;p>إذن، استمتع بحياتك مع Go!&lt;/p></description></item><item><title>جدلية هيجل</title><link>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/</link><pubDate>Fri, 09 Sep 2022 23:13:19 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post جدلية هيجل" />&lt;h2 id="ما-هي-جدلية-هيجل">ما هي جدلية هيجل
&lt;/h2>&lt;blockquote>
&lt;p>أدرك هيجل الأهمية الإيجابية للتناقضات التي يقع فيها العقل، وجادل بأن جميع الأشياء المحدودة بشكل عام تنتج أضدادًا مع التناقضات المتأصلة في نفسها كقوة دافعة، ويتم رفعها معًا إلى مرحلة أعلى مع هذا كوسيط، وجعل هذا مبدأ كل حركة في العالم الحقيقي.
(من Kotobank)&lt;/p>
&lt;/blockquote>
&lt;p>تفسيري هو أن كل تأكيد وفكرة في العالم الحقيقي ليست مجرد صحيحة من جانب واحد، بل تحتوي بالضرورة على تناقضات بداخلها، ومن خلال فهم ودمج تلك البنية المتعارضة، يتطور الوعي إلى مستوى أعلى.&lt;/p>
&lt;p>أعتقد أن هذا ينطبق ليس فقط على طرق تفكير الناس، ولكن أيضًا على جميع الظواهر في العالم الطبيعي.&lt;/p>
&lt;p>بالنسبة لجميع المواد، إذا عمل الفعل، يعمل رد الفعل. إذا تحركت كل الأشياء، يعمل الاحتكاك. الجاذبية تؤثر بشكل متبادل ليس فقط على الشمس والأرض ولكن أيضًا على جميع المواد.
تدفق الأنهار وتدفق الرياح لا يتدفقان في اتجاه واحد فقط، بل يتلقيان قوى مختلفة، ويتغير التدفق في لحظة.&lt;/p>
&lt;p>من الناحية الفنية، تحتوي برامج الكمبيوتر أيضًا بالضرورة على أخطاء بداخلها، ومن خلال إزالتها تصبح برامج ذات مستوى أعلى.
أعتقد أنه يمكن القول إن البرنامج الخالي من الأخطاء هو برنامج غير مثير للاهتمام لم يتطور. وسوف يصبح في النهاية عفا عليه الزمن.&lt;/p>
&lt;p>البيئة المحيطة تتغير باستمرار مع الزمن. بدلاً من تجاهل التناقضات الذاتية، أو تبريرها بشكل غريب، أو تثبيت طريقة تفكير المرء،
أود مراجعة طريقة تفكيري وطريقة إدراكي للأشياء باستمرار، وتغيير تفكيري بمرونة.&lt;/p></description></item><item><title>كاموكورا (رامن) لأول مرة منذ سنوات</title><link>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/</link><pubDate>Fri, 09 Sep 2022 21:45:19 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.jpg" alt="Featured image of post كاموكورا (رامن) لأول مرة منذ سنوات" />&lt;p>ذهبت إلى كاموكورا (رامن) لأول مرة منذ سنوات.&lt;/p>
&lt;p>&lt;strong>رامن كيمتشي البصل الأخضر&lt;/strong>&lt;/p>
&lt;p>&lt;img src="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/img1.jpg"
width="595"
height="603"
srcset="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/img1_hufe42115e5b5ea70b27ae9218e3ddeca1_358776_480x0_resize_q75_box.jpg 480w, 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/img1_hufe42115e5b5ea70b27ae9218e3ddeca1_358776_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="img1.jpg"
class="gallery-image"
data-flex-grow="98"
data-flex-basis="236px"
>&lt;/p>
&lt;p>&lt;img src="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.jpg"
width="593"
height="646"
srcset="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_480x0_resize_q75_box.jpg 480w, 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_1024x0_resize_q75_box.jpg 1024w"
loading="lazy"
alt="img2.png"
class="gallery-image"
data-flex-grow="91"
data-flex-basis="220px"
>&lt;/p>
&lt;p>كان لذيذاً. إنه طعم أشتهيه من حين لآخر.&lt;/p></description></item><item><title>سرد الأعداد الأولية في Rust</title><link>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/</link><pubDate>Fri, 09 Sep 2022 07:08:49 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post سرد الأعداد الأولية في Rust" />&lt;p>لقد كتبت برنامجًا لسرد الأعداد الأولية في Rust.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-rust" data-lang="rust">&lt;span class="line">&lt;span class="cl">&lt;span class="k">fn&lt;/span> &lt;span class="nf">main&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="kd">let&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">max&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mi">1000&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="kd">let&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">mut&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">primes&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="fm">vec!&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">];&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="kd">let&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">mut&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">loop&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="kd">let&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">mut&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">is_prime&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="kc">true&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">for&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">in&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">primes&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">if&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">%&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">==&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">is_prime&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="kc">false&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">break&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">if&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">is_prime&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">primes&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">push&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">+=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">if&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">max&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">break&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">for&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">in&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">&amp;amp;&lt;/span>&lt;span class="n">primes&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="fm">println!&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="si">{}&lt;/span>&lt;span class="s">&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">p&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="p">}&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div></description></item><item><title>موسيقى الجاز الهادئة</title><link>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/</link><pubDate>Thu, 08 Sep 2022 17:40:26 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post موسيقى الجاز الهادئة" />&lt;p>&lt;strong>قائمة تشغيل موسيقى الجاز الهادئة&lt;/strong>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/hOJ76cZEt08"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/p></description></item><item><title>موسيقى المقهى</title><link>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/</link><pubDate>Thu, 08 Sep 2022 08:39:03 +0900</pubDate><guid>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/</guid><description>&lt;img src="http://kenji.blog/p/%E3%82%AB%E3%83%95%E3%82%A7%E9%9F%B3%E6%A5%BD/images/img.png" alt="Featured image of post موسيقى المقهى" />&lt;p>&lt;strong>إيقاع سريع&lt;/strong>&lt;/p>
&lt;p>&lt;strong>Electro Swing Collection&lt;/strong>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/bQXCx1F7nhs"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/p>
&lt;p>&lt;strong>Electro Swing Mix 2019 Vol.3&lt;/strong>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/1hY8f20tqlI"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/p>
&lt;p>&lt;strong>lofi hip hop radio(Live)&lt;/strong>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/jfKfPfyJRdk"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/p>
&lt;p>&lt;strong>جاز LoFi&lt;/strong>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/bz5q5gl2uZA"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/p>
&lt;p>&lt;strong>هذا هو الدافع للدراسة بجد كل يوم | 5 hour lofi hip hop / study / work / chill beats&lt;/strong>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/fWX8zsaTeTc"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;/p></description></item><item><title>فيديوهات ترفع المعنويات</title><link>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/</link><pubDate>Thu, 08 Sep 2022 02:22:52 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post فيديوهات ترفع المعنويات" />&lt;h2 id="لا-بأس-إذا-لم-يتم-الاعتراف-بجهدك">لا بأس إذا لم يتم الاعتراف بجهدك
&lt;/h2>&lt;blockquote class="twitter-tweet">&lt;p lang="ja" dir="ltr">45年の人生で手に入れた。ぐずぐずした時、いつも背中を押してくれる言葉たち。 &lt;a href="https://t.co/EQgmujOSpg">pic.twitter.com/EQgmujOSpg&lt;/a>&lt;/p>&amp;mdash; いれぶん (@eleven_s_s) &lt;a href="https://x.com/eleven_s_s/status/1567256455836737544?ref_src=twsrc%5Etfw">September 6, 2022&lt;/a>&lt;/blockquote>
&lt;script async src="https://platform.x.com/widgets.js" charset="utf-8">&lt;/script>
&lt;h2 id="القيم-أكثر-تنوعا-بكثير">القيم أكثر تنوعًا بكثير
&lt;/h2>&lt;p>يوسوكي ناريتا &amp;ldquo;من بين التعاسات التي يعاني منها الإنسان&amp;rdquo;&lt;/p>
&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/5WTldFIQ7E4"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;h2 id="أفعالك-تنعكس-مباشرة">أفعالك تنعكس مباشرة
&lt;/h2>&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/8ewxptSV66M"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;h2 id="أفكار-هاياو-ميازاكي">أفكار هاياو ميازاكي
&lt;/h2>&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/9-2YFldnWzg"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div></description></item><item><title>مواصفات جهاز الكمبيوتر الرئيسي الحالي</title><link>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/</link><pubDate>Thu, 08 Sep 2022 01:55:00 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post مواصفات جهاز الكمبيوتر الرئيسي الحالي" />&lt;p>سأكتب مواصفات جهاز الكمبيوتر الرئيسي الخاص بي.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>اسم العنصر&lt;/th>
&lt;th>القيمة&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>المعالج&lt;/td>
&lt;td>Intel Core i7-8700K CPU @ 3.70GHz 3.70 GHz&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الذاكرة&lt;/td>
&lt;td>32.0 GB&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>نوع النظام&lt;/td>
&lt;td>نظام تشغيل 64 بت، معالج يستند إلى x64&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>نظام التشغيل&lt;/td>
&lt;td>Windows 11 Enterprise (الإصدار 21H2، البنية 22000.856)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>الشركة المصنعة&lt;/td>
&lt;td>شركة ماوس للكمبيوتر المحدودة&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table></description></item><item><title>مواقع تجميع الأيقونات البسيطة</title><link>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/</link><pubDate>Wed, 07 Sep 2022 16:46:56 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post مواقع تجميع الأيقونات البسيطة" />&lt;h2 id="google-material-symbols-and-icons">Google Material Symbols and Icons
&lt;/h2>&lt;p>&lt;a class="link" href="https://fonts.google.com/icons" target="_blank" rel="noopener"
>https://fonts.google.com/icons&lt;/a>
&lt;img src="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.png"
width="630"
height="447"
srcset="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_hu2e790b3adfba32854ad71745e7545591_74194_480x0_resize_box_3.png 480w, 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_hu2e790b3adfba32854ad71745e7545591_74194_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="140"
data-flex-basis="338px"
>&lt;/p>
&lt;h2 id="github-octicons">GitHub Octicons
&lt;/h2>&lt;p>&lt;a class="link" href="https://primer.style/octicons/" target="_blank" rel="noopener"
>https://primer.style/octicons/&lt;/a>
&lt;img src="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/images/img_4.png"
width="629"
height="458"
srcset="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/images/img_4_huac9afc30a59605ec9b88aeb00e9ca35a_16251_480x0_resize_box_3.png 480w, 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/images/img_4_huac9afc30a59605ec9b88aeb00e9ca35a_16251_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="137"
data-flex-basis="329px"
>&lt;/p>
&lt;h2 id="sargam-icons">Sargam Icons
&lt;/h2>&lt;p>&lt;a class="link" href="https://sargamicons.com/" target="_blank" rel="noopener"
>https://sargamicons.com/&lt;/a>
&lt;img src="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_3.png"
width="630"
height="394"
srcset="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_3_hu0066a2e8d1a9197597bb942dc0458191_124040_480x0_resize_box_3.png 480w, 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_3_hu0066a2e8d1a9197597bb942dc0458191_124040_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="159"
data-flex-basis="383px"
>&lt;/p>
&lt;h2 id="آلاف-الأيقونات-المجانية">آلاف الأيقونات المجانية
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://icon-icons.com/" target="_blank" rel="noopener"
>https://icon-icons.com/&lt;/a>
&lt;img src="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/images/img.png"
width="630"
height="458"
srcset="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/images/img_hud4e59f23b65e922f3b125a8a3404b846_60034_480x0_resize_box_3.png 480w, 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/images/img_hud4e59f23b65e922f3b125a8a3404b846_60034_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="137"
data-flex-basis="330px"
>&lt;/li>
&lt;/ul>
&lt;h2 id="flaticon">flaticon
&lt;/h2>&lt;p>&lt;a class="link" href="https://www.flaticon.com/" target="_blank" rel="noopener"
>https://www.flaticon.com/&lt;/a>
&lt;img src="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/images/img_1.png"
width="632"
height="457"
srcset="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/images/img_1_hudb7d87f05c11753d254c7b78aaefffc2_54756_480x0_resize_box_3.png 480w, 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/images/img_1_hudb7d87f05c11753d254c7b78aaefffc2_54756_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="138"
data-flex-basis="331px"
>&lt;/p>
&lt;h2 id="iconfinder">ICONFINDER
&lt;/h2>&lt;p>&lt;a class="link" href="https://www.iconfinder.com/" target="_blank" rel="noopener"
>https://www.iconfinder.com/&lt;/a>
&lt;img src="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/images/img_2.png"
width="629"
height="457"
srcset="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/images/img_2_hu0dc800a470d49e22764252e0fa03fc17_23662_480x0_resize_box_3.png 480w, 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/images/img_2_hu0dc800a470d49e22764252e0fa03fc17_23662_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="137"
data-flex-basis="330px"
>&lt;/p>
&lt;h2 id="iconfont">iconfont
&lt;/h2>&lt;p>&lt;a class="link" href="https://www.iconfont.cn/" target="_blank" rel="noopener"
>https://www.iconfont.cn/&lt;/a>
&lt;img src="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/images/img_3.png"
width="635"
height="460"
srcset="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/images/img_3_hu295bfcef20bd429ddd55b7aef56dd01b_108321_480x0_resize_box_3.png 480w, 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/images/img_3_hu295bfcef20bd429ddd55b7aef56dd01b_108321_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_3.png"
class="gallery-image"
data-flex-grow="138"
data-flex-basis="331px"
>&lt;/p>
&lt;h2 id="open-iconic">open-iconic
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://github.com/iconic/open-iconic" target="_blank" rel="noopener"
>https://github.com/iconic/open-iconic&lt;/a>
&lt;img src="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_1.png"
width="630"
height="429"
srcset="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_1_hu1d827bbc120ad9c667c26a03c4813010_114951_480x0_resize_box_3.png 480w, 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_1_hu1d827bbc120ad9c667c26a03c4813010_114951_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="146"
data-flex-basis="352px"
>&lt;/li>
&lt;/ul></description></item><item><title>تغيير نظام الألوان في PaperMod</title><link>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/</link><pubDate>Wed, 07 Sep 2022 15:30:21 +0900</pubDate><guid>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/</guid><description>&lt;img src="http://kenji.blog/p/papermod%E3%81%AE%E9%85%8D%E8%89%B2%E5%A4%89%E6%9B%B4/img.png" alt="Featured image of post تغيير نظام الألوان في PaperMod" />&lt;p>لقد قمت بتغيير نظام الألوان لسمة PaperMod. لقد أشرت إلى ما يلي لطريقة التغيير.&lt;/p>
&lt;p>&lt;a class="link" href="https://github.com/adityatelange/hugo-PaperMod/discussions/645" target="_blank" rel="noopener"
>https://github.com/adityatelange/hugo-PaperMod/discussions/645&lt;/a>&lt;/p>
&lt;p>مسار CSS هو كما يلي.&lt;/p>
&lt;p>&lt;code>themes/PaperMod/assets/css/extended/blank.css&lt;/code>&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">:root {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> --entry: #fbf7ef;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> --primary: rgba(113, 103, 91, 1.00);
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> --secondary: rgba(113, 103, 91, 0.95);
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> --tertiary: rgba(113, 103, 91, 0.50);
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> --content: rgba(113, 103, 91, 0.85);
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> --hljs-bg: #34231B;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> --code-bg: #ebe4d7;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> --border: #fdfaf5;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> --theme: #fbf7ef;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">.dark {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>لا توجد تغييرات على المظهر الداكن في الوقت الحالي.&lt;/p></description></item><item><title>مراعاة الأطفال</title><link>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/</link><pubDate>Wed, 07 Sep 2022 04:40:52 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post مراعاة الأطفال" />&lt;p>عندما كانت الأم مريضة وترقد في السرير،
سألت ابنتنا (سنتان) عن تحضير العشاء أو الاستحمام: &amp;ldquo;هل نطلب من أمي أن تفعل هذا؟&amp;rdquo;
فأجابت: &amp;ldquo;لا، إنها نائمة!&amp;rdquo; وفكرت في كيف يمكن للطفل أن يكون مراعياً للآخرين بطريقته الخاصة.&lt;/p>
&lt;p>أنا سعيد لأنها تبدو وكأنها تكبر لتصبح شخصاً يمكنه التعاطف مع الآخرين.&lt;/p></description></item><item><title>مذكرات الإدارة</title><link>http://kenji.blog/ar/p/%E7%B5%8C%E5%96%B6%E8%80%85%E3%83%A1%E3%83%A2/</link><pubDate>Wed, 07 Sep 2022 02:36:11 +0900</pubDate><guid>http://kenji.blog/ar/p/%E7%B5%8C%E5%96%B6%E8%80%85%E3%83%A1%E3%83%A2/</guid><description>&lt;img src="http://kenji.blog/p/%E7%B5%8C%E5%96%B6%E8%80%85%E3%83%A1%E3%83%A2/images/img.png" alt="Featured image of post مذكرات الإدارة" />&lt;h1 id="العثور-على-الأعمال-التجارية-الرائجة">العثور على الأعمال التجارية الرائجة
&lt;/h1>&lt;ul>
&lt;li>اسأل المطلعين في Hot Pepper أو المحاسبين الضريبيين عن الأعمال التجارية التي بدأت تروج.&lt;/li>
&lt;li>لا تدخل في أعمال تجارية مشبعة بالفعل ويسيطر عليها لاعبون أقوياء.&lt;/li>
&lt;li>لا تدخل إلا في الأعمال التجارية التي تثق في قدرتك على جذب العملاء إليها (لا تدخل في أعمال حيث يستخدم اللاعبون الحاليون طرق جذب عملاء خاصة لا يمكن تقليدها).&lt;/li>
&lt;/ul>
&lt;h1 id="التقليد-الشامل">التقليد الشامل
&lt;/h1>&lt;ul>
&lt;li>ادرس منطق الأعمال قبل الدخول.&lt;/li>
&lt;li>قلد بشكل شامل.&lt;/li>
&lt;li>ثم قم بإجراء التحسينات بناءً على ذلك.&lt;/li>
&lt;/ul>
&lt;h1 id="المنهجة">المنهجة
&lt;/h1>&lt;ul>
&lt;li>قم بإنشاء أدلة لكل شيء حتى يتمكن أي شخص من القيام به دون عناء.&lt;/li>
&lt;li>فكر وقم بمنهجة أفكار لزيادة المبيعات (زيادة عدد العملاء، وقيمة كل عميل) وتقليل النفقات (تكاليف الموظفين، تكاليف الإعلانات).&lt;/li>
&lt;/ul>
&lt;h1 id="فلسفة-الإدارة">فلسفة الإدارة
&lt;/h1>&lt;ul>
&lt;li>فلسفة الإدارة هي &amp;ldquo;تعظيم أرباح الشركة&amp;rdquo; لا أكثر ولا أقل.&lt;/li>
&lt;li>جعل المساهمة الاجتماعية أو محبة الموظفين فلسفة للإدارة هو أمر خاطئ (اعتبر أن هذه الأشياء ستأتي بشكل طبيعي لاحقاً).&lt;/li>
&lt;/ul>
&lt;!--
via https://www.youtube.com/watch?v=2TALYTLAke0
--></description></item><item><title>أفكاري حول اليابان</title><link>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/</link><pubDate>Tue, 06 Sep 2022 02:24:11 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post أفكاري حول اليابان" />&lt;p>أود أن أنظم الأفكار والأشياء التي أعتقد أنها غريبة حول المجتمع الياباني.&lt;/p>
&lt;h1 id="حول-المنح-الدراسية">حول المنح الدراسية
&lt;/h1>&lt;p>عند الحديث عن المنح الدراسية في اليابان، فإن معظمها عبارة عن قروض بفوائد يجب سدادها.
بالإضافة إلى ذلك، استمرت الرسوم الدراسية الجامعية في الارتفاع منذ عام 1950، كما أن معدل متلقي هذه القروض في تزايد.&lt;/p>
&lt;p>&lt;img src="http://kenji.blog/images/japanese_tuition_fee.png"
loading="lazy"
alt="تغير الرسوم الدراسية"
>
&lt;img src="http://kenji.blog/images/receipt_rate.png"
loading="lazy"
alt="تغير معدل تلقي المنح الدراسية"
>&lt;/p>
&lt;p>من ناحية أخرى، يبدو أن متوسط إجمالي القروض مؤخراً قد وصل إلى 3.24 مليون ين.&lt;/p>
&lt;blockquote>
&lt;p>بالنسبة لمستخدمي المنح الدراسية التابعة لمنظمة خدمات الطلاب اليابانية، يبلغ متوسط إجمالي القروض 3,243,000 ين. &lt;a class="link" href="https://magazine.aruhi-corp.co.jp/0000-5086/#:~:text=%E5%80%9F%E5%85%A5%E7%B7%8F%E9%A1%8D%E3%81%AA%E3%81%A9%E3%81%AE%E5%B9%B3%E5%9D%87%E9%A1%8D%E3%81%AF&amp;amp;text=%E6%97%A5%E6%9C%AC%E5%AD%A6%E7%94%9F%E6%94%AF%E6%8F%B4%E6%A9%9F%E6%A7%8B%E3%81%AE%E5%A5%A8%E5%AD%A6%E9%87%91%E5%88%A9%E7%94%A8%E8%80%85%E3%81%AB%E3%81%8A%E3%81%84%E3%81%A6,%E4%BB%A5%E4%B8%8A%E3%82%92%E5%8D%A0%E3%82%81%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82" target="_blank" rel="noopener"
>مرجع&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;p>إذا كان الشخص محملاً بديون تصل إلى 3 ملايين ين عند التخرج من الجامعة في سن 22 عامًا، فمن الطبيعي أن يتأخر سن الزواج وتصبح إنجاب الأطفال أمراً صعباً، وأعتقد أن هذا أحد أسباب مشكلة انخفاض معدل المواليد في اليابان.&lt;/p>
&lt;h1 id="انتشار-نظرية-المسؤولية-الشخصية">انتشار نظرية المسؤولية الشخصية
&lt;/h1>&lt;p>هذا يعتمد على المشاعر إلى حد ما، لكني أعتقد أن هناك نظرة مجتمعية باردة تتسم بمبدأ &amp;ldquo;شؤون الآخرين هي شؤونهم الخاصة&amp;rdquo;.
قد يكون من المحتم أن يحدث ذلك بعد عقود من الركود الاقتصادي، ولكن
حتى في مشكلة المنح الدراسية المذكورة أعلاه، لا يتم اعتبارها مشكلة مجتمعية بالكامل، وأشعر أنه يتم تجاهل أصوات الشباب والأقليات الذين يمتلكون أصواتاً أقل في الانتخابات.
على الرغم من أنها، في الواقع، مشكلة بالغة الأهمية بالنسبة لليابان بأكملها على المدى الطويل.&lt;/p>
&lt;p>بدلاً من التوجه نحو المنافسة المفرطة، أعتقد أنه من المهم جداً للبلاد أن تتبنى روح المساعدة المتبادلة عندما يكون هناك أشخاص أو أجيال أو مجموعات محتاجة.
(ومع ذلك، أشعر بعدم الارتياح عندما تصر الحكومة على &amp;ldquo;المساعدة الذاتية والمساعدة المتبادلة&amp;rdquo;. أريدهم أن يأخذوا زمام المبادرة في مساعدة الضعفاء بشكل استباقي).&lt;/p>
&lt;p>(سيتم تحديث هذا المقال من حين لآخر.)&lt;/p>
&lt;h2 id="خصائص-اليابانيين-من-منظور-الذكاء-الاصطناعي">خصائص اليابانيين من منظور الذكاء الاصطناعي
&lt;/h2>&lt;p>نعم، سأشرح خصائص اليابانيين.&lt;/p>
&lt;p>【الجوانب الإيجابية】&lt;/p>
&lt;ul>
&lt;li>يتمتع اليابانيون بثقافة مهذبة ويهتمون باحترام الآخرين وحسن التعامل معهم.&lt;/li>
&lt;li>يتم الالتزام بالمواعيد بدقة، واحترام الوقت يعتبر أمراً بالغ الأهمية.&lt;/li>
&lt;li>هناك طريقة تفكير جماعية قوية، حيث يتم تقدير العمل الجماعي والتعاون.&lt;/li>
&lt;li>تحظى النظافة بأهمية كبيرة، وهناك اهتمام كبير بالآداب العامة والتنظيف في الأماكن العامة.&lt;/li>
&lt;li>يُولون الهدايا والتذكارات أهمية كبيرة، وثقافة الامتنان منتشرة على نطاق واسع.&lt;/li>
&lt;/ul>
&lt;p>【الجوانب السلبية】&lt;/p>
&lt;ul>
&lt;li>قد يجدون صعوبة في التعبير عن آرائهم الشخصية، ويميلون إلى تجنب الصدامات في الآراء.&lt;/li>
&lt;li>في ظل ثقافة عمل صارمة للغاية، يعتبر العمل الإضافي والموت من الإرهاق (كاروشي) من المشاكل التي تثير القلق أحياناً.&lt;/li>
&lt;li>لا تزال هناك مشاكل تتعلق بالتمييز والإقصاء تجاه الأجانب، ويُثار أحياناً موضوع التوافق مع المجتمع الدولي.&lt;/li>
&lt;li>هناك ميل نحو الاستبدادية، ويُشار أحياناً إلى أنهم غالباً ما يقبلون آراء الرؤساء وكبار السن دون شروط.&lt;/li>
&lt;li>يتم انتقادهم أحياناً بأنهم مجتمع مغلق، يميل إلى صعوبة تقبل الثقافات والقيم الخارجية.&lt;/li>
&lt;/ul></description></item><item><title>كيف تبدأ مع Rust</title><link>http://kenji.blog/ar/p/rust%E3%81%AE%E3%81%AF%E3%81%98%E3%82%81%E3%81%8B%E3%81%9F/</link><pubDate>Tue, 06 Sep 2022 00:12:36 +0900</pubDate><guid>http://kenji.blog/ar/p/rust%E3%81%AE%E3%81%AF%E3%81%98%E3%82%81%E3%81%8B%E3%81%9F/</guid><description>&lt;img src="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.png" alt="Featured image of post كيف تبدأ مع Rust" />&lt;h1 id="مقدمة">مقدمة
&lt;/h1>&lt;p>Rust هي لغة برمجة حديثة نسبيًا تتيح لك كتابة وحدات سريعة وفعالة في استخدام الذاكرة باستخدام بناء جملة حديث.
إنها تدعم منصات متعددة وتُستخدم في WebAssembly والأنظمة المدمجة.
ومن الجدير بالذكر أنها معتمدة من قبل Firefox و DropBox و Cloudflare.&lt;/p>
&lt;p>تحظى باهتمام أيضًا كبديل لـ C++.&lt;/p>
&lt;h1 id="طريقة-التثبيت">طريقة التثبيت
&lt;/h1>&lt;p>&lt;a class="link" href="https://www.rust-lang.org/tools/install" target="_blank" rel="noopener"
>تثبيت Rust&lt;/a>&lt;/p>
&lt;p>تتوفر تعليمات التثبيت لكل منصة على الموقع أعلاه.&lt;/p>
&lt;h1 id="أول-برنامج-لك">أول برنامج لك
&lt;/h1>&lt;p>احفظ البرنامج التالي باسم &lt;code>main.rs&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">fn main() {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> println!(&amp;#34;Hello, world!&amp;#34;);
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>عند تشغيل &lt;code>rustc main.rs&lt;/code> من موجه الأوامر أو الجهاز الطرفي،
سيتم تجميعه، وعند تشغيل &lt;code>./main&lt;/code> (أو &lt;code>main.exe&lt;/code> في نظام Windows) سيطبع &lt;code>Hello, world!&lt;/code>.&lt;/p>
&lt;h1 id="الوثائق-اليابانية">الوثائق اليابانية
&lt;/h1>&lt;p>&lt;a class="link" href="https://doc.rust-jp.rs/book-ja/" target="_blank" rel="noopener"
>The Rust Programming Language النسخة اليابانية&lt;/a>&lt;/p>
&lt;p>جميع الشروحات اللازمة لتعلم Rust مجمعة في الرابط أعلاه (النسخة المترجمة لليابانية).
إنها شاملة لدرجة أنك لن تحتاج إلى شراء كتاب عن Rust.&lt;/p>
&lt;h1 id="إذا-كنت-تريد-تجربتها-على-الويب">إذا كنت تريد تجربتها على الويب
&lt;/h1>&lt;p>إذا كنت ترغب في تجربتها على الويب دون تثبيت المترجم، فيمكنك استخدام &lt;a class="link" href="https://play.rust-lang.org/" target="_blank" rel="noopener"
>The Rust Playground&lt;/a>.
أدخل الكود واضغط على زر &amp;ldquo;التشغيل&amp;rdquo; ليتم تجميعه وتشغيله على الويب.&lt;/p></description></item><item><title>تغيير بيئة الإنترنت من Flets Hikari إلى J:COM</title><link>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/</link><pubDate>Mon, 05 Sep 2022 22:48:51 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post تغيير بيئة الإنترنت من Flets Hikari إلى J:COM" />&lt;h1 id="تغيير-بيئة-الإنترنت-المنزلية-من-flets-hikari-إلى-jcom">تغيير بيئة الإنترنت المنزلية من Flets Hikari إلى J:COM
&lt;/h1>&lt;p>&lt;img src="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/flets_hikari.png"
width="410"
height="123"
srcset="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/flets_hikari_hu82dfae18127e227d3385a12e919dd77c_4214_480x0_resize_box_3.png 480w, 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/flets_hikari_hu82dfae18127e227d3385a12e919dd77c_4214_1024x0_resize_box_3.png 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="333"
data-flex-basis="800px"
>&lt;/p>
&lt;p>&lt;img src="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.png"
width="380"
height="120"
srcset="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_480x0_resize_box_3.png 480w, 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_1024x0_resize_box_3.png 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="316"
data-flex-basis="760px"
>&lt;/p>
&lt;p>بناءً على توصية من أحد المعارف، قمت بتغيير اتصال الإنترنت المنزلي من Flets Hikari إلى J:COM. الأسباب هي:&lt;/p>
&lt;ol>
&lt;li>الرسوم الشهرية أرخص. 3,619 ين -&amp;gt; 2,180 ين&lt;/li>
&lt;li>سرعة الإنترنت زادت من 100 ميجابت في الثانية إلى 320 ميجابت في الثانية&lt;/li>
&lt;/ol>
&lt;p>بخصوص هذه النقاط.&lt;/p>
&lt;h1 id="انطباعات-بعد-الاستخدام">انطباعات بعد الاستخدام
&lt;/h1>&lt;p>لقد مر حوالي أسبوع منذ التبديل، وحتى الآن لم أواجه أي مشاكل تقريبًا. أذكر أدناه بعض الأشياء التي لفتت انتباهي.&lt;/p>
&lt;p>لقد لاحظت بعد التغيير الفعلي أن سرعة التنزيل أصبحت أسرع بالفعل، حيث ارتفعت من 60 ميجابت في الثانية إلى ما يقرب من 320 ميجابت في الثانية. ومع ذلك،
بالنسبة لسرعة الرفع، فقد انخفضت إلى حوالي 10 ميجابت في الثانية، بعد أن كانت حوالي 40 ميجابت في الثانية مع Flets Hikari. يبدو أن هذه هي مواصفات J:COM.
نظرًا لأنني لا أقوم بالبث المباشر أو رفع كميات كبيرة من البيانات حاليًا، سأراقب الوضع.&lt;/p>
&lt;p>أيضًا، في الآونة الأخيرة، أصبح العمل عن بُعد هو السائد بالنسبة لي ولعائلتي، ولكن اليوم انقطع الإنترنت لأول مرة لمدة عشر دقائق تقريبًا. عاد للعمل تلقائيًا، ولكن
قد لا تكون هذه بداية مبشرة. على الرغم من أنه لم يمر أسبوع حتى الآن منذ التبديل&amp;hellip;&lt;/p>
&lt;p>كملاحظة جانبية، يبدو أن سرعة تطبيقات P2P بطيئة لأن J:COM تقيد اتصالات P2P. يجب على أولئك الذين يستخدمون P2P توخي الحذر.&lt;/p>
&lt;h1 id="حول-الخدمة">حول الخدمة
&lt;/h1>&lt;p>عند توقيع العقد، قيل لي أنه إذا اشتركت في Netflix أو Disney+، فسأحصل على بطاقة QUO بقيمة 40,000 ين، والتي سيتم خصمها من رسوم عقد كل خدمة، مما يجعل الرسوم الشهرية
أرخص في المتوسط، لذلك اشتركت في الخدمات في نفس الوقت الذي وقعت فيه العقد. اشتراك Netflix لمدة عام، واشتراك Disney+ لمدة نصف عام، ويبدو أنه من الضروري القيام بإجراءات الإلغاء بنفسي.&lt;/p>
&lt;p>نظرًا لأن التبديل حدث مؤخرًا، سأقوم بتحديث المقالة إذا ظهرت لدي انطباعات أو تجارب إضافية. إلى اللقاء.&lt;/p>
&lt;h1 id="0906-صعوبة-في-الاتصال-بالإنترنت">09/06 صعوبة في الاتصال بالإنترنت
&lt;/h1>&lt;ul>
&lt;li>2022/09/06 حوالي الساعة 13:13 لمدة 3 إلى 5 دقائق&lt;/li>
&lt;li>2022/09/06 حوالي الساعة 13:30 لمدة 3 إلى 5 دقائق&lt;/li>
&lt;li>بعد ذلك عدة مرات&amp;hellip;&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="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/trouble_shooting.png"
width="571"
height="440"
srcset="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/trouble_shooting_hue0af70687972260feb3e86c327d1e005_17559_480x0_resize_box_3.png 480w, 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/trouble_shooting_hue0af70687972260feb3e86c327d1e005_17559_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="تشخيص الشبكة"
class="gallery-image"
data-flex-grow="129"
data-flex-basis="311px"
>&lt;/p>
&lt;p>يبدو أن المشكلة في DNS، لذلك قمت بإعداد خادم DNS بناءً على &lt;a class="link" href="https://internet.watch.impress.co.jp/docs/column/shimizu/1367271.html" target="_blank" rel="noopener"
>هنا&lt;/a>.
دعونا نرى ماذا سيحدث&amp;hellip; نظرًا لعدم تمكني من الاتصال حتى مع إعدادات DNS، تواصلت مع الدعم، وأخبروني أنهم يجرون صيانة طارئة&amp;hellip; تحسنت حالة الاتصال فورًا بعد الاستفسار، لذا أعتقد أنهم اتخذوا بعض الإجراءات.&lt;/p></description></item><item><title>【HUGO】معاينة العرض في البيئة المحلية</title><link>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/</link><pubDate>Mon, 05 Sep 2022 12:28:01 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post 【HUGO】معاينة العرض في البيئة المحلية" />&lt;h1 id="تثبيت-hugo">تثبيت HUGO
&lt;/h1>&lt;h2 id="التحميل">التحميل
&lt;/h2>&lt;p>&lt;a class="link" href="https://github.com/gohugoio/hugo/releases" target="_blank" rel="noopener"
>تحميل HUGO&lt;/a>&lt;/p>
&lt;p>من الموقع أعلاه، قم بتنزيل واستخراج وحدة Windows التي تناسب بيئتك.
في حالتي، قمت بتنزيل &amp;ldquo;hugo_0.102.3_Windows-64bit.zip&amp;rdquo;.&lt;/p>
&lt;h2 id="الاستخراج">الاستخراج
&lt;/h2>&lt;p>قم باستخراج ملف zip الذي تم تنزيله وانسخ hugo.exe الموجود بداخله إلى مجلد تقوم بإنشائه، مثل C:\bin.&lt;/p>
&lt;h2 id="التسجيل-في-متغيرات-البيئة">التسجيل في متغيرات البيئة
&lt;/h2>&lt;p>قم بالتسجيل في متغيرات البيئة لتشغيل hugo.exe من أي مكان.
هذه العملية في Windows 11، لكن أعتقد أنه يمكنك تسجيلها باتباع الخطوات التالية.&lt;/p>
&lt;ol>
&lt;li>اضغط على زر Win+Pause لفتح حول.&lt;/li>
&lt;li>انقر فوق إعدادات النظام المتقدمة.&lt;/li>
&lt;li>انقر فوق متغيرات البيئة.&lt;/li>
&lt;li>حدد Path وانقر فوق تحرير.&lt;/li>
&lt;li>انقر فوق جديد، واكتب &amp;ldquo;C:\bin&amp;rdquo; في سطر جديد، ثم انقر فوق موافق لإغلاق مربع الحوار.&lt;/li>
&lt;/ol>
&lt;h1 id="معاينة-المدونة">معاينة المدونة
&lt;/h1>&lt;p>انتقل إلى مجلد مدونة HUGO في موجه الأوامر وقم بتشغيل الأمر التالي.&lt;/p>
&lt;p>&lt;code>hugo server -D&lt;/code>&lt;/p>
&lt;p>نتيجة التنفيذ أدناه. (-D هو خيار لعرض مسودات المقالات.)&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">C:\Users\win11\IdeaProjects\kenji.blog&amp;gt;hugo server -D
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Start building sites …
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">hugo v0.102.3-b76146b129d7caa52417f8e914fc5b9271bf56fc windows/amd64 BuildDate=2022-09-01T10:16:19Z VendorInfo=gohugoio
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> | JA
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">-------------------+-----
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Pages | 39
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Paginator pages | 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Non-page files | 7
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Static files | 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Processed images | 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Aliases | 13
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Sitemaps | 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> Cleaned | 0
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Built in 161 ms
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Watching for changes in C:\Users\win11\IdeaProjects\kenji.blog\{archetypes,content,themes}
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Watching for config changes in C:\Users\win11\IdeaProjects\kenji.blog\config.toml
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Environment: &amp;#34;development&amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Serving pages from memory
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Press Ctrl+C to stop
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>يتم إخراج العنوان في وقت التنفيذ (في المثال أعلاه، &lt;code>http://localhost:1313/&lt;/code>)، لذلك انسخ العنوان إلى متصفحك.
يتم تحديث المعاينة تلقائيًا في كل مرة يتم فيها حفظ الملف.
لإنهاء المعاينة، أدخل Ctrl+C في موجه الأوامر.&lt;/p></description></item><item><title>أفلام يظهر فيها علماء رياضيات</title><link>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/</link><pubDate>Mon, 05 Sep 2022 10:41:00 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post أفلام يظهر فيها علماء رياضيات" />&lt;p>إليكم توصياتي لـ 3 أفلام يظهر فيها علماء رياضيات كشخصيات رئيسية.&lt;/p>
&lt;h1 id="عقل-جميل">عقل جميل
&lt;/h1>&lt;p>&lt;img src="http://kenji.blog/images/beautiful_mind.jpg"
loading="lazy"
>&lt;br>
عمل يصور نصف حياة عالم رياضيات أمريكي عبقري حقيقي. تطور مفاجئ في النهاية.
يلعب الممثل الرئيسي راسل كرو دوراً رائعاً.&lt;/p>
&lt;h1 id="إنجما">إنجما
&lt;/h1>&lt;p>&lt;img src="http://kenji.blog/images/enigma.jpg"
loading="lazy"
>&lt;/p>
&lt;blockquote>
&lt;p>فيلم صدر عام 2001 مقتبس من رواية روبرت هاريس «إنجما».
من ويكيبيديا&lt;/p>
&lt;/blockquote>
&lt;p>قصة فك شفرة آلة تشفير ألمانية تسمى إنجما.&lt;/p>
&lt;h1 id="لعبة-التزييف">لعبة التزييف
&lt;/h1>&lt;p>&lt;img src="http://kenji.blog/images/imitation_game.jpg"
loading="lazy"
>&lt;/p>
&lt;p>قصة فك شفرات أخرى تتناول إنجما. أحب النظرة العالمية في ذلك الوقت.&lt;/p>
&lt;h1 id="الرجل-الذي-عرف-اللانهاية">الرجل الذي عرف اللانهاية
&lt;/h1>&lt;p>&lt;img src="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/img.png"
width="566"
height="800"
srcset="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/img_hu224d39544ca0af082720aacd7902fd19_1089949_480x0_resize_box_3.png 480w, 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/img_hu224d39544ca0af082720aacd7902fd19_1089949_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="70"
data-flex-basis="169px"
>&lt;/p>
&lt;p>عمل يصور التفاعل بين عالم الرياضيات بجامعة كامبريدج هاردي وعالم الرياضيات الهندي رامانوجان. يمكنك أن تشعر بجمال الرياضيات.&lt;/p>
&lt;h1 id="نظرية-كل-شيء">نظرية كل شيء
&lt;/h1>&lt;p>&lt;img src="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/img_1.png"
width="800"
height="459"
srcset="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/img_1_hubfe00de5360673c8281820134bf7a309_739706_480x0_resize_box_3.png 480w, 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/img_1_hubfe00de5360673c8281820134bf7a309_739706_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="174"
data-flex-basis="418px"
>&lt;/p>
&lt;p>عمل يصور نصف حياة الدكتور هوكينج.&lt;/p>
&lt;h1 id="حمى-الجسيمات">حمى الجسيمات
&lt;/h1>&lt;p>&lt;img src="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/img_2.png"
width="640"
height="960"
srcset="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/img_2_hu18abd37eefb70a17a04950b9cdaa7d84_902746_480x0_resize_box_3.png 480w, 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/img_2_hu18abd37eefb70a17a04950b9cdaa7d84_902746_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="66"
data-flex-basis="160px"
>&lt;/p></description></item><item><title>بيئة عمل اليوم</title><link>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/</link><pubDate>Sun, 04 Sep 2022 14:29:09 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.jpg" alt="Featured image of post بيئة عمل اليوم" />&lt;h1 id="مكتب-الطفل">مكتب الطفل
&lt;/h1>&lt;p>الوقت الذي ينام فيه طفلي هو الوقت الذي يمكنني فيه التركيز على عملي. لنذهب للعب في الحديقة بعد انتهاء القيلولة.
لو كان لدي محول من Lightning إلى HDMI لجهاز iPad الخاص بي، لتمكنت من العمل على المكتب الأيمن~&lt;/p></description></item><item><title>إضافة أمر لإدراج التاريخ في IntelliJ IDEA</title><link>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/</link><pubDate>Sun, 04 Sep 2022 05:59:04 +0900</pubDate><guid>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/</guid><description>&lt;img src="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.png" alt="Featured image of post إضافة أمر لإدراج التاريخ في IntelliJ IDEA" />&lt;h1 id="مقدمة">مقدمة
&lt;/h1>&lt;p>عند كتابة هذه المدونة، أستخدم IntelliJ IDEA. إنه مناسب لأن توافقه مع Git جيد ويعرض معاينة Markdown.
في كل مرة أكتب فيها في المدونة، أضطر إلى كتابة التاريخ في ترويسة ملف md، ولا يبدو أن هناك اختصارًا لإدراج التاريخ، لذلك قمت بإنشاء أمر لإدراج التاريخ بالرجوع إلى الموقع أدناه. آمل أن يكون هذا مفيدًا.&lt;/p>
&lt;p>&lt;a class="link" href="https://stackoverflow.com/questions/8714779/is-there-a-shortcut-for-inserting-date-time-in-intellij-idea" target="_blank" rel="noopener"
>Is there a shortcut for inserting date/time in IntelliJ IDEA?&lt;/a>&lt;/p>
&lt;h1 id="خطوات-الإعداد">خطوات الإعداد
&lt;/h1>&lt;ol>
&lt;li>افتح من القائمة &amp;ldquo;File&amp;rdquo; &amp;gt; &amp;ldquo;Settings&amp;hellip;&amp;rdquo;&lt;br>
&lt;img src="http://kenji.blog/images/settings.png"
loading="lazy"
alt="settings"
>&lt;/li>
&lt;li>حدد &amp;ldquo;Editor&amp;rdquo; &amp;gt; &amp;ldquo;Live Template&amp;rdquo; &amp;gt; &amp;ldquo;HTML/XML&amp;rdquo; وانقر فوق &amp;ldquo;+&amp;rdquo;&lt;/li>
&lt;li>اختر Live Template&lt;/li>
&lt;li>أدخل &amp;ldquo;date&amp;rdquo; في Abbreviation&lt;/li>
&lt;li>أدخل &amp;ldquo;إدراج التاريخ والوقت&amp;rdquo; في Description&lt;/li>
&lt;li>أدخل &amp;ldquo;$date$&amp;rdquo; في Template Text&lt;/li>
&lt;li>انقر فوق زر Edit Variables&lt;br>
&lt;img src="http://kenji.blog/images/edit_template_variables.png"
loading="lazy"
alt="edit_template_variables"
>&lt;/li>
&lt;li>أدخل &amp;ldquo;date&amp;rdquo; في Name&lt;/li>
&lt;li>أدخل &lt;code>date(&amp;quot;yyyy-MM-dd'T'HH:mm:ss'+09:00'&amp;quot;)&lt;/code> في Expression&lt;/li>
&lt;li>أغلق مربع الحوار بالنقر فوق OK&lt;/li>
&lt;li>اضغط على Define أو Change وحدد مربع &amp;ldquo;Everywhere&amp;rdquo;&lt;/li>
&lt;li>أغلق مربع الحوار بالنقر فوق OK&lt;/li>
&lt;li>في محرر التعليمات البرمجية، اكتب &amp;ldquo;date&amp;rdquo; واضغط على Enter. إذا تم إدراج التاريخ &amp;ldquo;2022-09-04T05:59:04+09:00&amp;rdquo;، يكون الإعداد قد اكتمل!&lt;/li>
&lt;/ol>
&lt;p>هذا كل شيء.&lt;/p>
&lt;h1 id="خاتمة">خاتمة
&lt;/h1>&lt;p>سأشاركها مرة أخرى إذا وجدت حيلًا صغيرة أخرى لـ IntelliJ IDEA!&lt;/p></description></item><item><title>بدأت مدونة</title><link>http://kenji.blog/ar/p/%D8%A8%D8%AF%D8%A3%D8%AA-%D9%85%D8%AF%D9%88%D9%86%D8%A9/</link><pubDate>Fri, 02 Sep 2022 07:23:00 +0900</pubDate><guid>http://kenji.blog/ar/p/%D8%A8%D8%AF%D8%A3%D8%AA-%D9%85%D8%AF%D9%88%D9%86%D8%A9/</guid><description>&lt;img src="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.jpeg" alt="Featured image of post بدأت مدونة" />&lt;h2 id="بدأت-مدونة">بدأت مدونة
&lt;/h2>&lt;p>&lt;img src="https://user-images.githubusercontent.com/2605401/187252583-63ef83f4-99c1-4eaf-a5b8-3b5ac1439860.gif"
loading="lazy"
>
شيء يشبه الألعاب النارية، الكود &lt;a class="link" href="https://github.com/kenjinote/Fireworks" title="انتقل إلى الكود"
target="_blank" rel="noopener"
>هنا&lt;/a>&lt;/p>
&lt;p>أهلاً بالجميع.
قررت أن أبدأ مدونة لسبب ما.&lt;/p>
&lt;p>ليس لدي هدف عظيم مثل &amp;ldquo;أريد نشر هذا!&amp;quot;،
فقط فكرت أنه سيكون من الجيد أن يكون لدي مكان أكتب فيه ما يتبادر إلى ذهني، سواء عن التكنولوجيا أو الحياة اليومية.&lt;/p>
&lt;p>سأحاول ألا أكون جاداً جداً، وسأستخدمها مثل مفكرة.&lt;/p>
&lt;hr>
&lt;h2 id="أستخدم-شيء-يسمى-hugo">أستخدم شيء يسمى Hugo
&lt;/h2>&lt;p>تم إنشاء هذه المدونة باستخدام منشئ المواقع الثابتة يسمى &amp;ldquo;Hugo&amp;rdquo;.
وجدت سمة لطيفة، فقررت تجربتها.
(استغرق الأمر حوالي ساعتين لاختيار السمة، لكن هذا سر)&lt;/p>
&lt;p>سأكتب أيضاً ملاحظات حول الأكواد والأدوات التي تثير اهتمامي.&lt;/p>
&lt;hr>
&lt;h2 id="قصة-كوميدا-في-الصباح">قصة كوميدا في الصباح
&lt;/h2>&lt;p>بالمناسبة، استيقظت مبكراً هذا الصباح وذهبت إلى مقهى كوميدا.
غادرت في الساعة 8:30، أمشي وأستنشق هواء الصباح.&lt;/p>
&lt;p>طلبت مجموعة الصباح A مع ميني شيرونوار ومقهى أو ليه.
أعتقد أنه كان حوالي 800 ين؟ (لا أتذكر)&lt;/p>
&lt;p>مقهى الصباح رائع.
إذا كان لدي بعض الوقت للاسترخاء قبل العمل، أشعر أن اليوم سيسير على ما يرام.&lt;/p>
&lt;hr>
&lt;p>لذا، سأكتب بهدوء من الآن فصاعداً.
أخطط لخلط المواضيع التقنية والحياة اليومية.&lt;/p>
&lt;p>أتطلع إلى دعمكم!&lt;/p></description></item><item><title>إضافات Chrome الموصى بها لـ Salesforce</title><link>http://kenji.blog/ar/p/salesforce%E3%81%8A%E3%81%99%E3%81%99%E3%82%81chrome%E6%8B%A1%E5%BC%B5/</link><pubDate>Mon, 02 May 2022 10:39:36 +0900</pubDate><guid>http://kenji.blog/ar/p/salesforce%E3%81%8A%E3%81%99%E3%81%99%E3%82%81chrome%E6%8B%A1%E5%BC%B5/</guid><description>&lt;img src="http://kenji.blog/p/salesforce%E3%81%8A%E3%81%99%E3%81%99%E3%82%81chrome%E6%8B%A1%E5%BC%B5/img.png" alt="Featured image of post إضافات Chrome الموصى بها لـ Salesforce" />&lt;h3 id="salesforce-devtools">Salesforce DevTools
&lt;/h3>&lt;p>&lt;img src="http://kenji.blog/p/salesforce%E3%81%8A%E3%81%99%E3%81%99%E3%82%81chrome%E6%8B%A1%E5%BC%B5/img_1.png"
width="454"
height="361"
srcset="http://kenji.blog/p/salesforce%E3%81%8A%E3%81%99%E3%81%99%E3%82%81chrome%E6%8B%A1%E5%BC%B5/img_1_huf57bbbba5c728384e7ba6fa16d7a54c4_18951_480x0_resize_box_3.png 480w, http://kenji.blog/p/salesforce%E3%81%8A%E3%81%99%E3%81%99%E3%82%81chrome%E6%8B%A1%E5%BC%B5/img_1_huf57bbbba5c728384e7ba6fa16d7a54c4_18951_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="125"
data-flex-basis="301px"
>&lt;/p>
&lt;p>&lt;img src="http://kenji.blog/p/salesforce%E3%81%8A%E3%81%99%E3%81%99%E3%82%81chrome%E6%8B%A1%E5%BC%B5/img_2.png"
width="448"
height="909"
srcset="http://kenji.blog/p/salesforce%E3%81%8A%E3%81%99%E3%81%99%E3%82%81chrome%E6%8B%A1%E5%BC%B5/img_2_huf368a70f31f9534fa7902adae2b30e6e_26924_480x0_resize_box_3.png 480w, http://kenji.blog/p/salesforce%E3%81%8A%E3%81%99%E3%81%99%E3%82%81chrome%E6%8B%A1%E5%BC%B5/img_2_huf368a70f31f9534fa7902adae2b30e6e_26924_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_2.png"
class="gallery-image"
data-flex-grow="49"
data-flex-basis="118px"
>&lt;/p>
&lt;p>يمكنك البحث عن الحقول المخصصة، أو إخراج حقول الكائنات المخصصة دفعة واحدة.&lt;/p>
&lt;p>من المفيد أيضًا القدرة على بناء SOQL على الفور.&lt;/p>
&lt;p>&lt;a class="link" href="https://chrome.google.com/webstore/detail/salesforce-devtools/ehgmhinnhggigkogkbhnbodhbfjgncjf" target="_blank" rel="noopener"
>Salesforce DevTools&lt;/a>&lt;/p>
&lt;h3 id="salesforce-advanced-code-searcher">Salesforce advanced Code searcher
&lt;/h3>&lt;p>&lt;img src="http://kenji.blog/p/salesforce%E3%81%8A%E3%81%99%E3%81%99%E3%82%81chrome%E6%8B%A1%E5%BC%B5/img.png"
width="257"
height="261"
srcset="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_480x0_resize_box_3.png 480w, 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_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="98"
data-flex-basis="236px"
>&lt;/p>
&lt;p>مفيد عند البحث عن كود Salesforce.&lt;/p>
&lt;p>&lt;a class="link" href="https://chrome.google.com/webstore/detail/salesforce-advanced-code/lnkgcmpjkkkeffambkllliefdpjdklmi" target="_blank" rel="noopener"
>Salesforce advanced Code searcher&lt;/a>&lt;/p></description></item><item><title>الأرشيف</title><link>http://kenji.blog/ar/archives/</link><pubDate>Tue, 28 May 2019 00:00:00 +0000</pubDate><guid>http://kenji.blog/ar/archives/</guid><description/></item><item><title>بحث</title><link>http://kenji.blog/ar/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://kenji.blog/ar/search/</guid><description/></item><item><title>روابط</title><link>http://kenji.blog/ar/%D8%B1%D9%88%D8%A7%D8%A8%D8%B7/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://kenji.blog/ar/%D8%B1%D9%88%D8%A7%D8%A8%D8%B7/</guid><description/></item></channel></rss>