مقدمة إلى بايثون

Tuesday, December 22, 2009 | | 7 comments |

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .


خضت في الفترة الماضية تجربة بسيطة مع python على ububto 11 ، وكانت تجربة جيدة ، لذا أحببت أن أشارككم بها هنا ، لمستخدمي لينكس الموضوع بسيط لكن بالنسبة لمستخدمي ويندوز هناك ironpython ولكن لم أجرب العمل عليه .


بداية :


تصنف البايثون تحت تصنيف لغات البرمجة ال Dynamic ، حيث لا تشترط تعريف للمتغيرات ولا تحديد أنواع البيانات وخلافه ، مناسبة جداً لتطوير أي سكربتات سريعة ، سهلة جداً وستجد ملايين المصادر لها عبر الإنترنت لعمل كل شيء تقريباً .


كيف أحمل البايثون :


في اوبنتو ستجد أغلب البرامج التي تطلبها موجودة في System->Administration->Synaptic Package Manager :

الآن تحتاج لاضافة مكتبات البايثون ، يمكنك اختيارها من البرنامج أو يمكنك تحميلها من خلال ال Terminal بالأمر التالي :

sudo apt-get install python


الآن بامكانك البدء مباشرة ، أو يمكنك تحميل برمجيات اضافية مثل netbeans المخصص أصلاً للجافا ، لكنه سيوفر لك عدة خصائص مثل الإكمال التلقائي وغيره ، يمكنك تحميل برامج أخرى لتصميم الواجهات بالبايثون وخلافه ولكنها أمور متقدمة .



برنامجي الأول :


بعد أن تكون قد قمت بتحميل مكتبات البايثون ، ومن خلال Terminal قم بكتابة الأمر التالي :


python

ثم جرب كتابة كودك الأول بالشكل التالي ثم اضغط انتر :

s='Welcome Ahmed';
print s

والنتيجة :




وللخروج اطبع exit().





احفظ ملفاتك :






يمكنك فتح ملف نصي جديد وكتابة نفس الأوامر فيه ، ومن ثم حفظه بامتداد .py .

في هذه الحالة ومن التيرمنال يمكنك الوصول للملف


cd /home/ahmed/Desktop


ومن ثم :


python a.py


وستؤدي نفس النتيجة ، فقط ستحصل على الأكواد ملونة



اللغة :

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

الشروط :

x = int(raw_input('Enter Number : '))
if x == 100:
print '100%'
elif x < 50:
print 'So bad :('
else:
print 'it is ok.'

حلقات التكرار :

# exit from loop if x=10
while running:
x = int(raw_input('Enter Number : '))
if x == 10:
print 'it is exit now'
running = False
else:
print 'The while loop is over.'

تعريف الدوال

   def funcHello():
‫‪print 'Hello'
‬‬
‫‪funcHello()

ماذا عن تصميم الواجهات :

يمكنك استخدام برامج خارجية لتصميم الواجهات ، هذا الرابط مفيد جداً :

http://arabicfoss.blogspot.com/2009/01/pyqt4.html


لكن لو احببت البدء بالموضوع من البداية ، فأول ما ستحتاج إليه هو استخدام مكتبة رسوميات مناسبة ، هذه المكتبة مثال pygtk .

الآن لنجرب هذا الكود مثلاً - منقول من كتاب لتصميم الواجهات - :

import pygtk;
pygtk.require('2.0');
import gtk;
def delete_event(widget,data):
False;
def destroy(widget,data=None):
gtk.main_quit();
window = gtk.Window(gtk.WINDOW_TOPLEVEL);
window.set_title("Hello");
window.connect('delete_event',delete_event);
window.connect('destroy',destroy);
hello_world_button = gtk.Button("Hello");
hello_world_button.show();
window.add(hello_world_button);
window.show();
gtk.main();


الآن جرب وطالع النتيجة .

يمكنك البدء لاحقاً ببرمجة الأحداث وربطها ، ربما نشرحها في مرات قادمة بالتفصل .

والويب :



تحتاج لاستخدام framework خاص بالويب ، أشهرها هو django ، يمكنك البدء من هنا :

http://wiki.python.org/moin/WebFrameworks


مصادر :

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

http://www.maastaar.com/books/pygtk/Building-Applications-With-PyGTK-and-SQLite.pdf

شكراً لكاتبه وجعل الله جهده في ميزان حسناته .

ختام :
كل الشكر لمحمد نبيل على تعبه معي الفترة الماضية


والسلام عليكم ورحمة الله وبركاته .



Read more ...

كتاب .net 2008 بصورة ورقية – تجربة النشر الحر

Friday, December 4, 2009 | | 3 comments |

