اذهب إلى المحتوى

هشام رزق الله

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

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

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

  • عدد الأيام التي تصدر بها

    31

كل منشورات العضو هشام رزق الله

  1. نعم يمكنك إنشاء الألعاب باستخدام الإصدار الجديد من HTML والذي يسمى بـ HTML5، طبعا الألعاب لن تكون بإحترافية ألعاب يونتي أو ما شابه لكنها ستكون ألعاب متميزة. يمكنك البدء بهذا الدرس الذي سيشرح إنشاء لعبة سهلة وبسيطة باستخدام محرك Box2D وجافا سكربت. سيفيدك هذا الموضوع كثيرا حول برمجة الألعاب باستخدام HTML5 بشكل عام. كما أنصحك بزيارة هذه المدونة التي تتحدث عن إنشاء الألعاب باستخدام لغة HTML5.
  2. يجب عليك قبل الإنتقال إلى لغة php أن تتقن لغة سي شارب بشكل جيد، أي أنه يجب أن تعتاد على اللغة لمدة أشهر قبل أن تفكر في تعلم لغة أخرى، حاول أيضا أن تقوم بعمل عدة مشاريع بلغة سي شارب حتى تترسخ اللغة أكثر في عقلك. إذا احترفت سي شارب وانتقلت بعدها إلى php فستجد أن هذه اللغة سهلة للغاية بل إنك ستتعلمها في وقت قصير جدا بالنسبة إلى وقت تعلم للغة سي شارب.
  3. مصمم الويب يهتم بالجانب الشكلي الخارجي للموقع، أي طريقة تصميم الموقع والأزرار والروابط وطريقة تقسيم المحتوى والشعار وغيرها... أي أنه سيهتم بما يراه المستخدم من الموقع. أما النسبة لمطور الويب فمهمته برمجة الموقع، أي أنه سيتهتم بالوظائف في الموقع وآلية عمله. يجب على المصمم أن يعرف بعض أساسيات البرمجة ويجب على المبرمج أن يعرف أساسيات التصميم حتى يفهم كل واحد الآخر عند إنشاء المواقع.
  4. جرب هذه الحلول، وأتوقع أن تحل مشكلتك: اغلق مكافح الفايروسات في الفترة التي تستخدم فيها ملفات DLL. ألغي حظر الملفات باستخدام حساب المدير. حاول إلغاء حماية نظام ويندوز بشكل عام ففي بعض الأحيان يسبب مشاكل كثيرة. حاول تغيير موقع ملفات DLL فربما السبب هو مكانهم. حاول استبدال هذه الملفات بملفات DLL أخرى (الطريقة تنجح مع ملفات DLL المشهورة والتي تستطيع الحصول على نسخة منها من الانترنت).
  5. أولا يجب عليك انشاء نسخة ثابتة من مكتبات QT لاستخدامها برنامج ليعمل على أي نظام ويندوز وذلك عن طريق تنفيذ هذه الأوامر، (يجب تنفيذ هذه الأوامر في المكان الذي يحتوي على QT ): > configure -static -release -platform win32-msvc > nmake sub-src بعد ذلك يجب عليك إنشاء برنامج مستقل يعمل على نظام ويندوز عن طريق تنفيذ هذه الأسطر: > qmake Hello.pro > nmake release > cd release > mt.exe -manifest Hello.exe.manifest -outputresource: Hello.exe غيّر البيانات حسب الحاجة. المصدر
  6. نعم، فهذا البرنامج من شركة مايكروسوفت يغنيك عن كل الدوال والأصناف الموجودة في أندرويد ستوديو والتي مكتوبة بلغة جافا، أضف إلى أن Xamarin سيمكنك من برمجة تطبيقات تعمل على ثلاثة أنظمة وهي أندرويد وios وويندوز فون. ستستفيد كثيرا من انتقالك لذلك فأنا أنصحك به خاصة إذا كنت مبرمج سي شارب بالفعل.
  7. اتبع هذه الخطوات لضمان حماية أكبر: لا تستخدم نفس كلمة مرور حسابك على فيس بوك مع مواقع أخرى. اربط حسابك على فيس بوك بهاتفك الجوال. قمت بتثبيت برنامج حماية على جهازك للتخلص من keylogger والبرامج الخبيثة. لا تفتح أي رابط مجهول على فيس بوك أو من أشخاص لا تثق فيهم (أو حتى الذين تثق فيهم في بعض الأحيان). لا تفتح حسابك على غير أجهزتك، مثل مقاهي الانترنت أو هواتف أصدقائك...
  8. سؤال صعب نوعا ما وتختلف الاجابة من شخص لآخر، لكن يمكن أن نقول أنه الشخص الذي لديه خبرة كبيرة في الخوارزميات وأنه يتقن على الأقل لغة برمجة أو لغتين بشكل احترافي. بعد ذلك سيجد أن تعلم بقية اللغات سهل للغاية، لذلك ستجد أنه سيتقن الكثير من لغات البرمجة الأخرى في فترة قصيرة مثل بضعة أشهر. كلما كانت الخوازرميات أسرع وأقصر وقت وموارد كلما كان التطبيق/البرنامج/ الموقع أفضل، لذلك فإن للخوارزميات دور كبير في تحديد احترافية الشخص.
  9. أنصحك إذا كنت تستطيع البرمجة باستخدام لغات مثل بايثون وروبي أن تبني موقعك على هذه اللغات ومن ثم استخدام مكتبات اللغة المختلف للتعرف على الصور حيث ستشعر بالراحة أكبر لتحول العمل من الويب إلى لغات برمجة أقوى. توجد العديد من الخدمات التي توفر لك API للتعّرف على الصور، ومن أشهر هذه الخدمات هي imagga و recognize. طبعا هذه الخدمات لا توفر لك الخوارزمية التي تستخدمها بل فقط ستربط موقعك/ تطبيقك بموقعهم للحصول على النتائج.
  10. عند إنشائك لبرنامج أو تطبيق ضع شيفرة برمجية للتنفيذ عند تشغيل المستخدم بحيث تتصل بخادوم خاص ببرنامجك وستتأكد من أنه لا توجد نسخ أو تحديثات جديدة للبرنامج وفي حالة وجدت ستقوم بتنزيلها. البرنامج سيرسل رسالة إلى الخادم أو سيقرأ ملف معين ليعرف هل توجد نسخة جديدة أم لا والخادوم سيجيبه وسيعطيه رابط التحميل في حالة كان هنالك تحديث.
  11. عملية استعادة معلومات حسابك دون تغييرها مستحيل تقريبا، الحل الوحيد أن تكون قد سجلت هذه المعلومات سابقا في متصفح أو شيء من هذا القبيل، إذا كنت تستخدم فيرفركس فاذهب إلى Preferences ثم Security ثم Saved Logins. إذا نسيت جميع معلومات حسابك فيمكنك تسجيل دخولك وتغيير كلمة المرور من خلال رقم هاتفك إذا كنت قد ربطه بحسابك سابقا.
  12. ستضطر إلى إعادة رفع ملف موقعك في كل مرة تريد أن تعدل فيها موقع، لأن موقعك عبارة عن صفحات ثابثة وليست حيوية (ديناميكية)، أنصحك إنشاء مدونة باستخدام لغة PHP إضافة إلى HTML وCSS، بالإضافة إلى استخدام قاعدة بيانات مثل MySQL لحفظ التدوينات واستخراجها لعرضها.
  13. إذا كنت تريد برمجة تطبيقات أندرويد فلن تجد أفضل من أندرويد ستوديو وتستطيع من خلاله برمجة جميع أنواع التطبيقات سواء كانت بسيطة أو معقدة، وإذا لم يعجبك أندرويد ستوديو فيمكنك برمجة تطبيقات أندرويد بلغة سي شارب باستخدام برنامج Xamarin. أما بالنسبة لبرمجة الألعاب فأنصحك بالابتعاد على أندرويد ستوديو والعمل مع محركات مثل Unity وغيرها فهي أفضل وأكثر احترافية.
  14. تدخل جافا في أغلب المجالات وتستطيع من خلالها البرمجة في أي مجال تريده سواء كان تطوير مواقع الانترنت أو الألعاب سواء كانت ثنائية أو ثلاثية الأبعاد أو تطبيقات الهواتف الجوالة (أندرويد) أو برمجة برامج سطح المكتب والبرامج الكبيرة والصغيرة. لا تتفوق على لغة جافا سوى لغة سي والتي تُمكنك من برمجة أنظمة تشغيل إلى جانب لغة أسمبلي.
  15. لهذا الوسم العديد من الوظائف، أكثر من أن تُعد، فهو شهير باستخدامه لوصف الصفحات مما يسهل عمل محركات البحث كما في المثال التالي: <meta name="description" content="A general guide on the use of meta tags in html pages"> كما يُمكّنك من وضع اسم الكاتب في الصفحة كما في المثال التالي: <meta name="author" content="Shaumik Daityari"> كما أن هذا الوسم شهير مع سمة charset لتحديد ترميز الصفحة، حيث يستخدم في أغلب المواقع العربية: <meta charset="UTF-8"> كما يسمح لك هذا الوسم بالتحكم في رؤوس HTTP كما في المثال التالي: <meta http-equiv="refresh" content="5;url=http://www.sitepoint.com/"> تستخدم بعض المواقع سمة keywords مع هذا الوسم، على الرغم من أن محرك بحث جوجل لا ينظر إلى هذا السطر: <meta name="keywords" content="web,design,html,css,html5,development"> في النهاية فإن بعض مواقع التواصل الإجتماعي تستخدم هذا الوسم كما هي الحال مع فيس بوك وتويتر لوصف البيانات التي تظهر على شبكتها.
  16. Openssl باختصار هو مشروع لتوفير مجموعة أدوات بروتوكولات Transport Layer Security (TLS) و Secure Sockets Layer (SSL) بالإضافة إلى أنه مكتبة للتشفير بشكل عام. نعم يمكنك تشفير وفك تشفير الملفات باستخدام هذا المشروع، فكما قلنا فإنه يمتلك مكتبة للتشفير، فإذا أردت تشفير ملف نصي، فيمكنك كتابة شيفرة برمجية مشابهة لهذه: openssl aes-256-cbc -a -salt -in secrets.txt -out secrets.txt.enc ولفك تشفيره يمكنك استخدام هذه الطريقة: openssl aes-256-cbc -d -a -in secrets.txt.enc -out secrets.txt.new
  17. أشهر لغة برمجة لتطبيقات أندرويد هي جافا، وعلى الرغم من ذلك يمكنك استخدام لغات أخرى مثل سي شارب عن طريق برامج خاصة مثل Xamarin. بما أن اللعبة بسيطة للغاية فيمكنك استخدام لغة جافا مع أندرويد ستوديو، أما إذا أردت شيء أكثر احترافية ومخصص للألعاب فأنصحك باستخدام محركات ألعاب مثل Unity أو شيء أبسط منه مثل Construct 2.
  18. لا توجد طريقة تأمن بها تطبيق 100%، لكن توجد طرق تُصعّب عملية الهندسة العكسية، فمثلا يمكنك استخدام أدوات مثل ProGuard للتشفير واخفاء الشيفرة البرمجية وبالتالي جعل عملية إعادة قراءة شيفرتك البرمجية أصعب. يمكنك أيضا نقل الأجزاء الحساسة من شيفرتك البرمجية (التي تحتوي على الخوارزميات الرئيسية) إلى خوادم ويب، حيث سيعمل التطبيق فقط في حالة تواجد الانترنت. كما أنصحك بتشفير المعطيات حسب خوارزميات معينة، فمثلا بدل تسجيل نتيجة احدى الألعاب كما هي (100 على سبيل المثال) قم بعمل خوارزميات لتشفيرها (مثلا أضف 50 ثم اقسم على 3 لتصبح 50).
  19. توجد عدة برامج للقيام بهاتين الوظيفتين، لكن عيبهم الوحيد هو ارتفاع أسعارهم واقتصار عمل بعضهم على نظام تشغيل معين، ومن أشهر هذه البرامج هو برنامج Camtasia Studio الذي يعمل على نظامي ويندوز وماك حيث يبلغ سعر نسخته على نظام ويندوز 299$. ومن البرامج الأخرى الشهيرة أيضا برنامج Screenflow الذي يعمل على أنظمة ماك وبرنامج Smartpixel الذي يعمل على نظام أندرويد وويندوز. أنصحك نظرا لأسعار هذه البرامج المرتفع أن تستخدم برنامج مجاني لتسجيل الفديو وآخر للتعديل عليه.
  20. لا يمكنك تحويل تطبيقات أندرويد إلى بقية الأنظمة، فالتطبيقات تحتاج إلى إعادة البرمجة بالكامل للعمل على الأنظمة المستهدفة. يمكنك إنشاء تطبيقاتك باستخدام Xamarin حتى تعمل على هذه الأنظمة الثلاثة (أندرويد و ios وويندوز فون) لكن لا يمكنك تحويل تطبيق قمت بإنشائه باستخدام أندرويد ستوديو. بما أن تطبيق عبارة عن عارض لصفحة ويب فهذين المشروعين قد يفيدانك: phonegap وcordova.
  21. توجد عدة طرق لفعل ذلك، مثل استخدام أصناف AlarmManager وBroadcastReceiver في البرمجة. بعد إنشاء مشروع جديد سنضيف هذه الشيفرات البرمجية إلى MainActivity.java، قم بتعديل وقت وتاريخ عرض الاشعار كما تريد: package com.example; import java.util.Calendar; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; public class MainActivity extends Activity { private PendingIntent pendingIntent; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MONTH, 6); calendar.set(Calendar.YEAR, 2013); calendar.set(Calendar.DAY_OF_MONTH, 13); calendar.set(Calendar.HOUR_OF_DAY, 20); calendar.set(Calendar.MINUTE, 48); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.AM_PM,Calendar.PM); Intent myIntent = new Intent(MainActivity.this, MyReceiver.class); pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, myIntent,0); AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent); } //end onCreate } سنحتاج أيضا إلى إنشاء BroadcastReceiver باسم MyReceiver.java وسيحتوي على الشيفرة البرمجية التالية: package com.example; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent service1 = new Intent(context, MyAlarmService.class); context.startService(service1); } } بعد ذلك سنحتاج إلى إنشاء "خدمة" Service لنضمن عمل البرنامج لعرض الاشعار في الوقت المناسب دون مقاطعة عمل المستخدم (التطبيق سيعمل في الخلفية): package com.example; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.Intent; import android.os.IBinder; public class MyAlarmService extends Service { private NotificationManager mManager; @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); } @SuppressWarnings("static-access") @Override public void onStart(Intent intent, int startId) { super.onStart(intent, startId); mManager = (NotificationManager) this.getApplicationContext().getSystemService(this.getApplicationContext().NOTIFICATION_SERVICE); Intent intent1 = new Intent(this.getApplicationContext(),MainActivity.class); Notification notification = new Notification(R.drawable.ic_launcher,"This is a test message!", System.currentTimeMillis()); intent1.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP| Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingNotificationIntent = PendingIntent.getActivity( this.getApplicationContext(),0, intent1,PendingIntent.FLAG_UPDATE_CURRENT); notification.flags |= Notification.FLAG_AUTO_CANCEL; notification.setLatestEventInfo(this.getApplicationContext(), "AlarmManagerDemo", "This is a test message!", pendingNotificationIntent); mManager.notify(0, notification); } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } } سنحتاج في النهاية إلى تحديث AndroidManifest.xml ليتضمن Service وReceiver مع الصلاحيات المناسبة: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="10" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.NextActivity" android:label="Next Screen"> </activity> <service android:name=".MyAlarmService" android:enabled="true" /> <receiver android:name=".MyReceiver"/> </application> بعد ذلك جرب التطبيق على جهازك وستجده يعمل بدون مشاكل.
  22. لديك حلّين لحل هذه المشكلة، فإما أن تضغط بدلا من مفتاح Enter المفتاحين Shift و Enter في نفس الوقت أو يمكنك بكل سهولة كتابة الشيفرة البرمجة التي تريد تنفيذها في ملف بامتداد .py ومن ثم تشغيله عبر سطر الأوامر عن طريق الأمر Python ثم تكتب اسم الملف كاملا مع الإمتداد أو إذا لم يكن الملف في نفس المجلد الحالي فيجب عليك كتابة اسم المسار كاملا إلى جانب اسم الملف.
  23. يعود ذلك إلى سببين مهمين: رخصة GTK+ متحررة أكثر من QT على الرغم من أن الأخيرة حررت رخصتها أكثر في الفترة الأخيرة إلا أن المبرمجين لايزالون يفضلون GTK+. أغلب الواجهات في لينكس مبنية على GTK+ أي أنك ستتمكن من بناء تطبيقات باستخدام هذه المكتبة بسهولة وبأقل إعتماديات خارجية، على عكس QT حيث سيضطر المستخدم إلى تنزيل هذه المكتبة أولا قبل استخدام البرنامج. الواجهات التي تستخدم GTK+ هي Gnome, Unity, LXDE, Xfce, Sugar, Cinnamon, Mate... في حين التي تستخدم QT هي KDE وعلى الرغم من ذلك فإنها تستخدم GTK+ مع بعض برامجها منذ الإصدار 4.2. من أشهر البرامج المبنية على GTK+ هي: Pidgin, Gimp, Inkscape, Chromium...
  24. توجد عدة أسباب لهذه المشاكل من أبرزها: قد يكون السبب اختلاف في حجم الشاشة بين الهواتف، فهل أنت متأكد من أنك صممت الصفحات Responsive Design؟ توجد العديد من الثغرات الأمنية في WebView على اصدار جلي بين، فهل متأكد من أنك لم تعطل الجافا سكربت أو ما شابه على هاتفك؟ تغيّرت عدة أشياء في الإصدارات الحديثة من WebView فتأكد من أنه لا توجد اختلافات في أسماء ووظائف الدوال والأصناف في هذه النسخة.
  25. إذا كنت تستخدم ويندوز 7، ستحتاج إلى قرص تثبيت/إصلاح ويندوز 7، فقم بالإقلاع من خلاله ثم اختر Repair your computer من الجانب الأيسر السفلي، كما في الصورة التالية: بعد ذلك اختر خيار Command Prompt وأدخل هذا السطر: copy c:\windows\system32\sethc.exe c:\ ثم هذا السطر: copy c:\windows\system32\cmd.exe c:\windows\system32\sethc.exe وبعد ذلك أعد تشغيل حاسوبك، وعندما تظهر صفحة تسجيل الدخول اضغط مفتاح زر Shift خمسة مرات، فسيظهر لك سطر الأوامر، ما عليك في هذه الحالة سوى كتابة اسم المستخدم مع كلمة المرور الجديدة باستخدام الأمر net user كما في هذا المثال: net user hichem MyNewPassword
×
×
  • أضف...