جريدة Twitter

الأربعاء 3 نوفمبر 2010

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

أصبح تويتر بالنسبة للكثيرين أكثر من موقع اجتماعي لمشاركة (ماذا أفعل، ماذا أقرأ الان، ماذا آكل …)، إنه وسيلة فعالة للتجارة Business، لتكوين صداقات جديدة، مصدر للإلهام ولاكتشاف ثقافات متنوعة وتعلم المزيد عن جميع المواضيع (سينما، برمجة، بورصة).

يمكن لكل واحد منا أن ينشئ جريدته الخاصة، بتخصيص Customize من يتابعهم وترتيبهم في قوائم. وفي صفحات مختلفة (رياضة، اقتصاد، فن، منوعات) وهذه الصفحة الأخيرة يمكن تخصيصها لكل الأصدقاء الذين لا تجد في خطهم الزمني أي معلومة أو كلمة مفيدة.

5 أدوات مفيدة لمطور الويب

الإثنين 1 نوفمبر 2010

6 أدوات لا يمكنني العيش بدونها

السبت 23 أكتوبر 2010

1. PHP Designer

محرر PHP, CSS, XHTML, MySQL, JS البرنامج يوفر خصائص أكثر مما احتاج فعليا، جربت PHPStrom وكان رائعا وبخصائص جديدة، (أنصح بتجربته). حاليا ابحث عن محرر يدعم CSS3 و HTML5، سمعت أن PHPDesigner سيدعم HTML5 في الإصدار الجديد.

هناك بدائل مجانية (لم تعجبني): Eclipse PDT, Aptana Studio

2. XAMPP

الإصدار xampp 1.7.4 beta2  مع PHP 5.3.3، المشكلة الوحيدة التي وجدتها مع هذا الإصدار أنه لا يمكنني إضافة MySQL ك Service تفعل تلقائيا عند كل إعادة تشغيل للنظام، أفضل أن أفتح المتصفح وأكتب localhost على أن أتفح XAMPP أولا لافعل mySQL و Apache.

إن وجدت بديلا يوفر لي أخر الاصدارات من PHP, MySQL (مع امكانية تحرير ملف php.ini) وإضافة حزم Pear بسهولة، سأجربه، هل تعرف واحدا؟ (أعمل على XP OS)

3. Color Schemer

أداة مفيدة لتوليد الألوان لـ CSS، هناك بدائل كـ (Firefox addons و Free Online Tools) وقد جربت معظمها ولن تكن عملية بالنسبة لي.

4. Notepad

لتدوين أي شيء يحتاج للتدوين (لا استعمل حزم Office المجانية، ولا Zoho أو Google Docs)

5. DropBox

أستعمله لأمرين (مشاركة ملفات CSS/XHTML  أي كـ Server، في مجلد خاص Public)، ولحفظ نسخة من كل ما لدي في النظام (في مجلد أسميه SandBox)، وأجد أن الأداة أفضل وأكثر أمانا من الأقراص الصلبة الخارجية.

6. FireFox

المتصفح الرئيسي الذي لا غنى عنه، مع قائمة أخرى من المتصفحات ل Debugging وهي: Utilu IE Collection, Opera, Safari, Chrome

هناك أدوات (يمكن العيش بدونها: Minitask, Focus Booster, Snagit, Doit …)، وبالـتأكيد لديك قائمتك الخاصة، والتي لن أمانع إن شاركتني بها في قسم التعليقات.

إنجاز المهام بطريقة Pomodoro Technique

السبت 16 أكتوبر 2010

هناك تقنية لإنجاز المهام تدعى Pomodoro، ابتكرها Francesco Cirillo ويمكن تلخيصها في ما يلي:

  • اختر مهمة (تطوير صفحة ب CSS، تنظيف المنزل، تحضير وجبة طعام …)
  • حدد المدة الزمنية لانجازها (ابتداء من 25 دقيقة)
  • ابدأ في انجاز المهمة وعندما تنتهي المدة، خذ استراحة ل 3 أو 5 دقائق

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

هناك قوانين أخرى حول التقنية (كأن تتوقف تماما عن انجاز المهمة في حال أخذت منك أكثر من 7 جلسات … ) يمكنك الاطلاع على المزيد من هذه المفاهيم عبر الموقع الخاص بها.

