سرعة البرامج المنشئة بدلفي مقارنة بسي# وجافا

يونيو 25th, 2009

هل هناك فرق في السرعة بين البرامج المنشئة بلغة معينة مقارنة باللغات الأخرى؟

هذا النقاش تم بين مبرمج دلفي وسي#، وقاما بعمل تطبيق بسيط يقوم بكتابة ارقام عشوائية ضمن مركب بيانات لمليون عنصر، ومن ثم معرفة عدد تكرار رقم معين وايضاً المجموع الكلي.

النتيجة كانت ان دلفي أسرع 3 مرات من سي# وأربع مرات من جافا ومئات المرات من لغة PHP

تم اجراء الاختبارات بعدة طرق ومنها تعدد المسارات Multithreading وفي هذه الحالة وصلت سرعة دلفي إلى أكثر من 6 أضعاف :)

ماذا لو تم إستخدام الاسمبلي ايضاً كم سوف يصبح مقدار السرعة؟؟؟ .

,هذه ما تتميز به لغة دلفي السرعة والإنتاجية العالية ;).

الموضوع تجدونه هنا Delphi is fast, very fast

والنتائج هنا

المقارنة كانت بسيطة، لكنا كانت اظهرت الفرق، وفي البرامج الكبيرة قد تزيد السرعة أو تنقص وذلك حسب طبيعة كل برنامج.

وإلى لقاء اخر بإذن الله.

مستقبل دلفي إلى أين؟؟؟

مايو 21st, 2009

منذ عدة سنوات ومعظم مبرمجي دلفي قلقون على مستقبل لغتهم المحببة “والمميزة” دلفي، فالتطور في التقنيات أصبح متسارع بشكل كبير، ولكن دلفي عانت في النسخ السابقة من الدعم السريع لهذه التقنيات بالإضافة إلى انخفاض الجودة في عدد من النسخ (دلفي 8، دلفي 2005، دلفي 2006 ما قبل التحديث الثالث)، لكن مع انفصال الجزء المتخصص بأدوات التطوير ولغات لشركة بورلاند كشركة جديدة تحت اسم CodeGear صدرت نسخة 2007 والتي أعادت الجودة المعهودة لدلفي، ومن ثم تم شرائها لشركة أخرى غير معروفة لمعظم مبرمجي دلفي وهي Embarcadero، لكنها كانت هي المنقذ الوحيد لدلفي ولشركة كود جير، حيث صدرت واحدة من أفضل نسخ دلفي من ناحية المميزات والجودة وهي دلفي 2009، وأيضاً زاد الدعم والطاقم المطور لدلفي تحت مظلة هذه الشركة.

وخلال مؤتمر دلفي السابق المنعقد الأسبوع الماضي، ظهرت العديد من الأخبار السعيدة والتي سوف تجعل دلفي خلال العامين القادمين من أفضل منصات التطوير للبرمجيات تحت جميع نظم التشغيل المهمة، نعم أتحدث عن تعدد نظم التشغيل مثل ويندوز ولينكس و………….. ماكنتووووووووش :).

شركة Embarcadero ومنذ شرائها لشركة كود جير أوضحت أنها شركة تهتم بطبقة المبرمجين وسوف تستثمر في دلفي لأنها شركة مطورين وللمطورين، ويجري العمل حالياً على عدد من نسخ دلفي والتي سوف نراها خلال العام هذه بالإضافة إلى العامين القادمين للنسخ الخاصة بلينكس وماكنتوش، ولا ننسى نسخة دلفي 64 التى سوف تصدر خلال العام القادم ومن المرجع أن يصدر المترجم التجريبي لها خلال أواخر هذا العام.

ورغم عدم ظهور RoadMap (قد تترجم ك خارطة الطريق لكن هذه الاسم غير محبب لي كفلسطيني ;))حيث يجري العمل على تحديثها، وقد نراها خلال الفترة القريبة بإذن الله.

المهم لنتحدث الآن عن النسخ القادمة من دلفي، حيث يوجد حالياً عدة نسخ يجرى العمل عليها وهي: Weaver, DelphiX, Chromium, Commodore، ورغم الأسماء المبهمة لكن مميزاتها رائعة.
النسخ القادمة من دلفي

Delphi Weaver:
وهو حالياً تحت التطوير ومرجح نزوله قبل منتصف العام وسوف تعرف بإسم دلفي 2010، وهذه الإصدارة تحتوي على مترجم win32  لكن تم التطوير عليه لدعم مميزات جديدة للغة، بالإضافة إلى تحسينات إضافة ضمن بيئة التطوير والمكونات الموجودة وهذه بعض ومن أهم مميزات نسخة Weaver :
1.    دعم لعمل برامج للشاشات اللمس Touch، هل شاهدتم Microsoft Surface  من قبل وتريدون برمجة برامج شبيه بها للشاشات الداعمة للمس، سوف تتحقق هذه الأمينة مع النسخة القادمة حيث يوجد دعم لحوالي 70 مكون جديد خصيصاً لهذه المميزة، والجميل أنها سوف تعمل مع نظام تشغيل ويندوز 7 وما قبله :).
2.    إضافة دعم Attributes، وهي ميزة كانت تميز لغات من جافا ودوت نت وبذلك دلفي تصبح اللغة الوحيدة ك Native language التى تدعم هذه الخاصية، وسوف يصبح بإمكان عمل Reflection لبرامج دلفي ولكن بدون رؤية الكود المصدري ;).
3.    دعم Windows 7 API وبذلك يصبح دلفي أول لغة برمجة بها دعم مضمن لويندوز 7 كما كان الحال مع ويندوز فيستا في نسخة دلفي 2007.
4.    دعم لقاعدة بيانات FireBird من خلال dbExpress.
5.    ميزة رائعة وانتظرها منذ وقت طويل وهي دعم برامج التحكم بالنسخة (VCS Version Control system) وسوف يأتي دعم مضمن بيئة التطوير IDE  للبرنامج الأشهر وهو Subversion.
6.      دعم ل Direct2D من خلال صنف جديد مشتق من TCanvas.
7.    IDE – Insight، حيث يمكنك الوصول لمعظم خصائص بيئة التطوير من خلال لوحة المفاتيح.
8.    دعم لتقنية REST، حيث أصبح بالإمكان إنشاء REST Server من خلال دلفي.
9.    إضافة العديد من الميزات و التحسينات على DataSnap.
10.    المزيد من التحسينات على Extended RTTI.
11.    دعم ل SOAP 1.2 Clients.
12.    العديد من التحسينات على بيئة التطوير IDE وإضافة العديد من المزايا المحسنة في كتابة الكود.
13.    تحسين على نظام المساعدة وملفات المساعدة.

Delphi X:
أهم مميزات هذه النسخة دعم تعدد نظم التشغيل، وهذه بعض من المميزات الخاصة بها:
1.    دعم لتعدد منصات التشغيل مثل: ويندوز، لينكس، ماكنتوش.
2.    مكتبة مكونات لنظم التشغيل المتعددة.
3.    دعم لتقنية DataSnap ضمن جميع نظم التشغيل المدعومة (تصور أن يكون لديك برنامج Multi Tiers حيث يكون لديك الخادم موجود على لينكس والواجهة على أي نظام تشغيل أخر(باي باي جافا)).

Delphi Chromium:
وهذه النسخة تحتوي مميزات أهمها تحسين إنتاجية المطور ومن هذه المميزات:
1.    Pascal Code Formatter.
2.    دعم جديد لربط المكونات مع البيانات حيث لن تكون محدودة بمكونات قواعد البيانات، مثلاً سوف يمكن ربط TEdit مع أي Object وليس ملزم بمكون قاعدة بيانات.
3.    توثيق ل OTA (أكيد عصام علي سوف يكون مبسوط ;))، فمن جرب محاولة كتابة IDE Tools، سوف يشعر بالفرح أخيراً.
4.    التكامل مع منتجات شركة Embarcadero الخاصة بقواعد البيانات مع دلفي.

Delphi Commodore :
وقد يكون الاسم هنا ليس بغريب مثل السابق ذكرهم، حيث أنه ذكر من قبل ضمن RoadMap وهي نسخة دلفي 64 بت، وهذه أهم مميزاتها:
1.    مترجم لدعم معالجات 64 بت (Native 64bit compiler).
2.    نسخ من مكتبات: VCL,RTL خاصة ببئة 64 بت.
3.    دعم لتعدد المعالجات MultiCore  والبرمجة المتوازية (Parallel Programming)

