xfce او lxde خيار جيد لان يونيتي اصبح لا يطاق
1
لا يوجد لغة و لا تكنلوجيا محددة فمثلا لو نتكلم على الفيس بوك من خلال حسابهم على github نستنتج انهم يستخدمون الكثير من الغات على اختلافها فلكل مشكل لغة مفضلة و تكنولوجيا مفضلة لا يوجد لغة خارقة تحل جميع المشاكل لدي اضافة بسيطة لا داعي لذكر الجافاسكربت لانها اللغة الوحيدة التي يمكن الاعتماد عليها من جانب المتصفح و تعمل على جميع المنصات تقريبا لذا معلومات حول الفريمروك افضل
المشكلة ليست مشكلة لغة و ليست مشكلة من الاساس اللغة الانجليزية هي اللغة الرائدة في عالم التقنية و التي تدرس بها التقنيات و تكتب بها الابحاث و المقالات الاكاديمية و بما ان اول مطوري اجهزة الاعلام الآلي و لغات البرمجة ناطقين باللغة الانجليزية فلا تنتضر منهم لغة اخرى هناك لغات مثل windev يمكن ان تبرمج بها بالفرنسية و انا هنا اعني لغات حقيقية و ليست لغات غرضها التعليم
نمور المشاريع في الجانب التقني تمر بعدة مراحل في المرحلة الاولى من المستحسن استخدام اطار عمل لتجنب المشاكل التقنية في المستوى المنخفض + مشكلة الامن + مشكلة تتبع المعايير و المقاييس و لكت كن على علم انك في مرحلة من المراحل سوف تبدأ باستبدال اجزاء من اطار العمل الدي بدأت فيه لتحل مشاكل معينة تواجها المواقع العالمية كلها الى ان تخلص في الاخير الى اطارك الخاص الدي يكون مثل الزي المخاط على مقاسك و هذا عمل يتطلب تركيز و خبرة
الاستراتيجية المتعبة قد تكون مختلفة من بيئة الى اخرى و لكن في العموم * ايقاف الموقع و اقصد بذالك حصر الوصول الى الموقع ب ip الخاص بك فقط على جميع المنافذ * تفحص آخر الملفات المتغيرة ( لا اثق في نتائج هذه المرحلة لانه من الممكن تغير ذالك عن طريق الامر touch ) * محاولت عمل مسح لملفات الموقع بطريقة يدوية و اوتوماتيكية في نفس الوقت مثل استخدام clamav + grep لانو في الغالب يترك المخترقون php backdoors * تصفح
لدي اضافة فيما يخص مشاركة القائمة السوداء من الافضل ان تستخدم git لمشاركتها و في كل commit يقوم بها احد الخوادم تضع في الرسالة الخادم + السبب بهذه الطريقة سوف تربح الكثير من الامور و المعلومات التي تفيدك في معرفت ماحصل + تقلل من المعلومات التي تنقل في الشبكة لانك سوف تشارك فقط التحديثات و ليس الملف الكامل و لهذه النقطة اذا لم تعجبك فكرة استخدام git من الممكن استخدام rsync
لدي تعقيب على بعض ما جاء في التعليقات البرامج صعبة التنصيب و الازلة ؟ * اضن ان هذا الكلام غير دقيق فحسب ما اذكر من آخر مرة علمت فيها على ويندوز في بعض الحالات تحتاج الى برامج خارجية لكي تتمكن من ازالة برنامج من الويندوز ,,,, * اما على لنكس فهو يتبع فلسفة كل شيئ ملف و هذا يسهل في ازالة البرامج حيث تكون مجرد ملفات * اما نقطة اعتماده على الانترنت هو خطئ من المروجين لنضام لنكس لان حتى
و لما لا ؟ الجابة القصيرة : نعم ممكن تريد مثال ؟ youtube انطلاقه كان python http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html الاجابة الطويلة : في الوقت الحالي بناء تطبيق من الصفر لهدف غير تعليمي سيكون خسارة كبيرة للوقت و الجهد فعليك التفكير اولا كيف ستربط python بال web server و امور اخرى كثيرة تحتاج الى ميادين تخصص مختلفة و لكن ادا المشروع يستاهل فلما لا
لا أعتقد ذالك فمحاولت الفيس بوك مثلا انشاء حسابات بريدية لكل مستخدم بطريقة اوتوماتيكية هي محاولة منه للسيطرة على هذه الخدمة حيث انها تمثل اكثر من خدمة فهي على مستوى الانترنت تمثل الهوية كل موقع تسجل فيه يطلب منك بريدك لانه يمثل الى حد بعيد هويتك و شخصيتك عن تجربة شخصية مر فريق التطوير بفترة لاعادة هيكلة و برمجة نضام ارسال البريد الالكتروني الاسبوعي و اثناء فترة معينة اوقفنا ارسال البريد و كان هناك انخفاض محسوس في عدد الزوار مما
استخدم في الوقت الحالي couchdb نضرا لبعض الميزات المتواجدة به و التي يحتاجها المشروع الذي أعمل عليه ما عدى هذا ارى الكثير من المبرمجين يستخدمون حلول خرى مثل mongodb بشكل متزايد و اعتقد انه الأكثر سهولة في التنصيب و الاستخدام مقارنة مع حلول اخرى مثل hadoop/habse - cassandra و التي تعتبر تصنيف آخر من محركات nosql هناك موقع جميل على النت يقدم نبذة عن اغلبية المشاريع في المجال http://nosql-database.org/
عن تجربة شخصية و بعد مشاركتي في حوالي 3 مشاريع خلصت الى ما يلي * ابحث عن اشخاص تجد فيهم ما لا تجده في نفسك - خبرة - قدرات - مال - . . و بالنسبة لي هذه اهم نقطة فلا حاجة الى شخصين من نفس المجال الا عندما تكون هناك حاجة ملحة لذالك * اختر من لديه قناعة بالفكرة و مستعد للعمل معك و تقاسم المخاطر * القدرة على التواصل المباشر و حسن المعاملة و الخلق امر مهم جدا
الشركة التي اعمل لديها انتقلت الى استخدام openVZ منذ حوالي 6 شهور و النتائج كانت طيبة مع ادراك ان استخدام مثل هذه التقنيات يحتاج الى خوادم قوية الا انه يفور : * السرعة في استعادة الانضمة و عمل نسخة احتياطيها لها فمجرد ضغطة ممكن تستعيد النضام في حالت حدوث مشكلة افضل من ساعات في التنصيب * المساحة + الطاقة المستهلكة تكون اقل من لو استخدم اجهزة فزيائية * التحكم في الموارد و الوصول اليها بشكل افضل مثلا لو طلب شخص
انا اتحدث من دولة اعرفها و اعلم ان الكثير من الدول العربية تعيش نفس الضروف لذا يجب معالجة المشاكل التالية : * البيروقراطية التي تحبطك و تقسم ضهرك في كل خطوة تقوم بها * فرص العمل و خصوصا للشباب قليلة و ان توفرت فبرواتب محبطة * لا يجود صناعة للتقنية في بلادنا العربية ما عدى بعض الدول التي لا تتجواز اصابع اليد الواحدة و حتى في هذه الدول العمالة معضمها ان لم اقل كلها اجنبية او درست على الاقل في
الحل في رأي رغم اني غير واثق من نجاحه في وسطنا العربي * موقع على الشبكة للتعريف بالمنتوج + مدونة تدونون فيها في مجال اختصاصكم او المجال المستهدف من طرف برمجياتكم * نسخة مجانية تجريبية تساعد في اكتشاف مدى جودت المنتوج المقدم * محاولت عمل مقارنة اجابية صادقة لمنتوجكم مع العلامات التجارية المتوفرة حتى تتمكن من اقناع العميل باختياركم * الصبر . لان الكل يعرف في شركات عملت في المجال لسنوات قبل ان حصدت ثمار حقيقية من مشاريعها
كل الاجابات كانت وافية و كافية و لكن ما أضيفه هو التالي : اذا كان الموقع الذي تعمل عليه شديد الاهمية فلا تعتمد كليا على لغة البرمجة او المنصة لكي توفر لك الحماية لانك لا تعلم حقا اذا كانت توجد تقنيات للتخطي ام لا لذا من الافضل العتماد على سياسة white list & black list لتحمي تطبيقك من اي input غير متوقع او مشبوه
الانماط التي استخدمها بشكل يومي مع المشاكل البرمجية التي اوجهها هي MVC,Adapter و في بعض الحالات تجبرك الضروف على استخدام انماط ليسها لها اسم بل هي وليدة المشكلة التي تقع فيها مثلا اذكر من زمن استخدم نمط يعتمد على تقسيم الشفرة حسب http method و كان افضل من لو استخدمت MVC في تلك الحالة ثم اكتشفت ان له اسما xD Post/Redirect/Get (PRG)