منذ بضعة أسابيع ، قرأت كتاباً نشره الأستاذ رؤوف شبايك بعنوان ( انشر كتابك بنفسك ) والموجود على هذا الرابط ( انشر كتابك بنفسك )

يشرح مؤلف الكتاب طريقة استخدام موقع Lulu.com للنشر الحر لمؤلفاتك وكتبك ، حيث يتيح لك الموقع امكانية نشر كتابك ووضع الدعاية من أجله ، وعرضه للشراء حيث سيتولى عنك عملية الطباعة والتوصيل إلى المشتري ، كل هذا بخطوات سلسلة وميسرة جعلت فكرة النشر الإلكتروني فكرة ميسرة جداً وأفضل - خصوصاً لأي مبتدئ - من مجرد التفكير في الركض وراء دور النشر .

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

وبالفعل بدأت في الإجراءات التي نصح الكاتب بالسير عليها ، والمحصلة النهائية ، ها هو كتابي جاهز للطبع :http://www.lulu.com/content/hardcove...y-step/8016570

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

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


لذا لو كنت تود الحصول على نسخة الكترونية فهذا رابط النسخة القديمة من الكتاب ذات الإخراج المتميز :http://www.4shared.com/zip/ietoeAMc/dotNet_2008_Old.html
أما لو كنت مصر على الحصول على النسخة بعد التعديلات فإليك هذه النسخة للتحميل :
http://www.4shared.com/file/164058191/5beddfb0/net_2008_2nd.html
وأخيراً ، هذا هو رابط الكتاب على موقع Lulu :
http://www.lulu.com/content/hardcove...y-step/8016570

كيف أشتري من موقع لولو ؟


باستخدام الرابط السابق ، أو من القائمة العلوية Buy والتي تتيح لك البحث بين الكتب واختيار الكتاب الأنسب لك .http://www.lulu.com/content/hardcove...y-step/8016570

إذا قمت بالضغط على الرابط السابق ، ستجد في الأعلى Add To Cart ، سعر الكتاب 30.10 دولار وهو تكلفة طباعة 604 ورقة مع غلاف من النوع الفاخر يتحصل عليها موقع لولو مقابل عملية الطباعة ، ستتم اضافتها لسلة التسوق ، بعد انتهائك من التسوق ستجد زر باسم Check out >>> ، سيطلب منك تسجيل ايميلك وكلمة مرور خاصة بك ليتم طلبك كعضو جديد أو سجل دخولك بعضويتك الحالية .

بعد ذلك سيخيرك بين نوعين من الشحن ، من حسابي في جدة - المملكة العربية السعودية يكلفني الشحن حوالي 11 دولار ، ومن المفترض أن يتم الشحن خلال 5-7 ايام ، إلا أن الأستاذ رؤوف ذكر في كتابة أن الأمر قد يطول بالشحن لاسبوعين أو ثلاث بالاضافة لأسبوع للطباعة ، عموماً انا ما زلت اجرب الطلب للمرة الأولى ولا أعرف كم سيستغرق الكتاب للوصول فعلياً .

بعد الضغط على save & continue سينقلك إلى شاشة الدفع الالكتروني ، ادخل بياناتك وسيتم التأكيد وانهاء العملية ، والآن عليك انتظار النسخة

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

يقدم الكتاب للنسخة الجديدة من فيجوال ستوديو من خلال C# و Vb.net عبر 22 باباً تتحدث عن الفيجوال ستوديو ابتداء باصدارته وطرق تحميله ، مروراً بعرض مفاهيم بيئة .net الرئيسية ، أساسيات كتابة الكود ولغة البرمجة ، Classes And Interfaces ، الأخطاء Debuginig ، المجموعات COLLECTIONS ، وسائل الادخال والاخرج IO ، واجهات Windows Forms ، عالم GDI+ و WPF ، قواعد البيانات من خلال ADO.net ، ثم LINQ و WWF و WCF وبرمجة ال Pocket PC ثم الانتهاء بالاطلاع على برمجة المواقع من خلال ASP.net .
تعقيب بعد استلام الكتاب :
للأسف بعد الانتهاء من كافة الخطوات واجهت مشكلة في دعم اللغة العربية عندهم ، حيث قاموا بطباعة الكتاب بالمقلوب برغم أني التزمت بارساله لهم معكوساً لكي تتم الطباعة بصورة صحيحة ، لكن برغم ذلك يبدو انهم اجتهدوا واعادوا ترتيب الكتاب حسب ارقام الصفحات ، وبعد عدة مراسلات توقف الدعم نسبياً منهم برغم اقرارهم بإن الخطأ من جهتهم . لذا وجب التنويه .

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

Read more ...