SAPL
23 يناير 2008
SAPL هي اختصار لـ Simple Arabic Programming Language ، اي لغة البرمجة العربية البسيطة .
انهيت العمل عليها قبل اسبوعين تقريباً ، واحببت هذا المساء مشاركتم هذا العمل ( كنت اتمنى ان اطرحه في وقت سابق ، لاكن الوقت لم يسمح بذلك )، لاجل سماع ارائكم ومقترحاتكم حول هذا العمل ، والاهم هو اتاحة الفرصة الحقيقية للمهتمين بهذا المجال ( الطامحين لصناعة لغة برمجة عربية ) ، فهذه هي اول خطوة في مشوار الالف ميل.
كل ماتستطيع ان تقوم به هذه اللغة حاليا
- تعريف المتغيرات واسناد القيم لها.
- طباعة ( اخراج ) النصوص.
- المقارنة بين قيمتين ( او متغيرن ) وتنفيذ امر في حال تحقق الشرط.
مثال على البرمجة بلغة SAPL :
س = 10 .
ص = 20 .
اذا كان ( س < ص ) اطبع " is smaller than ".
يقول المترجم ( Compiler ) بتحويل اللغة الى لغة وسطية ( Intermediate Code ) وهي Batches ( المقدمة من النظام ) ، حيث اعتمدت بشكل اساسي على برنامجي الآخر BatchX لتمثيل الجزء الآخر ( Back End ) ليقوم بمهمة التحويل الى لغة الآلة.
ساحاول تطوير العمل ، ليصبح لغة برمجية متكاملة ( بشكل بسيط ) ، من اجل تسهيل عملية تعليم البرمجة للاطفال.
لتحميل اللغة :
الكود ( C++Builder ) :
C++BuilderX 1.5 Mobile Edition
4 أغسطس 2007
قامت شركة بورلاند مؤخراً بطرح منتجها C++ BuilderX 1.5 Mobile Edition بصورة مجانية والذي يعتبر من اهم وابرز بيئات التطوير لاجهزة الهاتف النقال وبالأخص انظمة سيمبيان ( Symbian OS ) ، وكان ذلك اثر انتقال هذه المنتجات الى الشركة الجديدة CodeGear ، نص الخبر في الرابط ادناه
Free Download: C++BuilderX 1.5 Mobile Edition
قد يثيرني الريب قليلاً ، فلماذا بورلاند اقدمت على هذا الفعل وطرحت المنتج بصورة مجانية ؟؟ ، هل يعني ان الشركة الجديدة ستتوقف عن تطويرة !! ، اتمنى ان لايحدث ذلك
على العموم ، سبب طرحي لهذا الموضوع ليس لاضافة بعض التعليقات عن هذا المنتج ، ولاكن لاجل مساعدة الغير في الحصول على هذا المنتج وتبيين الطريقة الصحيحة لتثبيت المنتج ، اي بمعنى دليل ارشادي
كنت ابحث عن المنتج قبل مدة واستمر بحثي عنه مايقارب 3 ايام دون فائدة ، رغم اعلان الشركة عن مجانيتة الا انه لاتوجد وصلة صحيحة او سليمة لتحميله
اصابني اليأس في الحصول عليه، ولاكن بطريقة او بأخرى استطعت ان احصل عليه ، لذا قمت برفعه على الانترنت ليتمكن الجميع من الحصول عليه دون عناء
حيث قسمت البرنامج الى ثلاثة اجزاء ، حجمها الإجمالي هو 135MB
Rapidshare :
zShare :
#خطوات التثبيت:
1- قم بتحميل Active Perl ( انقر هنا للتحميل ) ، وتثبيته على الجهاز
2- قم تحميل SDK الخاصة بهذه البيئة ( S60 2nd Edition, FP 1 ) راجع التدوينة السابقة لمزيد من التفاصيل
3- تحميل وتثبيت Microsoft Debugging Tool ( انقر هنا للتحميل )
4- اذا لم تكن قد ثبت احدى اصدارت ميكروسوفت من Visual C++ على جهازك ، قم تثبيت Visual C++ Toolkit المجانية من ميكروسوفت
ويفضل انشاء ملف على المجلد الخاص بأدوات التطوير ( C:\Symbian ) بإسم “MSDEV” وقم بتثبيت الحزمة السابقة علية
5- الآن قم بتثبيت بيئة التطوير C++BuilderX
6- قم بتحرير الملف “BLDMAKE.BAT” داخل مجلد ادوات التطوير ( ربما يكون على المسار C:\Symbian\7.0s\Series60_v21\Epoc32\tools )
ابحث عن السطر التالي :
perl -S bldmake.pl %1 %2 %3 %4 %5 %6 %7 %8 %9
واستبدله بالسطر التالي :
perl -IC:\Symbian\7.0s\Series60_v21\Epoc32\tools -S bldmake.pl %1 %2 %3 %4 %5 %6 %7 %8 %9
7- قم بإنشاء ملف فارغ داخل على المسارC:\Symbian\7.0s\Series60_v21\Epoc32\wins\c\system\Bootdata بإسم “ErrRd”
8- قم بإعادة تشغيل الجهاز ، ثم افتح بيئة التطوير C++BuilderX
9- من القائمة اختر Tools > Symbian SDK Configuration
10 - اخر ” ADD ” ، ثم قم بتحديد مسار SDK ، واختر اصدارتها من القائمة ثم حدد اسم لها
الآن اصبحت جاهز للعمل على هذه البيئة الرائعة

