الاثنين، 2 أبريل 2012

تعلم لغة البرمجة Go بالعربي ( الدرس السادس )

بسم الله الرحمن الرحيم
جمل أتخاذ القرار if:

تستخدم جمل اتخاذ القرار لتحكم في سير تنفيذ البرنامج بناء على البيانات و المقارنات كهذا المثال في لغة Go:

package main

import "fmt"

func main(){

x := 12

if x < 20 {

fmt.Println("x<20")

}

    }

الطريق المستخدم في مثالنا الأول مشابه للغة السي و الجافا و المختلف في لغة Go أنه تم ألغاء استخدام القوسين () و لم يمكن أستخدمها حتى اختيارياً , أما القوسين { } المستخدمين لتحديد الكود المراد تنفيذه عن مطابقة الشرط فأصبحت أجبارية .

google adsense : منع الإعلانات المسيئة

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

يوفر برنامج قوقل الأعلاني الامكانية لتحكم في نوعية الإعلانات المعروضة على صفحتك, مما يمكنك من حجب بعض الإعلانات المسيئة .


  • أولا قم بالتسجيل في حسابك بواسطة هذا الرابط .
  •  من القائمة الرئيسية في الموقع أختر "السماح بالإعلانات / منعها" بالإنجليزي "Allow & Block ads"
 

الأحد، 1 أبريل 2012

الأمر getopts للتعامل مع معاملات الباش سكريبت

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

يستخدم الأمر getopts لتعامل مع المعاملات الخاصة بالسكريبت بشكل أحترافي , و لهذا المقال لنقترض سنعتمد على هذا السكريبت لشرح هذا الأمر :
#!/bin/bash

while getopts "f:n:h" OPTION

do
case $OPTION in

f)File=$OPTARG

cat $File;;

n)num=$OPTARG

echo $num;;

h)echo "Help";;

?) echo "test Program"

exit ;;

esac
 
done

  
سنبدأ بشرح السطر الثاني الذي يحتوي على الأمر getopts :

while getopts "f:n:h" OPTION

ستقوم الحلقة التكرارية while بالعمل حتي يتم يتنهي عمل الأمر getopts في الحصول على المعاملات المعرفة في ما بين علامتي التنصيص .

"f:n:h"

المعاملات في مثالنا هي f- , -n , -h  و ترمز النقطتين بعد المعامل  لوجود بيانات تابعه للمعامل كهذا المثال للمعامل f :

-f filename

في حالة عدم وجود أي بيانات تابعة للمعاملات سيتم كتابة المعاملات بدون أي مسافة كالتالي :

while getopts "fnh" OPTION

يلي هذا السطر الجملة القرار case التي سوف تنفذ على المتغير OPTION الخاص بحفظ القيمة التي يستعديها الأمر getopts .

case $OPTION in

f)File=$OPTARG

cat $File;;

n)num=$OPTARG

echo $num;;

h)echo "Help";;

?) echo "test Program"

exit ;;

esac
  
يستخدم المتغير الخاص OPTARG لحفظ البيانات التابعة لمعامل في المعامل f لنفترض أن المستخدم قام بكتابة الأمر كالتالي :

-f filename

سيكون قيمة المتغير OPTARG مساوية لقيمة filename , هذا هو شرح بسيط لهذه الأداة التي تزيد من فعالية البرامج .

السبت، 31 مارس 2012

الأداة whiptail لتصميم البرامج الرسومية في Bash

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

يستخدم الأمر whiptail لتوفير واجهة رسومية مباشرة في موجه الأوامر مما يسهل التعامل مع السكريبت للمستخدمين العاديين .

  • عرض رسالة للمستخدم :
whiptail --title "Example1" --msgbox "Hello,World" 10 40

1 .  title--      : عنوان الرسالة
2.  msgbox-- : أختيار عرض رسالة المعلومات متبوعاً بالنص المراد عرضه
3.  10            : أرتفاع الرسالة
4. 40             : عرض الرسالة .

  • عرض رسالة (yes / no ) للمستخدم :

Ubuntu:إنشاء صورة QR

بسم الله الرحمن الرحيم
كتبت في موضوع سابق عن صور QR و في هذا الموضوع سوف أعرض الأداة  qrencode لتثبيت الإداة في نظام ubuntu :


sudo apt-get install qrencode

  • أنشاء صورة QR :
qrencode -o 1.png "http://abgoor.blogspot.com"

لتحديد أسم الصورة يتم استخدم o- متبوعاً بأسم الصورة في حالة مثالنا "1.png" , ثم في نهاية الأمر القيمة النصية المراد حفظها في الصورة .

و هذه قائمة ببعض أوامر qrencode :

  • v- : تحديد أصدارة الصورة الناتجة .
  • s- : تحديد حجم الصورة بواسطة البكسل (pixel) , الأفتراضي 3
  • c- : الأنتباه لحالة الاحرف في اللغة الأنجليزية (Case sensitive ).
  • i-  : تجاهل حالة الأحرف و تسجيل جميع الأحرف بحالة upper .


لينكس : الأمر alias

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

يستخدم الأمر alias لإنشاء أختصار لأمر موجود في النظام بهدف أختصار الأوامر الكثيرة الأستخدام و هذا مثال :
alias l="ls -l"

