CyanogenMod / سيانجين مود

سِيان جين مود هكذا ينطق وهي نسخة من نظام التشغيل الاندرويد مفتوحة المصدر، يقوم بتطويرها مجموعة من مطوري الاندرويد بشكل يومي دون مقابل ثابت إذ يعتمدون على التبرعات الغير إلزامية ، رقم خيالي لعدد مرات تحميل النسخه رقم 7 لهذا النظام حيث تجاوزت حتى تاريخ 7 مايو 2011 الــ215000 مرة ممايدل على شهرته وعلى تميزة عن الرومات او الاصدرات الاخرى لنظام الاندرويد

 

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

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

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

 

 

شخصيا اراه اكثر من رائع وقد حملت الاصدار رقم 7.0.3 والذي يعتبر 2.3.3 على هاتف النكسس اس ولكن اظفت خصائص 2.3.4 وتعمل بشكل رائع خاصة خاصية الفيديو كول عنطريت الجي توك، غدا ان شاءالله احمله على الجلاكسي اس وقريبا على الموتورلا درويد


Read More

تعلم الجافا : ما هي الجافا

الـ جافا هي لغة برمجة من الجيل الثالث (المستوى الثالث) تم اصدارها لأول مرة عام 1995 عن طريق شركة صن ميكروسيستمس. و تتميز هذه اللغة بأنها كائنية التوجه كليا مما يجعلها مناسبة جدا لتطوير النظم المعقدة جدا و في نفس الوقت فهي بسيطة و سهلة الاستخدام فيمكن استعمالها بسهولة لتطوير برمجيات بسيطة كذالك.

من مميزات الجافا ان جميع البرمجيات التي تكتب بالجافا لا يتم ترجمتها للغة الآلة مثل باقي لغات البرمجة بل يتم ترجمتها إلى ما يسمى بالـ ByteCode (تحفظ كملف بإمتداد “.class”) وهذه الأخيرة عبارة عن لغة وسيطة بين لغة البرمجة و لغة الآلة بالتالي فإن برمجيات الجافا تعمل على جهاز جافا الإفتراضي” (Java Virtual Machine)و هو عبارة عن برنامج مشغل لبرمجيات الجافا، مما يجعل برمجيات الجافا غير قابلة للتشغيل في حالة عدم وجود هذا البرنامج و لكن في نفس الوقت فإن هذه الخاصية تجعل لغة الجافا أقوى بكثير من نظيراتها حيث أنه بفضل هذه الخاصية يمكننا تشغيل اي برنامج جافا كتب على أي نظام تشغيل على أي نظام تشغيل آخر دون الحاجة لإعادة عملية البرمجة والترجمة.

صنعت لغة جافا حتى تقدم بعض الخدمات المتميزة عن لغات الأخرى و هي :

  • الإنتقالية (portability) : و هي امكانية تشغيل برمجيات الجافا على أي نظام تشغيل كما ذكرنا بالأعلى

  • الأمان (security) : كون برمجيات الجافا لا تعمل إلا عن طريق جهاز جافا الإفتراضي فبالتالي فإن هذا الجهاز يضع حدودا لإمكانيات بعض البرمجيات مما يعيق إمكانية صنع برمجيات مخربة عن طريق هذه اللغة

  • كائنية التوجه (Object Oriented): أن ابسط برنامج يمكن عمله بالجافا لا بد ان يتبع توجه البرمجة الكائنية التي تسهل الكثير و الكثير من المشاكل بالنسبة لمتطور البرمجيات كما سترون في تدوينات قادمة

  • —- (Distributed): يمكن صنع برامج جافا تعمل على الشبكة و تتخاطب مع بعضها البعض بكل سهولة.

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

تاريخ الجافا

بدأ ظهور الجافا في العالم كمشروع لشركة صن يسمى اواك” (OAK) في عام 1991 و تحد قيادة أب الجافا جيمس غوسلينغ“. كان هدف المشروع صنع لغة برمجمة تعمل على اي جهاز صغير، خلال فترة صغيرة تغيرت أهداف المشروع و تغير المشروع نفسه إلى جافا وقد اصدر الإصدار الأول منها عام 1995. كان الإصدار الأول من جافا يهتم بتوفير امكانية صنع بريمجات الويب ( التي تعمل في متصفح الانترنت) و خلال و قت وجيز اصبحت معظم متصفحات الإنترنت تدعم الجافا بسبب امكانيات العالية و الثبات والأمان التي وفرتهم الجافا في تلك الفترة.

