حرب حقوق الطبع والنشر الخفية وراء تقنية التوصيل والتشغيل في ويندوز ٩٥

2025-06-29
حرب حقوق الطبع والنشر الخفية وراء تقنية التوصيل والتشغيل في ويندوز ٩٥

لم يكن تنفيذ تقنية التوصيل والتشغيل في ويندوز ٩٥ مهمة سهلة. ولجعل الأجهزة القديمة تعمل مع الميزة الجديدة، استخدم المهندسون حلولاً مبتكرة. مثال طريف كان يتضمن مصنعين يضيفون سلسلة "Not Copyright Fabrikam Computer" إلى BIOS الخاص بهم. كانت هذه خدعة ذكية لخداع فحص ترخيص برنامج LitWare Word Processor، مما يسمح بفتح النسخة الكاملة دون أن يكون جهاز كمبيوتر Fabrikam مرخصًا. يبرز هذا التحديات المتعلقة بالتوافق بين أجهزة الكمبيوتر القديمة والجهود التي بذلها المصنعون للحصول على تراخيص البرامج.

اقرأ المزيد

حذف Contoso "الدائم": ليس دائمًا بعد كل شيء

2025-06-25
حذف Contoso

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

اقرأ المزيد
متنوع

وراثة القوالب في C++ وبناء النسخ: static_assert محير

2025-06-10
وراثة القوالب في C++ وبناء النسخ: static_assert محير

تتناول هذه المقالة مشكلة محيرة تتعلق بمنشئي النسخ في وراثة القوالب في لغة C++، حيث ترث الفئة `Derived` من الفئة `Base`، التي تم حذف مُنشئ النسخ الخاص بها. ومع ذلك، تُعرّف الفئة `Derived` مُنشئ نسخ خاص بها. حتى وإن حاول هذا المُنشئ نسخ كائن `Base` غير قابل للنسخ، فإن `std::is_copy_constructible` لا تزال تُرجع قيمة true. والسبب في ذلك هو أن المُترجم لا يفحص سوى وجود مُنشئ نسخ غير محذوف، وليس إمكانية إنشائه. ويتناول الكاتب أيضاً الفروقات بين مُنشئي النسخ المُعرّفين بشكلٍ صريح والضمني، وتأثيرات نقل تعريف مُنشئ النسخ خارج السياق.

اقرأ المزيد
التطوير بناء النسخ

تشغيل رمز C# مباشرة بدون ملفات مشروع: .NET 10 Preview 4

2025-05-29
تشغيل رمز C# مباشرة بدون ملفات مشروع: .NET 10 Preview 4

يقدم .NET 10 Preview 4 ميزة ثورية: يمكنك الآن تشغيل ملفات C# مباشرة باستخدام الأمر `dotnet run app.cs` - بدون الحاجة إلى ملف مشروع أو هيكل! هذا يقلل بشكل كبير من عتبة الدخول إلى C#، مما يجعله مثاليًا للتعلم، وإنشاء النماذج الأولية، أو الكتابة النصية السريعة. استفد من توجيهات قوية على مستوى الملفات، مثل `#:package` و `#:sdk` و `#:property`، لإدارة حزم NuGet، وواجهات برمجة التطبيقات، وخصائص MSBuild مباشرةً داخل ملف .cs الخاص بك، مع الحفاظ على التوافق مع مفاهيم MSBuild الحالية. حتى عندما ينمو البرنامج النصي ليصبح تطبيقًا كاملاً، فإن التحويل إلى تطبيق قائم على المشاريع يكون سلسًا. هذا سير العمل المبسط يبسط تجربة تطوير C#، مما يجعلها سهلة الوصول وملائمة جدًا لأدوات CLI، ونصوص الأتمتة، وأكثر من ذلك.

اقرأ المزيد

ويندوز 11 يحصل على محرر نصوص جديد لسطر الأوامر: Edit

2025-05-19
ويندوز 11 يحصل على محرر نصوص جديد لسطر الأوامر: Edit

