الثلاثاء، أغسطس 16، 2005

برنامج محول الاصدارة الأولى

لطما راودني أمنية منذ أن بدأت بتعلم لغة جافا،أن أصمم برنامج مشابه لبرنامج محول القياسات التي تنتجه شركة صخر، و الذي هو في الأصل برنامج تجاري لا يمكنك استخدامه إلا بعد أن تشتري مجموعة برامج الأسرة كاملة، بالإضافة إلى أنه لا يعمل إلا على منصة ويندوز فقط، أمام نظام المفضل لينكس فتظهر الخطوط وكأنها طلاسم،، حتى جاء اليوم والذي قررت فيه أنا و الأخ زايد السعيدي بتصميم برنامج "محول" للقياسات العالمية خصيصا لأرابيان لينكس، من أهم ميزاته أنه يعمل على جميع المنصات المعروفة بسبب اعتماده على مكتبة الجافا القياسية، بالإضافة إلى ميزاته الكبرى أنه برنامج حر ، يعطيك الحرية في نسخه وتوزيعة و بيعه و التعديل فيه، وهو مجاني تحت ترخيص رخصة جنو العمومية GPL
وهذا البرنامج على بساطته يحتوي على أكثر من 300 معادلة حسابية للتحويل بين القياسات و أكثر من 3000 سطر برمجي مكتوب بالجافا وهو يتطلب مكتبة 1.5 من الجافا لتشغيله و لا يعمل على الإصدارات السابقة، وقد استخدمنا بيئة التطوير المفتوحة المصدر NetBeans الإصدارة 4.1 لتطوير البرنامج على منصة أرابيان 0.6 بيتا 3 المفضلة لدي ، آملين من الله المولى القدير أن يسهم برنامجنا هذا في نشر البرامج الحرة بين أمتنا العربية والإسلامية و أن يرفع روح الهمة لدى شبابها لينهضوا في سبيل رقيهم ، مع توفير البديل الطيب للبرامج التجارية المحتكرة ...
لتنزيل البرنامج من هنا
لتنزيل المصدر من هنا

برنامج كاتب الإصدارة 2

بعد أن نشرت في الشهر الماضي برنامج كاتب الإصدارة الأولى لم أتوقع أن يحوز على إعجاب الكثيرين، ويلقى الدعم الذي شجعني لأنتج برامج اخرى، وكان في قرارة نفسي أن أطور قليلا برنامج كاتب وأزيد عليه بعض التحسينات،ولكن تراخيت قليلا، حتى وجدت أن الأخ حسام الملحم-جزاه الله ألف خير- قام بتبني البرنامج وقام بتطويره حيث وصل إلى الإصدارة الثانية، وقد أضاف إليه الكثير والكثير من المميزات:
- قام بكتابة طريقة التحكم في الدخل من جديد، بحيث تختلف اختلافا كليا عن الإصدارة الأولى، فقد تعمدت أن تكون سهلة في الإصدارة الأولى، ولكنه قام بتطويرها و تهذيبها.
- البرنامج الأن يدعم لوحات المفاتيح المسماة qwerty و هي المنتشرة عند الذي يستخدمون اللغة العربية والانجليزية، أما اللغة الفرنسية فيمكنك الآن إضافة قاموس يحتوي على الحروف الفرنسية وما يقابلها في اللغة العربية وإضافتها، وإذا لم تعرف كيف إضافتها اقرأ المساعدةو راسل الأخ حسام لإضافتها في الإصدار القادم
- البرنامج الآن يتطلب الإصدارة 1.5 من مكتبات الجافا ولا يعمل على الإصدارات الأقدم
- إضافة إمكانية جميلة، وهي أنك إذا كنت مسرعا بحيث نسيت أن تغير لوحة المفاتيح إلى العربية وكتب الكلمات بالإنجليزية فليس داعي أن تحذف كل ما كتب فقط انقله إلى كاتب وستكلف بمهمة تحويله إلى العربية،، ( يمكنكم إستخدامها كأداة تشفير)
fsl hggi hgvplk hgvpdl
تعني بسم الله الرحمن الرحيم
- الآن يمكنك أن تكتب العربية والإنجليزية معا، في السابق كان لا يمكنك أن تكتب الإنجليزية من خلال كاتب، أما الآن فيمكنك أن تكتب العربية وبواسطة إلغاء تفعيل خيار الفلترة يمكنك أن تكتب باللغة الافتراضية في الجهاز
- تعديل وتحسين الواجهة، بحيث يمكنك الآن إظهار لوحة المفاتيح أو إخفائها
- قام الآخ حسام الملحم بتصميم applet ليعمل من على الإنترنت وهو أقل إمكانيات من البرنامج الأصلي

وأود أن أشكر الأخ مسلم عادل أبو طه لتحزيمه البرنامج للإصدارات اللينكس وجميع الأخوة الذي شجعوني على هذا العمل

لتحميل البرنامج من هنا
لتحميل مصدر البرنامج من هنا
لتجربة الأبلت من على الإنترنت من هنا

الاثنين، أغسطس 08، 2005

