Archive for the ‘Java’ Category

ملحوظة صغيرة

2010/01/16
يبدو أن مبرمج ملف الـjavascript في موقع نقابة المهندسين كان متعبا أثناء برمجته و يتضح ذلك من خلال الرسالة المستخدمة للتأكد من وصول التنفيذ إلى سطر أو كتلة ما، لاحظ معي الـ واااااااع 😀 :

if (ss.readyState==4){
//alert("waaaaaaa3");

طبعا من الجيد في مختلف لغات البرمجة استخدام فكرة طباعة عبارة (أو إظهار رسالة) معينة في كتلة أو مقطع للتأكد من دخول التنفيذ إليها.
بالنسبة لي أقوم عادة بطباعة 0 ثم 1 ثم … في المنطقة التي أشك بسير التنفيذ فيها فمثلا ليكن كود الجافا التالي:
try{
ResultSet rs =...
System.out.println("0");
if(rs.next()){
System.out.println("1");
if(rs.getString(1) != null){
System.out.println("2");
...
}else{
System.out.println("3");
...
}
}else{
System.out.println("4");
...
}
}catch(SQLException e){
...
}

و ذلك طبعا أثناء العمل و ليس تبقى في التطبيق النهائي.

Advertisements

State Pattern

2009/05/05

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

هنا PDF (صفحتين) و هنا مثال Java

مختصر جدا، لكن هذا رأيي (مختصر مفيد).


* استغرقت 7 دقائق تقريبا

Install XAMPP, Java, Python3.0 On Linux

2009/05/02

XAMPP
الحصول على آخر إصدار من XAMPP الخاص بنظام التشغيل لينكس، حاليا هو هذا.
فك ضغط الملف إلى المسار /opt:

sudo tar xvfz xampp-linux-1.7.1.tar.gz -C /opt

فقط.
لتشغيل XAMPP:

/opt/lampp/lampp start

و ملفاتك سوف يجب أن تضعها في المسار /opt/lampp/htdocs
ملحوظة: قد يظهر أن سيرفر آخر يعمل، و لذلك تحتاج لإغلاق هذا الأخير، يمكن استخدام التعليمة ps -A لاستعراض العمليات تمهيدا لإنهاء العملية التي نبغي.
المزيد هنا حول XAMPP.

Java

sudo apt-get install sun-java6-jdk

Python3.0

sudo apt-get install build-essential libncursesw5-dev libreadline5-dev libssl-dev libgdbm-dev libbz2-dev libc6-dev libsqlite3-dev tk-dev g++ gcc
wget http://www.python.org/ftp/python/3.0/Python-3.0.tgz
tar xvzf Python-3.0.tgz
cd Python-3.0/
./configure
make
sudo make install

من أنواع الناس

2009/04/06

بعض الناس يشعروني بارتياح أو بنوع من الابتسامة الداخلية دون أن يقولوا شيئا، فهم مثل:

public class SomePeople{
    public SomePeople(){
        SmileMe smileMe = new SmileMe();
        smileMe.give();
    }
}

و ليس مثل

public class MostPeople1{
    public MostPeople1(Gift gift){
        if(gift != null){
            SmileMe smileMe = new SmileMe();
            smileMe.give();
        }   
    }
}

أو مثل

public class MostPeople2{
    public MostPeople2(){
            IllMe illMe = new IllMe();
            illMe.give();
        }
}

أو مثل

public class MostPeople3{
    public MostPeople3(){
        IllMe illMe = new IllMe();
        while(true){
            illMe.give();
        }
    }
}

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

2008/04/23

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

نحن نعلم الشيء المطلق بمثاله ، فمثلا عمل الخير هو مثال للخير ، شيء جميل هو مثال للجمال و ليس الجمال …

البرمجة الكائنية OOP أي Object Oriented Programming أسلوب في البرمجة يعتمد على تحويل أي شيء إلى كائن ، مثلا إذا كان البرنامج يتناول صورة عندها يمكننا إنشاء نوع هو صورة يحوي مواصفات مثل نوع الصورة jpg, gif , png … حجم الصورة ، أبعاد الصورة ( طول ، عرض ) … هذا كلّه وصف لصورة ، ليس صورة بالتحديد و إنما نوع.

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

فمثلا في Java نكتب :
public class Img{
...
}

و عندما نريد استخدام هذا النوع نحتاج لننشئ شيء منه أو كائن فنكتب :

Img anyName = new Img();

إن anyName هو مثال للصورة أو لنوع الصورة ، كما هو السرير الخشبي مثال للسرير المطلق !

كيف سندرك المطلق؟ اللانهاية ؟

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