في عام 1998 تم تطوير الجافا بشكل جذري و اصبحت تسمى جافا2 و من اهم التطويرات التي وضعت في هذه الإصدارة هي امكانيات الجافا في الواجهة الرسومية للمستخدم.من ثم كان هنالك العديد من تطويرات للجافا هنا نوجزها

JDK 1.1.4 (Sparkler) September 12, 1997

JDK 1.1.5 (Pumpkin) December 3, 1997

JDK 1.1.6 (Abigail) April 24, 1998

JDK 1.1.7 (Brutus) September 28, 1998

JDK 1.1.8 (Chelsea) April 8, 1999

J2SE 1.2 (Playground) December 4, 1998

J2SE 1.2.1 (none) March 30, 1999

J2SE 1.2.2 (Cricket) July 8, 1999

J2SE 1.3 (Kestrel) May 8, 2000

J2SE 1.3.1 (Ladybird) May 17, 2001

J2SE 1.4.0 (Merlin) February 13, 2002

J2SE 1.4.1 (Hopper) September 16, 2002

J2SE 1.4.2 (Mantis) June 26, 2003

J2SE 5.0 (1.5.0) (Tiger) September 29, 2004

Java SE 6 (1.6.0) (Mustang) December 11, 2006

Java SE 7 (1.7.0) (Dolphin) قريبا


العديد من التطويرات الجافا التي لا يزال تطويرها مستمرا وخلال السنين تطورت الجافا و اصبحت تستعمل لصنع برامج مكتبية ، بريمجات الإنترنت، صفحات انترنت ، بريمجات اجهزة الجوال و غيرها الكثير.

منصات الجافا

تقدم لغة برمجة الجافا اكثر من منصة عمل للمبرمجين و مطوري النظم. كل من هذه المنصات لها خصائص و تقنيات تختلف عن بعضها البعض مما يجعل كل من هذه المنصات متخصصة في تطوير انواع معينة من برمجيات الجافا دون غيرها.

فلنرى كل من هذه المنصات و ما تقدمه لنا كمبرمجين و مطوري نظم:

  • Java 2 Standard Edition (J2SE) :
    تعتبر هذه المنصة الأكثر استخداما في الجافا لتطوير برمجيات المكتبية و (Appletes).
    عموما توفر هذه المنصة وحدات البناء الأساسية لأي برنامج جافا مثلا:

    • الأمور الأساسية بالجافا : توفر اساسيات الكائنات و وحدات تعريف المتغيرات و النصوص و غيرها من الأمور الأساسية في لغة الجافا في رزمة مثل Java.lang

    • إمكانيات القراءة و الكتابة : التي توفر وسيلة الكتابة و القراءة للبرمجيات إما من و في الملفات، قواعد البيانات ، الشبكات و غيرها متوفرة في رزمة Java.io

    • المكتبات المرئية : هي مكتبات تساعد في تكوين الواجهة الرسومية للمستخدم و أشهر رزمتين لتكوين الواجهات الرسومية هم : Java.awt, and Javax.swing

    • التعامل مع قواعد البيانات : توفير امكانية إدخال البيانات و البحث عنها، أغلبها في رزمة java.sql
      و هنالك غير هذه الكثير من الرزم المفيدة المتوفرة مع هذه المنصة

  • Java 2 Micro Edition (J2ME) :
    مجموعة من مكتبات الجافا التي توفر امكانية صنع بريمجيات تعمل في بيئة تفتقر لقوة الحوسبة الكاملة مثل الأجهزة الصغيرة و اجهزة الهاتف النقال. اشتهرت الـ J2ME بسبب توفيرها بيئة سهلة لتصميم برمجيات اجهزة الهاتف النقال و ايضا امكانية ان يعمل البريمج على اكثر من نوع من انواع الهواتف.

  • Java 2 Enterprise Edition (J2EE) :
    هذه المنصة تستعمل لتطوير بريمجات الجافا التي تعمل على جهة الخادم مثل صفحات الـ (JSP) و السيرفرليتس و غيرها من الأدوات و البريمجات المستعملة في تطوير المواقع و البرامج الشبكية.