Symbian تحت المجهر
26 يوليو 2007
#مقدمة :
Symbian هو نظام تشغيل ( Real Time ) موجه لأجهزة الهاتف النقالة ( Smart Phone ) ،
تعود بداياته لعام 1980 ولاكن تم اطلاقة بشكل رسمي في عام 1998. يعد من اكثر انظمة التتشغيل شعبية،
تم تطويرة من قبل عملاقة مصنعي الاجهزة النقالة ( Nokia, Ericsson, Sony Ericsson, Panasonic, Siemens AG …. ).

#اصدارات النظام :
توجد هناك عدة اصدارات لهذا النظام ، وهي مقسمه حالياً على ثلاث فئات ، سنستعرضها بالتفاصيل
-
Series60 : نسخة خاصة بالهواتف النقالة ذات الشاشة الصغيرة والتي تستخدم المفاتيح الرقمية لإدخال المعلومات
-
S60 1st Edition
-
Nokia 7650
-
Nokia 3650 , 3600
-
Nokia 3660 , 3620
-
Nokia N-Gage
-
Nokia N-Gage QD
-
SendoX
-
Siemens SX1
-
-
S60 2nd Edition
- Nokia 6600
-
S60 2nd Edition with Feature Pack 1
-
Nokia 6630
-
Lenovo P930
-
Nokia 6680
-
Nokia 6681
-
Nokia 6682
-
-
S60 2nd Edition with Feature Pack 2
-
Nokia 6630
-
Lenovo P930
-
Nokia 6680
-
Nokia 6681
-
Nokia 6682
-
-
S60 2nd Edition with Feature Pack 3
-
Nokia N70
-
Nokia N90
-
-
S60 3rd Edition
-
Nokia E60
-
Nokia E61
-
NokiaE70
-
Nokia 3250
-
Nokia N71
-
Nokia N80
-
Nokia N91
-
Nokia N95
-
-
-
UIQ : نسخة موجهه للأجهزة التي تستخدم شاشة اللمس ( Touch Screen )
- UIQ 2.0
- Sony Ericsson P800, P802
- Motorola A920
- Motorola A925
- BenQ P30
- UIQ 2.1
- Sony Ericsson P910
- Sony Ericsson P900
- Motorola A1000
- FOMA M1000
- Arima U308
- UIQ 3.0
- Sony Ericsson M600
- Sony Ericsson W950
- Sony Ericsson P990
- UIQ 3.1
- Motorola MOTORIZR Z8
- UIQ 2.0
-
Series80 : نسخة موجهه للأجهزة المتطورة التي تحمل شاشة عريضة ولوحة مفاتيح موسعه ( حاسوبية )
- Nokia 9300
- Nokia 9500
#التطبيقات :
يتم تطوير التطبيقات لهذا النظام بطرق مختلفة
- C++ : لبناء تطبيقات موجهه لأنظمة Symbian ، وهو الخيار الاكثر شعبية .
- MS Visual C++
- Borland C++BuilderX or C++Builder6
- Metrowerks CodeWarrior
- Carbide
- Java : يعد الخيار الأمثل للتطبيقات المتنقلة ( Portable ) ، ولاكن يعتبر خيار محدود الامكانيات
- NetBeanse
- Eclipse
- JBuilder
- اخرى
- Flash Lite
- Python
- MobileVB and .net
تختلف امكانيات كل بيئة عن الاخرى ، ومايفضل الواحدة عن الاخرى هو احتياجاتك.
يتم التطوير التطبيقات بإستخدام ادوات التطوير ( SDK ) والتي سنستعرضها في الحزء القادم .
#SDK - software development kit:
توجد نسخ مختلفة لهذه الادواة حسب الاصدارات الموجهة لتلك الهواتف ( استعرضنها في الجزء الأول من الموضوع )
حيث تحوي هذه الحزمه مكتبات النظام ( APIs Libraries ) ، المحاكي ( emulator ) ، الامثلة ( Example ) ،
المجمع ( a target compiler ) ، والوثائق (user documentation) .
- SDK for C++
- S60
- UIQ
-ملاحظة : روابط التحميل هي لبيئات التطوير ( MS Visual C++ and Borland C++BuilderX ) ، للحصول على اصدارت اخرى
او للحصول على اصدارت SDKforJava ، يمكتك مراجعة الروابط التالية
KeyLayout
8 يوليو 2007بدأت الفكرة من هاهنا
فهي عبارة عن برنامج يقوم بتبديل النصوص مابين واجهات الإدخال
فعلى سبيل المثال : اردت كتابة نص باللغة العربية ، وليكن ” بسم الله الرحمن الرحيم”
بعدما انهيت الكتابة وجدت انك لم تعدل واجهة الادخال بل كانت اللغة الانجليزي
فاصبح النص الذي كتبته هو ” fsl hggi hgvplk hgvpdl ” ماذا ستعمل !!!
سيكون الحل البديهي هو مسح النص وكتابته من جديد
لاكن مع هذا البرنامج ، لن تعيد الكتابة بعد اليوم
، كل ماعليك هو تحديد النص
والضغط على المفتاج الساخن ( ctrl+alt+t ) ثم تحدد واجهة الادخال المناسبة
وستحصل على النص الصحيح
العمل مازال في بداتيه ، يمكنك متابعة تطورات العمل في ساحة النقاش
تم كتابة البرنامج في كل من
Delphi
C++ Builder
Export Table
6 يونيو 2007سنستعرض هنا كيفية الوصول الى اسماء الدوال التي تقدمها الملفات المكتبية
يوجد عنوان الجدول عند الازاحة 178 من بداية الملف ( RVA )