تُقدم مايكروسوفت محرر نصوص جديدًا وخفيف الوزن لسطر الأوامر بنظام التشغيل ويندوز 64 بت، وهو Edit. هذا المحرر مفتوح المصدر، ويبلغ حجمه أقل من 250 كيلوبايت، ويتميز بميزات مثل دعم الماوس، وفتح عدة ملفات، والبحث والاستبدال، ولف الكلمات، والأهم من ذلك، تصميم بدون أوضاع لتجنب منحنى التعلم الحاد للمحررات ذات الأوضاع مثل Vim. سيتم عرضه في برنامج Windows Insider خلال الأشهر القادمة قبل أن يصبح جزءًا قياسيًا من نظام التشغيل ويندوز 11.

اقرأ المزيد

أيقونات MS-DOS الحنينية: أكثر فائدة من مدير البرامج؟

2025-05-16
أيقونات MS-DOS الحنينية: أكثر فائدة من مدير البرامج؟

شارك مستخدم وجهة نظره حول مجموعة من أيقونات MS-DOS، مدعياً أنها أكثر عملية من المجموعة الافتراضية لمدير البرامج. تتضمن الأمثلة أيقونات لـ Microsoft Basic Compiler و Microsoft Project و Close-Up 4.0، مع تسليط الضوء على استخدامها التاريخي. يشير المؤلف إلى عيوب في التصميم، مثل شعارات MS-DOS عتيقة أو تراكب غير مناسب. هذا يثير نقاشًا حول تصميم واجهة المستخدم للبرامج القديمة والحنين إلى الماضي.

اقرأ المزيد
متنوع

لغز تأخير تسجيل الدخول في ويندوز 7: هل خلفيات الألوان الصلبة هي الجاني؟

2025-04-29
لغز تأخير تسجيل الدخول في ويندوز 7: هل خلفيات الألوان الصلبة هي الجاني؟

اكتشف المؤلف، وهو مستخدم منذ فترة طويلة لخلفيات الألوان الصلبة منذ ويندوز 95، تأخيرًا لمدة 30 ثانية على شاشة الترحيب في ويندوز 7 عند استخدام خلفية لون صلب. هذا ليس وقت تسجيل دخول أطول، بل هو مهلة زمنية يتم تشغيلها عندما ينتظر النظام إشارة تشير إلى اكتمال تحميل خلفية الشاشة. خلفيات الألوان الصلبة، التي تفتقر إلى معلومات بتماف، تمنع إرسال هذه الإشارة. توجد مشكلة مماثلة مع سياسة المجموعة "إخفاء أيقونات سطح المكتب". حيث يؤدي خطأ في الترميز إلى منع إرسال إشارة الجاهزية. قامت مايكروسوفت بإصلاح هذه المشكلة في ويندوز 7 بعد بضعة أشهر من إصداره. يشرح المؤلف أيضًا تفضيله للإعدادات الافتراضية، مما يبسط الإبلاغ عن الأخطاء وحلها.

اقرأ المزيد

لا تقم أبدًا بتعليق مؤشر ترابط في عمليتك الخاصة!

2025-04-15
لا تقم أبدًا بتعليق مؤشر ترابط في عمليتك الخاصة!

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

اقرأ المزيد

لغز محول الماوس السلبي من USB إلى PS/2

2025-03-28
لغز محول الماوس السلبي من USB إلى PS/2

كانت الفئران USB القديمة غالبًا ما تتضمن محولًا أخضر لتحويل قابس USB من النوع A إلى PS/2. لم يكن هذا محولًا ذكيًا ؛ كان ميكانيكيًا بحتًا ، بدون دوائر. قام الماوس نفسه بالتحويل ، واكتشف نوع الإشارة (USB أو PS/2) وقام بضبط نفسه وفقًا لذلك. إنه مشابه لمحول طاقة بسيط - توجد الذكاء في الجهاز ، وليس في المحول. لذلك ، إذا وجدت أحد هذه الأشياء ، تذكر أنه مجرد موصل جسدي ؛ يحدث التحويل الفعلي داخل فأرة الحافلة المزدوجة.