وكمثال آخر لنفترض أنه لديك مهمة برمجية تنجزها هذا الصباح، ستقسيم الوقت الذي ستقضيه في العمل ل 3 جلسات، كل جلسة تدوم لمدة 40 دقيقة تعبقها فترة استراحة ل 5 أو 10 دقائق، هذه الطريقة ستجبرك على التركيز في المهمة ومسابقة الزمن لانجازها بدل أن تسرح بعيدا أو تتوه في مواقع الويب، بعدها ستستمتع بفترة استراحة ل 5 أو 10 دقائق عند انتهاء كل جلسة، وإجمالا ستكون عملت لساعتين كاملتين واسترحت ل 1/4 أو 1/2 ساعة.

يوفر الموقع الرسمي Promodoro Technique الكثير من المقالات والكتب والمنتجات عن التقنية (Cheat Sheet, منبه Timer، كتب مجانية PDF …)

وهناك تطبيق Adobe Air أنيق مبني على هذه التقنية، يدعى (Focus Booster)، يسمح لك باختيار وقت كل مهمة ووقت الاستراحة، يحسب عدد الجلسات ويصدر صوتا ظريفا عند انتهاء كل جلسة، (هناك تحسينات أخرى في الإصدار الجديد الذي ظهر الشهر الماضي)، استعمل التطبيق في مهام مختلفة (تنظيف مكان العمل في 25 دقيقة، تصفح Google Readers، إفراغ البريد Zero Inbox … )

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

أخبار برمجية غير مهمة 2

الأحد 3 أكتوبر 2010

1

Leah Culver فتاة في 27 من عمرها، مبرمجة Python/Django محترفة (بالإضافة إلى Ruby on Rails, iPhone .. ) أنشأت Baconfile، Hurl ومشاريع أخرى مفتوحة المصدر، يمكن معرفة المزيد عن Leah بمتابعة حسابها على Twitter و Github وكذا الاطلاع على مدونتها الشخصية.

بدأت Leah كمبرمجة Java وسرعان ما انتقلت إلى Python، كانت وفريق صغير من المبرمجين وراء انطلاق Pownce (إن كنتم تتذكرون هذه الخدمة الاجتماعية الشبيهة ب Twitter قبل أن تتوقف لأسباب تنافسية).

بعد توقف Pownce انتقل الفريق للعمل في Six Apart لتطوير منتجات (Movable Type، TypePad …) وخاصة منصة التدوين TypePad، عملت Leah لسنة كاملة في الشركة ثم استقالت من العمل في فبراير الماضي، لتتفرغ للعمل ك Freelancer ، هي الان مبرمجة iPhone مغمورة، وبرمجت أول تطبيق iPhone لشركة Plancast.

Leah و Chris Wanstrath تربطهما علاقة صداقة قديمة (تعاونا سابقا في مشروع Hurl)، وفي حين يبدو Chris كتوما فإن Leah كثيرا ما تسخر منه وتمازحه بشأن لحيته الكثة (التي تثير فضول الكثيرين).

أريد أن أشير أيضا أن Leah تربطها علاقة صداقة بالمقاول الشاب Kevin Rose مؤسس Digg و Wefollow و (Pownce سابقا) والذي يملك استثمارات في مواقع شهيرة ك Twitter, Gowalla, Foursquare ..

2

بالتأكيد تعرفون الإطار Scriptaculous إطار JS شهير لا يختلف عن jQuery و Mootools فيما يوفره من تأثيرات Ajax جميلة، الإطار يتماشى أكثر من Rails (شركة 37signals تستعمله بالدرجة الأولى)، صاحب الإطار هو Thomas Fuchs شاب من النمسا، متزوج من (مصممة ومبرمجة Rails و Javascript) تدعى Amy Hoy.

هذا الثنائي نشيط جدا، لديهما تطبيق ويب أنيق يدعى Freckle وكتاب عن Javascript ويقومان بدورات تعليمية Training مدفوعة، وكثيرا ما يسافران إلى دول أورية مجاورة لإعطاء دورات في Javascript، المبرمج Thomas كان من ضمن نواة Rails ولا يزال إلى الان, ومنذ أيام قليلة أنشأ إطارا JS صغيرا جدا (أقل من 52 سطرا) يدعى Zepto.

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

3

Jason Fried مؤسس 37signals مع DHH (اختصارا ل David Heinemeier Hansson) قرر البدأ بتعلم الإطار Rails، قال أنه محاط بأفضل مبرمجي Rails في العالم، لما لا يستغل الفرصة إذن لتعلم الإطار؟ (حسب اقواله دائما) يبدو أن اصحاب بعض الشركات ”مجرد” مقاولين لا تربطهم بالبرمجة أي صلة (عكس مؤسس Github مثلا ..).