ما سبق ذكره يجرى العمل عليه حالياً وتم توضيحه خلال جلسة “What’s cooking in the Labs” أو ما يتم طبخه حالياً في المختبرات (أكيد شاطرين في الطبخ)، لكن حسب ما ذكر فسوف نرى هذه النسخ خلال العامين القادمين، ولن نخشى من تقليل جودة أحد المنتجات على حساب الأخر، فشركة كود جير تعلمت الدرس وأصبح كل نسخة لديها الفريق الخاص بها للتطوير، وليس مثلما حصل مع نسخة دلفي Kylix السابقة حيث كانت ينتقل الفريق من دلفي لها والعكس مما أثر على الجودة بشكل عام.

ويمكنكم مشاهدة ما يمكن فعله بنسخة دلفي القادمة في بعض لقطات الفيديو هنا.

أما نسخة weaver فهي حالياً في الإصدار التجريبي وسوف تصدر هذا العام إن شاء الله، وسوف أتحدث عنها لاحقاً بشكل مفصل أكثر عندما يسمح لنا بالتحدث عنها بشكل علني.

وإلى لقاء أخر بإذن الله

ماذا سوف تكسب أوراكل من صفقة صن؟

أبريل 21st, 2009

البارحة وبعد ساعات قليلة من خبر الشراء قمت بكتابة موجز بسيط عن قيام شركة أوراكل بشراء صن وكان لدي تعجب من الصفقة لإعتقادي أن الأمور كانت بإتجاه شراء شركة IBM لشركة صن، وهنا سوف أستعرض بعض الملاحظات عن الصفقة وبماذا تفيد أرواكل.

ماذا سوف تكسب أوراكل من هذه الصفقة؟

أوراكل تعتبر من الشركات الكبري في سوق البرمجيات والأكبر في سوق قواعد البيانات، والأن سوف يصبح لها  نسبة في سوق المعدات Harware حيث تتمتع خوادم صن بالموثقية العالية، وهذا بدوره سوف يجعلها منافس أساسي لشركات مثل IBM وHP في سوق الخوادم ونظم التشغيل المبينة علي يونيكس.

بالإضافة إلي أن ذلك سوف يقوم بتوسيع حصتها في سوق البرمجيات وتصبح منافس رئيسي لميكروسوفت ضمن لغات البرمجة وبيئات التطوير من خلال الجافا وNetBeans وسوق البرامج المكتبية من خلال OpenOffice.

وسوف تصبح هناك منافسة على سوق ال Virtualization بينها وبين المنافس الرئيسي VMware وجزء صغير مع ميكروسوفت.

وهنا بعض النقاط لمكاسب أوراكل:

1. حوالي 10% من سوق الخوادم وهي النسبة الخاصة بشركة صن المشهورة بخوادم Sparc Servers، تسبقها شركة IBM بحوالي 30% وHp بحوالي 29% وديل بحوالي 11%.

2. كعكة لا بأس بها في سوق نظم تشغيل اليونيكس حيث تمتلك شركة صن نظام تشغيل Solaris، حيث تقدر نسبة صن في هذا السوق 28% تسبقها IBM ب 36% وتتبعها HP ب 26%.

3. استحواذها للشركة التي كانت وراء لغة البرمجة جافا، فهي سوف تصبح لاعب رئيسي في هذا المجال وتنافس بشكل أساسي ميكروسوفت ومنصة الدوت نت.

4. إضافة شريحة جديدة في سوق قواعد البيانات، فرغم استحواذ شركة أوراكل على أكثر من 40% من سوق قواعد البيانات، فإن MySql سوف يضيف لها مجموعة من أكبر وأشهر المواقع مثل faceBook, Flickr, wikipedia, youTube وغيرهم.

5. سوف تكسب NetBeans وهي تعتبر منافس أقوي ل JDeveloper الخاص بأوراكل، حيث تسيطر على كعكة أكبر في سوق بيئات العمل الخاصة بالجافا وتصبح منافس أساسي لل IBM وEclipse، بالإضافة وضعها منافس أساسي لميكروسوفت وفيجوال ستوديو.