اقرأ المزيد
العتاد محول ماوس

تصحيح أخطاء حالة السباق: فخ RtlRunOnceExecuteOnce

2025-03-23
تصحيح أخطاء حالة السباق: فخ RtlRunOnceExecuteOnce

واجه أحد الزملاء مشكلة تعارض صعبة خلال جلسة تصحيح أخطاء أسبوعية: فشل قسم حرج في منع خيطين من دخول نفس كتلة التعليمات البرمجية، مما أدى إلى فشل تسجيل مزدوج لـ `TraceLoggingRegister`. كشف التصحيح العميق عن السبب الجذري: أعادت دالة الإعداد `InitializeCriticalSectionOnce` لـ `RtlRunOnceExecuteOnce` قيمة `STATUS_SUCCESS` (0) بشكل غير صحيح. هذا أدى إلى اعتقاد `RtlRunOnceExecuteOnce` بأن الإعداد فشل، مما تسبب في إعادة تهيئة القسم الحرج في كل مرة يتم فيها استدعاء الدالة، وبالتالي إطلاق حالة السباق. كان الحل هو تغيير قيمة الإرجاع إلى `TRUE`، أو بشكل أنيق أكثر، استبدال `CRITICAL_SECTION` بـ `SRWLOCK`. يبرز هذا المثال كيف يمكن أن تؤدي أخطاء دقيقة في قيمة الإرجاع إلى عواقب وخيمة، ويشدد على أهمية اختيار البدائي المناسب للمزامنة.

اقرأ المزيد
التطوير

مُجمِّع TypeScript الأصلي: زيادة الأداء بمقدار 10 أضعاف

2025-03-11
مُجمِّع TypeScript الأصلي: زيادة الأداء بمقدار 10 أضعاف

أعلن فريق TypeScript عن منفذ أصلي لمُجمِّع TypeScript وأدواته لتحسين الأداء بشكل كبير. من المتوقع أن يؤدي هذا التنفيذ الأصلي إلى تسريع تشغيل المحرر بشكل كبير، وتقليل معظم أوقات البناء بمقدار 10 أضعاف، وتقليل استخدام الذاكرة بشكل كبير. تُظهر الاختبارات الأولية تحسينات في سرعة التجميع تزيد عن 10 أضعاف بالنسبة للعديد من المشاريع الكبيرة (مثل VS Code و Playwright). سيُدعم TypeScript الأصلي في المستقبل (المُخطط له كـ TypeScript 7) عمليات إعادة التشكيل الأكثر تقدمًا، وتحليلًا أعمق للكود، وسيضع الأساس لأدوات تطوير الذكاء الاصطناعي من الجيل التالي. سيستمر الحفاظ على TypeScript 6 (القائم على JS) لضمان انتقال سلس.

اقرأ المزيد

مشكلة دقيقة في استدعاء C++/WinRT وحلها

2025-03-09
مشكلة دقيقة في استدعاء C++/WinRT وحلها

قام طلب سحب من C++/WinRT بإصلاح غموض في استدعاء `invoke` في `winrt::impl::promise_base::set_completed`، والذي سببه البحث المعتمد على الوسيطات (ADL). أدت الترقية إلى روتينات C++20 إلى توسيع مساحة بحث ADL، مما أدى إلى العثور على `std::invoke` بشكل غير متوقع بدلاً من `winrt::impl::invoke` المقصود. تشرح المقالة آلية ADL وتوفر تصحيحًا لإصدارات C++/WinRT القديمة: عن طريق إعلان دالة `invoke` أكثر ملاءمة في مساحة الاسم `winrt::Windows::Foundation` لإرشاد المترجم. يتضمن هذا التصحيح أيضًا تأكيدًا ثابتًا لضمان إزالته تلقائيًا بعد ترقية C++/WinRT.

اقرأ المزيد
التطوير

فخ "آخر" في الإحصاءات: توافق الإصدارات والإحصاءات المفتوحة

2025-03-02
فخ