من هنا وهناك

الجمعة 1 أكتوبر 2010
  • PHP to Ruby يعرض الموقع دوالا في PHP وما يقابلها في لغة Ruby، موقع مفيد لمبرمجي PHP الذين يخططون للهجرة الى Ruby (يرجى عدم الخلط بين إطار العمل Rails ولغة Ruby)
  • Doit تطبيق يعتمد على مفهوم GTD لإنجاز المهام، يقف خلف هذا التطبيق الأنيق فريق صيني صغير، هناك نسخة Web App ونسخة لمستخدمي Windows وإصدار ل iPhone, Android … وكانت هناك نسخة ل Adobe Air يبدو أن فريق الموقع سيتخلى عن تطويرها لأسباب تتعلق بالثباث، الموقع يخضع للصيانة ، أعد زيارته بعد يومين من الان، ستكون هناك اصدارات جديدة.
  • A Gentle Introduction to symfony كتاب ممتاز لبدإ تعلم الإطار Symfony، الإطار الأفضل – من وجهة نظري – الكتاب متوفر مجانا للقراءة وهو من تأليف Fabien منشئ ومبتكر الإطار.
  • Getting Hired As A Developer مقالة جميلة لمبرمج ألماني معروف، يتحدث عن خبرته في توظيف المبرمجين والمطورين. مقالة مفيدة إن كنت تبحث عن وظيفة.
  • Stone Soup، كلما قرأت أكثر عن Minimalist كلما أعجبت به أكثر، أطبقه كثيرا في حياتي ما عدا في الطعام، مدونة جميلة عن فن Minimalist Cooking

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

أخبار برمجية غير مهمة 1

الخميس 19 أغسطس 2010

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

Alex Payne المبرمج الشاب الذي تزوج حديثاـ والمسؤول عن البنية التحتية ل Twitter API منذ بدايتها، استقال من العمل (اعترف أنه كان قرارا صعبا)، واتجه لتطبيق جديد يعتقد البعض أنه سيكون ثورة جديدة في خدمات البنوك عبر الأنترنت، اسم التطبيق والذي لا يزال قيد التطوير هو banksimple، المبرمج Alex قال أنه سينقل كل خبراته وتجاربه للشركة الجديدة، والتي وظفت بعض المبرمجين الشباب من SF و Portland، لست متأكدا من الللغة المستعملة في التطبيق، لكنها بالتأكيد ستكون مزيجا من Ruby و Scala، أو Rails و Lift إذا ما استعملوا إطار عمل Framework.

بالحديث عن لغة البرمجة Scala، عرفت أن الموقع الشهير Foursquare يستعمل الإطار Lift، في البداية كان موقع foursquare يتعمد على PHP، بطريقة بدائية وأكواد مبعثرة  غير نظيفة (من برمجة شاب هاو غير معروف)، ثم بعدما اشتهر الموقع وتم ضخ الاستثمارات فيه، أعيدت برمجته بالإطار الآنف الذكر، الذي يعتمد على لغة البرمجة Scala، وقد تم ذلك على مراحل بلغت في مجملها 6 أشهر (ومن طرف مبرمج واحد @harryh)، ودائما في نفس الموضوع وعندما سألت المبرمج Alex Payne عن الإطار الذي ينصحني بتعلمه ما بين Django و Rails فكانت إجابته: تعلمهما معا وألق أيضا نظرة على الإطار Lift، كان جوابا غير مباشر منه أنه سيكون من الأفضل لو تعلمت Lift, وإقرأ ما كتبه Rasmus Lerdorf عن الحماية والأمان في موقع Foursquare (لاعتماده على Lift أولا وأخيرا).