6. OpenOffice والذي سوف تنافس به ميكروسوفت في سوق البرامج المكتبة، ورغم أن أغلب انتشار OpenOffice هو ضمن نظام تشغيل لينكس، لكن بالتأكيد سوف تقوم أوراكل بمحاولة اقتطاع حصة من ميكروسوفت في هذا السوق.

الشيء المقلق بالنسبة لي هو أن شركة أوراكل مثلها مثل ميكروسوفت، عندما تستحوذ على شركة فهي تريد احتكار قطاع معين من وذلك من خلال شراء المنتج ليصبح مملوك لها وقتله في وقت لاحق من أجل المنتجات الخاصة بها، أو لإقصاء شركة معينة من السوق لدعم أكبر لمنتجاتها.

وايضاً MySql حيث أنه بالرغم من شراء شركة صن له وهي تعتبر من أكبر الشركات الداعمة للمصادر المفتوحة، لكنها مثل الشركات الأخرى الطابع التجاري يغلب عليها، لذا كان قرار إنزال نسخة 5.1 مع وجود عثرات كبيرة خطا جسيم، وهو ما دفع بعد ذلك Monty Widenius مؤسس MySql لترك الشركة وقيامه بإنشاء مشروع جديد مبنى على النسخة المفتوحة المصدر من MySql، فماذا سوف يحدث مع شركة أوراكل وهي تعتبر أن MySql منافس لها في السوق بنسخته المفتوحة المصدر؟

وبالنسبة لقاعدة بيانات PostgreSQL وهي تعتبر المنافس الأساسي لقواعد بيانات أوراكل في قواعد البيانات المفتوحة المصدر، حيث كانت شركة صن من أكبر الداعمين له، فهل سوف يبقى هذا الحال مع أوراكل أيضا؟؟

سابقاً أوراكل كانت تتجه باتجاه لينكس كحلول لا تنافس من ناحية الأداء والثبات مثل الدعاية المشهورة Oracle Unbreakable Linux، لكن هل سوف يتم تغيرها إلى يونيكس؟

أيضاً ماذا سوف يحل في نسخة لينكس الخاصة بأوراكل والمبينة على نسخة رد هات؟

وإلى لقاء أخر بإذن الله.

أوراكل تشتري صن

أبريل 20th, 2009

Oracle buy Sun

خبر مفاجئ لي، حيث قامت شركة أوراكل اليوم بشراء شركة صن بصفحة تقدر بحوالي 7.4 مليار دولار.

الشيء المفاجئ في الخبر هو إنني اتابع منذ فترة عروض شركة IBM لشراء شركة صن، وتم تقديم أكثر من عرض في الفترة السابقة وقامت صن برفضهم، وكان أعلي عرض ما يقارب ب 7 مليار دولار، أي أقل بحوالي 300 مليون دولار فقط، لكن لم اكن اتصور ان شركة اوراكل سوف تدخل في الموضوع بهذه السرعة.

للخبر بقية، سوف أكمله لاحقاً بإذن الله

نسخة مجانية من كتاب Illustrated C# 2008

أبريل 19th, 2009

Free eBook: Illustrated C# 2008

قبل أيام قرأت في أحد المدونات عن قيام شركة RedGate بتوفير نسخة مجانية من كتاب Illustrated C# 2008

وحسب ما رأيت في صفحة الكتاب في موقع Amazon فإنه حصل على أكثر من أربع نجوم ونصف، مما يجعله كتاب مميز لكل من يريد أن يتعلم لغة سي# والمميزات الجديدة في نسختها الجديدة 2008

أيضاً سوف يعتبر مرجع جيد لمبرمجي Delphi Prism، حيث جميع مبادئ الدوت نت موحدة لكل اللغاب، بالإضافة لسهولة تحويل الكود من سي# إلى دلفي بريزم.

حملت الكتاب ولم أقرأه بعد، لكن بالتأكيد سوف أطلع على بعض المواضيع التي به وسوف يكون مرجع جيد لي.

وإلى لقاء أخر بإذن الله.

البرمجة لبيئة أبل ماكنتوش مع دلفي

أبريل 2nd, 2009