كما ان هنالك منصات للجافا لا تأتي مع الجافا نفسها ولا هي من صنع صن ميكروسيستمس على سبيل المثال (وليس الحصر) الـ GWT والـ android و هاتين المنصتين هما من صنع جوجل الأولى لبرمجة تطبيقات الويب و الثانية لتطوير برامج تعمل على نظام تشغيل جوجل للجوالات الأندرويد.

إضافة لهذه المنصات هنالك العديد من اصناف او لغات مستخلصة من الجافا مثل الجـ روبي والـ جايثون و هما شبيهتان بالروبي و البايثون ولكنهما تعملان على جهاز جافا الإفتراضي مما يعني أن هذه اللغة تترجم إلى الجافا أولا ثم إلى البايت كود (طبعا هذا النوع من اللغات المعتمدة على الجافا لا تتلخص على هاتين اللغتين بل هنالك مجموعة كبيرة من لغات البرمجة تعمل بهذه الطريقة)

Read More

تعلم الجافا : ما هي البرمجة (Programming) ؟


ما هي البرمجة (Programming) ؟


البَرْمَجةُ هي مصدرٌ من الفِعل بَرْمَجَ ( يُبَرْمِجُ بَرْمَجَةً )،نعني بالبرمجةِ أن توضع خطوات وأوامر معينة لأداء غرض معين، ومجموع هذه الخطوات والأوامر تدعى برنامجاً(Program).
وعلى سبيل المثال برنامج يقوم بعمل عصير برتقال، هذا البرنامج بُرْمِجَ بأن يقوم بالخطوات التالية:
1-
أحْضر كأس فارغاً نظيفاً.
2-
ضع ملعقتين (حجمهما متوسط) من مسحوقِ عصيرِالبرتقال فيالكأس الفارغ.
3-
أملاء الكأس بالماءالبارد.
4-
حرِّك المزيج بواسطة الملعقة إلى أن يذوب مسحوق عصير البرتقال في الماء.

نتيجةً من هذا البرنامج هو كأس عصيربرتقال.

هذه الخطوات الأربع هي البرمجة التي بواسطتها يستطيع البرنامج عمل عصير البرتقال كما في مثالنا السابق.

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


إذاً ما هي البرمجة في الحاسوب؟ وما هي لغات البرمجة؟

البرمجة في الحاسوب هي كتابة الخطوات البرمجية المطلوبة لأداء غرض معين كما في مثال برنامج عصير البرتقال، ولكن كيف يمكن للحاسوب أن يفهم هذه الخطوات التي يكتبها المبرمج!! وما هي اللغة التي يفهما الحاسوب وكيف يمكن مخاطبته بها ؟


اللغة التي يفهما الحاسوب تُعرف بِلُغَةْ البرمجةوهي:

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

ولا تتيح لغات البرمجة المصطنعة حرية التعبير كما في اللغات الطبيعية كالعربية والإنجليزية. (مجمع اللغة العربية).

الحاسوب عبارة عن جهاز رقمي لا يفهم في الأساس إلا شيئين 0 و1 (مرور تيار كهربائي1 أو عدمه 0).

ففي بدايات الحاسوب كان التخاطب معه مبنياً على رقمين (0 و1) والذييسمى بلغة الآلة
( Machine language ) وهي

لغة صعبة الحفظ ومعقدة لأبعد الحدود فكل شيء يمثل برقمين فقط، لذلك عُمِلَتْ لغة أسهل من لغة الآلة من ناحية الحفظ والتعامل وأقرب قليلا للغات البشرية وقد سميتبلغة التجميع

Assembly Language

و هي لغة لها خصائصها و أهميتها في بعض الأعمال ولكنها لأداء معظم الأعمال الأخرى فهي لا زالت معقدة، ففي لغة التجميع يقوم المبرمج بالتحكم بالمستويات الدنيا في الحاسوب فيقوم بالتحكم بالذاكرة
(رام) والذاكرة الموجودة في وحدة المعالجة المركزة(CPU).

ومع إزدياد متطلبات الحاسوب وتوسع المشاريع المقامة عليه كان لا بد من عمل لغة أسهل في التعامل لأقرب من لغة الإنسان فكانت أول لغة برمجة من المستوى
العالي هي لغة فورتران
( Fortran )

ومن ثم تطورت لغات البرمجة وأُدْخِلت فيها التعديلات والتسهيلات وهناك المئات من اللغات البرمجية المشهورة وغير المشهورة.