Github لمن لا يعرفه تطبيق لمشاركة الأكواد والمشاريع، العمل الجماعي، والمساهمة في مشاريع أخرى مفتوحة المصدر، يعتمد الموقع على Git (نظام لادارة الملفات أكثر خصائص وأسرع من SVN)، يمكنك تطوير مشاريعك بنظام تعدد النسخ، مشاركتها مع مبرمجين آخرين، وضعها للتحميل … الخ  مباشرة من سطر الأوامر، (لمستخدمي Windows استعمل msysgit) . مؤسس الموقع Chris Wanstrath شاب في 24 أو 25 من عمره، مبرمج Ruby/Pyhton … ولغات أخرى، يبدو أن مشروعه الذي انطلق قبل سنتين قد نجح بالفعل، فأرباح الشركة (المكونة من فريق صغير جدا يعملون بطريقة غريبة قد أتحدث عنها في مناسبة أخرى) في ازدياد، وقبل أيام قليلة اطلق الموقع خدمة جديدة للوظائف وفي ظرف أسبوع، تخطت الأرباح 60 ألف دولار، أشير إلى أن المبرمج الشاب الذي يبدو مثل قس هولندي بلحيته الصفراء الكثيفة، يوظف أمهر وأذكى المبرمجين في فريقه، أحدهم باع خدمة Gravatar لشركة WordPress وآخر هو Scott Chacon الشخص الأكثر خبرة في نظام Git ومؤلف كتاب Pro Git.

لا أعرف الكثير من الأسرار عن شركة 37signals لكن لدي موقف من Jason Fried بسبب طريقة تعامله مع  وسائل الإعلام، فهو لا يترك أي فرصة للشهرة كإجراء حوار أو مقابلة، لكن بعد أن يعطيك الموافقة، قد يغيره موقفه بسرعة ويخبرك انه مشغول جدا وقد لا يتمكن من الرد إلا بعد أسابيع طويلة، في حين شريكه David Hasson الذي أجربته معه مقابلة قصيرة منذ أيام، شخص متواضع سهل المنال، ولا يحب المال كما يحبه Jason ، يبدو أن الشركة تجني الكثير من الأرباح وهي توظف مزيدا من الاشخاص من حين لآخر (علما أن فلسفة الشركة هي البقاء صغيرا ما أمكن).

إن أعجبتكم هذه الأخبار الطريفة (والصحيحة بنسبة 99% فلدي مزيد منها).

أسئلة إلى David Hansson مبتكر الإطار Rails

الجمعة 13 أغسطس 2010

لقاء سريع مع مبتكر إطار العمل Rails الدانماركي David Heinemeier Hansson ومؤسس شركة 37signals مع المقاول Jason Fried، شركة 37signals معروفة بمنتجاتها وأفكارها التي غيرت الكثير في صناعة الأنترنت وتطبيقات الويب.

ما هي Rails في جملة مختصرة؟

أداة لصنع أي نوع من التطبيقات، ك Basecamp أو Twitter أو Yellow Pages.

كيف تساعدني Rails في بناء وإنهاء تطبيقاتي؟

أنت تكتب أكوادا أقل بفضل المفهوم CoC، وتحصل على الإلهام الازم لإنهاء التطبيق سريعا بفضل جمالية Ruby.

هل تعتمد Rails على فلسلة أو مفهوم معين؟

Convention over Configuration يعتبر أهم مفهوم نعتمد عليه، لا يجدر بك التفكير في الأشياء التي يقوم بها معظم الناس في معظم الأوقات.

مواقع شهيرة تعتمد Rails؟

Twitter, Groupon, Basecamp, Yellow Pages, Hulu.

هل يمكن تعلم Rails دون المرور على Ruby أولا؟

يمكنك تعلمهما معا في نفس الوقت.

مجتمع Rails؟

قوي ورائع، والكثير من الناس المتحمسين الذين يبذلون الأفضل للإنجاز المهام.

Twitter تركت Rails لصالح Scala، هل هذا صحيح؟

لا،  Twitter تستعمل Scala في أجزاء من بينتها، تماما كما تستعمل Yahoo لغة C/C++ لنفس الغرض، نحن أيضا نستعمل القليل من Erlang في بعض تطبيقاتنا، الخلط بين التقنيات أمر جيد.

Rails3 ثابثة بما يكفي لاستعمالها في بناء التطبيقات؟

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

مستقبل Rails؟

متألق :)

روابط لتعلم Rails

الخميس 12 أغسطس 2010

كتب:

دليل استخدام Docs:

  • Ruby on Rails guides دليل مفصل ومرتب بالأمثلة، لاستعمال Rails في إنشاء تطبيقات ويب.

محررات IDE:

دروس مصورة Podcasts:

  • أشهر موقع مجاني لدروس Rails هو Railscasts

تنصيب Rails على Windows

الأربعاء 11 أغسطس 2010