Develop for Apple Macintosh using Delphi win 32

اليوم هوا 2 ابريل، فإذاً هذه ليست كذبة ابريل أو نيسان أو كما تسمى (صراحة أكره أن  يستخدم هذه اليوم في الكذب حتى على سبيل المزاح   :P).

على العموم لنرجع للموضوع، أن تستخدم دلفي للبرمجة في بيئات أخرى غير ويندوز هذا حلم الكثيرين ومنهم أنا بالطبع وخاصة لبيئة أبل ماكنتوش التي تجذب الكثيرين يوماً بعد يوم(وقد يكون إعجابي به شوكلاته ماكنتوش:))، وبعد مقتل نسخة دلفي Kylix أصبح هذا المراد أصعب من السابق وحلم يتمنى الجميع رؤيته.

الجيد في الموضوع أن شركة كود جير حالياً تعكف على إعادة تطوير المترجم بمعمارية جديدة سوف تظهر نتائجها خلال هذه العام مع صدور النسخة التجريبية من مترجم 64 بت، والممتاز أن تم وضع في الإعتبار أن يتم إنشاء المترجم للمنصات الأخرى مثل أبل ولينكس، وهذا لن نراه قبل العام المقبل، فيكف يمكن حالياً عمل ذلك؟

هناك حل موجود وهو استخدم مترجم Free Pascal مع بيئة التطوير Lazarus، لكنها تبدو بدائية جداً بالنسبة لدلفي، ومن يعمل حالياً على دلفي 2007 أو 2009 عندما ينتقل إلى أفضل نسخ دلفي السابقة وهي 7، يشعر بأنه رجع قرن للوراء من ناحية الإنتاجية، فما بالك بمن يعمل على Lazarus !!!!.

الحل هوا منتج جديد من شركة صغيرة جداً وهو يسمى wxForms، وفكرته بسيطة جداً، قم بالعمل على دلفي كالمعتاد وإنشاء برامجك على أي نسخة دلفي تفضل وعند الانتهاء يمكنك نقل الكود المصدري على جهاز الماكنتوش وترجمته من خلال نسخة Lazarus الموجودة على الماكنتوش.

الطبع لا يمكنك بالطبع استخدام جميع المكونات الموجودة في دلفي، لكن عليك أن تستخدم مكتبة خاصة تستخدم wxWidgets كأساس، وكما هو معروف فمكتبة wxWidgets مكتوبة بلغة السي وموجودة على أغلب أنظمة التشغيل الحالية بما فيها ويندوز ولينكس وماكنتوش، أما wxForms فيحتوي على مصمم للنماذج خاص مع كود الاستدعاء لهذه المكتبة بلغة الباسكال.

وكما ترون يمكنكم البرمجة على دلفي كالشكل التالي:

وعند الترجمة يظهر بهذا الشكل على نظم تشغيل ماكنتوش

وعلى ويندوز فيستا بهذا الشكل:

ويمكن مشاهدة ملف فلاش يوضح سير عملية التطوير بالنقر هنا

وفي النهاية تحصل على برنامج يعمل على أبل ماكنتوش وويندوز كبرنامج native.

هناك مشكلتين في هذا الحل وهما:

1. يجب تنصيب نسخة من Lazarus على بيئة أبل حتى تتم عملية الترجمة عليها.

2. محدودة المكونات لأنها محدودة بما هوا موجود ضمن مكتبة wxWidget.

أتمنى في النسخ القادمة من المنتج أن يتبع طريقة CrossFPC  والذي كان يسمح بالبرمجة ضمن دلفي ويقوم بعملية الترجمة من داخل دلفي نفسها وليس بحاجة لإستخدام Lazrus ، لكن للأسف تم توقف تطويره منذ سنوات.

وفي النهاية لكل محبي لغة دلفي wxForms سوف يفتح لهم أفاق جديدة في البرمجة وأيضاً في الأسواق ;-)

وإلى لقاء أخر بإذن الله

صدور نسخة IBrowser الجديدة

مارس 18th, 2009

قام عصام علي (وهو مبرمج متميز وخاصة بدلفي) بإصدار النسخة الجديدة من الإضافة  الرائعة لدلفي وهي IBrowser 1.1، وللكثير مما لا يستخدمها سوف أقوم بعرض سريع على مميزاتها ولماذا هي مميزة لدي:)