و هذا مثال للأمر find :
alias code="find ./ -type f -name *.c  > list.txt"

الأربعاء، 28 مارس 2012

لينكس :الأمر lsattr لعرض خصائص الملفات

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

يستخدم الأمر lsattr لعرض خصائص الملفات ( في هذا الموضوع شرح للخصائص )  و هذه قائمة بالأختيارات الموفرة من هذا الأمر :

  • R : عرض خصائص الملفات و المجلدات و الملفات التي تحتويها .
  • V : إصدارة البرنامج .
  • a : عرض جميع الملفات حتي الملفات المخفية التي تبدأ ب"." 
  • d : عرض خصائص المجلدات بدون عرض خصائص الملفات التي تحتويها .
  • v : عرض إصدارة الملف و الرقم التسلسلي .
و هذا مثال على أستخدام الأمر :
abgoor@abgoor-Extensa-4630Z:~/Documents/test$ lsattr *

-----a-----------e- text10.txt

----i------------e- text4.txt

لينكس : حماية الملفات من المسح بواسطة chattr

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

يستخدم الأمر chattr لتغير خصائص الملف التي يوفرها نظام الملفات الخاص بلينكس و منها منع حذف الملف حتى بواسطة المستخدم الجذر "root" , إلا بعد تغير الخصائص من المستخدم ذوي الصلاحية , وهذه قائمة بالأختيارات الخاصة بالبرنامج ( هنالك بعض الخصائص التجريبية لم أتطرق لها ) :

  • A  : منع تحديث وقت القراءة "Access time" .
  • a  : لا يمكن مسح محتويات الملف أو حذف , و لكن يمكن أضافة البيانات للملف فقط .
  • c  : تفعيل خاصية ضغط الملف بواسطة النواة "kernel" .
  • D : خاصية خاصة بالمجلدات , و المجلد الذي تفعل له هذه الخاصية يتم كتابة البيانات مباشرة بدون أنتظار .
  • d : الملف الذي تفعل له هذه الخاصية لا يتم أخذ نسخة أحتياطية له بواسطة البرنامج dump
  • i  : الملف الذي تفعل له هذه الخاصية لا يمكن حذفه أو تعديله أو أعادة تسميته .
  • s  : عند حذف الملف يتم تصفير المساحة المستخدمه من قبله في القرص الصلب .
  • S : مشابه للخاصية D و لكن للملفات , حيث يتم كتابة البيانات الخاصة بالملف مباشرة في القرص الصلب .
  • u : عند خذف الملف يتم حفظ مكوناته , هذه الخاصية تساعد في حالة الحذف الخاطىء .
و هذا مثال على منع حذف ملف بواسطة الأمر chattr :

sudo chattr +i file.txt

لتغير الخصائص لابد من أستخدام الأمر sudo أو حساب المستخدم الجذر , قم الأن بمحاولة التعديل أو حذف الملف بأستخدام حسابك العادي أو حتى بأستخدام حساب المستخدم الجذر "Root" :

abgoor@abgoor-Extensa-4630Z:~/Documents/test$ rm file.txt

rm: cannot remove `file.txt': Operation not permitted


و الأن لإلغاء الخاصية يجب أستعمال "-" كالتالي :

sudo chattr -i file.txt

الثلاثاء، 27 مارس 2012

الوسائط في برمجة الباش سكريبت

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

يوفر BASH في لينكس إمكانية تمرير الوسائط إلى السكريبت لتلقي المعلومات و يتم إعطاء الوسائط أسم متغير عبارة عن رقم بحسب ترتيب الوسيط في الأمر و يبدأ الترقيم من الرقم 1 و هذا مثال عن طريقة التعامل مع الوسائط :
#!/bin/bash
#Script name:args.sh 
echo $0
echo $1
echo $2

    قم بتنفيذ السكريبت كالتالي :

    ./args.sh 1123 232

      المتغير 0$ يحتوي على أسم السكريبت دائما , كما يوفر الباش المتغير #$ الذي يعطي عدد الوسائط و المتغير @$ الذي يحتوي على جميع قيم المتغيرات و هذا مثال على أستخدام هذه القيم  :

      #!/bin/bash

      echo "Number of argument:" $#

      for i in $@

      do

      echo $i

      done



      سكريبت لإعادة تسمية أكثر من ملف من نفس النوع

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

      لإعادة تسمية أكثر من ملف من نفس النوع تستطيع أستخدام هذا السكريبت :
      #!/bin/bash
      #written by abgoor.blogspot.com
      #under GPL license
       
      if [ $# -ne 2 ];then

      echo "Usage:<name><file type 'jpg'>"

      exit 0

      fi


      counter=0

      for i in *.$2

      do

      mv $i $1$counter.$2

      counter=$((counter+1))

      done

      تستطيع أستخدام هذا السكريبت كالتالي :
      ./rename text txt

      القيمة الأولى هي الأسم المستخدم و القيمة الثانية هي أمتداد الملفات التي تريد تغير أسمها و سيكون ناتج السكريبت ملفات مرقمة كالتالي :text1.txt و text2.txt و text3.txt إلى أخره .