• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

Khaled Alshaya

المشرفون
  • عدد المشاركات

    2,052
  • تاريخ الانضمام

  • تاريخ اخر زياره

كل شيء نشر بواسطة Khaled Alshaya

  1. ايهما الاصح 9 او 1 ؟

    هي إما أنها bug فعلاً في الـ Parser أو أنها ميزة, بحيث تعتبر الأقواس أعلى أولوية من القسمة و الضرب. صحيح أنه ضرب عادي, و لكن ربما اعتبر مصمم الـ expressions أن الأقواس لوحدها تعتبر أقوى من الضرب باستخدام رمز الضرب و القسمة.
  2. أجد جواب الأخ bahmani الأكثر إقناعاً بالنسبة لي :)
  3. أسئلة الاحتمالات دائماً تحتاج إلى فهم عميق حقيقة, و لكن قلبت السؤال في رأسي و أرى أنه لم يتم التصريح عن أي علاقة بين وجود الطائرة في أي من المناطق الثلاثة, و بالتالي بما أن هذه الـ Random Variables مستقلة عن بعضها, فاحتمال إيجاد الطائرة في المنطقة جـ لا يتغير. بمعنى آخر, ماذا يعني أن لا تجد الطائرة في المنطقة أ و المنطقة ب؟ حسب السؤال, فهذا لا يعني أي شيء و بالتالي, فإن الاحتمال لا يتأثر.
  4. شكراً جزيلاً, ربما يكون المؤتمر الأفضل في العالم حول ++C :cool: فقط ملاحظة بسيطة, ++C الجديدة تم نشرها بشكل رسمي من قبل ISO قبل بضعة شهور. إضافة أخرى, أعتقد أن Herb Sutter قائد حقيقي لـ ++C في Microsoft. قبل فترة مر موضوع دعم VCpp لـ C++11, و كيف أنه متأخر من ناحية اللغة و متقدم ناحية المكتبات مما خلق مشاكل كثيرة مقارنة بـ GCC الذي تقدم على الجميع في طرح الميزات الجديدة تقريباً 90% من اللغة. الذي أضافه Herb في هذا المؤتمر هو أن Microsoft لن تلتزم بجداولها الزمنية بخصوص Visual Studio و سيتم تحديث VCpp في فترات أقصر لدعم الميزات أولاً بأول. و هذا شيء رائع سيعيد VCpp للريادة على منصة Windows.
  5. هل تعرف أن الconsol يمكنها فعل ذلك ؟؟

    انظر إلى أول مشروعين لدى هذا المبرمج ;) http://benryves.com/products/
  6. virtual machine

    الـ virtual machine هو مصطلح يطلق على مدى واسع من المفاهيم, من عالم البوابات المنطقية إلى الـ application virtual machines. ماهي الطبقة التي تتكلم عنها بالضبط؟
  7. هل هناك أحد معه Comeau C++ Compiler

    اعرض البرنامج و الخطأ أخي العزيز ربما المشكلة بسيطة, يمكنك تجربة Comeau دون شرائه, على الصفحة التالية: http://www.comeaucomputing.com/tryitout/
  8. بالطبع لو كنت صاحب Twitter :P فسيكون لديك أكثر من خادم! عندما تريد تلخيص المعلومات كلها أو جزء كبير منها, لن تستطيع جمعها في مكان واحد للعمل عليها, و ستضطر لتلخيص المعلومات محلياً ثم جمع النتائج, هذه هي map/reduce ليست سحراً و لا شعوذة, الفكرة أنه لو كان لديك 20000 خادم هل يستغلها الـ framework حقاً, أم أنك تقوم بإهدار مواردك في عمليات الاتصال الغير لازمة على افتراض أن الخوارزمية التي تعمل محلياً هي أفضل ما وصلت إليه؟
  9. شكراً أخ عبدالله على الموضوع, درس رائع على الواقف :) جوجل تستخدم نظام ملفات خاص لتطبيقاتها الموزعة لكي تحصل على أعلى أداء مقابل كل قرش يدفعونه في هذه الأجهزة. الفكرة من وراء Hadoop هي نفس الفكرة من وراء نظام الـ map/reduce المستخدم في جوجل. الفكرة نفسها سهلة بمجرد أن تفهم الأساسيات و لكن هناك الكثير من القرارات "الهندسية" للـ framework التي ستعقد المسألة لو لم تفهم الأساس. ببساطة Map/Reduce عبارة عن دالة يتم تطبيقها على مصفوفة من المتغيرات(قد يكون كل متغير مجموعة من العناصر) و هذا هو الـmapping. ثم يتم تطبيق عملية اختزال للحصول على المطلوب, و عملية الاختزال عبارة عن دالة أخرى تطبق على نواتج الـ mapping و هذا ما يقصد به الـ reduce. خذ مثلاً, لو أن لديك مليون صفحة. و كان لديك عشرة أجهزة, و كل ما تريده هو معرفة تكرار كل كلمة موجودة في تلك الصفحات. سيكون لديك الدالة التالية افتراضاً: hashtable<string, int> count_words(Page page); الآن هذه الدالة ستعمل على العشرة أجهزة, بحيث أن كل جهاز يعد ما استطاع من الكلمات في الصفحات التي تصل إليه. هذا هو الـ mapping, أي قمنا بعمل mapping من الصفحات إلى عدد الكلمات فيها. الخطوة التالية, هي اختزال تلك المعلومات لأنها ما زالت مجزأة, بحيث أن لدينا عملية أخرى و هي جمع الـ hashtables التي لدينا مع بعضها البعض reduction: hashtable<string, int> combine_hashtables (hashtable<string, int> first, hashtable<string, int> second); ربما يقوم كل جهاز بطلب الـ hashtable الخاص بالجهاز الذي يليه, و هكذا حتى تتم العملية و نحصل على hashtable يحوي تكرار المليون صفحة التي وزعت على الأجهزة. في النهاية, إذا استخدمت framework فأنت تكتب الـ mapping function و الـ reduction function و تترك الباقي(تقريباً) للـ framework لكي يوزع العمل بالشكل الأفضل. الآن عندما تنزل من عالم الأحلام و النظريات, فإنك تحتاج إلى Framework لنقل البيانات, و لنقل الكود و جدولة توزيع المهام scheduling و fault tolerance و هذا ما توفره هذه الـ framework. فكرة الـ map/reduce كلها يمكن تلخيصها في التالي إذا أردت أن تكون دقيقاً: قواعد البيانات العلائقية, قد تستخدم في الأجهزة كـ implementation detail و لكن لا تعتقد أبداً أن المشكلة فعلاً في تعلم إحدى تلك الـ frameworks لكي تصل إلى النجوم. المشكلة كلها في إمكانية حل المسألة التي لديك بحيث أن المشكلة يمكن أن تجزأ إلى أجزاء أصغر منفصلة عن بعضها "يمكن جمع النتائج فيما بعد", و الباقي أمور روتينية!!! عندما تكون أجزاء المشكلة تعتمد على أجزاء أخرى أي هناك dependency فإنك لن تستفيد أي شيء من وراء الـ map/reduce و ستحتاج لشراء supercomputer لحل المشكلة :blush:
  10. كيفية عمل Multithreading UDP Server؟

    أخي قم باستخدام ThreadPool و دالة الـ Response التي تجيب على كل Request ثم عند وصول أي Packet جديدة قم بعمل submit للـ request في دالة الـ response في الـ ThreadPool. إنشاء Thread لكل طلب جديد هي عملية غير مجدية, و ليست طريقة جدية فعلاً لأن معالجة الطلب و إرسال الرد قد يكون أبسط من إنشاء Thread و إنهائها في كل مرة. الطريقة الأفضل هي باستخدام Asynchronous Sockets و عندها يصبح من السهل جداً استخدام العدد الذي تحبذه من الـ threads. و لكن سيختلف تصميم البرنامج جذرياً. تحياتي..
  11. خخخخخ لاحدود للـ hardcoding :blink:
  12. الله يحييك أخي عيسى, في سوريا يستخدم الثريا بشكل كبير في تحميل المقاطع خصوصاً في المناطق المنكوبة. في المكان الذي ولدت فيه مثلاً, قطعت الكهرباء و الماء لأيام عديدة متواصلة. أصلاً أصبحت العادة أن تأتي الكهرباء و المياه نادراً في حمص, خصوصاً عندما تتحدث عن مناطق مثل باب عمرو. تحياتي...
  13. لا أعتقد أبداً أن الشبكات الاجتماعية كانت سبباً في التغيرات السياسية الحاصلة, بل على العكس كانت زيادة استخدامها نتيجة لهذه التغيرات الطارئة في وقت قصير. كانت في الزمان و المكان المناسبين باختصار! في الحقيقة أنها استخدمت كوسيلة اتصال أساسية أو ثانوية, على حسب ضبط الحكومات لسياسة الوصول! أتفق مع M.B.O في هذه الأمر, و كنت قد كتبت وريقات حول الموضوع لمن يهمه الأمر حول تاريخ و تطور الشبكات الاجتماعية في العالم العربي. هذه مسودة وليست نسخة نهائية, و لكن صالحة للقراءة. خلصت في النهاية إلى التالي: CONCLUSION Social networks are becoming main-stream in the Arab world. The number of internet users is increasing, hence the number of social networks users. Social networks are used as a main or an alternative channel of communication for personal communication, business relationships or political campaigns. The issue of privacy is an important obstacle that can’t be solved without real attention from users. Technological challenges are still in the way, but the advancement in architectures is alleviating these challenges. Although there are many social networks now days, Facebook, YouTube and Twitter are the most popular in the Arab world. It is expected that the introduction of broadband connections in the poor parts of the Arab world, would allow more users will join social networks. هناك قطعة عن التأثر و التأثير على السياسة: POLITICS AND FREEDOM OF SPEECH The “Arab Spring”, revolutions, has brought the attention of millions of Arab citizens to the viable benefits of social networks as an alternative communication channel and in some cases as the only mean of communication. Social networking in general, is considered the tool of choice for promoting freedom of speech and human rights in the Arab world and in Egypt especially which is ranked fourth with respect to the number of users on Facebook (Kim, Jeong and Lee).Tal Al-Mallouhi is a 19 years old female who was arrested at the age of 15 because of her writings on Facebook about the lack of freedom of speech and the dictatorship of Bashar Al-Asad in Syria (Ghannam). In the USA social networks has been used in more advanced ways as in the case of promoting election campaign. For example, Obama’s campaign for presidency used social networks to a large extent and it has been shown to be an effective way of promotion (Kim, Jeong and Lee). The nature of social networks allows users to generate content that can spread quickly across the world, unlike traditional media where the control is not in the hand of consumers in addition to the low or no cost of generating content on these networks. جانب آخر مثير للاهتمام, و هو أن العلاقة بين ثقة المستخدمين عند إعطاء معلوماتهم, و القابلية لمقابلة الشخص الآخر في الحقيقة متضادان! بمعنى أن المستخدمين يضعون بيانات حقيقية أكثر في Facebook و لكن مستخدمو MySpace يتقابلون أكثر في الحقيقة, و السبب هو أنه عند حصول مشكلة تكون المشكلة أصغر في حالة MySpace لأن هناك معلومات أقل عن الشخص و بالتالي خوف أقل من المشاكل و إمكانية التتبع!!! أود سماع آراء من لديهم وقت حول الورقة, من فضلكم بالطبع... The History and Evolution of Social Networking in the Arab World.pdf
  14. الحوسبة الكمومية

    لكي تفهم الموضوع, كما في الحوسبة الكلاسيكية, يمكنني أن أخبرك من ناحية رياضية و يمكن أن تنظر للأمر من ناحية هندسية. من الناحية الرياضية, فلو تصورنا أن لدينا ثلاث بتات, فإنه في الحوسبة الكلاسيكية, هذه الثلاث بتات تكون عنصراً في مجموعة مكونة من ثمانية عناصر: S = { 000, 001, 010, 011, 100, 101, 110, 111 } في حالة الحوسبة الاحتمالية فإن كل عنصر في تلك المجموعة يعطى احتمالية. بالتالي فإن الثلاث بتات قادرة على تمثيل ((كل)) الاحتمالات. الخوارزمية تعمل على جميع العناصر للوصول إلى النتيجة المطلوبة و إعطاء الاحتمال الأكبر لأحد العناصر داخل تلك المجموعة. هذا يعني تغيراً جذرياً في الخوارزميات لأن الخوارزميات لم تعد تعتمد على "حالة" و إنما تعمل على احتمال كون الثلاث بتات في حالة معينة, و اختيار حالة من تلك الحالات observed state على أنها ناتج الخوارزمية. هندسياً, يمكنك التفكير على أننا نريد تغيير الـ configuration للالكترونات في الحاسوب الكمي :) عموماً, كلامي غير دقيق لأنني حقيقة لم استطع فهم الموضوع أكثر من ذلك, و يكفيني شرف المحاولة خصوصاً عندما تعرف أنك تحتاج إلى أن تكون نينجا في الرياضيات لكي تفهم أبسط الخوارزميات و كيف يمكن تطبيقها على حاسوب كمي :blush: تحياتي...
  15. بصراحة S2 إبداع, و أندرويد برأيي هو المستقبل, خصوصاً مع بزوغ فجر النسخة الرابعة التي ستوحد النسخة الثانية الموجهة للـ smart phones و النسخة الثالثة الموجهة للـ tablets. أكثر من أكرهه حول جميع الـ smart phones هو البطارية! البدء في برمجة Android سهل جداً مقارنة بالبدء في برمجة أي نظام آخر(برأيي). اللغة Java و هي لغة مشهورة جداً حتى العبدلله يتقن ما تيسر منها. المكتبات مكتوبة بشكل جيد و التوثيق ممتاز. لا أدري إن كانت MSDN تتفوق في هذه النقطة. يمكنك استخدام بيئة التطوير Eclipse و لكنني فضلت تعلم البداية باستخدام أدوات الـ framework الأساسية, و هي منظمة جداً برأيي.
  16. ماهي المشاكل التي تتوقع حدوثها؟ يبقى عليك كتابة منطق البرنامج, و باعتقادي أنك ستحتاج لمكتبات عديدة بالإضافة إلى asio مثل Boost.Serialization إذا كنت تقوم RPC مبسط. ماهو بالضبط البروتوكول الذي يقبع فوق tcp(هل ستستخدم udp أصلاً؟!). هناك مكتبات في Boost ستسهل عليك كثيراً في هذا المجال, و لكن اطرح وظيفة التطبيق ربما يكون هناك مكتبات مساعدة لوظيفة البرنامج و ربما بشكل عام للمهام الأساسية.
  17. الـ defacto بالنسبة للـ transportation layer في عالم ++C هي asio. و هي تدعم إنشاء اتصالات مشفرة باستخدام OpenSSL حسبما أذكر. المكتبة اتفق على أنها المكتبة القياسية القادمة للـ sockets و لكنها defacto حالياً.
  18. أخي العزيز, الموضوع لا يمكن الحديث عنه بهذه البساطة. لأن تمدد النظام يمكن أن يكون طولياً و يمكن أن يكون عرضياً. التمدد على مستوى النظام نفسه في الغالب سيكون اتوماتيكياً بمجرد إضافة موارد جديدة. المعضلة هي استغلال الموارد المضافة بشكل كامل أو قريب ذلك. يمكنك تخيل وجود وحدات حسابية متصلة ببعضها البعض. فإذا قمت بإضافة معالج جديد فهذا تمدد طولي في نفس الوحدة الحسابية, في التمدد العرضي يتم إضافة وحدات حسابية جديدة. الطريقة المثلى للتمدد الطولي, هي ببناء asynchronous system بحيث يكون هناك piping أو إذا كان نظاماً ضخماً كفاية ستجد أن هناك نظام مستقل يرتب عملية تدفق البيانات. التمدد العرضي, يكون بأن تصمم النظام حسب معالجة البيانات, بمعنى أنك تحدد تدفق البيانات Data Flow. ثم تقوم بإسناد الوحدات الحسابية و تكوين نظم تابعة للنظام الأساسي في كل node بحيث تقوم بمعالجة البيانات. هذه الفكرة كـ best practice. و لكن ستجد الكثير من التصاميم و كل نظام و له احتياجات و متطلبات خاصة. Google أحد الأمثلة التي تتبع التصميم الذي تكلمنا عنه. و لكنهم تخطوا المبادئ بشكل واضح فلديهم نظام ملفات خاص لهذا النظام!!!!!!! عندما تخرج من التمدد الطولي shared memory, إلى التمدد العرضي distributed memory فستحتاج للتفكير في وسائل نقل البيانات, و الطريقة المثلى للتواصل بين الوحدات الحسابية, و هذا موضوع لوحده! تحياتي...
  19. برأيك هل يعمل بشكل صحيح؟

    عزيزي, ما لديك هو undefined behavior لأنك تقوم بعمل dereferencing لمؤشر يشير لمتغير automatic قد انتهت حياته بعد الخروج من الدالة. ابحث عن موضوع الـ dangling pointers و ستفهم المشكلة, تحياتي...
  20. ما معنى pragma intrinsic

    عزيزي, الـ Intrinsic هي دوال موجودة في المترجم نفسه(و ليس في المكتبات). بمعنى أن المترجم سيقوم بتحليل الكود و إدراج قالب يقوم بتحويره ليحصل على أفضل نتائج. الفرق بينها و بين الدوال, أن المترجم لا يتدخل في تحوير كود المكتبة للحصول على أفضل نتائج, أي أن تحليل الدوال مثله مثل تحليل برنامجك. بالنسبة للـ inline فهي مشابهة في النتيجة, و لكن كما قلنا عملية الـ inlining هي عملية عمياء, بينما الـ Intrinsic عبارة عن دوال يتم تطبيقها بتحليل الـ context للكود الذي يناديها. عموماً, لا تشغل بالك إلا إذا كان لديك حاجة مخصوصة لها مثل استخدام SSE أو أن أحد دوال مكتبات C لا يعطي نتائج مرجوة. الـ Intrinsics قليلة جداً مقارنة بدوال مكتبة C, و في الغالب عبارة عن مجموعة أساسية من الدوال.
  21. السلام عليكم و رحمة الله و بركاته.... منذ زمن طويل لم نشاهد استفتاءً عاماً في المنتدى. شاركونا خبراتكم و أدواتكم المفضلة سواء في العمل أو في أوقات الفراغ. لا تضع بيانات عن مكان عملك, مجرد وصف بسيط لعملك أنت, و دورك في العمل. بالنسبة للهواية, فنرحب بأي روابط لمشاريعك الخارجية و وصفك لبيئات التطوير التي تحب العمل عليها. الاستفتاء ليس فقط على لغات البرمجة, و لكن على جميع جوانب البيئة, مثلاً ماهو نظامك و كم شاشة تستخدم, و ماهية التطبيقات التي تنتجها في العمل أو كهواية و ماذا عن محررك المفضل, و عن لغات البرمجة المستخدمة, و ماهي الأدوات المساعدة التي استخدمتها مثل الـ Source Control و خلافه مما لا يتسع تعداده. شاركنا المعرفة :)
  22. ماشاء الله أخ وجدي, سجل حافل :)
  23. جميل, هل من الممكن أن تعطينا فكرة عن عملك عليهم, لماذا تحتاج إلى أربعة أجهزة, بصراحة يبدو أنك تعمل في مكان رائع :cool:
  24. شكراً لجميع المشاركين حتى الآن, نود أن نرى المزيد :) صدقني لن تندم مهما صرفت على الأمر حتى لو من جيبك, لا أتذكر كيف كانت حياتي قبل أن أستقر على جهازي الحالي. دائماً ما أجد الأمور معقدة بشاشة واحدة, و أتمنى تجريب ثلاث شاشات متساوية في الحجم, أفكر في شراء ثلاث شاشات مقاس 21 و لكن في المستقبل إن شاء الله.
  25. هلا بالعزيز caballero :) أخ سعود, الموضوع تم اقتحامه من القوات الخاصة في المنتدى :lol: