مفهوم الـ Threads بشكل مبسط جدا ً جدا ً .

اليوم بدأت بالقراءة عن الـ Threads في الجافا ،، بالجامعه درست اغلب المفاهيم البرمجية لكن في بعض المفاهيم مادرستها والآن بديت اتعلمها (افكر بالتحضير لـSCJP)،، من اهم المواضيع اللي كانت على بالي هي الـ Threads .
وجدت موضوع اعطاني بداية مبسطه .
اسهل طريقة لفهم الـ Threads هو عن طريق هالمعادله الرياضيه البسيطه :
2+5+9+3

المعادله البسيطه تضم ثلاث عمليات جمع ،، لجمعها بشكل مستسلسل نحسب :
2+5=7
وبعدها نضيف 9 ويكون الناتج 16 وبالاخير نضيف 3 ويكون الناتج 19 .

الآن لنفرض ان كل عملية جمع تأخذ ثانيه واحده من الوقت ،، اكيد البعض راح يكون عملية بسيطه الكمبيوتر راح  يعملها باقل من ثانيه ،، لكن لنفرض ان طفل عمره 6 سنوات ، يحل هالمعادله ومثل مافرضنا ان كل عملية جمع تأخذ ثانيه واحده من الوقت :
2 + 5 = 7    << ثانيه

7 + 9 = 16   << ثانيتين

16 + 3 = 19  << ثلاث ثواني
راح يحصل على الجواب النهائي بعد ثلاث ثواني
الآن راح نستدعي طفل آخر ونجعلهم يتعاونون ،، يعني طفل رقم 1 راح يحسب 2 + 5  وطفل رقم 2 راح يحسب 7 + 9 الآن الطفلين مجموع حسابهم بالنسبه للوقت هو ثانيه واحده ،، الآن الطفل رقم 1 يحسب مجموع الناتجين وهما :
7+12 وهو 19 ،، راح يحسبها بثانيه واحده ،، اضفها مع الثانيه السابقه راح تكون ثانيتين .
يعني الجواب النهائي تم حسابه خلال ثانيتين وهي اسرع من العمليه السابقه التي كانت بشكل تسلسلي بنسبه 33 بالمئه.

اتمنى ان تكون الفكره وضحت .
المصدر :
http://www.devshed.com/c/a/Java/The-Basics-of-Multiple-Threads-in-Java

وان شالله راح اكمل مع الاكواد لكن عندي شغل وراح ارجع واكمل .

Groovy

اليومين هذي قمت بالاطلاع على قروفي Groovy ،، واعجبتني الصراحه خصوصا ان دراستي كانت جافا ،، يعني تعلن قرووفي سهل المهمه .

الان اكتب وثيقه صغيره ،، انتهيت تقريبا ً اكثر من نصفها يعني حوالي 70% ،، المواضيع اللي تطرقت لها :

  • مقدمة
  • هل قروفي مناسبه لي ؟
  • البداية مع قروفي
  • اهلاً بالعالم
  • المتغيرات
  • القوائم والخرائط
  • ادوات الشرط و Boolean Expressions
  • تعرف على Closures
  • التعامل مع الملفات
  • OOP  مع قروفي
  • GroovySWT
  • الخاتمة

نظرة بسيطة على SQLite .

elmasri5e_PIE

الترم هذا عندي كورس عن Database systems الكورس حلو الصراحه من زمان وانا ودي اتعامل مع قواعد البيانات لكن مااجزم وانشغل ،، مع ان كانت لي تجربه سابقة بسيطه جدا ً مع الـMySQL والـPHP لكن ماكملت ،، وبمااني اخذت هالكورس هالترم
راح احاول اني اهتم شوي واطلع بحاجه مفيده (واطلع بقريد زي العالم والناس)،، الكورس معاه لاب وهو الزبده والمفيد الصراحه ،، صحيح لسا في البداية والاساسيات لكن لاحظت ان  اغلب الطلاب يشبكون على طوول في اللاب اكثر من النظري .

عموما ً في الجامعة لدينا اوراكل ،، بمااني اريد تطبيق الدرس اللي اطبقه بالجامعه
لازمني احمل اوراكل ،، لكن انا انسان عجّـاز ،، اوراكل  حجمها كبير (مع ان الخط لدي 2 ميقا) + يبي لها تضبيط اعدادات ،، عشان كذا بحثت عن حاجه اسهل بحيث اني استخدم لغة SQL بدون اوراكل ،، والبديل موجود وكثيرررر ومثل ماذكرت بأول الموضوع مثال وهو MySQL لكن برضوا الـMySQL
نفس حالة الاوراكل ،، صحيح يمكن اصغر بالحجم (اقصد حجم ملف التنزيل وليس قاعدة البيانات)واسهل  ،، لكن مازلت انسان عجاز وكسول ومش  ناقص وجع راس 😀

اثناء بحثي  مريت على قواعد بيانات كثير ،، لكن ماارتحت الا مع SQLite ،، طبعا ً لعدة اسباب :

SQLite
اهم سبب ،، انها تعتبر قاعدة بيانات  embedd يعني قاعدة البيانات منه وفيه ،، ماتحتاج تنزيل ولا اعدادات ولا شي ،، مجرد
ملف تنفيدي تعطيه اوامر SQL ، تنشئ ، تحدث ، تحذف قواعد البيانات .

السبب الثاني حجمها صغير جدا ً لكن امكانياتها كبيره .

واوامر SQL تقريبا ً ثابته وهذا اللي راح يدرسه اي شخص مهتم بقواعد البيانات .

وهذا اقتباس من موقع SQLite  عنها :

SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is

the most widely deployed SQL database engine in the world. The source code for SQLite is in the public domain.

الاسباب هذي خاصه فيني وتستطيع استخدام ماتريد بالتأكيد ،، لكن بما اني بطور التعلم ولا اريد ان اعمل قاعدة بيانات ضخمة ولغرض التعلم انصح
باستخدام SQLite ،، وايضا ً هذه الاسباب لاتقلل من قيمة SQLite  بالعكس مفيدة جدا ً ،، لنفرض اردت عمل قاعدة بيانات لبرنامجي بحيث تكون مرفقه معاه وماتحتاج اي تنزيل افضل خيار اعتقد هو SQLite  ،، ليس من المنطق ان اقوم بعمل برنامجي واربطه بقاعدة بيانات اوراكل وكل مره اعطي برنامجي لشخص اطلب منه تنزيل اوراكل ! .
للتوضيح فقط ،، SQLite  محددة الحجم ،، اقصد حجم قاعدة البيانات ،، لان اقصى حجم من قواعد البيانات تستيطع عمله هو 32 TB  (مع ان الحجم كبير بالنسبه لي كـ طالب ومبرمج مبتدئ – ستكون مناسبه لمشاريعي)
على عكس الانظمة الاخرى مثل اوراكل و MySQL و PostgreSQL تكون غير محدودة !

العديد من الشركات الكبرى على مستوى العالم تستخدم SQLite  ،، اهمها :
Symbian

Adobe

Mozilla

Bloomberg

طيب ! الآن ندخل في المهم ،، تنزيل SQLite

اذهب مباشرة لموقع SQLite
http://www.sqlite.org

ستجد مكتوب :
Small. Fast. Reliable.
Choose any three.
وهي بالفعل كذلك !

وقم بتحميل اخر نسخة ،، اخر نسخة اثناء كتابة هذه المقالة كانت 3.6.20 ،، الموقع مرتب بحيث يوفر نسخة لـ اغلب انظمة التشغيل المشهورة ويندوز ماك ولينوكس ،، وايضا ً السورس كود بالكامل  .

سأشرح لمستخدمي الويندوز ،، بما ان التطبيق في الجامعه على ويندوز (عشان طلاب الجامعة) ،، لكن من اراد شرح على لينوكس كل ماعليه هو السؤال ! وخصوصا ًان مع لينوكس ستكون اسهل مع مدير الحزم!!

قم بتحميل هذين الملفين من الموقع :
sqlite-3_6_20.zip
sqlitedll-3_6_20.zip

لاحظ ان 3_6_20 يشير الى رقم الاصدار ،، لذلك من الممكن يكون مختلف اذا كنت قد قرأت هذه المقاله في المستقبل :d

قم بفك الضغط  ،، وبعدها قم بنسخ ملف الـDLL في ملف sqlitedll-3_6_20.zip الى مجلد السيستم لديك :
C:\WINDOWS\system
C:\WINDOWS\system32

سنحتاج بعد قليل الى اضفتها ايضا ً ،، لذلك لاتحذف الملفات .

اما ملف sqlite-3_6_20.zip فهو يحتوي على ملف واحد ،، وهو سطر الاوامر الخاص بـ SQLite  لذلك فك الضغط عنه وضعه في اي مكان تريد ،، انا وضعته في السي لدي داخل  مجلدsqlite-3_6_20 .

حتى تسهل عليك حياتك ،، وتقوم بأستدعاء SQLite  اينما تريد ،، قم بإضافته الى Environment variables ،، في اصدارات ويندوز 7 وويندوز فيستا عن طريق الضغط على جهاز الكمبيوتر بالزر اليمين واختيار Properties

بعدها ستظهر لديك نافذه قم بالضغط على Advanced system settings في القائمة اليسرى . ستظهر نافذه اخرى اختر Environment variables .

ستظهر لك ايضا ً نافذه اخرى ،، اذهب الى System variables ،، وابحث عن الـPath واعمل له تحرير Edit ،، لا تقم بمسح المسار الموجود لكن بأخره

اضف الاتي :

;C:\sqlite-3_6_20

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

sqlite-snix-windows

الآن افتح سطر الأوامر من خلال ابدا قم بالبحث عن cmd ،، وافتحه . الأن لتشغيل SQLite  كل ماعليك كتابة :
SQLite3
وتتحول الى SQLite   . طبعا ً لو لم نقم باضافة مسار SQLite   الى النظام لن تستطيع تشغيل SQLite   بشكل مباشر ،، كل مره لازم تذهب لمسار تنزيلك البرنامج وهو C:\sqlite-3_6_20 وتشغله من هناك ! اكيد راح تتعب وتنزعج 😀

للتجربة قمت بعمل قاعدة بيانات بسيطه وكتابة اوامر بسيطه على قد حالي بالـSQL حتى تتضح الفكره للكل :

صوره للتوضيح :

testdb-snix-sqlite

شرح بسيط للأوامر :

sqlite3 test.db

قمت بإنشاء قاعدة بيانات بأسم : test.db
قاعدة البيانات ستجدها في المسار الموجود انت فيه الآن ،، يعني انا كنت موجود في المسار :
C:\Users\5N1X
ستجد الملف منشئ بأسم test.db .

create table t1 (id INTEGER PRIMARY KEY, name varchar(30), num NUMERIC))
;

قمت بعمل جدول table ،، ووضعت نوع البيانات data type الذي اريده في جدولي .
المتغير name من نوع varchar
المتغير num من نوع NUMERIC او رقم number

الآن لدي قاعدة بيانات وفيها جدول ،، وحددت نوع البيانات التي ستكون فيه ،، نأتي لأمر ادخال البيانات :


insert into t1 (name,num) values ('Sami', 123)
;
insert into t1 (name,num) values ('Amy Lee', 1234))
;

اضفت قيم للجدول ،، للمتغير name اضفت :
Sami
و
Amy Lee

للرقم num :
123
1234

كما ترى ،، الان اصبح لديك قاعدة بيانات .

الى هنا اذا كنت مهتم في قواعد البيانات توقف ولا تكمل الدرس ،، واذهب لتعلم SQL اما ان اردت تعلم ربط الـ SQLite مع احدى لغات البرمجة فـ اكمل الدرس .

جهاز الويندوز لدي شبه فاضي ،، مافيه الا الفوتوشوب وبعض البرامج البسيطه ،، لان اغلب وقتي على اللينوكس . لكن قمت بتنزيل لغة البرمجة ruby

قبل كم يوم على الويندوز ،، للتعلم والاطلاع لا اكثر (وكم شغله ثانيه:D)،، وبما ان الروبي سهله اعجبتي الفكره اني اتعلم كيف اربطها مع SQLite ،

البعض يعرف اني محب للبايثون ،، يقول ليش الخيانه 😀 لكن مجرد تعلم للروبي وطقطقه واطلاع على اللغة .

تستطيع ربط SQLite مع اغلب لغات البرمجة C,java,php,python,ruby . . . etc لكن انا فضلت روبي عشانها سهله ،، ولك الحريه بأختيار ماتريد وستجد

المصادر الكثيره متوفره في النت . وانصح بالروبي وبايثون .

قمت بالتوجه لموقع روبي وحمل اخر اصدار :
http://www.ruby-lang.org/en/

اخر اصدار اثناء كتابة هذه المقالة هو :
Ruby 1.8.6

وايضا ً ستجد السورس كود للغة (لانها مفتوحة المصدر مثل SQLite)،، ومختلف الاصدارات لمختلف الانظمة من ماك وويندوز ولينوكس .

قم بتنزيل اللغة وتثبيتها .

وايضا ً قم بإضافة مسار اللغة الى  Environment variables   حتى تستطيع تنفيذ الأوامر من اي مكان في النظام بمجرد استدعائها . المسار سيكون :
;C:\Ruby\bin
طبعا ً بحسب مااخترت انت اثناء التنزيل ،، ان لم تقم بتغيره سيكون هو الذي بالأعلى .

فيه ميزة جميله في روبي ،، وهي RubyGems ،، وهو مدير حزم خاص بروبي ،، ومن خلاله سأقوم بتنزيل الانترفيس الخاصه بـ sqlite اللازمة لربطه مع روبي .
قبل ان تقوم بالتنزيل ،، قم بنسخ ملفات DLL من ملف sqlitedll-3_6_20.zip ،، والصقه في مجلد :
C:\Ruby\bin

كل ماعليك عمله الآن هو فتح RubyGems Package Manager وكتابة امر التنزيل :

gem install sqlite3-ruby

الان قم بكتابة هذه البرنامج (السكربت) المكتوب بروبي ،، واحفظة لديك :

require 'sqlite3'
db1 = SQLite3::Database.new( "test2.db" )


db1.execute( "create table t1 (id INTEGER PRIMARY KEY, name varchar(30), num NUMERIC);" )
db1.execute( "insert into t1 (name,num) values ('Sami', 123)")
db1.execute( "insert into t1 (name,num) values ('Amy Lee', 1234)")


rows = db1.execute( "select * from t1" )
p rows

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

السكربت ،، قمت بربطه مع الـ sqlite ومن خلال السكربت استطعت ان اكتب اوامر SQL واعمل قاعدة بيانات واضفت لها جدول وبيانات وقمت بعرض الجدول .

صوره لتوضيح عمل الكود بالاعلى بعد التطبيق :

 

ruby-code-snix

 

 

 

مصادر :

http://www.sqlite.org
http://www.ruby-lang.org
http://en.wikipedia.org/wiki/SQLite
http://sqlite-ruby.rubyforge.org/sqlite3/faq.html
http://www.skorks.com/2009/08/installing-and-using-sqlite-with-ruby-on-windows/
http://www.w3schools.com/SQL/

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

انتهى .

متفرقات .

– الترم الصيفي مابقي شي ويخلص ،، الاسبوع الجاي عندي ميجر(اختبار الشهر الثاني) والاسبوع اللي بعده الفاينل ،، اول مره انزل ترم صيفي وآخر مره ان شالله 😦 عادتي بالصيف اكون كسول جدا ً وآخذ راحتي على الآخر ، الصيف هذا نكد + دوام صباحي ومسائي ،، حاجه قرف بالعربي مع اني مانزلت الا مادتين ،، Data Structure ومادة حقوق الانسان في الاسلام ،، المواد الحمدلله سهله لكن الدوام مزعج ،، ونصحيه لكل طالب لاتنزل ترم صيفي ابدا ً <<< عنده عقده 😦

– حملت كتاب After the Software Wars وراح ابدا بقراءته بـ أقرب فرصه ،، نظره على الكتاب من مجمتع لينوكس العربي .

– التحضير لعمل واعداد موقع او بالاحرى مدونة لمهندسي البرمجيات (الموقع والمساحه جاهزه) ،، ولمن اراد المشاركه ، عليه بمراسلتي : snixblog@gmail.com

– فشلت بتركيب لعبة Combat Arms على لينوكس بعد عدة محاولات 😦 .

– جربت النسخة الجديد من KDE 4.3 والصراحه اعجبتني ، اكثر من الاصدارات السابقه ، الترقيعات والتعديلات كثيره وواضح شغلهم على هالاصدار اكثر من غيره ، اهتموا فيه اكثر ،، وجربتها على النت بوك تبعي واهم الفروقات اللي لاحظته بين الاصدارات اللي قبل هو السرعه + الشكل روعه .

– سأضع تجربتي لتحويل جهازي النت بوك مع معالج اتوم Atom لسيرفر ، بالتأكيد السيرفر على ابونتو 😀 . ومنها تجربه للخدمة المقدمه من موقع DynDNS.com لان وضعنا الحالي مع شركة الاتصالات زي الزفت لكن الله ينتقم منهم .

– الفضائيين للحين شغالين اختراقات !؟  دخلت امس وادي التقنيه لقيتهم يتكلمون عن اختراق سوالف سوفت ، الى متى ياناس ! الاندكس آكل عقولهم 😀 ، عموما ً سوالف الآن رجع .

– محاولة استخدام Dropbox والتعود عليه 😀 اعتقد اني احتاجه كثير . تحدث عنها اخي طلال في مدونته .

– كنت ولازلت من اعضاء منتديات جزيرة الانمي (رغم عدم مشاركتي )وايضا ً عضو لديهم في التراكر  ،، المهم ان التراكر اتقفل قبل كم شهر ومن بعدها كان تحت الصيانه قبل كم يوم بالصدفه دخلت لقيت ان التراكر راجع ،، حاولت ادخل ماقدرت ! حاولت اعمل استعادة كلمة المرور لكن النظام مو معترف فيني ! وبعدها عرفت ان التراكر جديد والحلقات الماضيه راحت ! وتحميل الشعب راح ،، عموما ً انا الان مشارك في تراكر A5S موقع احترافي لابعد درجه وسرعه صاروخيه ،، وانصح اي متابع للانمي او للدراما الآسيويه المشاركه فيه .

DynDNS.com

نظرة بسيطه على تقنية JavaFX

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

ماهي الـ JavaFX ؟

الـ JavaFX هي تقنيه مقدمة من شركة صن  وتهتم بتطوير تطبيقات الانترنت الغنيه (rich internet applications ) بشكل سهل ومبسط ،
بحيث تكون التطبيقات من خلال الانترنت ولكن تفاعليه كـ انها احد برامج سطح المكتب . اكبر مثال مشابه لهذه التقنيه هو الفلاش من شركة ادوبي والسلفر لايت من مايكروسوفت ،، لذلك
صن ارادات ان تدخل هالمضمار ،، ولحد الآن اعتقد ان التقنيه بتقدم ومنافسه . خصوصا ً انها ستكون متوفره على اغلب انظمة التشغيل والاجهزه المختلفه (خصوصا ً الجوالات).

كيف اقوم بتحميل JavaFX ؟

بكل بساطه اتجه الى موقع JavaFX الرسمي :
http://www.javafx.com

وستجد نسخ متنوعه توضيح بسيط لفرق بين هذه النسخ :

JavaFX 1.2 SDK وتحتوي على :

compiler and runtime tools, graphics, media, web services, and rich text libraries to create RIAs for the desktop, browser and mobile platforms

توفر لك الاحتياجات الاساسيه للبدء بالتطوير ،، مثل الكومبايلر والميديا والمتصفح ومنصات الجوال . . . الخ

NetBeans IDE 6.5.1 for JavaFX 1.2 وتحتوي على :

provides a sophisticated integrated development environment for building, previewing, and debugging JavaFX applications. The editor features a drag-and-drop palette to quickly add JavaFX objects with transformations, effects and animation. This IDE also comes with its own set of Building Block samples and the JavaFX Mobile Emulator, a mobile phone simulator.

توفر لك بيئة متكاملة لتسهيل التطوير والتحرير من خلال برنامج NetBeans وتوفر ايضا ً محاكي للجوال حتى تستطيع تطوير برامج مباشره . وانصح بتنزيله اذا اردت البدء بالتطوير ،، الا ان لم تكن من محبي NetBeans فـ عليك بالبديل ايكلبس

