الاثنين، 27 فبراير 2012

كتاب "تعلم البرمجة لغير المبرمجين"

بسم الله الرحمن الرحيم

 كتاب "Programming for Non-Programmers" يقدم لك البرمجة باللغة البايثون بطريقة سهلة  و بسيطة مع شمولية في التتطرق لجوانب البرمجة و تطبيقاتها , و أنا أنصح به أي شخص يريد البدأ في تعلم البرمجة بواسطة لغة البايثون , و لكن يلزمك معرفة باللغة الأنجليزية .

* الكتاب منشور تحت ترخيص "Creative Commons License"
لتنزيل الكتاب :

الأحد، 26 فبراير 2012

عرض الحزم البرمجية المثبته على ubuntu

بسم الله الرحمن الرحيم

لعرض الحزم البرمجية المثبته على النظام مع معلومات عن الحزمة و الأصدار , تستطيع أستخدام هذا الأمر :
dpkg -l

و تستطيع أستخدام الأمر grep للبحث عن حزمة برمجية معينة كالتالي :

dpkg -l | grep vlc

BASH: طباعة سلسة من اﻷرقام أو الأحرف

بسم الله الرحمن الرحيم

لطباعة سلسة من الأرقام أو الحروف في موجه الاوامر "BASH" تستطيع أستخدام الأقواس "{}" كالتالي :

  • لطباعة سلسلة من الأرقام :
for i in {1..99}

do

echo $i

done

سيتم طباعة الأرقام من 1 إلى 99 , تلاحظ في مثالنا السابق اننا فصلنا الرقمين بواسطة ".." و هذا يخبر موجه الأوامر بأننا نتعامل مع مدى من اﻷرقام .

  • طباعة سلسلة من الأحرف :
for i in {A..Z}

do

echo $i

done

سيتم طباعة الحروف من A إلى Z , وتستطيع تغير الاحرف إلى a إلى z

BASH Script : البحث و إستبدال النصوص بأستخدام sed

بسم الله الرحمن الرحيم

للبحث عن كلمة معينة و أستبدالها مباشرة من موجه الأوامر تستطيع أستخدام الامر sed كالتالي :

sed -i "s/oldWord/newWord/g"

  • sed : الأمر sed الخاص بالمحرر
  • -i : تحرير الملف مباشرة وحفظه بدل من طباعة التغير في موجه الأوامر
  • s/oldWord : الكلمة التي تقع بعد "/s" هي الكلمة القديمة التي سيتم أستبدالها .
  • newWord/g/ : الكلمة التي يستم وضعها بدل الكلمة القديمة .

adobe ستوقف تطوير مشغل الفلاش لأنظمة لينكس

أعلنت شركة adobe عن أن الأصدارة رقم 11.2 ستكون الأخيرة في سلسة برنامج flash player الموجه لمستخدمي اللينكس , و في المقابل أعلنت شركة قوقل عن أضافة من تطوير الشركة للتعامل مع ملفات الفلاش في المتصفح بأسم "Pepper" , مما يعني أن مستخدمي متصفح قوقل كروم سيتمكنون من قراءة ملفات فلاش على متصفحهم بلا أي مشاكل .

أما لبقية المتصفحات على نظام لينكس فأعتقد بأنه ستتجاوز المشكلة مع ظهور تقنية HTML5 التي تغني عن أستخدام ملفات الفلاش , و لكن قد يستغرق أنتشار التقنية بعض الوقت .

السبت، 25 فبراير 2012

لينكس : معرفة معلومات النظام و رقم الأصدارة

بسم الله الرحمن الرحيم

لمعرفة معلومات النظام يوجد الملف version في المجلد proc/ و لعرض المعلومات قم بأستخدام الأمر cat كالتالي :
cat /proc/version

و هذا مثال لمعلومات الملف :

Linux version 3.0.0-12-generic (buildd@vernadsky) (gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3) ) #20-Ubuntu SMP Fri Oct 7 14:50:42 UTC 2011

ستجد المعلومات التالية :
  • إصدارة النواة
  • إصدارة مترجم لغة السي "gcc"
  • أسم التوزيعة و تاريخ الأصدارة

لينكس :أدوات ضغط الملفات في موجه الأوامر

بسم الله الرحمن الرحيم

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

gzip  (1
     يستخدم هذا الأمر لضغط الملفات كالتالي :

    gzip file.txt

    سيتم أنشاء ملف مضغوط بالأمتداد gz كالتالي "file.txt.gz" .

    أغرب أسم لأمر في لينكس !!


    "toilet" هو أمر حقيقي في سطر الأوامر في لينكس , رغم غرابة الأسم فهذا الأمر وظيفيته هو عرض كلمات من المبرمج بشكل رسومات ملونة كهذه الصورة :



    لتثبيت الأمر في ubuntu أستخدم الأمر التالي :



    sudo apt-get install toilet


    إنشاء شجرة مجلدات بأستخدام mkdir

    بسم الله الرحمن الرحيم

    تستطيع أستخدام أمر mkdir لإنشاء شجرة مجلدات كالتالي :
    mkdir -p p1/{sub1,sub2,sub3}/{doc,src,bin}

    في هذا المثال سيتم أنشاء المجلد p1 ثم المجلدات sub1 و sub2 و sub3 و سيحتوي كل مجلد من المجلدات السابقة على المجلدات ( bin , src ,doc) .

    الاثنين، 20 فبراير 2012

    BASH:كود لعرض الملفات المحتوية على كلمة معينة

    بسم الله الرحمن الرحيم

    هذا الكود البرمجي الذي يستخدم البرنامج find و grep للطباعة أسماء الملفات المحتوية على كلمة معينة من قبل المبرمج :

    find $HOME -type f -exec grep -q "void" {} \; -print

    و هذه مقالة كاملة عن الأمر find في لينكس (http://abgoor.blogspot.com/2010/10/find.html) .

    إيقاف خاصية تذكر كلمة السر في اﻷمر sudo

    بسم الله الرحمن الرحيم

    يستخدم الأمر sudo في نظام لينكس لتنفيذ الأوامر بأستخدام حساب المستخدم الجذر "Root" و هو أقوى حساب في نظام لينكس كالتالي :

    sudo ls

    و في حالة تنفيذ الأمر sudo مرة أخرى في موجه الأوامر "terminal" لوقت محدد , سوف لن يطالبك البرنامج بكلمة السر , و لألغاء هذه الخاصية قم بأستخدام هذا الأمر :

    sudo visudo

    و أضف السطر التالي :

    Defaults    timestamp_timeout = 0


    الأحد، 12 فبراير 2012

    مجموعة من صيغ البحث بواسطة لينكس (Regular expression)

    بسم الله الرحمن الرحيم 

    هذه مجموعة من صيغ البحث ( Regular expression ) التي توصلت لها أو قرأتها في أحد المواقع و جمعتها في هذا الموضوع , و جميع هذه الصيغ تستخدم بواسطة الأداة grep :

    1 . البحث عن عناوين الأي بي :

    grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' example.txt

    2. العثور على روابط صفحات الأنترنت في النص :

    grep -o 'http://[^"]*' example.html

    3 . العثور على عناوين البريد الألكتروني :

    grep -o '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*' test.txt

    ماسح لمنافذ البرتوكول UDP بواسطة البايثون

    بسم الله الرحمن الرحيم 

    هذا كود بسيط قمت ببرمجته لعرض المنافد المتاحة للبرتوكول UDP بأستخدام لغة البايثون :
    #!/usr/bin/python
    #abgoor.blogspot.com
    import socket
    import sys
    try:
        Site=sys.argv[1]
    except:
        print "<Site or IP address>"
        sys.exit(1)
    for i in range(0,65535): #the range of the ports
        sos=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
        sos.settimeout(0.1) #The time the program will wait for the connection
        sos.connect((Site,i))
        try:
            sos.send(b'H')
            sos.send(b'i')
        except socket.error:
            pass

        else:
            print "Port:%d"%(i)
        sos.close()
        del(sos)

    السبت، 11 فبراير 2012

    دمج ملف مضغوط مع سكريبت باش (BASH)

    بسم الله الرحمن الرحيم

    قمت بترجمة مقالة وجدنها في هذا الموقع  (http://www.stuartwells.net/slides/selfextract.htm)  عن كيفية لإنشاء ملف مضغوط ذاتي التشغي بأتباع هذه الخطوات :

    1 . إنشاء ملف السكريبت :
    #!/bin/bash

    echo ""

    echo "Self Extracting Tar File"

    echo ""

    echo "Example by Stuart Wells"

    echo ""

    echo "Extracting file into `pwd`"

    SKIP=`awk '/^__TARFILE_FOLLOWS__/ { print NR + 1; exit 0; }' $0`


    #مسار و اسم الملف

    THIS=`pwd`/$0



    # إرسال البيانات المدمج إلى برنامج tar

    tail -n +$SKIP $THIS | tar -xz



    #
    # أي سكريبت بعد هذا السطر سيتم تنفيذه بعد أنتهاء فك ضغط الملف المدمج

    echo "Finished"

    exit 0

    # لا تضع أي سطور جديد بعد السطر التالي
    __TARFILE_FOLLOWS__

    الجمعة، 10 فبراير 2012

    البحث في wiki بواسطة برتوكول DNS

    بسم الله الرحمن الرحيم

    يستخدم برتوكول DNS لتحويل أسماء المواقع من الصيغة المقرؤة مثل "www.example.com" إلى  "127.0.0.1" , و لكن قام أحد المطورين بأستخدام هذا البرتوكول كطريقة للبحث في موسوعة الأنترنت "Wiki" .

    و للبحث في لينكس تستطيع أستخدام الأمر dig في موجه الأوامر "terminal" الذي يستخدم للتعامل مع برتوكول DNS كالتالي :

    dig +short txt hacker.wp.dg.cx

    "Hacker may refer to: Hacker (computer security), someone involved in computer security/insecurity, Hacker (programmer subculture), a programmer subculture originating in the US academia in the 1960s, which is nowadays mainly notable for the free software/" "open source movement, Hacker (hobbyist), an enthusiastic home computer hobbyist http://a.vu/w:Hacker" 

    فقط قم بكتابة الكلمة المراد البحث عنها بعد الأمر dig , متبوعاً بالعنوان الألكتروني  "wp.dg.cx" , وللبحث عن أكثر من كلمة قم بفصل الكلمات بأستخدام "\" ثم مسافة كهذا المثال :

    dig +short txt C\ programming\ language.wp.dg.cx

    إنشاء القوائم في bash بواسطة الأمر select

    بسم الله الرحمن الرحيم 

    يوفر الأمر select إمكانية أنشاء قوائم للتفاعل مع المستخدم و تسهيل أستخدام البرنامج , و هذا مثال بسيط على أستخدام هذا الأمر :

    #!/bin/bash

    select opt in "Hello" "Exit" ; do

    if [ "$opt" = "Exit" ]; then
    echo Exit
    exit

    elif [ "$opt" = "Hello" ]; then
    echo Hello World


    else
    clear
    echo "Error"
    fi

    done

    الأحد، 5 فبراير 2012

    الملف /dev/null في لينكس

    بسم الله الرحمن الرحيم

    /dev/null هو ملف خاص في أنظمة لينكس يتجاهل جميع البيانات التي يتم تحويلها إليه كالتالي :

    ls > /dev/null

    و يتم أستخدامه في الغالب في برامج السكريبت كالتالي :


    ls > /dev/null 2>&1 

    حيث يتم تجاهل رسائل الخطأ مع البيانات , و سوف يعيد البرنامج ls قيمة رقمية تدل على نجاح تنفيذ البرنامج .

    و هذه روابط لمواضيع ذات صلة بأستخدام الملف null :
    http://abgoor.blogspot.com/2011/07/shell-script.html
    http://abgoor.blogspot.com/2012/02/2-bash.html

    معنى و أستخدام 2>&1 في برامج BASH

    بسم الله الرحمن الرحيم

    يوجد في نظام لينكس ثلاث أنواع من الملفات الخاصة بالتعامل مع دفق البيانات وهي :

    • stdin : يرمز إلى سيل البيانات المستقبل في الطرفية "terminal" و يرمز له بالرقم 0 .
    • stdout : يرمز إلى البيانات التي يتم طباعتها في الطرفية "terminal"  و يرمز له بالرقم 1 .
    • sterr :  يرمز إلى رسائل الخطأ التي يتم طباعتها في الطرفية "terminal" و يرمز له بالرقم 2 . 
    و الأن إلى هذا المثال الذي يستخدم "redirected" تحويل البيانات من برنامج إلى ملف :

    ls > file.txt

    تتبع تنفيذ السكريبت في باش (BASH)

    بسم الله الرحمن الرحيم

    تستطيع تشغيل البرامج النصية المكتوبة باللغة BASH بحيث يتم عرض الأوامر و المخرجات الخاصة بكل أمر , و يساعد هذا المطورين على أكتشاف الأخطاء في السكريبت أو ما يعرف بـ"debug" و لتفعيل هذا في البرامج النصية باللغة Bash فقط غير السطر الأول في البرنامج من :

    #!/bin/bash

    إلى التالي :

    Google Bouncer خدمة لحماية مستخدمي أندرويد

    بسم الله الرحمن الرحيم

    أعلنت شركة قوقل عن أنشاء خدمة "Google Bouncer" للبحث عن البرامج الضارة التي يتم رفعها في برنامج android market  , و سيتم تطبيق الخدمة على البرامج الموجودة حالياً و البرامج التي سيتم رفعها مستقبلاً , و في حالة أكتشاف أي نص برمجي لفيروسات أو برامج تجسس سيتم حذف البرنامج من قائمة البرامج الموجودة في android market .

    المصادر :

    الجمعة، 3 فبراير 2012

    موقع Hulu ينشىء قناة لبث الأنمي عبر الأنترنت

    أنشىء موقع Hulu قناة مجانية لبث الأنمي عبر الانترنت بشكل قانوني , و تضم قائمة الأنمي مجموعة لا بأس بها من اﻷسماء الغنية عن التعريف لمتابعي الأنمي مثل :

    •  Bleach
    • Basilisk
    • Black Blood Brothers
    •  Kiddy Grade
    • MoonPhase 
    • Peach Girl
    • School Rumble

    للاسف هذه الخدمة متوافر حالياً فقط لسكان الولايات المتحدة الأمريكية فقط , و لكن حسب الموقع يتم العمل على توفير هذه الخدمة بشكل عالمي .

    رسالة الموقع لزوار من دول غير الولايات الأمريكية , و فيها يوضح الموقع أنهم يعملون على الحصول على حقوق النشر بشكل عالمي , و في النهاية يطلب منك البريد الألكتروني و البلد , لأبلغك عند توافر الخدمة في بلدك .

    الخميس، 2 فبراير 2012

    تثبيت firefox 10 في لينكس

    بسم الله الرحمن الرحيم

    هذا رابط موضوع كتبته منذ فترة عن كيفية تثبيت firefox 5 في لينكس عبر تنزيل النسخة التنفيذة من موقع mozilla ( رابط الموضوع ) , و هذا رابط تنزيل النسخة 10 من المتصفح fireox (الرابط) .