عند الذهاب الى عنوان الجدول سنجد التالي

هذي هي تركيبة الجدول من بداية عنوانه
struct _IMAGE_EXPORT_DIRECTORY {
0x00 DWORD Characteristics;
0x04 DWORD TimeDateStamp;
0x08 WORD MajorVersion;
0x0a WORD MinorVersion;
0x0c DWORD Name;
0x10 DWORD Base;
0x14 DWORD NumberOfFunctions;
0x18 DWORD NumberOfNames;
0x1c DWORD AddressOfFunctions;
0x20 DWORD AddressOfNames;
0x24 DWORD AddressOfNameOrdinals;
};
مايهمنا هو شيئين NumberOfNames و AddressOfNames
في الصورة السابقة قمت بتلوين مكان وجود الحقل NumberOfNames باللون الاصفر
وكذلك AddressOfNames باللون الاخضر
من الصورة السابقة
NumberOfNames = 10 وهي عدد الدوال
AddressOfNames = 040068 وهي بداية عنوان جدول الاسماء
لننتقل الى AddressOfNames

ما هو مظلل باللون الرصاصي يشير الى بداية الجزء ويمثل عنوان اسم اول دالة ( حجم العنونة DWord )
للنتقل الى هذا العنوان

كما تشاهد في الصورة اسم الدالة التي يشير اليها العنوان السابق ، وهكذا يتم الوصول الى بقية الدوال
ونتوقف عن قراءة الدوال عند الوصول الى العدد المسجل في NumberOfNames والتي يمثل العدد الكلي للدوال
هذا كل مافي الأمر،
وقد قمت بعمل برنامج بـ C++ Builder يقوم بإستخراج اسماء الدوال من جدول Export Table تلقائياً
يمكنك الاطلاع عليه فهو مرفق مع السورس كود