تتناول هذه المقالة المشاكل المتعلقة باستخدام قيمة "آخر" (مثل WidgetFlavor::آخر) في الإحصاءات بلغة C++. يمثل إضافة قيم جديدة للإحصاء تحديًا: كيف يتم التعامل معها وكيفية ضمان التوافق مع إصدارات الكود القديمة؟ يقترح الكاتب تجنب استخدام "آخر" تمامًا وكتابة الإحصاء على أنه مفتوح، مما يسمح للبرامج بالتعامل مع القيم غير المعروفة بشكل مستقل. هذا يحل مشاكل توافق الإصدارات بشكل أنيق، متجنبًا الارتباك عند إضافة قيم جديدة للإحصاءات وضمان انتقال سلس بين الكود القديم والجديد.

اقرأ المزيد

تحسينات كبيرة في MSVC Address Sanitizer (ASan)

2025-02-25
تحسينات كبيرة في MSVC Address Sanitizer (ASan)

حسّنت مايكروسوفت بشكل كبير جودة MSVC Address Sanitizer (ASan). لقد نجحت في نقل أجزاء رئيسية من ASan إلى LLVM، مما يسمح بدمج أسرع للتحسينات من مجتمع LLVM. علاوة على ذلك، قامت بدمج ASan في قاعدة بيانات MSVC، بما في ذلك المترجم والرابط والأدوات، مما يسمح بالكشف عن مشاكل أمان الذاكرة في التكامل المستمر. يحتوي إصدار Visual Studio 2022 17.13 على العديد من الإصلاحات، مما يقلل من النتائج الإيجابية الخاطئة، ويحسن تقارير الأخطاء، ويدير سيناريوهات متعددة العمليات.

اقرأ المزيد
التطوير

برنامج إعداد Windows 95: قصة معقدة بشكل مدهش لنظام تشغيل مصغر

2025-02-17
برنامج إعداد Windows 95: قصة معقدة بشكل مدهش لنظام تشغيل مصغر

تكشف هذه المقالة عن التعقيد الخفي لبرنامج إعداد Windows 95. لإنشاء برنامج تثبيت بسيط للوهلة الأولى، كان على الفريق إنشاء نظام تشغيل مصغر من الصفر ضمن MS-DOS، بما في ذلك مكتبات الرسومات، ومدير النوافذ، ودعم اللغات المتعددة، وحتى التوافق مع Windows 3.1. أدركوا في النهاية أنه من الأفضل بكثير استخدام بيئة التشغيل الجاهزة لـ Windows 3.1، مما يجنبهم جهود تطوير هائلة. تبرز القصة أهمية إعادة استخدام الشفرة في هندسة البرمجيات، وتكشف عن الطبيعة المعقدة المدهشة لبرنامج إعداد Windows 95.

اقرأ المزيد
التطوير

شاشة "الآن أصبح من الآمن إيقاف تشغيل الكمبيوتر": رحلة حنين إلى نظام ويندوز 95

2025-02-16
شاشة

هل تتذكر رسالة "الآن أصبح من الآمن إيقاف تشغيل الكمبيوتر" في نظام ويندوز 95؟ تحكي هذه القصة موقفًا طريفًا حدث في طائرة حيث قام أحد الركاب بجوار الراوي بإعادة تشغيل حاسوبه المحمول مرارًا وتكرارًا بعد رؤية شاشة "تم إيقاف تشغيل ويندوز"، دون أن يدرك أنه يحتاج إلى إيقاف تشغيل الجهاز يدويًا. يبرز هذا الموقف نقص إدارة الطاقة في أجهزة الكمبيوتر القديمة، ويفسر سبب تضمين ويندوز 95 للرسالة: تذكير لطيف بأنه من الآمن الضغط على زر الطاقة.

اقرأ المزيد
التكنولوجيا ويندوز 95

حكاية من اجتماع مواصفات USB: علاوة اللون الأزرق الشفاف

2025-02-10
حكاية من اجتماع مواصفات USB: علاوة اللون الأزرق الشفاف

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

