البرمجة غيرت حياتي Alex Payne

Alex Payne مبرمج معروف، استهل حياته المهنية بالعمل لدى Twitter ومنذ بداياتها الاولى، كان المسؤول الأول عن بنية API لديها، استمر في العمل لسنوات، وفجاة قرر ترك Twitter بعد أن شب عودها وحققت شهرة غطت على الجميع اناذاك. قرر الانتقال من سان فرانسيسكو الى Portland أتذكر انني كنت اقرا في مدونته عن رغبته في الانتقال لمدينة اخرى، ولم يكن قد حدد بعد اي مدينة سينتقل للعيش فيها.

أنشأ رفقة Josh Reich و Shamir Karkal شركة ناشئة كانت تعد بالكثير، اسمها Banksimple والتي تحولت لاحقا الى Simple، وهي خدمة ثورية في مجال البنوك، لكن بطريقة مختلفة (A bank that doesn’t Suck) على حد تعبيرهم. كنت من أوائل المسجلين في الخدمة، وصلتني دعوة بعد سنة كاملة، وبعد التسجيل، وصلتني رسالة تفيد بالغاء اشتراكي لانني لا اقيم في الولايات المتحدة.

عمل Alex لأشهر بصفة CTO ووظف أصدقاء قدامى كمبرمج Mootools المعروف (Ian Collins) نمى الفريق شيئا فشيئا، وارتفع عددهم في غضون شهور قليلة الى ازيد من 25 مبرمجا، (تجد قائمة بكل مبرمجي الشركة هنا).
تلقيت 40 دولارا من Alex مقابل نشر إعلان في مدونتي الانجليزية عن رغبته في توظيف مبرمجين، وأتذكر أنه كان يبحث عن مبرمجي Scala و Lift بنهم شديد.

شيئا ما حدث، جعل Payne يستقيل من عمله، تلقيت كغيري الخبر بصدمة، حلم الشاب الصغير (الذي لم يكن يتجاوز عمره آناذاك 28 سنة) انتهى مبكرا، لم اعرف الاسباب لكنني (استنتجت كغري دوما) ان هناك خلافات، ولاحقا تبين انه لم يكن العمل او المشروع الذي حلم به، فقد اعترف بذلك بنفسه. واستمر فريقه في دعوته للعودة اكثر من مرة. لكن Alex كان يخفي أمورا اخرى ..

مباشرة بعد استقالته من شركة Simple، تعرض لخيبة أمل جديدة وأشد تأثيرا من الأولى، الا وهي الطلاق من زوجته التي تعرف عليها عن طريق Okcupid الموقع الشهير الخاص بالتعارف والزواج، اضطر للتنازل عن املاك بل وفقد شقته التي أثتها بعناية، خاصة ان Alex من أجد المعجبين بمبدأ Minimalist و Zen.

بعد كل هذه الصدمات، قرر الابتعاد عن الأضواء، والجلوس مع نفسه واعادة التفكير في حياته من جديد، لاشك انه شعر بالفشل، في عمله، في حياته الزوجيه وحلمه بالاستقرار في مدينة يقال انها الأكثر ملاءمة لحياة المبرمجين، فطالما احتضنت Portland الخيرة منهم، هناك حيث ينظمون لقاءات دورية حول Scala, Ruby, Python .. الخ، والتواجد حولهم أمر وبلاشك يثير الكثير من الحماس.

وفي آخر مرة، قرأته أنه سافر في جولة إلى أوربا، وتحديدا إلى ألمانيا للتعرف على الشركات الناشئة هناك، أتذكر أنه زار Wunderlist عندما كان في برلين، بعد عودته أنشأ شركة جديدة تدعى Breather، كما استثمر في شركات ناشئة اخرى، ك Sprint.ly و Datadoghq، ويبدو أنه يعيش حياة سعيدة  في لوس أنجلس.

المزيد عن Alex:

إن أعجبتك هذه التدوينة فيمكن أن تتحول الى سلسلة، فضلا شارك الرابط في twitter

هل أنت مطور Front-End؟

قبل سنوات ( أيام asp و html) كان المطور يدعى Web Developer بغض النظر عن اللغات أو التقنيات التي يستعملها، الان صارت هناك مسميات كثيرة، أكثر تخصصا وأكثر تدقيقا، بل إن بعض الشركات وصلت الى حد متطرف، (twitter والشركات الناشئة التي أصبحت تنبت كالفطر).
بعض المسميات أصبحت تمزج بين أكثر من اختصاص كوظيفة: front-end / rails web developer أو graphic design / front-end developer، بل هناك وظائف بمسميات مثيرة ك: Front-end CoffeeScript أو Software Engineer Git أو حتى MySQL Database Engineer ..
سأتحدث هنا عن وظيفة Front-End Developer والتحديات التي تواجهه حاليا، مع إغفال كثير من التفاصيل.

1)
بداية لابد من إتقان CSS3 و HTML5، بما تعنيه كلمة إتقان، من معنى، أن تعرف خصائص CSS3 وطرق استعمالها، من قيم ومتغيرات، وكيف تتعامل المتصفحات مع هذه الخصائص Render، خبرة عميقة بالمتصفحات أمر لا مفر منه، نفس الشيء بالنسبة لل HTML5 API، وخصوصا الآليات الجديدة: Websockets, Canvas, Location, Video, Forms … ستجد في وقت من الأوقات، أن عليك تعلم طرق جديدة لكتابة أكواد CSS، عن طريق Sass أو Less.

يجب الإلمام بأحد أطر Framework الجاهزة ك Twitter Bootstrap أو Gumby  أو Zurb Foundation وأرشح الأولى والأخيرة، لشهرتهما وكذا الدعم الفني المتوفر بطرق مختلفة (Forums, Blogs, Showcases ..).

2)
تعلم JS أو CoffeeScript والوصول الى مرتبة متقدمة فيها، بما أن هذه اللغات أصبحت الأكثر طلبا حاليا، أيضا لا مفر من تعلم (على الأقل) أحد ال Framework JS ك Backbone.js أو AngularJS (الأكثر طلبا لدى الشركات الناشئة)، هناك أطر جديدة واعدة ك EmberJs و knockoutjs، وبالطبع jQuery اصبح غنيا عن التعريف (بل متجاوزا في كثير من الأحيان).

3)
ال Responsive Web Design، أصبح ضرورة ملحة، بل إن توفير نسخ لمختلف الأحجام أصبح أمرا افتراضيا.

4)
هناك تفاصيل وتقنيات أخرى يجب الإلمام بها (Git، ال Async باستعمال NodeJs أو BackboneJS، ال UI/UX، ال Cache ..)، ربما يأتي الحديث عنها في وقت لاحق. بل قد يتوجب على مطور Front-end الإلمام بلغة أو إطار عمل (Back-end)، أو على الأقل فهم الأكواد Syntax والتعامل معها، ونجد هنا أن Rails و Django الأكثر شهرة.

5)
روابط مفيدة:

وفجأة، عدت للتدوين

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

 

جريدة Twitter

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

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

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

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

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

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

هناك تقنية لإنجاز المهام تدعى 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

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 مثلا ..).

من هنا وهناك

  • 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

تحذير: لا تقرأ هذه التدوينة إن لم تكن مطورا أو مبرمجا وتهتم بأخبار البرمجة والمبرمجين.
تحديث: غيرت عنوان الموضوع من: طرائف برمجية 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% فلدي مزيد منها).