JavaFX 1.2 Production Suite وتحتوي على :

اذا كنت مصمم ويب 😀 وتحب تستخدم الجرافيكس الخاص بك  ،، اذا قم بتنزيل Production Suite توفر لك الادوات اللازمة لتفعيل هذه الخاصيه لتسهيل الرسم لك .

ولك حرية الاختيار حسب اتجاهك وتفكيرك وماذا تريد ان تعمل *_*

للتوضيح JavaFX 1.2 هو آخر اصدار اثناء كتابة هذه المقالة .

اريد ان اشاهد بعض اعمال هالتقنيه ؟

تستطيع ان تشاهد بعض اعمال(عينات) JavaFX عن طريق موقعهم :
http://www.javafx.com/samples

ماهي المتطلبات اللازمة لتشغيل هذه التقنيه ؟
قم بزيارة هذه الصفحه موضحه لجميع الانظمة والعتاد اللازم :
http://java.sun.com/javafx/1/reference/system-requirements-1-2.html

مراجع لتعلم هذه التقنيه :

http://javafx.com/learn/directory.jsp
http://java.sun.com/javafx/index.jsp

لاتنسى ايضا ً الاطلاع على الـ Samples الموجوده في NetBeans مفيده جدا ً .

متفرقات *_*

يااااه لي فتره ماكتبت شي ،، كنت منشغل بهالعطله ،، وماقدرت اخش النت بشكل متواصل ،، على العموم راح اعرض اهم ماعملت هاليومين ،، ولي رجعه بتدوينات اخرى بشكل مفصل :

1- من اهم ماعملت هاليومين انه اخيرا ً بدأت بترجمة مقالة الجافا سوينق << احمد راح يدبحني 😀

2- محاولات اممم حوالي 10 محاولات لتسطيب الماك ليبورد على الديسكتوب عندي وكلها باءت بالفشل ،، ومازالت المحاولات مستمره ،، مع العلم اني حملت توزيعة iPC_OSx86_10_5_6_Universal_FINAL ومالفروض انها تكون شغالة تمام مع معالجات اي ام دي وكرتي مدعوم والتشب ست كمان لكن ماني عارف ايش المشكله ،، على العموم ماراح ارتاح الا وانا منزل الماك عندي 😀

3- قمت بتحميل نسخة ماك اخرى وهي iATKOS_5i لان حجمها كان اصغر (2.6GB) على عكس نسخة الـiPC كانت 4.3GB .

4- تنزيل نسخة iATKOS_5i على النت بوك تبعي LG X110 وكل شي تم بسلاسه (واستغلال كامل الجهاز للماك ولايوجد اي نظام غيره)،، سبب تنزيلي للـ iATKOS_5i على النت بوك وليس نسخة iPC ،، عشان الحجم ،، لاني نزلت النظام عن طريق الفلاش ميموري تبعي (4 قيقا) ولا املك ديفيد خارجي . لي عودة بالتفاصيل ورحلتي مع الماك .

5- قمت بتزيل نسخة ويندوز اكس بي 64 بت للتجربه ،، على كثر ماقرأت عن الـ64 بت وانه اسرع لكن ماصدقت الا بعد التجربه ،، الاكس بي بنسخة الـ32 بت كان سريع جدا ً عندي ،، لكن مع نسخة 64 بت تغير الوضع التعليق كان اقل والسرعه افضل !! مجرد احساس ماكان عندي وقت اني اعمل اختبارات او وجع راس 😀 لكن رجعت للـ 32 بت لان اغلب برامجي 32 بت وحسيت انه فيها شوية غبى (اغلب برامج 32 بت واستخدم نظام 64 بت:()

6- التحضير لكتابت شرح بسيط لتنزيل اللينوكس على اجهزة النت بوك .

7- انتهيت من متابعة الانمي Code Geass ،، لايفوتكم الانمي ،، روعة لابعد الحدود وخصوصا ً اذا كنت مثلي تحب الانتقام , All Hail Lelouch !!

حاجات كثيرة ان شالله خلال هالاسبوع اكون خلصتها ،،،

QT العربي

http://www.qt-ar.org/