Rojan Mustafa

الأعضاء
  • المساهمات

    24
  • تاريخ الانضمام

  • تاريخ آخر زيارة

السُّمعة بالموقع

7 Neutral
  1. تحتاج إلى كادر كبير من أجل إنجاح مثل هذه التطبيقات لأنها تشمل على العديد من الأقسام مثل: قسم التصميم قسم البرمجة والتطوير قسم التسويق قسم الدعم الفني الكول سنتر قسم المحاسبة قسم الموارد البشرية
  2. Secure Network Architecture: يقصد بهذا المفهوم بنية الشبكة فائقة الأمان أو بنية الشبكات الآمنة وهو مجال يجمع بين هندسة الشبكات وأمن المعلومات. تلبي هذه البنية جميع المتطلبات التنظيمية التي من شأنها حماية تبادل البيانات عبر الشبكة وتحد من احتمالية الحصول على المعلومات طالما أن جميع المكونات المعمارية تتم إدارتها وصيانتها ومراقبتها بشكل صحيح. على الرغم من أن هذه البنية تستخدم عدداً من طبقات الأمان (مثل التشفير والجدران النارية وخوادم Kerberos والمصادقة أو Authentication) التي يتم تنفيذها من خلال مجموعة متنوعة من الإجراءات الأمنية، إلا أنه لا يمكن لأي نظام توفير الحماية المطلقة للبيانات. بل يمكن ذلك فقط من خلال اليقظة المستمرة والتحديثات ومراقبة الأداء. Network Hardening: هو عملية تقوية الشبكة وحمايتها عبر التقليل من المخاطر التي قد تتعرض لها الشبكة وذلك من خلال القيام بعدد من الإجراءات وإتبع إستراتيجيات محددة مثل: تثقيف الموظفين - لا ضرر أبداً من تعليم الموارد البشرية وإجراء تدريب على أمن الشبكة كمتطلب لتحقيق الامان المستمر. يجب على المسؤولين إجراء مناقشات منتظمة مع الموظفين عند حدوث خرق كبير، موضحاً أحدث الطرق التي يمكن من خلالها مخترقي الإنترنت الوصول إلى الشبكات والأضرار التي يتسببون بها. كجزء من عملية التعليم، يمكن لقسم تكنولوجيا المعلومات إنشاء محاكاة حتى يتمكن الموظفون من رؤية كيفية حدوث هذه الهجمات من أجلتوظيف مساعدتهم لتحديد نقاط الضعف المحتملة. تبني ثقافة "صفر صقة": لا ينبغي الثقة المطلقة بأي شيء عندما يتعلق الأمر بأمن الشبكات، بحيث يمكن الإعتماد في الولوج إلى البيانات على المبدأ التالي: المصادقة، الولج، وتقسيم كل شيء. المقصود بالتقسيم هنا، عدم إعطاء كامل الصلاحيات حتى لو تمت المصادقة، بل يجب تقسيمها لتحقيق درجات أمن اعلى. أتمتة إدارة الإعدادات وتحديثات البرامج الثابتة: الإعدادات والتحديثات هي من أساسيات عمليات الحماية والامان، يجب التأكد من عملها بشكل مستقر وعدم الضرر بإعدادات التكوين السابقة عند إضافة ميزة جديدة إلى الشبكة، وذلك عبر القيام بأتمتمة هذه الإعدادات والتحديثات للتأكد من عدم لحاق ضرر بالشبكة. تأكد من تكوين جدار الحماية بشكل صحيح وأن جميع القواعد الخاصة بالولوج إلى الشبكة او العبور منها يتم تدقيقها بانتظام، تأمين نقاط الوصول والمستخدمين عن بعد، حظر أي منافذ شبكة مفتوحة غير مستخدمة أو غير ضرورية، تعطيل وإزالة البروتوكولات والخدمات غير الضرورية، تنفيذ قوائم الوصول وتشفير حركة مرور الشبكة. Implicit Deny: كما ذكرنا سابقاً، يجب تفعيل جدران الحماية وتحديد جميع القواعد الخاصة بالولوج إلى الشبكة، المقصود هنا بالـ "الرفض/النفي الضمني"، لا تسمح بولوج أي شيء لم يتم منحه إذناً محدداً وانتقائياً مسبقاً وتعامل معه على أنه مريب ومثير للشك. تسمح حدود الشبكة التي تتبع مفهوم الرفض الضمني فقط بعناوين IP محددة و/أو منافذ محددة، في حين يتم حظر غير ذلك. Analyzing Logs: غالبًا ما تلتقط السرفرات معلومات السجل الخاص بالنظام (syslog) من جميع أجهزة البنية التحتية المستخدمة في الشبكات مثل جدران الحماية وأجهزة التوجيه والمحولات والخوادم وأنظمة التشغيل الهامة الأخرى. ويجب مراجعة هذه السجلات للتحقق من سير تبادل البيانات بالشكل المطلوب، وعند حدوث أي خطأ محتمل في الشبكة، غالباً ما يمكن مراجعة هذه الأخطاء أيضاً في هذه السجل من أجل إستكشاف الخطأ وتصحيحه. Normalizing Log Data: يتم جمع السجلات من مختلف الأجهزة والخوادم المتصلة بالشبكة بالعديد من الأنماط والأشكال، الأمر الذي يجعل عملية جمع وتقييم هذه السجلات صعبة نوعاً ما لأن كل جهاز قد يعتمد على نظام أو بنية خاصة للسجلات. وهنا يأتي دور Log-Normalizer. يعتبر هو المسؤول عن تحويل السجلات إلى تنسيق موحد وقياسي بحيث يمكن للبرنامج المستخدم في تحليل هذه السجلات أن يفهمه بسهولة ويضعه في قاعدة بيانات السجل العادي بعد ذلك لفحصه. Correlation Analysis: هذا المصطلح عام نوعاً ما، وحتى لو كنا نتكلم في سياق الشبكات فهل المقصود هنا تحليل الترابط بين الأجهزة في الشبكة أم بين البيانات. بشكل عام يتم حساب الـ Correlation بين متغيرين أو أكثر لدراسة مدى التقارب بينها وكيفية تأثر واحدة بتغير الأخرى.
  3. يمكنك نقل قاعدة بيانات مهما كان نوعها إلى postgresql بإستعمال pgLoader وستجد الطريقة بالتفصيل في الرابط ادناه. النقل من قاعدة بيانات غير postgre إلى postgre. ولكن توجد طريقة أو لنقل خدعة أخرى لنقل البيانات من قاعدة إلى أخرى. لنفترض أنك على دراية كاملة بكيفية الإتصال بقواعد البيانات وإعدادات ملف database.yml ولديك بالفعل قاعدة بيانات رقم 1 وتريد نقل البيانات إلى قاعدة بيانات رقم 2. أولا قم بسحب هذه البيانات إلى ملف seeds.rb عبر إستخدام الجوهرة gem 'seed_dump' ثم وبكل بساطة قم بتشغيل الأمر: rake db:seed:dump وسيتم حفظ جميع البيانات في ملف الـ seeds يمكنك بالتأكيد حفظ جداول معينة دون الأخرى أو تحديد عدد السجلات التي تريد سحبها كالتالي: rake db:seed:dump MODELS=User LIMIT=1 وبعد أن يتم ذلك، اتصل بقاعدة البيانات رقم 2 وشغل الأمر: rake db:seed بالتأكيد يجب ان تكون أسماء الجداول والحقول متوافقة، ولكن يمكن تغيير هذه الأسماء من ملف seeds.rb بعد سحبها من قاعدة البيانات رقم1.
  4. أنصح بشدة بإستعمال HAML عوضا عن erb في إطار العمل Rails، من أجل سهولة العمل والقراءة وفهم الكود، حيث توفر HAML طريقة أبسط بكثير في كتابة الأكواد في صفحات الـ views. للتنصيب قم بإضافة الجوهرة التالية إلى ملف الـ gemfile gem "haml-rails", "~> 2.0" شغل الأمر: bundle install من أجل تحويل جميع ملفات erb إلى HAML قم بتشغيل الأمر: rails haml:erb2haml والآن كيف يبدو الأمر في كل من erb و HAML: erb: <%= '<%= مرحبا بالعالم %>' %> Haml: = '<%= مرحبا بالعالم %>' erb: <% @notes.each do |note| %> <h2><%= note.title %></h2> <p><%= note.content %></p> <% end %> HAML: - @notes.each do |note| %h2= note.title %p= note.content كما أنه توجد بعد المواقع لتحويل الـ HTML erb إلى HAML: http://htmltohaml.com
  5. لما لا تجرب ngrok وسيكون بإمكان الجميع من لديه وصول إلى الإنترنت (بطبيعة الحال) إلى الوصول إلى تطبيقك. سرفرات ngrok المجانية تعمل 8 ساعات وبعدها يجب تشغيلها مجددا، كما أنها بطيئة نسبيا لكنها مناسبة جدا لتجربة التطبيق لأن هناك بعض الخواص لا تعمل في localhost. يقوم ngrok بتعيين رابط خاص بالمنفذ الذي قمت بتحديده. يجب أولا تنصيب ngrok كالتالي: npm install ngrok -g وبعد تشغيل التطبيق سواء باستخدام أي من الأمرين: puma rails s سيكون بإمكانك تشغيل الأمر التالي من الترمينال: ngrok http 3000 ولكن تأكد من أن تطبيقك يعمل بالفعل على البورت 3000 ستحصل حينها على رابط التطبيق كالتالي مع ملاحظة ان هذه الطريقة ليست فقط للـ Rails:
  6. بالإضافة إلى إستعمال مكاتب I18n التي تستخدم للترجمة بشكل كبير في تطبيقات Rails حتى في المواقع أحادية اللغة (الغاية من الإستعمال في هذه الحالة هو عدم إدراج أي محتوى نصي ستاتيكي أو فقرات نصية في ملفات الـ views، بحيث يتم سحبها من ملفات yml وذلك لجعل الأكواد قصيرة ومقروءة). بالعودة إلى الموقع متعدد اللغات من المستحسن تخصيص روابط محددة لكل لغة، ويتم ذلك عبر إدراج gem 'route_translator' إلى ملف gemfile. ويجب عندها تعديل ملف routes لتصبح بالشكل: localized do resources :articles, only: [:index] do get :method, on: :collection end end بهذا الشكل يتم ترجمة الروابط إلى: localhost:3000/articles للغة الإنكليزية إذا كانت هي اللغة الإفتراضية التي تم تحديدها. localhost:3000/ar/articles إذا كانت اللغة المحددة ar. وهكذا. ولكن هذه الروابط لا تغير اللغة بل يجب تغييرها من ApplicationController كالتالي: before_action :set_locale_from_links private def set_locale_from_links locale_from_url = RouteTranslator.locale_from_params(params) || RouteTranslator::Host.locale_from_host(request.host) if locale_from_url old_locale = I18n.locale I18n.locale = locale_from_url end ensure I18n.locale = old_locale if locale_from_url end للمزيد عبر طريقة عمل هذا الـ gem يمكن مراجعة: https://github.com/enriclluelles/route_translator
  7. يوجد حل أفضل واسرع من تنصيب nodejs خصوصاً إذا لم يكن لديك وصول إلى السرفر: gem 'therubyracer', :platforms => :ruby أضف الـ gem أعلاه إلى ملف gemfile ثم قم بتشغيل الأمر: bundle install
  8. لا، إلا إذا كنت تريد من غوغل عدم أرشفة هذه الصفحة! noindex تمنع محركات البحث من أرشفة الموقع. nofollow تعني عدم الإنتقال إلى أي صفحة من هنا، وعدم فتح أي رابط موجود ضمن هذه الصفحة. noodp كانت تستعمل لجعل محرك البحث يعتمد على العنوان والوصف الموجود في الصفحة وعدم جلبها من مجلدات مثل Open Directory، تم الإستغناء عنها في 2017. لذلك يجب ان يكون هناك سبب "واضح" لإستخدام هذه الخواص الخاصة بالروبوتات، ناهيك أن إستعمالها في العديد من الصفحات يضر الموقع من ناحية السيو.
  9. من الصعب جعل أقسام الموقع تظهر في محرك البحث ولكن هناك دائما ما "عليك" فعله عندما يتعلق الأمر بالسيو من أجل الحصول على فرصة، لأن محرك البحث هو من لديه القرار الأخير مهما فعلت. الأمر لا يتعلق بالبحث أو بشهرة الموقع، حيث أن 3 مواقع قمت بتصميمها ظهرت أقسامها في 3 أسابيع/شهر/شهر ونصف. وكانت كلها مواقع باللغة الإنكليزية ورغم إستخدام نفس البيئة والبنية باللغة العربية إلا أنها لم تحالفها الحظ. عليك التأكد من التالي: إستعمال روابط صديقة لأقسام الموقع، العنوان والوصف يجب جعله موافقا للسيو، والربط الداخلي بين الأقسام يجب أن يكون متواجدا. ولكن بحسب الخبرة أجد أن Structured Data والأكواد النظيفة وأداء الموقع من أقوى العوامل التي تساعد على ذلك.
  10. بما ان أن الخطوات ستتم إتخاذها "عند بناء الموقع" من المستحسن: التأكد من أن عناكب البحث بإمكانها أرشفة موقعك بسرعة، وأعني دون أخطاء عبر تحليل الأكواد لتكون موافقة لـ W3C. جعل الروابط صديقة لمحرك البحث http://www.example.com/blog/first-blog بدلاً من http://www.example.com/blog/1 التأكد من إستخدام Structured Data في الصفحة الرئيسية، صفحات المنتجات والمقالات والصفحات الهامة وذلك بالإعتماد على Schema Ld Json أو Microdata. تأكد من أن تكون الأكواد نظيفة من اجل تحسين الأداء. تأكد من إستخدام Canonical URL للتخلص من مشكلة المحتوى المتكرر. حاول تجنب هذه المشكلة من الأساس داخل الموقع لأن Canonical URL لا تحل المشكلة داخل المواقع ولكن فقط لدى محركات البحث. من الضروري جدا التأكد من ان جميع أشكال كتابة رابط الموقع تؤدي إلى نفس الصفحة، مثلا جميع الصيغ دون www يتم توجيهها 301 إلى www. وكذلك جميع الروابط او الصيغ دون https يتم إعادة توجيهها 301 إلى https://www في حال إستخدام SSL. لست مضطرا إلى إستخدام www في روابط موقعك، ولكن سواء إستخدمتها أم لا، يجب على جميع الروابط مشاركة ذات الصيغة. قم بضغط ملفات CSS و Javascript سواء داخل التطبيق أو ضمن سرفر الويب Apache/Nginx الربط مع مواقع التواصل الإجتماعي وتوفير Facebook Open Graph/Twitter Cards تاكد من توفير ملفات Sitemap/Robots.txt
  11. حسناً، هناك العديد من الطرق لجعل الموقع متعدد اللغات ويختلف الأمر إن كان الموقع ديناميكي أو ستاتيكي. في المواقع الستاتيكية ذات المحتوى الثابت يمكن ببساطة إنشاء صفحات مختلفة لكل لغة ووضع هذه الصفحات في المجلدات الخاصة بتلك اللغة. الأمر معقد نوعا ما في المواقع الديناميكية بسبب تحديث المحتوى بإستمرار وربطه مع قواعد بيانات، لذلك معظم المطورين يعتمدون على إنشاء جدول لكل لغة مثل جدول البلوغ، فقد نجد: BlogEn BlogAr هذه الجداول ستوفر المحتوى بلغة معينة وسيتم القراءة من الجدول بحسب اللغة المختارة من الزائر حيث إما يتم حفظ خيار المستخدم في الكاش أو ضمن قواعد بيانات إذا كان المستخدم مسجلا للدخول. يمكن أيضا الإعتماد على جدول واحد ولكن سيحتوي على المحتوى العربي والإنكليزي و..الخ. وهذا خيار غير جيد لأن القراءة من قواعد البيانات ستكون أبطأ نسبيا. قد لا تبدو مسألة توفير عدد من اللغات بالأمر السهل، ولكن عند الإعتماد على Web Frameworks مثل PHP Laravel أو Ruby on Rails فإن كل بيئة توفر مكاتب تجعل من الأمر بسيطا. رغم ذلك يمكن إستعمال ملفات ترجمة جاهزة إذا كان من الممكن التنبأ بالمحتوى أو إذا كان المحتوى ثابت، حيث يمكن الإعتماد على I18n لسحب الترجمة من الملفات التي تم إعدادها سابقاً. يمكن أيضا نسيان كل ما سبق إذا لم تكن مطور ويب أو لا تريد تكليف الوقت أو الجهد أو المال، بحيث يمكنك إضافة زر ترجمة مباشر من غوغل مثلا على موقعك، والآلة ستترجم الصفحة الحالية بحسب إختيار المستخدم، ولكنها ليست تجربة جيدة للمستخدم على الإطلاق.
  12. يمكنك الإتصال بـسرفر الـ VPS الخاص بك عبر طرقٍ عدة ولكن أفضلها وأسهلها هو الإعتماد على SSH مع PuTTY. يمكنك تحميل برنامج PuTTY من هنا. احفظ الملف التنفيذي EXE وقم بتشغيله. قد تتلقى تحذيراً بأنه لا يمكن التحقق من الناشر ولكن إذا قمت بتنزيل هذا البرنامج من مصدر جيد ، فقم بتشغيله. على الرغم من أننا لا يمكننا أن نشهد على خوادم الجهات الخارجية، إلا أن الرابط المقدم أعلاه هو بشكل عام مصدر موثوق لـ PuTTY. أدخل الإعدادات الخاصة بك كما في الصورة المرفقة. ادخل الـ IP الخاص بك في الخانة المخصصة، واترك باقي الخيارات إفتراضية كما هي. إضغط على زر Open لفتح الإتصال. إذا كانت هذه المرة الأولى التي تتصل بالسرفر، ستحصل على رسالة خاصة بإضافة المفتاح إلى الكاش الخاص بـ PuTTY، على أي حال إن كان الإتصال متكررا والسرفر الذي تتصل به آمن يمكنك قبول الإضافة. بمجرد فتح اتصال SSH ، من المفترض أن ترى الـ Terminal يطلب اسم المستخدم الخاص بك ، لذلك اكتب "root" (بدون علامات الاقتباس). ثم بعدها أدخل الباسوورد الخاص بمستخدم الـ root. لن تشاهد علامة الكتابة او حركة المؤشر عند كتابة الباسوورد. إذا لم تكن هناك رسائل خطأ، هذا يعني انه تم تسجيل الدخول بنجاح إلى الخادم الخاص بك كمستخدم root باستخدام بروتوكول SSH.
  13. المشكلة قد لا تكون في سرفر الويب أو في الإستضافة، هل جربت تشغيل الفيديو في متصفح فايرفوكس أحدث، هل يمكن توفير رابط للصفحة التي تحتوي على المشكلة حتى يتم معاينتها أو البحث في فيها بشكل أعمق، هل توجد أية إضافات خاصة بتشغيل الفيديو على المتصفح، هل يحصل هذا على جميع المواقع ام فقط موقعك؟ المشكلة قد تكون في إعدادات المتصفح، على كل حال يمكنك التأكد من إعدادات فايرفوكس لتشغيل ملفات الـ MP4 كالتالي: اكتب about:config في خانة الرابط في فايرفوكس وإضغط انتر إقبل رسالة التحذير للإنتقال إلى الإعدادات هناك إبحث عن media.windows-media-foundation.enabled قم بتغيير الوضع من true إلى false أو من false إلى true إبحث مجددا عن media.directshow.enabled قم بتعديل الحالة لتوافق القيمة التي احترتها في الخيار السابق عند ضبط هذه الإعدادات على false ، فإنك تقوم بتعطيل مشغل وسائط HTML5 الخاص بـ H.264 والذي يتضمن أيضا ملفات MP4. لذلك قد تختلف الإعدادات بحسب المشغل الخاص الذي تستخدمه كإضافة إلى فايرفوكس. إن كانت المشكلة لا زالت مستمرة يرجى التزويد بمعلومات تفصيلية وكما يرجى الإجابة على الأسئلة في بداية الجواب.
  14. بل أنت في العمر الصحيح لتعلم البرمجة والدخول في هذا المجال. أساسيات البرمجة يجب أن تكون مادة أساسية في المدرسة الإعدادية /6-9/ وهذا هو الحال في عدد من دول العالم. ولكن المهم أن تجيب على هذا السؤال قبل البدء: لماذا تريد أن تتعلم البرمجة؟ في رأيي لا تتعلم البرمجة الآن، بل تعلم الخوارزميات وقواعد المعطيات، ولا تحصر نفسك في كتابة اكواد بلغة برمجة معيبة بل تعلم بنية وآلية عمل هذه اللغات في المقام الأول. الخوارزمية هي الخطوات التي ترسمها إلى الحل والبرمجة هي الطريق الذي تسلكه لتنفيذ تلك الخطوات. وبالتأكيد هناك العديد من أفرع البرمجة لذلك قد يكون من الصعب ان تجد أي من هذه الأفرع تناسبك من الآن، لذلك تعلم الخوارزميات لأنها العامل المشترك بين جميع المشاكل سواء كانت برمجية، امنية، حسابية أو حتى في في حياتنا اليومية.
  15. هناك العديد من الطرق لتعديل محتوى الموقع والأمر يختلف إن كان الموقع ستاتيكياً أم ديناميكياً. موقع ستاتيكي: هكذا مواقع لا تحتوي على قواعد بيانات لذلك يكون التعديل مباشرة من ملفات الموقع التي تم رفعها على الاستضافة، أي تكون بتعديل ملفات الـ HTML ، CSS , Javascript. أي أن المحتوى يتم تعديله بشكل مباشر سواء من خلال CPanel أو أوامر الدوس إن كانت الاستضافة لا توفر CPanel أو يمكنك ببساطة إعادة رفع الموقع بعد تعديله مرة كون أن الموقع ستاتيكي. موقع ديناميكي: لا يمكن تعديل هذه المواقع إلا عن طريق نظام إدارة محتوى، لا يزال بإمكانك تعديل الملفات بشكل ستاتيكي كما في الحالة السابقة، ولكن تغيير أو تعديل في قواعد البيانات يتطلب لوحة تحكم يتم من خلاله إدارة الموقع بشكل عام. مواقع الإنترنت التي تأتي مع لوحة تحكم أسعارها ضعف المواقع الستاتيكية على الأقل. لذلك قبل التفكير بإجراء تغييرات يجب التأكد من نوع الموقع.