IBrowser هو عبارة عن إضافة لدلفي من 7 وحتى 2009 تقوم بإستبدال مكون File Browser الموجود في دلفي، ولكن بإضافة العديد من المميزات.

صراحة لم استخدمها من يوم صدورها، ولكن عندما انتقلنا في الشركة من إستخدام Visual Source Safe إلى SubVersion & TortoiseSVN  (هذا يحتاج لتدوينة أخرى مع شرح مستفيض لاحقاً بإذن الله)، قمت بإستخدام File Browser في البداية ولكن كان هناك أمر مزعج وهو علي الإنتقال في كل مرة لمسار المشروع المفتوح بشكل يدوي ولا يتم ذلك عند فتح المشروع مباشرة، وهنا تذكرت أن عصام قام ببرمجة شيء مشابه قبل عدة شهور، لكني لم أستخدمه وقته ،لكني عند أستخدامي له وجدت المميزات التى أريدها إلإ  ميزة واحدة كانت مفقودة في الإصدار الأول وهي Icon Overlay  لكنها كانت مهمة جداً لإنني أستخدم ال TortoiseSVN، وعندها قمت بإرسال رسالة إلى عصام أذكر له هذه الميزة المفقودة فقام مشكوراً بإرسال  إصدار تجريبي يحتوي على النسخة المعدلة وبها الميزة المطلوبة.

والأن بهد هذه المقدمة لنرى بعض مميزات IBrowser:

1. Incremental Search أو بحث تزايدي، يمكن الكتابة في المربع العلوى على اسم اي ملف في المشروع وسوف تنقل للملف المقارب لما كتبت عند كل حرف تضغطه.

أيضاً توجد ميزة تميزه عن File Browser وهي عندما تفتح أي فورم أو يونت Unit، يقوم تلقائياً بتعلميه مما يجعلك تعرف الملف المفتوح والذي تعمل عليه مباشرة

ibrowser1

2. Icons Overlay: هل تلاحظون العلامات الملونة على كل أيقونة ملف؟ هذه الميزة التى كانت مفقودة في الإصدار الأول لكن تم إضافتها في الإصدار الأخير، وهي الميزة الأساسية لكل من يستخدم TortoiseSV.

3. قائمة مساعدة إضافية: تحتوي على مجموعة من الخيارات المفيدة مثل: الوصول مباشرة للمشروع المفتوح ضمن مستكشف ويندوز، نسخ مسار المشروع المفتوح للحافظة أو فتح المسار مباشرة ضمن موجه الأوامر Command Prompt

ibrowser2

4. تعريف مجموعة من خيارات الفلترة بشكل مسبق: مما يتيح لك عرض الملفات المراد إظهارها فقط وتجنب الملفات الغير ضرورية مثل DCU وغيرها، ميزة الفلترة موجودة في File Browser لكن تتيح لك كتابة فلتر واحد في نفس الوقت ولا تستطيع الإختيار من مجموعة معدة مسبقأ، وهذه ميزة أخرى رائعة مفقودة في Fire Browser.

ibrowser3

وهنا صورة لشكل الملفات بعد تطبيق عملية الفلترةibrowser4

تلك كانت بعض المميزات وليس جميعها ولكن هذا ما أسعفتني الذاكرة في هذا الوقت.

وهنا سوف أذكر بعض النقاط التى نطمع أن نراها في الإصدارات القادمة (أعرف وقتك ضيق يا عصام، بس سامحني :))

1. عدم إمكانية إختيار أكثر من ملف في نفس الوقت، فمثلا لو أردت أن أختار Unit.pas & Unit.dfm فلن يمكنني ذلك، وهذه ميزة مهمة في حالة أردت أن commit لعدد من الملفات وليس لجميع المجلد الحالي.

2. لو تم إضافة خيار الفلترة بشكل عكسي سوف يكون مفيد، حيث أنه في أغلب الأحوال يحتوي المشروع على العديد من الملفات التى قد لا تكون مهمة لدلفي ولكن نحتاج لها لمعرفة التعديلات التى تمت من الأخرين على المشروع، ولكن نريد أن نستثني ملفات معينة مثل DCU.