إذاً هنالك العديدة من اللغات التي يفهما الحاسوب والتي من خلالها يستطيع المبرمج أن يعمل برنامجه ومن أهما:


  • Java
  • C++
  • Delphi
  • C#
  • Paython
  • إلخ….


وهنا حديثنا مختص بلغة البرمجة جافا(Java).


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

كتبها ودقق عليها كل من (حسن عمر المرهون ، خالد المعمري ، علي اللواتي)

Read More

نصائح للـ CSS

أصبحت الـ CSS  شيء لا يستقنى عنه بالنسبى لبرمجي المواقع 

ولا يخفى على أحد أهميتها و فوائدها الجمة
المشكلة أنه خلال تصميم الموقع يقوم المبرمج أو المصمم بكتابة السي اس اس و يكبر الملف مع كل يوم و مع تعديلات هنا و هناك و الأقسام المحتلفة التي تتعلق بصفحة معينة أو تعديلات حتى نجعل الصفحة تظهر مناسبة للانترنت اكسبلولر (دوما هو المشكلة الفايرفوكس و غيره ما عندهم مشاكل)  يصبح الملف كبيرا و فيه الكثير من الشوشرة بحيث يصعب الرجوع إليه او تعديله في المستقبل 
فهذه النصائح (بعضها من بالي و بعضها ما نصحني به الزملاء و أنا أولى بأن اتبعها قبل ان اطلب منكم اتباعها ولكن اضعها هنا لكي نتبعها معا ) :
  1.  النظام ثم النظام ثم النظام :
    من أفضل طرق للمحافظة على ملف السي اس اس هو تنظيمه منذ البداية ، اصنع طريقتك بنفسك مثلا  ضع كل ما يهم في ترتيب الأقسام الرئيسية للموقع في بداية السي اس اس ثم ضع جميع تنسيقات القائمة الجانبية مع بعضها البعض ، و تنسيقات الأزرار في مكان واحد و تنسيقات القسم الرئيسي من الصفحة ايضا في مكان واحد. أو مثلا كترتيب آخر رتب التنسيقات حسب عمومها فمثلا ضع التنسيقات التي تؤثر على كل الصفحة في بدايات الملف و انت تنزل في الملف تبدأ بوضع التنسيقات التي تؤثر في امور اقل في الصفحة
  2. التعريف :
    في مقدمة ملف السي اس اس ضع comment به تعريف بسيط عن نفسك و متى تم انشاء الملف و متى كان آخر تحديث له (سيساعدك و الآخرين كثيرا ) كذلك ضع فيه جدول بالألوان المستخدمة مثلا 
    /*
    author : Ali Lawati
    created : 25/4/2009
    updated: 1/5/2009

    Color used
    CCCCCC : gray
    13437A : blue
    */
    كما ترى سيساعدك جدول الألوان كثيرا حينما تغير شيئا ما في التنسيقات

  3. إعادة استسخدام :
    هناك الكثير من أجزاء ملف السي اس اس التي نقوم بإعادة كتابتها في الكثير من المواقع التي تصممها ، فمثلا لو كانت الصفحة لابد ان تحتوي على قسم رئيسي و قائمة جانبية و قائمة علوية (و يا ما اكثر المواقع العربية التي تطلب هذا الشي)  لهذا فتنسيقات السي اس اس المستعملة لتوزيع الـ div  لكل قسم و قائمة  ستستعمل في كل موقع يحتاج هذه التنسيقات فبدلا من اعادة كتابتها لكل موقع يطلب نفس التنسيق عليك بالإحتفاظ بهذه التنسيقات في ملف خاص و ما عليك سوى إعادة إستخدامه (نسخ و لصق) وقت الحاجة
     
  4. استخدام – عوضا عن _ :
    عند تسمية اجزاء من الصفحة كـ ID  أو CLASS   حاول دوما  عدم استخدام الأندر سكور ” _” لأن المتصفحات القديمة تعاني من مشكلة عن رؤيتها لهذا الشي و ان كا ن لا بد فاستخدم الداش بدلا عنها ” – ” 
  5.  صمم للـ Gecko (الفايرفوكس ) أولا :
    لا بد ان جميع مبرمجي المواقع لاحظوا أن الفايرفوكس أو اكثر متصفح دعما لل standards  و بهذا فاذا صممت موقعك بالتنسيقات السي اس اس التي تتماشى مع الفايرفوكس فغالبا لن تحتاج إلا إلى تعديلات بسيطة لكي تجعل الموقع يظهر بنفس المظهر في الانترنت اكسبلولر و السفاري و الكروم

  6. تأكد انك ما شي مع الستاندردس :
    دوما يفضل ان تكون مع الاستاندردس و يمكنك التأكد من أن تنسيقاتك كذلك من هذا الموقع W3C’s free CSS validator  
    تكمن أهمية هذا لأنه بما انك مع الاستاندردس فلن يضيع جهدك في الإصدارات القادمة من المتصفحات (فلنقل انك لم تهتم بالإستاندردس ) و صنعت تنسيقات لموقعك و هي تعمل بطريقة ممتازة على جميع المتصفحات ولكن بما انها ليست standards  فلا شيء يضمن لك أن الإصدار القادم من الفايرفوكس او الانترنت اكسبلولر سيقى يعرض تنسيقاتك بنفس الطريقة
