الثلاثاء، 15 مايو 2012

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

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

في هذا الدرس سوف نتعرف على المصفوفات و الشرائح (slices) و هو نوع من البيانات أكثر مرونة من المصفوفات و أخيرا الخرائط (map) و هي بديلة للهاش (Hash) و المعاجم (Dictionary) .

1. المصفوفات ( Arrays ) :
    المصفوفات هي عبارة عن مجموعة من المتغيرات المتشابه في النوع و المتجاورة في المواقع في الذاكرة , و يتعدد أستخدمها في البرمجة مثل التصنيف ( Sorting ) و السلاسل النصية ( Strings) .
    •  التصريح عن مصفوفة :
    لتصريح عن مصفوفة جديدة في لغة Go يوجد أكثر من طريقة , و هذا مثال على الطرق المستخدمة :

    var list [4]int

    list1 := [4]int{ 12, 43 ,35 ,2}


    في السطر الأول قمنا بالتصريح عن المصفوفة بأسم "list" بأستخدام var ثم أنهينا التصريح بحجم المصفوفة متبوعا بنوع المصفوفة [4] بعد ذلك النوع int .

    أما في السطر الثاني فأستخدمنا الطريقة المختصرة بأستخدام " =: " ثم بعد ذلك حجم المصفوفة ونوعها , الفرق في هذا التصريح بأنه من اللازم تحديد عناصر المصفوفة :


    list1 := [4]int{ 12, 43 ,35 ,2}

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


    list1 := [4]int{}

    الأحد، 6 مايو 2012

    لأي شخص يريد يتوظف في الفيسبوك

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

    أذا تحب التحدي و تتقن أي من لغات البرمجة التالية (C, C++, Java, Python, Perl, Ruby, C#, PHP ) فعندك فرصة للحصول على وظفية في موقع الفيسبوك .

    كل ما تحتاجه هو حل مجموعة من الألغاز البرمجية في وقت محدد ليتم الأتصال بك و تحديد موعد المقابلة الشخصية , طبعا الألغاز تحتاج تفكير إبداعي , مب للجماعة اللي يلجؤون للمنتديات لحل الواجبات ;-)   .

    لكي تبدأ التحدي أدخل على هذا الرابط  , و سجل الدخول بأستخدام حسابك في الفيسبوك .

    * ملاحظة : يبدأ العداد الخاص بحل الألغاز مع تسجيلك بواسطة حسابك .

    تصفح موقع wiki بدون أتصال بالأنترنت

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

    قام موقع wiki الشهير بأنشاء برنامج kiwix الذي يمكن المستخدمين من قراءة محتوى الموسوعة بدون أتصال بالأنترنت بعد تنزيله من موقع البرنامج السابق .


    لتنزيل البرنامج قم بزيارة الموقع الرسمي للبرنامج ( kiwix ) , و أختر أصدارة البرنامج الخاصة بنظام تشغيلك , ثم نزل نسخة الموسوعة باللغة التي تريدها .

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

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

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

    في هذا الدرس " أن شاء الله " سوف تتعلم أستخدام جملة القرار switch بالأمثلة , تستخدم جملة switch في تحديد الأوامر المراد تنفيذها في عدة حالات أو مقارنات لقيمة متغير أو نتائج دالة , و سأستخدم في المثال هذا النص البرمجي من موقع go tour :

    package main

    import (

        "fmt"

        "runtime"
    )

    func main() {

        fmt.Print("Go runs on ")

        switch os := runtime.GOOS; os {

        case "darwin":

            fmt.Println("OS X.")

        case "linux":

            fmt.Println("Linux.")

        default:

            // freebsd, openbsd,

            // plan9, windows...

            fmt.Printf("%s.", os)

        }

    }

    الثلاثاء، 24 أبريل 2012

    iphone:تعطيل خدمة حفظ الموقع في الصور

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

    السؤال :
    • هل من الممكن حقاً معرفة مكان ألتقاط الصورة , و أذا كان ذلك صحيحاً فكيف يتم ذلك و كيف يمكنني منع ذلك ؟
     الجواب :

    • تقوم الهواتف الذكية مثل iphone و الهواتف العاملة على نظام Android بحفظ الأحداثيات الخاصة بالموقع  التي تم فيها ألتقاط الصورة بواسطة خدمة GPS في ملف exif مدمج بالصورة

    فتعطيل هذه الخدمة قم بدخول الأعدادات "Setting"-> تحديد المواقع "Location Services" .


    قم بتعطيل وصول تطبيق الكاميرا للخدمة تحديد المواقع , و أنصحك عطل جميع التطبيقات ما عدا تطبيق Maps , لتعطيل هذه الخدمة في هواتف Android قم بتشغيل الكاميرا و أدخل على الأعدادت المتقدمة "Advance setting" -> وضع علامة المواقع "Store Location" .
     

    السبت، 21 أبريل 2012

    لينكس : التحكم بالبرامج التي تعمل في الخلفية

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

    يوفر نظام لينكس أمكانية التحكم بالعمليات التي يتم تشغليها بحيث يمكن تشغيل البرنامج في الواجهة أو ما يعرف بـ "foreground" , و في حالة رغبة المستخدم في عدم أشغال الجلسة الحالية لموجه الأوامر "terminal" تستطيع أرسال البرنامج للعمل في الخلفية "Background" .

    • أرسال برنامج للعمل في الخلفية "Background"

    إزالة ^M من الملفات النصية في لينكس

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

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

    و لمسح هذا الحرف تستطيع أستخدام المحرر النصي "sed " كالتالي :

    sed -e '/^M/d' input > output


    أستخدام الأداة curl لقياس سرعة الموقع

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

     يعد برنامج curl البديل المتطور  لبرنامج wget في لينكس , و في هذا السكريبت سأستخدم هذا البرنامج لقياس سرعة الموقع ( الوقت المستغرق لبدأ الأتصال , سرعة بدأ عملية النقل , الوقت الأجمالي ) , و إذا لم يكن برنامج curl قم بتفيذ هذا الأمر في موجه الأوامر لتثبيت :
    sudo apt-get install curl

    و هذا هو النص البرمجي لشيل سكريبت :

    #!/bin/bash

    if [ $# -ne 1 ];then

    echo $0 "<site>"

    exit

    fi

    site=$1

    curl -A "Mozilla" -s -o /dev/null -w "Connect: %{time_connect} Start_Tranf:%{time_starttransfer} Total time: %{time_total}\n\n" $site

    فقط قم بحفظ النص في نظام لينكس و حوله لملف تنفيذي بواسطة الأمر chmod :

    chmod +x speed.sh


    الأربعاء، 18 أبريل 2012

    لينكس:تحويل فيديويات اليوتيوب إلى mp3

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

    لتحويل فيديويات اليوتيوب إلى ملفات صوتية بصيغة mp3 تستطيع أستخدام الأداة ffmpeg و لتثبيت هذه الأداة أستخدام الأمر التالي في موجه الأوامر في لينكس :
    sudo apt-get install ffmpeg

    sudo apt-get install libmp3lame0

    بعد ثبيت البرنامج نفذ هذا الأمر لتحويل الملف :

    ffmpeg -i video1.flv -acodec libmp3lame -ac 2 -ab 128 -vn -y sound.mp3

    قم بتغير أسم الملف video1.flv لأسم ملف الفيديو الذي تريد تغيره و الملف sound.mp3 لأسم الملف الذي تريد حفظ البيانات فيه

    برنامج ext2explore لعرض ملفات لينكس في ويندوز

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

    للمستخدمين الذين يستخدمون نظامي ويندوز و لينكس على نفس الحاسب , أقدم لكم هذا البرنامج الذي سيسمح لكم بعرض الملفات الموجودة على نظام ملفات لينكس (ext4,ext3).
    البرنامج يعمل على نظام ويندوز xp و vista و أيضا 7 , البرنامج بسيط الاستخدام فقط قم بتنزيل الملف و تشغيل البرنامج ,  رابط التنزيل (http://sourceforge.net/projects/ext2read/http://sourceforge.net/projects/ext2read/) .

    البرنامج يبحث عن أنظمة لينكس و يعرضها , و البرنامج بسيط جداً و المشكلة الوحيدة فيه هو عشوائية عرض الملفات و المجلدات .