3. خيار التحديث Refresh لو تم نقله للقائمة الخاصة بالمشروع Context menu سوف يكون افضل لسرعة التحديث من خلال قائمة واحدة.

وأخيراً:

IBrowser هو إضافة تثري دلفي وخاصة النسخ الأقدم التى لا تحتوي على File Browser، وسوف يستفيد منه المبرمجين الذين يعملون بشكل أساسي على TortoiseSVN ويقدرونه بشكل كبير، وأيضاً للمبرمجين الذين لا يتعاملون مع TortoiseSVN  سوف يجدونه أداة مفيدة لا يمكن الإستغناء عنها مع مرور الوقت.

أتمنى التوفيق لأخي عصام وأشكره على هذا المنتج الذي وفره مجاناً لجميع مبرمجي دلفي.

وإلى لقاء أخر بإذن الله.

تحويل الصور إلى نوع Jpeg وتغير دقتها

مارس 10th, 2009

وصلتني رسالة من أحد الإصدقاء قبل أيام يسألني عن عملية تحويل الصور، والتحكم في دقتها وحجمها فقمت بعمل مثال بسيطة لتحويل صورة من نوع BMP الى JPEG، كالتالي:

uses

jpeg;

procedure TForm1.btn1Click(Sender: TObject);
var
  Bmp: TBitmap;
  Jpg: TJpegImage;
begin
 try
   Bmp := TBitmap.Create;
   Jpg := TJpegImage.Create;
   Bmp.LoadFromFile('c:\pic.bmp');
   Jpg.Assign(Bmp);
   // best average between quality and size ratio start from 1 to 100
   Jpg.CompressionQuality := 75;
   Jpg.SaveToFile('c:\pic.jpg');
 finally
   FreeAndNil(Jpg);
   FreeAndNil(Bmp);
 end;
end;

العملية بسيطة كالمثال السابق، والتحكم في جودة الصورة يتم من خلال خاصية CompressionQuality والتى تأخذ قيم من 1 (اقل جودة) الى (100 أعلي جودة)

أما إذا أردت تحكم أكبر بعملية الصور والتحويل فهناك مكونات تدعي ImageEn وهي من أفضل المكونات الموجودة للتعامل مع الصور لدلفي.

المثال السابق يمكن إستخدامه للتحويل إلى صور PNG ولكن بإستخدام كلاس TPngImage والكود يعمل بنفس الطريقة، لكن سوف يلزم دلفي 2009، أما المثال السابق فيعمل على أغلب نسخ دلفي.

وإلى لقاء أخر بإذن الله

وتسألني متى تغضبْ ؟!

فبراير 28th, 2009

رد على رائعة د.عبد الغني التميمي ” متى تغضب ؟! “

د. أسامة الأحمد