برمجة الرسوم ثلاثية الأبعاد في جافا, 3D, Java3D, JOGL, OpenGL, DirectX

لاحظت وجود اهتمام ببرمجة الأبعاد الثلاثية من رواد المنتدى لهذا أحببت أن ألخص الخيارات الرئيسية تحت جافا والفرق بينها.

من المعلوم أهمية السرعة في التطبيقات ثلاثية الأبعاد. للحصول على السرعة في هذه التطبيقات على المبرمج أن يستفيد من التسريع ثلاثي الأبعاد في كرت الرسوميات. كيف ذلك؟ باستخدام لغة قياسية يدعمها مصنعي كروت الرسوميات. بهذا الأسلوب سيتولى كرت الرسوميات العمل بدلا من المعالج. لدينا خيارين في هذا المجال:
لغة OpenGL:
وهي المعيار في برمجة الرسوم المسرعة عتاديا وهي في الأصل من تصميم شركة سيليكون جرافكس إنترناشونال SGI. وهي موجودة منذ فترة طويلة ومدعومة جيدا في كروت الرسوميات الحالية للمستهلكين من ATI و nVidia كما أنها أساس كروت التسريع ثلاثي الأبعاد للمحترفين في التصميم والتطبيقات الصناعية و ال CAD. دعم OpenGL موجود في معظم نظم التشغيل وتتوفر مكتبات تطوير لها لمعظم لغات البرمجة الموجودة.
لغة DirectX:
من شركة ميكروسوفت ويعمل في ويندوز فقط وهو موجه أكثر إلى المستهلكين ومدعوم جيدا في كروت رسوميات المستهلكين. نضج كثيرا في آخر إصدارتين وهما الثامنة والتاسعة حيث قدم إمكانات متقدمة مثل مظللات الذرى Vertex Shaders و مظللات البكسلات Pixels Shaders. يمكن التطوير لDirectX باستخدام عدة التطوير له من ميكروسوفت التي تحوي المكتبات اللازمة للغات فيجوال ستوديو.

الآن نعود لجافا:
تطورت جافا في الإمكانات الموجهة للوسائط المتعددة والألعاب تطورا كثيرا خصوصا في السنة الأخيرة بعد الإصدارة 1.4 التي أتت مع نمط كامل الشاشة الحصري Full Screen Exclusive Mode كما تطورت المنصة عموما بمكتبات قوية مثل Java2D و Java3D و JOGL و JOAL و JAI و JMF و JInputحتى أصبحت المنصة خيارا قويا جدا ينصح به لتطوير الألعاب وظهرت (وستظهر قريبا) كتب عدة ممتازة في تطوير الألعاب تحت جافا.

بالنسبة للبرمجة ثلاثية الأبعاد فأهم الخيارات (يوجد غيرها) خياران:
Java3D:
تعتبر Java3D مكتبة للتطوير على المستوى العالي (High Level) وتعتمد أسلوب بنيوي (Structural) يعتمد وصف محتويات المشهد بوضعها داخل شجرة Tree بأسلوب كائني. Java3D مبنية فوق OpenGL أو DirectX (تتوفر نسختان) ولكن البرمجة تتم بال Java3D. ينصح باستخدام نسخة OpenGL حيث أن لها سمعة بأنها أكثر ثباتا.

JOGL:
Java OpenGL Binding
الخيار الحديث جدا هو استخدام هذه المكتبة التي توفر الوصول المباشر لأوامر OpenGL أي أن التطوير يتم على مستوى منخفض (Low Level).
المبرمجين المتمرسين في OpenGL يمكنه البرمجة فورا ويمكن نقل الكود المكتوب لOpenGL في ال C مثلا مباشرة لجافا مع تعديلات بسيطة جدا حيث أن هناك تناظر واحد لواحد و بنفس الأسماء للدوال. بسبب هذه الميزة أو العيب (يعتمد هلى أسلوب النظر) فإن JOGL ليس لها مذاق البرمجة الكائنية في جافا حيث أن المكتبة عبارة عن عدد لا يتجاوز أصابع اليد من الأصناف التي تحوي عددا خياليا بالآلاف من الطرق.

السرعة:
كلا المكتبتين تستخدمان JNI في استدعاء دوال أصيلة لذا لك أن تتوقع أداءا عالي السرعة وهذا صحيح ولكن JOGL أسرع من Java3D كما توقعت أنت ربما. يمكن تشبيه هذا الوضع بالفرق بين ال C و الأسمبلي. في الحقيقة فإن JOGL خارقة السرعة حيث أنه لا فرق يذكر في السرعة عند استخدام OpenGL تحت C لذا فهي مناسبة جدا لبرمجة دووم التالية. ولكن Java3D مناسبة أكثر للمطورين الأقل تمرسا في برمجة الرسوم على مستوى الرأس والمضلع المنخفض المطلوب في JOGL.

موضوع طرحه الأخ TheUnforgiven
في منتدي الفريق العربي للبرمجة، على هذا الرابط
أنصح بمراجعته لتزود بقائمة الموارد المفيدة