طبعا  يمكننا الإستمرار بوضع نصائح اكثر و اكثر لكن افضل القتصار على هذه لأن اتباعها سيكون له أثر كبير على جودة المواقع التي نصنعها

Read More

تلميحات SQL 1 البحث السريع بدون استخدام like

السلام عليكم و رحمة الله و بركاته ، صارت فترة طويلة لم يكتب شيء في هذا الجزء من المدونة و هذا غالبا بسبب كسلي :)

فكرت اضع بعض تلميحات ال اس كيو ال SQL كون لا بد لأي مبرمج في هذه الفترة ان يستخدمها لكي يتصل بقاعدة بياناته

هنالك الكثير من الحركات الجميلة في هذه اللغة التي نغفل عنها لقلة وقت الإطلاع و هذه أحد تلك الحركات

البحث السريع دون استخدام like

في حالة اذا كان لدينا في احد جداول قاعدة البيانات عمود يحتوي على نص طويل مثلا نص قصة أو مثلا تدوينة أو رسالة او موضوع منتدى طبعا هذا النص سيتكون من العديد من الكلمات – الآلاف منها — .

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

“Select title from articles where body like ‘%database%'”


ولكن ماذا لو كان لدينا الكثير من المواضيع (بالتالي رفوف كثيرة بالملاين في جدول الـ articles ) حينها سيصبح البحث بطيئا جدا
فاذا كان الهدف من البحث لديك هو الوصول للنتيجة بأسرع طريقة فهذه إحدى الطرق التي اجدها جيدة في الـ MYSQL
أولا عليك جعل جدول الـ articles من نوع الـ
MyIsam
ثانيا : علينا اضافة خاصية ارضفة للعمود body و ذلك بالأمر التالي

ALTER TABLE articles ADD FULLTEXT(body);

الآن حين البحث اذا استعملنا الاستعلام التالي الذي يبحث عن كلمة database في عمود الـ body من جدول الـ

“select title , MATCH (body) AGAINST (‘database’) as rank from articles ORDER BY rank desc;”

سنحصل على نتيجة مثل :

|title | rank |
—————–
|sqltip | 1.3 |
| eclipse| 0 |
|.NET | 0 |

هنا الرانك عبارة عن مدى تطابق النتيجة اثناء البحث وكلما كان اكبر كلما دل على تطابق اكثر طبعا الصفر تعني عدم الحصول على الكلمة في النص و يمككنا عدم اظهار النتائج التي تحتوي على صفر بالاستعلام التالي

“select title , MATCH (body) AGAINST (‘database’) as rank from articles where MATCH (body) AGAINST (‘database’) > 0 ORDER BY rank desc;”

اتمنى ان تكون هذه التلميحة مفيدة لكم

لرؤية التدوينة في نسختها الانجليزية تفضل هنا

Read More

Texture Image retrieval

Texture retrieval is the process of retrieving image content based on texture similarity. This may not seem very useful, since we are not using color content. On the other hand, the ability to match on texture similarity can often be useful in distinguishing between areas of images with similar color (such as sky and the sea). Several techniques have been used to measure texture similarity, well known techniques rely on comparing values calculated from query and stored images. From the values, it is possible to calculate measures of image texture such as the degree of contrast,coarseness, directionality and regularity or periodicity, directionality and randomness.
Different filters such as prewitt, Sobel, Roberts. We use the Sobel filter which is discussed later in the report. Texture queries can be formulated in a similar manner to color queries, by selecting examples of desired textures from a palette, or by supplying an example query image. The system then retrieves images with texture measures most similar in value to the query.

Read More