وتسألني متى تغضبْ ؟!
لأقصانا إذا يُغصَبْ ؟!
وتعجبُ ؟!
منكَ فلتعجبْ !!
* * *
“حداثيٌّ ” أنـا .. لكنْ فخَرتُ بأنني عـربي !
أنا أقفـو أبا جهلٍ .. وأستوحي أبا لهبِ !
مسيلمةٌ غدا جدّي .. ويا فخري بذا النسبِ !
ويافخري! فمُرضعتي غدتْ : حمّالة الحطبِ!
وتسألني: متى تغضبْ ؟!
وكيف سيغضبُ الثعلبْ ؟!
* * *
أنا شارونُ أعذرهُ .. وأعبد عجلَه الذهبي !
وفكري فكرُ لينين .. ولكني أنـا عربي !
أنا التَّلمودُ أغنيتي .. و رأس المالِ أمنيتي
سلاحي في الوغى كأسٌ .. وساحي صدرُ فاجرةِ
سلوا الحاناتِ تعرفني .. سلـوا كلَّ المواخيرِ
سلوها اليومَ تذكرني .. بأني خيرُ سِكّيرِ !
ألستُ كنتُ ترجمتُ تعاليمَ الخنازيرِ ؟!
عبيدُ الغرب ربّوني بكل وسائل الإعلامْ
على أن أعبدَ الأصنام َ ، أجفو دعوة الإسلامْ
وتسألني :متى تغضبْ ؟!
وتعجبُ ؟! منك فلتعجبْ !
* * *
مساجدُنا مزخرَفةٌ بأهوالٍ من المرمرْ !
توارى شيخُنا عنّا.. وغابتْ هيبة المنبرْ !
فلم نسمعْ سوى همسٍ لشكواهُ إذا يَزأرْ
أنا الحلّاجُ أعشقهُ ، وأهوى شيخَنا الأكبرْ
وأدعو “للطواسين ” .. وأدعو ” للفتوحاتِ .. ”
وما أزكى الشياطين ! وما أهدى الضّلالاتِ!
وكان الشيخ وصّاني بأن أدعو لها سرّا
وقال بأننا نخشى يُسمّون الهدى كفرا
وشيخي مدّ لي كفّاً
وشيخي مدّ لي قدَما
أُقبِّلُهـا .. أُبجّلهـا .. فشيخي سيّد العُلَما
وشيخي يعشق الدولارْ
وشيخي زوّرَ الأخبارْ
وناصَرَ بدعةَ الشيطانِ ، حاربَ سنّة المختارْ
وشيخي أتقنَ الكذِبا
وأضحى سيفُه خشبا
وتسألني: متى تغضبْ ؟
فقل هل يغضبُ الأرنبْ ؟!
* * *
وبَدءُ كتابنا : (اِقرأْ ).. وقال الكلُّ : لا تقرأْ
فأين الشطُّ والمرفأْ ؟!
وأين تريدني ألجأْ؟!
وأين تريدني أذهبْ ؟!
لأنّا لم نعُدْ نقرأْ .. غدونا مَعشراً جُهَلا
لأنا لم نعد نقرأْ .. غدونا في الورى همَلا
لأنا لم نعد نقرأْ .. غدونا بَعدها عُمَلا
وفَصّلْنا بأيدينا لكل مجدِّدٍ كفَنـا
وأنشأنا بأيدينا هنا قبراً .. هنا وثَنا
وتطمعُ بعدها نغضبْ ؟!
معاذ الله أن نغضبْ !
* * *
ومَن يدري ؟!
غداً في ساعة الصّفرِ
إذا ماعاد في الفجرِ صلاحُ الدين بالنصرِ
وعاد المسجد الأقصى يعانقُ ” قبّةَ النَّسرِ ”
وهبَّتْ نسمة التوحيدِ والإيمان في العصرِ
وعاد الطهرُ للفكرِ .. و للفنِّ ، و للشِّعرِ
وعادت أمّةُ الإسلام حقّاً أمةَ الخيرِ
وعادت أمةُ الإيمان تسحقُ أمةَ الكفرِ
ومنْ يدري ؟!
غداً في ساعة الصِّفرِ
إذا ما لاح في المنهَجْ
لواءُ ” الأوس والخزرجْ ”
وهزَّ حسامَه المقدادُ ، هزَّ لواءَه مصعبْ
فقد نغضبْ .. لما يجري !
فلا تعجبْ .. ولا تعجلْ
ولا تسألْ : متى تغضبْ ؟!
مُنى عمري: بأن أغضبْ
مُنى عمري

White paper عن الأسباب التى سوف تجعلك تنتقل من دلفي 7 إلى دلفي 2009

فبراير 28th, 2009

قام Andreano Lanusse وهو مدير خط الإنتاج لشركة كود جير في امريكا اللاتينية بكتابة White Paper ( لا ادرى الترجمة الصحيحة لهذه الكلمة) بعنوان Reasons to Migrate from Delphi 7 to Delphi 2009 الأسباب التى تجعلك تهاجر من دلفي 7 إلى دلفي 2009.

ويوجد بها اكثر من 60 صفحة تتحدث عن كل المميزات التى اتم اضافتها للغة دلفي ولبيئة التطوير والمكونات في الإصدارات ما بعد النسخة السابعة.
انصح كل مبرمجي دلفي الذين لا يستخدمون نسخة دلفي 2009 بقرائتها وتجربة دلفي 2009 لمدة شهر واحد ومتأكد أنهم لن يرجعو للنسخ السابقة أبداً :)


Error in my_thread_global_end(): 1 threads didn't exit