هذا درس مبسط يشرح طريقة تنصيب إطار العمل الشهير Rails لمستخدمي Windows، معظم المطورين ممن يشاركون (أو مستخدمين عاديين) في تطوير Rails يقومون بذلك على منصة OS X أو *Unix، لذلك اختبارات الثبات Scale وحل المشاكل والأخطاء Debugging يستفيد منها بسرعة أكبر مستعملي هذه الأنظمة. في حين يبقى لمستعملي Windows القبول بما هو متوفر أو الانتقال الى OS X الذي لا يكاد يفارق كل مبرمج يستعمل Ruby أو الإطار Rails

الوقت المحتمل لتطبيق الدرس: من 5 إلى 10 دقائق

الأدوات التي يجب توفيرها:

  • RubyInstaller أسهل وأسرع طريقة لتنصيب Ruby على نظام التشغيل Windows (سنستعمل الإصدار 1.8.7 في هذا الدرس، يمكنك أيضا استعمال الإصدار 1.9.1 المتوافق مع الإصدار Rails 2.3.8)
  • حزمة RubyGem لتنصيب Rails وتطبيقات Ruby الأخرى
  • Sqlite لادارة قواعد البيانات، يمكن استعمال Rails مع أنواع أخرى: MySQL, MangoDB, Cassandra ..

تحميل الأدوات:

مراجعة قبل البدأ:

بعد تحميل الملفات وفك الضغط، ستحصل على الملفات التالية (راجع الخطوات أعلاه):

rubyinstaller-1.8.7-p299.exe
rubygems-1.3.7
sqlite3.def
sqlite3.dll
sqlite3.exe

تنصيب Ruby:

قم بتنصيب rubyinstaller بشكل عادي، مع وضع علامة على الخيار الاول كما في الصورة:

بعد انتهاء التنصيب، يمكننا القيام بتجربة سريعة للتأكد انه تم التنصيب بنجاح وتمت اضافة Path الى Environement، مع ملاحظة أنه يمكن إضافة Path يدويا:

C:\Ruby187\bin;

إذهب الى Start ثم Ruby 1.8.7-p299 ثم Start Command Prompt with Ruby واكتب السطر التالي:

ruby -v

سيظهر رقم الإصدار الخاص ب Ruby:

(ان كنت تستعمل حزمة مثل xampp يمكنك كتابة: php -v لمعرفة رقم الإصدار المستعمل في الحزمة)

تنصيب RubyGems:

RubyGems يأتي ضمنيا مع RubyInstaller، لذا يمكنك تجاوز هذه الفقرة، والانتقال الى تنصيب SQlite. ان كنت تستعمل إصدارات أقدم، سيكون عليك التحديث update ولعمل ذلك زر موقع RubyGems

بالنسبة لمجلد RubyGem وبعد فك الضغط، يمكنك وضعه في أي مكان، شخصيا وكي اصل إليه بسرعة، أضيفه إلى المسار: C:\Ruby187
(أنقل المجلد rubygems-1.3.7 إلى هذا المسار)
الان ودائما في نفس النافذة Command Prompt، سننتقل الى المكان الذي وضعنا فيه المجلد:
اكتب:

cd ../..

المؤشر أصبح الان في المسار C:\

ثم ننتقل الى المجلد rubygem عبر الأمر cd:

cd ruby187
cd rubygems-1.3.7

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

C:\Ruby187\rubygems-1.3.7>

مع ملاحظة أن المسار قد يختلف حسب المكان الذي وضعت فيه المجلد rubygems-1.3.7

لتنصيب RubyGem نكتب الأمر التالي:

ruby setup.rb

ان تم التنصيب بنجاح ستحصل على الرسالة:

RubyGems installed the following executables:
C:/Ruby187/bin/gem

تنصيب SQlite:

قم بنسخ الملفات الثلاث التي تبدأ ب sqlite والتي حملناها أعلاه، الى المجلد:

c:\ruby187\bin

سنستعمل gem لتنصيب SQlite مع Ruby:
في سطر الأوامر دائما (المستعمل من قبل) اكتب السطر التالي:

gem install sqlite3-ruby

ان تم التنصيب بنجاح, ستظهر لك رسالة تبدأ بهذا السطر:

Successfully installed sqlite3-ruby-1.3.1-x86-mingw32
1 gem installed

تنصيب Rails:

سنستعمل gem لتنصيب الإطار Rails، في نفس سطر الأوامر نكتب:

gem install rails

انتظر دقائق قليلة وستظهر لك الرسالة التالية:

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