• الإعلانات

    • فيصل الحربي

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

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

Speed_Of_Light

الخبراء المعتمدون
  • عدد المشاركات

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

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

السمعه بالموقع

141 جيد جدا

عن Speed_Of_Light

  • الرتبة
    خبير Java SE

معلومات الملف الشخصي

  • الجنس ذكر
  • الدولة : الزمكان
  • اهتمامات تحرير فلسطين
    المصادر المفتوحة
    الفيزياء النظرية
    علم النفس الاجتماعي
  1. حقن managed bean في أخرى

    @Ahmed Dalatony: ليست المشكلة بالقيم الافتراضية، المشكلة أن الحقن يفشل حيث أنه ليس بإمكاني تغيير القيم. @JAVA FOR ALL: إنها مجرد setter method عادية: public void setId(int newValue) { id = newValue; } ملاحظة: مازلت بحاجة لجواب حتى الآن والـ 40 نقطة محفوظة :)
  2. حقن managed bean في أخرى

    السلام عليكم لدي مشروع تطبيق ويب أستخدم فيه JSF، فيه الصنفين الآتيين: package session; import javax.inject.Named; import javax.enterprise.context.SessionScoped; ... @Named("user") @SessionScoped public class UserBean implements Serializable { // private fields ... // Setters & getters ... } package jsfc; import javax.enterprise.context.SessionScoped; import javax.inject.Inject; import javax.inject.Named; import session.UserBean; ... @Named("transController") @SessionScoped public class TransController implements Serializable { @Inject private UserBean currentUser; ... public TransController() { } public String createFromUser() { // here's the problem: currentUser fields are nulled ... int id = currentUser.getId(); // id == 0 ! ... return create(); } ... } المشكلة أن خصائص الغرض currentUser فارغة (null أو 0 ...) أي أن عملية حقن الـ UserBean فاشلة ... أين الخطأ ؟ وما الحل ؟!
  3. تبا لتقنية المعلومات

    في حديثك الكثير من الصدق والألم العميق المتجذر في أعماق كل مبرمج منا ... لذا سأحدثك بصدق متبادل أنا أؤيد فكرة "لا برمجة مدى الحياة" (على نمط لا رئاسة مدى الحياة !) وعلى المبرمج في هذه الفترة أن يستثمر مهنته بأسرع ما يمكن (بسرعة الضوء ؟) بحيث يتقدم مهنياً ومادياً بأقل قدر من الآثار الجانبية وبأكبر قدر من التوازن الروحي والصحي والجسمي والاجتماعي قبل أن ينتقل إلى مرحلة أخرى. وفي هذه المرحلة قد تكون مدير مشروع برمجي أو مصمم أو مستشار تقني أو كاتب تقني أو حتى مدرس ومدرب أو أن تنشئ شركتك الخاصة وتقوم بإداراتها ... وبالمقابل قد تختار مجالاً بعيداً من هواياتك المكبوتة فقد تتحول إلى فيزيائي أو فلكي أو عالم نفس أو اجتماع أو كاتب أو أديب أو ناشط حقوقي أو سياسي أو تستلم منصباً حكوميا مرموقاً وتحاول أن تحسن الواقع وتغير شيئاً في هذا العالم أكثر من مجرب بتات !! عملياً: الأمراض المزمنة الموجودة في كل مهن هذه الحياة! هل تظن أن المحامي الذي أتقن الكذب والنفاق ويقضي حياته بين الخصوم والأعداء أكثر سعادة أو صحة منك ؟ أم تظن أن المزارع يمضي يومه يضرب التراب في الشمس وتحت المطر ليخرج ذهباً سعيد وليس لديه مشاكل أبداً ؟ أم تظن أن المدرس الذي بح صوته في محاولة ضبط جنون الطلاب ونشاطهم الزائد وعدائيتهم أكثر سعادة أو صحة منك ؟ لا يوجد طريق للسعادة ... فالسعادة هي الطريق والسعادة لا توجد في الأشياء ... بل توجد في عين الناظر والمتأمل كما أن نظرتك إلى الموضوع من هذا المنظور الضيق -برغم صدقه- مستغرب من مبرمج :) فالأمر لا يتعلق بالمال والصحة فقط! والحياة المثالية ليست "ان تآكل وتشرب من خلال آلية تعطيك الصحة والعافية"! على الأقل ليس بالنسبة لي، فهناك علاقات ومبادئ وأهداف ورسالة تعيشها في كل لحظة من حياتك. بل هو أيضاً تحقيق للذات وتفوق لكن تذكر أنك عندما تعلمت البرمجة لأول مرة اللذة التي شعرت بها عند مقدرتك على "خلق" شيء جديد وصناعته، وحققت ذاتك من خلاله، بل لا بد أنك تذكر مشاعر النصر والسعادة التي كانت تدغدغ أعماقك كلما تقدمت خطوة أو حللت مشكلة أو انتصرت على نفسك في تحد آخر ... ولربما نذرت جزءً من وقتك وجهدك وخبرتك لنصرة قضية أو تحقيق هدف يعجز ذلك المزارع السعيد عن تحقيقه بل ويحسدك عليه ! لسنا بالضرورة تلك المخلوقات البائسة التي توزع عصارة أدمغتها مقابل الفتات ... بعضنا والذي قرر التفكير خارج الصندوق وجد أن إمكاناته ستوصله إلى مستوى أحلامه وتوقعاته
  4. المقصود بالمزامنة Synchronization حيث تعمل الـ Collections.synchronizedList على بشكل آمن Thread-safe عند العمل مع الخيوط المتعددة Multithreads
  5. يجدر الإشارة إلى أن الصف Vector هو صف بائد/قديم (deprecated) لا يجب استعماله بعد الآن ... فإذا كنت بحاجة للمزامنة استخدم Collections.synchronizedList
  6. الرسائل القصيرة في جافا

    في الموضوع كل ما يلزمك للانطلاق :) التنصيب أصعب نقطة ... ومعرفة إمكانيات المكتبة هو ثاني أصعب نقطة ! وهذا الموضوع يقدم هاتين المعلومتين حاول البدء بتطبيق الأمثلة وتجربتها فهي واضحة جداً وموثّقة بشكل جيد جداً وفي حال وجود أي "استعصاءات" لا تتردد بالسؤال تحياتي
  7. الرسائل القصيرة في جافا

    [ من مدونتي: سرعة الضوء] كثير من المشككين ينتقدون جافا من ناحية التعامل مع العتاد بشكل عام، ويدعون أنها غير مصمم لذلك، هذا ليس صحيحاً عندما نتكلم عن التحكم بإرسال واستقبال الرسائل عن طريق الجوال عن طريق مكتبة SMSLib. فيما يلي مدخل لاستخدام مكتبة SMSLib وترجمة لبعض صفحات الموقع الرسمي. المحتويات: حول SMSLib التنصيب التوافقية التحميل تجربة الأمثلة حول SMSLib هي مكتبة جافا لاستقبال/إرسال الرسائل النصية القصيرة SMS عبر مودم GSM متوافق أو جوال GSM. تم تحويل المكتبة إلى مكتبة .NET عن طريق أدوات IKVM. المكتبة مرخصة برخصة أباتشي بإصدارها الثاني. تقوم المكتبة بتقديم خدمات إرسال واستقبال الرسائل النصية القصيرة وإدارتها بطريقة أنيقة وذلك عن طريق تغليف وكبسلة المستويات المنخفضة من أوامر AT التي يتم إرسالها للتحكم بالجوال كمودم GMS حيث تعتمد في ذلك على مكاتب أخرى كمكاتب Comm API أو RxTx. وذلك بعد وصله عبر منفذ تسلسي COM حقيقي أو افتراضي عن طريق برنامج تعريف الجوال على الكمبيوتر. المكتبة خاصة بجافا ويوجد نسخة تجريبية للـ .NET منها، وفي هذه التدوينة نتناول المكتبة الخاصة بجافا. النسخة الحالية من المكتبة تدعم مايلي: تدعم جوالات ومودمات GSM الموصولة واجهة منفذ تسلسلي أو واجهة IP. تعمل مع بروتوكولات PDU/TEXT. تدعم الرسائل النصية القصيرة الصادرة والواردة. تعمل مع ترميز الرسائل 7 بت و 8 بت و UCS2 (يونيكود) تدعم الرسائل النصية الكبيرة (متعددة الأجزاء) الصادرة والواردة. رسائل فلاش. الرسائل الصادرة مع معلومات العنوان الرسائل الصادرة مع معلومات المنفذ / العنوان. رسائل WAP PUSH SI الصادرة. تقارير وصول الرسالة (الحالة). معلومات GSM الأساسية المتوافرة: المودم، المصنّع، نسخة العتاد والبرامج، مستوى الإشارة ... إلخ. تدعم بعض مزودي خدمات الرسائل الجماعية (bulk operators) باستخدام بروتوكولات http و https. تدعم بروتوكول SMPP. والمزايا الجديدة التالية تم إضافتها منذ النسخة الثالثة: البوابات المتعددة أتى مفهوم البوابات إلى النسخة منذ النسخة الثالثة، وهي بمثابة واجهة لجهاز أو خدمة تستخدم لإرسال و/أو استقبال الرسائل النصية القصيرة SMS. يمكن أن تكون البوابة مودم GSM أو مزود خدمة إرسال رسائل جماعية مدعوم (bulk sms provider). يمكن للمكتبة معالجة عدة بوابات في نفس الوقت. أولويات الإرسال تدعم المكتبة ضبط أولويات عدد غير محدود من الرسائل كل رسالة على حدة، يتم إرسال الأولويات مباشرة إلى البوابـ(ـات) إن كانت تدعم ذلك، وإلا فيتم محاكاتها. الاستقبال المتزامن / غير المتزامن. تعطيك المكتبة خيارين لاستقبال الرسائل: متزامن: حيث تكون المسؤولية على عاتقك في استدعاء الطرائق read() بشكل دوري. غير متزامن: تنتظر المكتبة لترد عليك عند استلام رسالة. الارسال المتزامن / غير المتزامن. تعطيك المكتبة خيارين لإرسال الرسائل: متزامن: عند طلبك إرسال رسالة، يتوقف خيط التنفيذ (thread blocks) إلى أن يتم إرسال الرسالة أو يفشل. غير متزامن: عند طلبك إرسال رسالة، لا يتوقف خيط التنفيذ (thread does not block) وتعيد المكتبة مباشرة. وتضع رسائلك في رتل وترسلهم في الخلفية. يمكنك تحديد فيما إذا كنت ترغب بإعلامك بمصير رسائلك. الاستدعاءات تعطيك المكتبة الخيار لتعريف استداعئات راجعة عند حدوث أحداث معينة. الاتصالات الصوتية القادمة: يمكن للمكتبة أن تستدعي طريقة ما عند استلامك مكالمة صوتية. لاحظ أنه سيتم قطع الاتصال الصوتي آلياً ومن دون شرط وسيتم إعلامك برقم الجهة المتصلة. الرسائل القادمة: يمكنك ضبط المكتبة بحيث تستدعي طريقة محددة في كل مرة تصلك فيها رسالة. الرسائل الصادرة: يمكنك ضبط المكتبة بحيث تستدعي طريقة محددة عندما ترسل الرسائل بشكل غير متزامن على تلك الرسالة (مع حالتها ... إلخ). تغير حالة البوابة: يمكن للمكتبة أن تعلمك في كلما تتغير فيها حالة البوابة. عملية إرسال رتل: يمكن للمكتبة أن تعلمك في كلما تصبح جاهزة لإرسال رسالة في الأرتال الخلفية. معرف مرسل مخصص تدعم المكتبة معرف مرسل مخصص. هذا الخيار غير مدعوم من مودمات GSM - يجب أن تستخدم أحد مزودي خدمات الرسائل الجماعية. الرسائل المشفرة يمكن للمكتبة إرسال/إستقبال رسائل مشفرة. محرك التشفير الحالي يستخدم مفتاح AES قوي مؤلف من (128 بت) والمضمن في حزمة تطوير جافا (JDK). يتم إرسال الرسائل المشفرة كرسائل ثنائية. تزودك المكتبة بطريقة مؤتمتة لتعيين مفاتيح تشفير لأرقام محددة، لذا إجرائية الإرسال/الإستقبال مؤتمتة بالكامل تقريباً. التنصيب: لاستخدام SMSLib عليك تنصيب المكونات التالية (لتحميلها راجع التحميل): 1- أدوات تطوير جافا JDK 1.6 أو أحدث. 2- مكتبة اتصالات جافا Java Communications Library: على أنظمة ويندوز: يجب أن تستخدم SUN Java Comm v2. على باقي الأنظمة: (مثل لينكس، يونكس، بي إس دي ... إلخ) عليك تنصيب إما Java Comm v3 أو RxTx. قد تسبب Java Comm v3 بعض المشاكل مع بعض توزيعات لينكس، عندها عليك استخدام RxTx. تنصيب مكتبة اتصالات جافا: سواءً الإصدار 2 أو 3، قم بفك ضغط الملف واتبع الخطوات: انسخ الملف comm.jar إلى المسار: JDKDIR/jre/lib/ext/ انسخ الملف javax.comm.properties إلى المسار: JDKDIR/jre/lib/ انسخ ملفات المكتبة (win32com.dll في ويندوز وملفات .so في لينكس) إلى المسار التالي: JDKDIR/jre/bin/ (إن كان لديك أكثر من JDK أو JRE فقم بنسخ الملفات إلى كل واحدة منها). تنصيب مكتبة RxTx: انسخ الملف RXTXcomm.jar إلى المسار: JDKDIR/jre/lib/ext/ انسخ ملفات المكتبة (مثلاً الملفا librxtxSerial.so في لينكس 32 بت) إلى المسار التالي: JDKDIR/jre/bin/ (إن كان لديك أكثر من JDK أو JRE فقم بنسخ الملفات إلى كل واحدة منها). 3- أباتشي ANT لبناء الملفات المصدرية: وهي مضمنة بشكل افتراضي في معظم بيئات التطوير المتكاملة IDEs. 4- أباتشي log4j: لتنصيبها قم بتضمين الملف log4j-x.x.xx.jar (حيث x.x.xx رقم الإصدار) إلى المتغير CLASSPATH أو إضافتها لمشروعك. انسخ الأسطر التالية إلى ملف نصي، واحفظه باسم log4j.properties: log4j.logger.smslib=DEBUG, smslib log4j.appender.smslib=org.apache.log4j.ConsoleAppender log4j.appender.smslib.layout=org.apache.log4j.PatternLayout log4j.appender.smslib.layout.ConversionPattern=%-6r %d [%t] %-5p %C %x - %m%n واستخدم هذا الملف في مشروعك. 5- مكتبة JSMPP: لتنصيبه قم بتضمين الملف jsmpp-x.x.x.jar (حيث x.x.x رقم الإصدار) إلى المتغير CLASSPATH أو إضافتها لمشروعك. التوافقية: يمكنك مراجعة صفحة التوافقية هذه. بشكل عام لا تعمل جميع هواتف نوكيا مع نظام سامبيان مع المكتبة أو تعمل مع بشكل جزئي. التحميل: يمكنك تحميل مكتبة SMSLib وكافة المتطلبات/الاعتماديات السابقة من صفحة التحميل. تجربة الأمثلة: بعد تنصيب المكتبة، قم بوصل الهاتف بالكمبيوتر ونصب التعاريف اللازمة. جرب مثال إرسال رسالة (الموجود ضمن المطتبة في المسار smslib-v3.5.0\src\java\examples\modem\SendMessage.java). لا تنسى تغيير رقم المنفذ الموجود عليه الجوال، ورقم PIN، ورقم مركز الرسائل، ورقم الهاتف.
  8. إذا هو قائم على الـ .NET http://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Visual_Studio_2010
  9. ما الفرق بين المناهج methods

    لافرق لا قيمة لترتيب الطرائق Methods ضمن الصنف الواحد إلا تنسيق الكود وترتيبه
  10. كما تفضل الأخ عصام كما أن جافا لغة مدارة بشكل كامل Managed وتستخدم الكومة Heap لتخزين كل شيء بالذاكرة ربما امتلاء الذاكرة لم يكن سببه امتلاء الذاكرة الفيزيائية، إنما إمتلاء الذاكرة المخصصة للـ JVM ويمكنك زيادته بتمرير الوسطاء (Parameters) التالية لجافا (مثلاً): java -Xms512m -Xmx2g حيث يحدد Xmx الحد الأقصى من للكومة Heap التي يمكن استخدامها ويحدد Xms الحجم الابتدائي المحجوز للكومة للاستزادة: http://avricot.com/blog/index.php?post/2010/05/03/Get-started-with-java-JVM-memory-(heap,-stack,-xss-xms-xmx-xmn...)
  11. لا تعرف أبداً، بل تظن فقط ...
  12. كتاب العمل الحر (Freelnce)

    بارك الله بك أخي محمد ... يبدو لي أنه كتاب شهي ومميز كالعادة ألا تظن أن للبرمجة خصوصية معينة بحيث يصعب العمل بشكل حر Freelnce ؟ ربما يكون الأمر مقبولاً إذا اقتصر على تقديم النصح والاستشارات الفنية والتقنية ... لكن بناء برامج وأنظمة حقيقية عادة ما يحتاج إلى وجود بنية مؤسساتية تؤمن المزيد من التواصل وترعى وتسهل الإنجاز وتزيح عن كاهلك جزءً كبيراً من أعباء الإدارة.
  13. لقد عمل الآن :) المشكلة كانت بالتنصيب، حيث يوجد عندي 2 JVM واحدة هنا: C:\Program Files (x86)\Java\jre6 وأخرى هنا: C:\Program Files (x86)\Java\jdk1.6.0_20\jre ولقد عملت الأمثلة عندما نسخت الملفات الخاصة بالـ Java Communication API إلى هنا: C:\Program Files (x86)\Java\jdk1.6.0_20\jre\lib وهنا: C:\Program Files (x86)\Java\jdk1.6.0_20\jre\bin المشكلة الآن أن جوالات نوكيا العظيمة مع نظام Symbian تدعم بشكل جزئي أو لا تدعم أبداً أوامر AT ولذلك لا يمكنني قراءة الرسائل من الكمبيوتر (باستخدام الجوال كمودم GSM)
  14. ويندوز -------------------------- نعم قمت بالتعريف، وأستطيع رؤية مودم GSM الخاص بجوالي في الـ Device Manager -------------------------- من المفترض أن يطبع الكود التالي أسماء كافة منافذ الجهاز ... لكن هناك خطأ ما لأن الطريقة getPortIdentifiers تعيد Enumeration فارغة (ولا حتى COM1 !!) لا أدري لماذا ... الكود صحيح فأين المشكلة ؟ هل المشكلة من نظام التشغيل Windows 7 Ultimate 64bit ؟ import java.util.Enumeration; import javax.comm.CommPortIdentifier; public class ListPorts { public static void main(String args[]) { Enumeration ports = CommPortIdentifier.getPortIdentifiers(); while (ports.hasMoreElements()) { CommPortIdentifier port = (CommPortIdentifier) ports.nextElement(); String type; switch (port.getPortType()) { case CommPortIdentifier.PORT_PARALLEL: type = "Parallel"; break; case CommPortIdentifier.PORT_SERIAL: type = "Serial"; break; default: type = "Unknown"; break; } System.out.println(port.getName() + ": " + type); } } } لتحميل Java Communication API من هنا: http://easyx10.googlecode.com/files/javacomm20-win32.zip اتبع التعليمات للتنصيب
  15. آه .... العديد من المشاكل أولاً لم أنجح بإنشاء اتصال عبر منفذ تسلسلي بالجوال ولا أعرف لم ! لقد قمت بتنصيب الـ Java Communication API بنجاح (على ما أظن!) ولكن عن العمل لا يستطيع رؤية أي منفذ تسلسلي ثانياً اكتشفت أن جوالات نوكيا التي تعمل بنظام Symbian ال تدعم تعليمات AT الخاصة بقراءة الرسائل ! ثالثاً وجدت برنامج يدعى piAccess يضيف دع لتعليمات AT الغير مدعومة من نظام الـ Symbian ولكني لم أنجح بتنصيبه ! :wacko: