لماذا أريد أن أكتب

عندي أكثر من ٣٠ مسودة لأجزاء من تدوينات تنتظر النشر، أغلبها على الأرجح لن يرى النور. لم تكتمل لأن الكتابة عندي مرتبطة برغبتي في الكتابة-حسب المزاج، وهو أمر لا يعجبني. أُفضّل أن تكون الكتابة عادة أمارسها مهما كان مزاجي. كما أن مهارتي في الكتابة لا تساعدني على إتمام التدوينات بسهولة.

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

الطريقة الوحيدة لأبني عادة الكتابة، والطريقة الأفضل لأطور مهارتي في الكتابة، هي بالكتابة.

Posted

الفجوة

مقدم ومنتج برنامج This American Life آيرا جلاس ربما يكون من أنجح القاصين في وقتنا الحاضر. يستمع ما يقارب مليوني شخص لبرنامج قلاس أسبوعيًا. في مقابلة معه، يتحدث عن رحلته في صناعة القصة ومحاولة صنع شيء ذو قيمة. سمحت لنفسي بترجمة جزء منها بتصرف:

ما لا أحد يخبر به المبتدئين — وأتمنى حقًا لو أن أحدًا أخبرني به:

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

كثير من الناس لا يتجاوز تلك المرحلة. يتوقفون. أكثر من أعرف ممن ينتجون أعمال إبداعية مثيرة للإهتمام مروا بمرحلة لسنوات كانت فيها ذائقتهم جيدة جدًا وكانوا يعرفون أن عملهم ليس جيدًا بالقدر الذي يريدون — يعرفون أنه كان يفتقد للشيء المميز الذي يريدونه.

الشيء الذي أريد قوله لكل من يمر بذلك هو أن الأمر طبيعي تمامًا.

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

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

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

Posted

كيف أحمي فكرتي من السرقة؟

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

حسنًا، أنا هنا لأخبرك أنه على عكس ما قيل لك، لا أحد يريد سرقة فكرتك! لماذا؟ لأنها في الغالب ليست بالتميّز الذي تظنه. ماهي إحتمالية أن تخطر لشخص آخر نفس فكرتك؟ واحد من مليون؟ اذًا لديك ٣٠ منافس في السعودية لوحدها! ٣٠٠ منافس في أمريكا و أكثر من ١٣٠٠ منافس في الصين! وإذا كنا واقعيين، إحتمالية أن يأتي شخص آخر بنفس فكرتك في الغالب أقرب إلى واحد من ألف. ستقول ماذا عن صديقي الذي أخبرني أن فكرتي هي "أفضل فكرة سمعها"؟ لا تلم صديقك، فهو كان يحاول أن يكون لطيفًا وألا يجرح مشاعرك. كان يأمل أنك ستبحث في الفكرة وتجد أنها ليست بالتميز الذي تظنه.

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

ولا تتعب نفسك بالبحث عن استثمار في مرحلة الفكرة. لا أحد يريد الاستثمار في "كلام"؛ يجب أن يكون لديك شيء لعرضه على المستثمرين٬ مايجب أن تبحث عنه هي الاستشارة التي ستساعدك على التنفيذ.

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

هدفي هنا ليس تحطيم أحلامك أو تثبيط عزيمتك، بل العكس! هدفي هو دفعك لتبدأ بفعل ما هو مهم؛ ويسعدني أن أساعدك على ذلك بكل ما أستطيع.

Posted

ما هو iBeacon؟

من فترة لأخرى أفتن بتقنية وأشعر أن لها دور كبير في المستقبل وهذا ما حدث مع iBeacon.

iBeacon هو Protocol يتعمد على Bluetooth low energy من تطوير Apple يقوم على تنسيق الاكتشاف بين طرفين:

المعلن

الجهاز المعلن يبث حوله حقل ليعلن عن وجوده. هذا سبب تسميته beacon - تعني منارة. كل ما يبث المعلن هو هويتة المكونة من ثلاثة أجزاء ولا يستقبل شيئًا. يمكن أن يكون الجهاز المعلن أي جهاز يدعم تقنيةBLE أي أنه يمكن أن يكون جهاز محمول أو دائرة إلكترونية بحجم زر.

الماسح

يقوم الجهاز الماسح، في الغالب جهاز محمول، بالبحث عن الأجهزة المعلنة - beacons، يستقبل فقط ولا يرسل. عندما يجد أي معلن يستقبل منه هويته المكونة من ثلاث أجزاء وقوة البث ليتمكن من حساب المسافة التقريبية بين الجهازين. يأتي هنا دور المطور للاستفادة من تلك المعلومات. بامكانه مطابقة هوية المعلن لقاعدة بيانات مجمعة مسبقًا ليعرف أنه عند beacon موضوعة في المكتبة على سبيل المثال.

لماذا iBeacon؟

ما يثير حماسي في iBeacon أنها طريقة سهلة لصنع تجرية لا تعتمد على الموقع فقط، ولكن على السياق أيضًا - Context-Aware Experience. في السابق باستخدام GPS فقط أفضل دقة يمكن أن تحصل عليها لمكان المستخدم هي 8 متر تقريبًا، هذا في أفضل الحالات. وإذا كنت داخل مبنى فلك أن تنسى استخدام GPS كليًا. المختلف في iBeacon أن الموقع المحدد، بعكس GPS، يمكن أن يكون دقيقًا لعدة سانتيمترات! ولبعد حتى ٥٠ متر تقريبًا. ولأن لكل beacon هوية مخصصة له بامكانك معرفة بعد جهاز المستخدم عن أي beacon بالتحديد وحتى دقة بضع سانتيمترات. بالاضافة إلى ذلك BLE يستهلك قدر قليل جدًا من الطاقة، بإمكان beacon أن تعمل لمدة سنتين ببطارية بحجم زر. ولا يحتاج beacon لأي اتصال خارجي بأنترنت أو غيره وتكلفته قليلة نسبيًا.

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

تحديث: شاركني بندر رفة مقطع فديو يعرض المزيد من الأمثلة لاستخدامات iBeacon.

Posted

ابحث عن البجعة السوداء

في الفديو أعلاه يطرح ديريك من القناة الرائعة Veritasium سؤالًا يبدو بسيطًا في البداية على مجموعة من الناس. 

سوف أعطيك ثلاثة أرقام تتبع القانونًا معينا، عليك محاولة إيجاد القانون. ستفعل ذلك باقتراح مجموعة من الأرقام التي تعتقد أنها تتبع القانون، وسأجيبك بنعم ان كانت تتبعه ولا ان لم تكن. حسنًا الأرقام هي 2، 4، 8. ليس عليك إكمال المتسلسلة بإمكانك اقتراح أي مجموعة من الأرقام.

الكل تقريبًا يبدأ بإكمال متسلسلة قوى 2. الأرقام 16، 32، 64. نعم هي تتبع القانون، ولكن القانون ليس قوى 2. يبدأون بعد ذلك بمحاولة استنتاج أنماط للوصول لأرقام تتبع القانون، كلها دومًا تتبع القانون، ولكن النمط الذي استنتجوه ليس بالقانون!

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

وكذلك في الفديو، كان الكل يبحث عن "نعم"، عن مايوافق افتراضهم. وهو ما حصلوا عليه، الكثير من "نعم" التي لم تساعدهم. اقتراحات مثل 3، 6، 12 و 20، 40، 80 وحتى 500، 1000، 2000 كلها توافق القانون، لكن لم تفدهم في معرفة ماهو القانون. الطريقة الأسهل كانت بالبحث عن "لا"، عن ما يخالف القانون. بمجرد أن اقترح أحدهم 10، 9، 8 وكانت الأجابة لا عرف أن القانون هو أي مجموعة أرقام متصاعدة!

Posted

Leash

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

أردت أن يعمل التطبيق بدون تسجيل، بدون تنصيب برامج أو إضافات، وعلى أي جهاز أو متصفح. الفكرة في Leash -وهي ليست فكرة جديدة- أن عنوان الموقع Leash.co هو واجة الاستخدام، هو ما تستخدمه للتفاعل مع الموقع، URL as UI.

كان هناك قرارين مثيرين للإهتمام. الأول نطاق الموقع. العنوان هو ما سيتفاعل معه المستخدم، لهذا يجب أن يكون قصيرًا ليقلل كمية الكتابة، لكن في نفس الوقت يجب أن يكون سهل الحفظ. وجدت نطاقات من ثلاثة أحرف، لكن لم يكن لها أي معنى. اخترت Leash، بالإضافة للشعار "Take a website for a walk" لجعل الاسم أسهل للتذكر. الثاني تحديد فترة حياة للعناوين. أي عنوان يحفظ يحذف تلقائيًا بعد فترة. الهدف منه هو التوضيح للمستخدم أن هذه ليست خدمة لحفظ الروابط، وإنما لنقلها. ولتجنب تحول الموقع لخدمة تقصير روابط.

ذكرني Leash بسهولة إطلاق مشاريع الويب في الوقت الحالي. كتبته باستخدام Node.js، ولقاعدة البيانات استخدمت Redis، كلها تطبيقات مفتوحة المصدر. للاستضافة Heroku، يمكنك البدء معهم مجانًا وكل ما يتطلبه الأمر لنشر التطبيق طباعة git push.

Posted

تعلم تطوير تطبيقات الآيفون

أكثر سؤال يوجه لي هو "كيف يمكنني تعلم تطوير تطبيقات الآيفون؟". وضعت هنا ما يشابه خارطة طريق صغيرة لتساعدك على بدء تعلم تطوير تطبيقات iOS.

احصل على الأدوات

ستحتاج لجهاز ماك لتطوير أي شيء ل iOS. آسف ولكن هذا الواقع. ابدأ بتحميل بيئة تطوير البرمجياتXcode المقدمة من Apple والتي يمكنك الحصول عليها مجانًا من متجر تطبيقات ماك. Xcode سيقدم لك كل ما تحتاجه. حزمة تطوير البرامج، محرر نصوص، مصمم الواجهات، debugger ،simulator والعديد من الأدوات الأخرى. في البداية لا تحتاج لعضوية مطوري iOS من أبل، لكن حين تريد تجربة التطبيق على جهاز iOS أو إطلاق التطبيق في المتجر فستحتاج للحصول على العضوية والتي تكلف 99$ سنويًا للأفراد.

تعلم اللغة

لغة Objective-C هي اللغة الرسمية لبرمجة ماك أو iOS. هناك العديد من الأدوات لكتابة التطبيقات بلغات أخرى مثل JavaScript أو Ruby، لكن، ومن تجربة، ابذل الجهد اللازم مرة واحدة وتعلم Objective-C بدلًا من إضاعة جهدك مرات عديدة وأنت تحاول تخطي العقبات التي تواجهها بإستخدامك تلك الأدوات محاولًا تجنب تعلم اللغة. Objective-C هي لغة المنصة الحقيقية، تعلمها.

تعلم الأطر

بعد أن تعلمت اللغة، حان الوقت لإستخدامها. كتابة أي تطبيق ل iOS يكون بالإعتماد على SDK (حزمة تطوير البرامج) التي تحصل عليها مع Xcode. الحزمة تحتوي على الأطر التي ستسخدمها في بناء أي تطبيق. عدد الأطر كبير واستخدام أحدها يعتمد على التطبيق الذي تحاول بناءه. أي أنك لن تستخدمها جميعًا وقد لا تستخدم بعضها أبدًا. محاولة تعلمها كلها قبل البدء مضيعة للوقت. أفضل طريقة لتعلمها هي البدء في عمل تطبيق ثم تطبيق آخر وآخر وتعلم الأجزاء التي تحتاجها وأنت تتقدم. حين تصل لهذه المرحلة، يجب أن يكون توثيق حزمة التطوير (SDK Documentation) صديقك الصدوق.

تعلم التصميم

تصميم التطبيق لا يقتصر على الواجهة فقط، بل يتعدى ذلك لتجربة المستخدم كاملة لتشمل أشياء كالسعر وخصوصية المستخدم مثلًا. تصميم تطبيقك بعناية من أهم عوامل نجاحه على منصة iOS. ستسمع كثيرًا عن HIG (Human Interface Guidlines) ويعتبر مرجعًا لا يستغنى عنه في تصميم تطبيقات iOS.

مصادر أخرى

Posted

البرامج لا تنبت على الأشجار

يستخدم جهاز اشتراه بأكثر من ٢٠٠٠ ريال. ولا يمانع دفع ٢٠٠ ريال مقابل الحصول على بعض الإكسسوارات. لكن فكرة دفع حتى ٣ ريالات، مقابل تطبيق يحسن تجربة استخدامه للجهاز وقد يخدمه طوال فترة حياة جهازه والجهاز التالي، غريبة جدًا!

البرامج لا تنبت على الأشجار

لنأخذ مثالًا تطبيق iPhone. يكلف تطوير تطبيق بسيط قرابة ١٥ ألف دولار، ما بين أجور التطوير والتصميم والخدمات، ويصل إلى أكثر من ١٥٠ ألف دولار. أبل تأخذ ٣٠٪ من سعر التطبيق والمطور يحصل على ٧٠٪ المتبقية من كل عملية شراء. اذا كان سعر التطبيق ٠,٩٩$ فالمطور يحصل على ٠,٧٠$ فقط. أي أنه بحاجة ل ٢١,٤٢٨ عملية شراء ليسدد استثماره الأولي فقط! إذا أراد سداده خلال سنة فعليه الحصول على معدل ٥٩ تحميل يوميًا، وهو ليس بالأمر المستحيل ولكنه -وعن تجربة- ليس بالأمر السهل أبدًا. هذا لتطبيق iPhone بسيط، يصل تكلفة إنتاج بعض البرامج والألعاب الكبيرة إلى ملايين الدولارات، وعليك الحسبة.

لما لا؟

يتعذر البعض بأن وسيلة الدفع تشكل عائقًا، لكن وجود بدائل للبطاقات الإئتمانية مثل بطاقات iTunes مسبقة الدفع، التي يمكن الحصول عليها بسهولة بمقابل نقدي (كاش) أو حوالة بنكية، كاف لإبطال تلك الحجة. الـ jailbreak مثال على الجهد الذي يبذله البعض للحصول على التطبيقات دون مقابل. فهويريد التطبيق لكن -ببساطة- ليس لديه إستعداد لدفع مقابل له. وهي مشكلة في لا يحلها تسهيل وسائل الدفع. الحل يتطلب تغييرًا في السلوك وطريقة التفكير.

بصيص أمل

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

هناك مكان للمجاني، لكن ليس دومًا

يختار بعض المطورين -أو الشركات- تقديم البرامج مجانًا على أن يجد طريقة للدخل لاحقًا. قد تنجح بعض الأحيان، لكنها -في الغالب- تؤدي إلى توقف تطوير اليرنامج أو إغلاق الخدمة. والمتضرر الأول؟ المستخدم. أو ما انتشر مؤخرًا -خصوصًا في الألعاب- بتقديم البرنامج مجانًا ثم دفع المستخدم لدفع مبالغ بسيطة ولكن بكثرة عن طريق مشتريات داخل التطبيق (In App Purchase). لا أعني أن جميع مشتريات داخل التطبيق سيئة، لكن الكثير للأسف يسيئ استخدامها. والمتضرر الأول؟ المستخدم.

إذا كنت تريد برنامجًًا، والأهم إذا كنت تريد المزيد مثله، رجاءًا، ادفع قيمته.

Posted

وداعًا luvDrop

ما بدأ في 2011 كتجربة ومحاولة لإثبات وجهة نظر، أصبح أكثر مشروع معروف عملت عليه.

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

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

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

Posted

شيء واحد جيدًا

اكتب برامج تؤدي وظيفة واحدة، وتؤديها جيدًا.

– دوجلاس ماكيلروي صانع Unix Pipes

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

وليس بالضرورة أن يقف الأمر عند البرامج، طريقتي المفضلة حاليًا لصنع القهوة هي باستخدام AeroPress. لا تطحن حبوب القهوة، لا تغلي الماء، لا تحدد الكميات المناسبة، هي فقط لاستخراج القهوة من البن. رغم (أو بسبب) هذا أستطيع صنع كوب من القهوة أسرع -وأفضل بمراحل- من الذي كنت أحصل عليه من آلة صنع القهوة.

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

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

Posted