اقرأ المزيد

جامع القمامة الفارغ في برامج الصواريخ: تسرب الذاكرة؟ ليست مشكلة!

2025-02-07
جامع القمامة الفارغ في برامج الصواريخ: تسرب الذاكرة؟ ليست مشكلة!

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

اقرأ المزيد
التطوير تسرب الذاكرة

إصلاح كبير في تشفير Go 1.24: تحقيق الامتثال لمعيار FIPS 140-3

2025-02-06

أعادت Go 1.24 هيكلة حزم التشفير الخاصة بها بشكل كبير لتحقيق الامتثال لمعيار FIPS 140-3. وهذا يمثل قفزة كبيرة إلى الأمام، حيث تميزت بتطبيق نقي بلغة Go (وتجميع Go) لوحدة تشفير معتمدة من FIPS 140-3، مما يلغي الاعتماد على cgo أو استدعاءات النظام. كما تم تحديث Microsoft Go 1.24، حيث أضاف دعمًا تجريبيًا لنظام macOS ودعمًا محسنًا لنظام Azure Linux، ولكنه لا يزال يستخدم مكتبات النظام للتشفير، وهو ما يختلف عن النهج الرسمي في Go. تتحكم متغيرات بيئية جديدة مثل GODEBUG=fips140=on و GOFIPS140=latest في وضع FIPS؛ حيث يتم تفعيله تلقائيًا بواسطة وقت التشغيل على الأنظمة المتوافقة مع FIPS (Azure Linux، و Windows).

اقرأ المزيد
التطوير

عيب في التصميم و إبريق شاي مخفي في شاشة توفير طاقة Windows 3D Pipes

2024-12-28
عيب في التصميم و إبريق شاي مخفي في شاشة توفير طاقة Windows 3D Pipes

حافظة الشاشة 3D Pipes في نظام التشغيل Windows المحبوبة، والمعروفة برسوماتها الرائعة للأنابيب، تخفي سرًا غير معروف: إبريق شاي نادر الظهور. هذا الإبريق تكريم لإبريق ولاية يوتا، وهو نموذج مرجعي قياسي في رسومات الكمبيوتر، لكن معدل ظهوره المنخفض للغاية أدى إلى شكاوى المستخدمين بشأن انخفاض الإنتاجية. وتكشف المقالة أيضًا أنه في إصدارات Windows القديمة، تسببت حافظة الشاشة في ارتفاع استخدام وحدة المعالجة المركزية على الخوادم نظرًا لعملية العرض بالبرامج، موصيًا باستخدام حافظة شاشة سوداء للخوادم.

اقرأ المزيد

أخطاء مُجمِّع C++: أخطاء لا معنى لها من إعلان دالة

2024-12-12
أخطاء مُجمِّع C++: أخطاء لا معنى لها من إعلان دالة

واجه مطور أثناء إضافة دعم XAML إلى تطبيق C++ سلسلة من أخطاء المُجمِّع بمجرد تضمين ملف الرأس winrt/Windows.UI.Xaml.h. نشأت الأخطاء مما بدا وكأنه إعلان دالة عادي: `template struct consume_Windows_UI_Xaml_IExceptionRoutedEventArgs { [[nodiscard]] auto ErrorMessage() const; };` كان السبب الرئيسي هو وجود ماكرو موجود مسبقًا يسمى ErrorMessage في مشروع المطور، مما تسبب في تعارض مع اسم الدالة. أنشأ هذا الماكرو كائن ErrorMessageString وأعاد مؤشرًا إلى سلسلة رسالة خطأ. أدت حدود الماكرو غير المحددة إلى تفسير المُجمِّع الخاطئ لإعلان الدالة على أنه استدعاء ماكرو، مما أدى إلى أخطاء مثل "عدد غير كافٍ من الوسائط". كان الحل يتضمن تعطيل الماكرو باستخدام #pragma undef قبل تضمين الرأس أو إزالة الماكرو بالكامل واستبداله بدالة مضمنة.

اقرأ المزيد