اذهب إلى المحتوى

لوحة المتصدرين

  1. عبدالهادي الديوري

    • نقاط

      1

    • المساهمات

      368


  2. E.Nourddine

    E.Nourddine

    الأعضاء


    • نقاط

      1

    • المساهمات

      1458


  3. أحمد الخطيب

    أحمد الخطيب

    الأعضاء


    • نقاط

      1

    • المساهمات

      24


  4. Lujain Maaz

    Lujain Maaz

    الأعضاء


    • نقاط

      1

    • المساهمات

      344


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 02/01/16 في كل الموقع

  1. من أكثر الأمور شيوعًا التي ننصح بها في شركة Y Combinator هي فعل الأشياء البسيطة دون رغبةٍ في توسيع نطاقها في البداية. يعتقد الكثير من المؤسسين المحتملين أن الشركات الناشئة إما تشرع في النّجاح أو لن تنجح أبدًا. فأنت تبني شيئًا وتجعله متاحًا، وإذا صنعتَ مصيدةً أفضل سيجد الناس طريقهم إليك أفواجًا كما تعِدُك المصيدة، أو لن يجدوه، وفي هذه الحالة لن يكون هناك سوق.[1] في الحقيقة، تنجح الشركات الناشئة في العمل لأن المؤسسين يجعلونها تنجح. ربما تكون هناك قلَّة من الشركات التي نَمَت بأنفسها، ولكن يتطلب الأمر عادةً دفعةً ما لتنطلق. يشبه الأمر عامود الحركة الذي كان موجودًا في محركات السيارات قبل بادئ الحركة الكهربائي؛ ما أن يبدأ المحرك في العمل يستمر في الحركة، ولكن عمله يستلزم عمليةً منفصلة وشاقة. جذب المستخدمينإن الأمر الأكثر شيوعًا بين الأمور التي تبقى دون توسُّع في البداية، والذي ينبغي على كافة المؤسسين القيام به، هو جذب المستخدمين يدويًا. على كل الشركات الناشئة تقريبًا أن تفعل ذلك؛ لا يمكنك انتظار أن يأتي المستخدمون إليك، عليكَ أن تذهب إليهم وتأتي بهم. شركة Stripe واحدة من أنجح الشركات الناشئة التي موَّلناها، وكانت المشكلة التي تقدم حلًا لها مُلحَّة؛ فإذا كان هناك من يمكنه الاسترخاء وانتظار المستخدمين، فهي Stripe، ولكنها في الحقيقة تشتهر داخل شركة YCباكتسابها للمستخدمين بشكل مبكر وجريء. لدى الشركات الناشئة التي تصنع أشياءً لشركات ناشئة أخرى مجموعةً كبيرةً من المستخدمين المحتملين في الشركات الأخرى التي موَّلناها، ولم تستغل أي شركة هذا الأمر أفضل من Stripe. نستخدم في شركة YC مصطلح ‹‹التركيب التصادمي›› لوصف التقنية التي اخترعوها. يسأل المؤسسون الأكثر خجلًا شخصًا ما: ‹‹هل تود تجربة نسختنا التجريبية؟›› وإذا كانت الإجابة نعم، يقولون: ‹‹رائع، سنرسل لك رابطًا››، ولكن هؤلاء التصادميون لم ينتظروا، فعندما كان يوافق أي شخص على تجربة Stripe كانوا يقولون: ‹‹حسنًا إذًا، أعطني حاسبك الشخصي›› وينشئون له حسابًا على الفور. ثمَّة سببان يمنعان المؤسسين من الانطلاق وجذب المستخدمين بصورةٍ فردية: أحدهما مزيج من الخجل والكسل؛ فهم يفضلون الجلوس في المنزل وكتابة الشيفرات البرمجية على الخروج والتحدث مع مجموعة من الغرباء والتعرض للرفض من معظمهم على الأرجح. ولكن لكي تنجح شركة ناشئة سيضطر واحد على الأقل من المؤسسين (عادةً ما يكون المدير التنفيذي) إلى قضاء الكثير من الوقت في التسويق والمبيعات. [2] السبب الثاني الذي يجعل المؤسسين يتجاهلون هذا الطريق هو أن الأرقام النهائية تبدو ضئيلةً للغاية في البداية، فهم يعتقدون أن الشركات الناشئة الشهيرة الكبيرة لا يمكن أن تكون قد بدأت كذلك. الخطأ الذي يرتكبونه هو التقليل من شأن قوة النمو المركب. نحن نشجع كل شركة ناشئة على قياس تقدمها بمعدل النمو الأسبوعي، إذا كان لديك 100 مستخدمًا فأنت بحاجة لاكتساب 10 آخرين الأسبوع التالي لتنمو بمعدل 10% أسبوعيًا، وبينما قد لا يبدو الرقم 110 أفضل كثيرًا من 100، إلا أنك إذا استمريت في النمو بمعدل 10% أسبوعيًا ستتفاجأ من الحجم الذي سيبلغه الرقم. بعد سنةٍ سيكون لديك 14000 مستخدمًا، وبعد سنتين سيكون لديك مليونان. ستفعل أشياءً مختلفةً عندما تكتسب مستخدمين بالآلاف، وسيتباطأ النمو في نهاية الأمر. ولكن إذا كان لديك سوقًا فيمكنك البدء عادةً بجذب المستخدمين يدويًا ثم الانتقال تدريجيًا إلى استخدام طرقٍ أقل يدويةً.[3] يُعد موقع Airbnb مثالًا كلاسيكيًا على هذه التقنية، فمن الصعب تحريك عمل المنصات marketplaces في البداية لدرجة أنك من المتوقع أن تتخذ إجراءات استثنائية للغاية. في حالة Airbnb كانت تلك الإجراءات هي طرق الأبواب في نيويورك لجذب مستخدمين جدد، ومساعدة المستخدمين الحاليين على تحسين قوائمهم. عندما أتذكر فريق عمل Airbnb خلال فترة عملهم مع شركة YC أتصورهم حاملين حقائب سفر، لأنهم عندما كانوا يأتون لتناول العشاء في أيام الثلاثاء، كانوا دائمًا عائدين للتّو من مكانٍ ما. الهشاشةيبدو Airbnb الآن كقوة هائلة لا يمكن إيقافها، ولكن في بدايته كان هشًّا للغاية لدرجة أن 30 يومًا فقط من الخروج والتفاعل مع المستخدمين بصورةٍ شخصيةٍ وضعته على طريق النجاح بدلًا من الفشل. لم تكن تلك الهشاشة الأولية سمة فريدة قاصرة على Airbnb فقط؛ فكل الشركات الناشئة تقريبًا تكون هشّة في البداية، وهذا أحد أكبر الأمور التي يسيء فهمها المؤسسون المبتدئون والمستثمرون (وكذلك الصحفيون ومن يدَّعون معرفة كل شيء في المنتديات) ؛ فيحكمون بدون وعيٍ على الشركات الناشئة الوليدة بمعايير الشركات المستقرة. كأنهم ينظرون إلى طفلٍ رضيع ويستنتجون أن ‹‹هذا الكائن الصغير لن يتمكن من تحقيق أي شيء أبدًا››. من غير المضر أن يرفض الصحفيون ومن يدَّعون معرفة كل شيء شركتك الناشئة؛ فهم دائمًا ما يخطئون في تقدير الأمور، بل من المقبول أن يرفض حتى المستثمرون شركتك الناشئة؛ فهم سيغيّرون آراءهم عندما يرون نموها. الخطر الكبير هو أن ترفض أنت نفسك شركتك الناشئة. لقد رأيتُ ذلك يحدث، عليّ غالبًا أن أشجع المؤسسين الذين لا يرون القدرات الكاملة لما يبنونه. وقع حتى بيل جيتس في ذلك الخطأ، فقد عاد إلى هارفارد في الخريف بعد تأسيس مايكروسوفت، لم يبقَ طويلًا ولكنه لم يكن ليعود من الأساس إذا كان قد أدرك أن مايكروسوفت ستصل حتى إلى جزءٍ صغيرٍ من الحجم الذي وصلت إليه. [4] السّؤال الذي يجب طرحه حول أي شركة ناشئة في المراحل المبكرة ليس ‹‹هل ستسيطر هذه الشركة على العالم؟›› وإنما ‹‹كم سيكون حجم هذه الشركة إذا فعل المؤسسون الأمور الصحيحة؟›› والأمور الصحيحة غالبًا ما تبدو شاقة وغير هامة في ذلك الوقت. بالطبع لم تبدُ مايكروسوفت مثيرة للغاية عندما كانت تتكون من شابين فقط في ألباكركي يراسلان مترجمي لغة بيسك للوصول إلى سوقٍ من بضعة آلاف من الهواة (كما كان يُطلق عليهم حينها)، ولكن بالنظر إلى الماضي، كان ذلك هو الطريق الأمثل للهيمنة على برمجيات الحاسب الدقيقة. وأعرف أن براين تشيسكي Brian Chesky وجو جيبيا Joe Gebbia لم يشعرا أنهما على الطريق نحو فرصتهما الكبيرة عندما كانا يلتقطان صورًا ‹‹مهنية›› لشقق مضيفيهم الأوائل، فهما كانا يحاولان النجاة فقط، ولكن بالنظر إلى الماضي كان ذلك أيضًا هو الطريق الأمثل للهيمنة على سوقٍ كبير. كيف تعثر على المستخدمين لتجندهم يدويًا؟ إذا بنيتَ شيئًا لحل مشاكلك الخاصة، فعليك فقط أن تعثر على أقرانك؛ وهو ما يكون عادةً أمرًا مباشرًا. وفيما عدا ذلك سيكون عليك أن تبذل جهدًا مدروسًا لتحديد موقع أكثر المستخدمين الواعدين. الطريقة المعتادة لفعل ذلك هي الحصول على مجموعة مبدئية من المستخدمين من خلال الانطلاق غير محدد الهدف نسبيًا، ثم ملاحظة أي نوع منهم يبدو أكثر تحمسًا، والسعي للحصول على آخرين مثلهم. لاحظ بن سيلبرمان Ben Silbermann على سبيل المثال أن الكثير من المستخدمين الأوائل لموقع Pinterest كانوا مهتمين بالتصميم، لذا ذهب إلى مؤتمرٍ للمدونين عن التصميم لجذب المستخدمين؛ ونجح ذلك. [5] البهجةعليك اتخاذ إجراءات استثنائية، ليس فقط لاكتساب المستخدمين، بل لإسعادهم أيضًا. ظل فريق موقع Wufo يرسل رسالة شكر بخط اليد لكل مستخدمٍ جديد لأطول وقتٍ ممكن (وهو ما اتضح أنه وقت طويل على نحوٍ مفاجئ). على المستخدمين الأوائل أن يشعروا أن الاشتراك معك كان أحد أفضل الخيارات التي اتخذوها على الإطلاق، وعليك في المقابل أن تفكر مليًا في طرقٍ جديدة لإبهاجهم. لماذا علينا أن نعلِّم ذلك للشركات الناشئة؟ لماذا يمثل ذلك أمرًا غير بديهي للمؤسسين؟ هناك، كما أعتقد، ثلاثة أسباب: الأول أن الكثير من مؤسسي الشركات الناشئة مدربون على الهندسة، وخدمة العملاء ليست جزءًا من التدريب على الهندسة؛ فمن المفترض أن تبني أشياءً قوية وأنيقة، لا أن تنتبه بخنوع للمستخدمين الأفراد مثل البائعين. من المثير للسخرية أن أحد أسباب عزوف الهندسة تقليديًا عن الإدارة أن تقاليدها تعود إلى وقتٍ كان فيه المهندسون أقل قوةً؛ عندما كانوا مسؤولين فقط عن نطاقهم الضيق، وهو صناعة الأشياء، وليس إدارة الأمر بأكمله. يمكنك أن تكون عنيدًا، ولكن ليس عندما تدير دفة الأمور. السبب الآخر الذي يجعل المؤسسين لا يركزون بما يكفي على العملاء الأفراد هو أنهم يخشون أنه لا يُمكن القيام بذلك على نطاق واسع، ولكن عندما يقلق مؤسسو الشركات الناشئة الوليدة بشأن ذلك أشير إلى أنهم في وضعهم الحالي ليس لديهم ما يخسرونه. ربما إذا بذلوا جهودًا إضافية لإسعاد مستخدميهم الحاليين بشدة، سيكتسبون يومًا ما الكثير جدًا من المستخدمين ليقدموا لهم الكثير، ستكون تلك مشكلة كبيرة. لترَ إذا كان بإمكانك تحقيق ذلك، وعندما تفعل، بالتبعية، ستجد أن العملاء المسرورين يتوسعون بصورةٍ أفضل مما توقعتَ. لأنّه بإمكانك عادةً إيجاد طرق جديدة لجعل أي شيء يتوسع أكثر مما تتنبأ له به، ولأن العملاء المسرورون بحلول ذلك الوقت سيكونوا قد انتشروا في ثقافتك. لم أرَ قط شركة ناشئة تدخل في نفقٍ مظلمٍ بمحاولاتها الحثيثة لإسعاد مستخدميها الأوائل. ولكن ربما الأمر الأكبر الذي يمنع المؤسسين من إدراك كمّ الانتباه الذي يمكنهم أن يولوه لمستخدميهم، أنهم لم يجربوا مثل ذلك الانتباه بأنفسهم. فقد تحددت معاييرهم لخدمة العملاء بالشركات التي كانوا عملاءً لها، والتي تكون في غالب الأمر شركات كبيرة. لا يرسل لك تيم كوك رسالة شكر مكتوبة بخط اليد بعد أن تشتري حاسبًا شخصيًا، لا يمكنه ذلك، ولكن يمكنك أنت القيام بذلك، فهذه إحدى مزايا أن تكون صغيرًا؛ يمكنك تقديم مستوى من الخدمات لا يمكن للشركات الكبرى تقديمه. (6) بمجرد أن تدرك أن الأعراف السائدة ليست الحدود النهائية لتجربة المستخدمين، يصبح التفكير في المدى الذي قد تصل إليه لإسعاد مستخدميك مثيرًا للاهتمام على نحوٍ سار. التجربةكنت أحاول التفكير في عبارةٍ توضح إلى أي حدٍ يجب أن يصل انتباهك للمستخدمين، ثم أدركت أن ستيف جوبز قد قالها بالفعل، إلى حدٍ جنوني. لم يكن ستيف يستخدم كلمة ‹‹جنوني›› لترادف كلمة ‹‹جدًا›› بل كان يعنيها حرفيًا؛ أي أن على المرء التركيز على جودة التنفيذ لدرجة قد تعتبر مَرَضيةً في الحياة اليومية. لقد فعلَت ذلك كل الشركات الناشئة الناجحة التي موَّلناها، ولا يفاجيء ذلك على الأرجح المؤسسين المستقبليين. ما لا يفهمه المؤسسون المبتدؤون هو ما تُترجَم إليه عبارة ‹‹إلى حدٍ جنوني›› في الشركات الناشئة الوليدة. عندما بدأ ستيف جوبز يستخدم تلك العبارة كانت آبل شركة مستقرة بالفعل، فهو كان يقصد أنه على جهاز ماك (وتوثيقه وحتى تعبئته؛ فهذه هي طبيعة الهوس) أن يكون مصممًا ومصنعًا على نحوٍ جيد إلى درجةٍ جنونية. ليس من الصعب على المهندسين فهم ذلك، فهو مجرد نسخة متطرفة أكثر قليلًا من تصميم منتجٍ قويٍ وأنيق. ما يصعب على المؤسّسين فهمه (وربما كان قد صعب على ستيف نفسه فهمه) هو ما سيتحول إليه هذا الحد الجنوني مع تحريك مؤشر الوقت للوراء إلى الشهرين الأوليين من حياة الشركة الناشئة. ليس المنتج هو ما عليه أن يكون رائعًا إلى حدٍ جنوني، وإنما تجربة مستخدمك، والمنتج أحد مكونات تلك التجربة فقط، وهو بالضرورة المكون الأبرز للشركات الكبيرة. ولكن يمكنك، بل وعليك، أن تقدم للمستخدمين تجربةً رائعة إلى حدٍ جنوني مع منتجٍ أولي غير مكتمل وبه أخطاء، إذا عوَّضت عن ذلك بالانتباه لهم. يمكنك ذلك، ولكن هل عليك القيام بذلك؟ أجل؛ إن التفاعل الزائد مع المستخدمين الأوائل ليس مجرد تقنية مشروعة لتفعيل النمو، ولكنه يشكل جزءًا أساسيًا من حلقة التغذية الراجعة لأنجح الشركات الناشئة ، والتي تجعل المنتج جيدًا. إن صنع مصيدة أفضل ليس عملية ذرية، حتى إذا بدأتَ كما بدأت معظم الشركات الناشئة الناجحة ببناء شيءٍ تحتاجه أنت نفسك، فإن أول شيء تبنيه لن يكون سليمًا تمامًا. ومن الأفضل غالبًا عدم استهداف الكمال في بداية الأمر، إلا في النطاقات التي تفرض عقوبات كبيرة على ارتكاب الأخطاء. من أكثر الطرق نجاحًا، خاصةً في البرمجيات، إتاحة الشيء للمستخدمين بمجرد تمتعه بقدرٍ من النفع لهم، ثم ملاحظة ما يفعلونه به. غالبًا ما يكون طلب الكمال عذرًا للمماطلة، وفي كل الحالات لا يكون نموذجك الأولي للمستخدمين دقيقًا، حتى إذا كنتَ واحدًا منهم. [7] إن التغذية الراجعة التي تحصل عليها نتيجة التفاعل المباشر مع المستخدمين الأوائل ستكون أفضل ما يمكن أن تحصل عليه. عندما تكون شركتك كبيرةً جدًا ستضطر إلى اللجوء إلى المجموعات التجريبية، وستتمنى لو استطعت العودة إلى منازل المستخدمين ومكاتبهم ومشاهدتهم يستخدمون منتجك كما كنت تفعل عندما كانوا قليلين جدًا. النيرانأحيانًا تكون الخدعة الصحيحة التي لا تتوسَّع هي التركيز على سوقٍ ضيقٍ عن عمدٍ، مثل احتواء النيران في البداية حتى تصبح ملتهبة جدًا قبل إضافة المزيد من الأخشاب. هذا ما فعله موقع فيس بوك، في البداية كان مخصصًا لطلاب جامعة هارفارد فقط، وهكذا كان له سوق محتمل من بضعة آلاف شخص فقط، ولكن اشتركت كتلة حرجة منهم لأنهم شعروا أنه موجه لهم حقًا. بعد أن توقف فيس بوك عن كونه مخصصًا لطلاب هارفارد فقط، ظل مخصصًا للطلاب في جامعات محددة لفترةٍ. عندما حاورتُ مارك زوكربيرج في مدرسة الشركات الناشئة قال أنه على الرغم من أن صنع قوائم بالمحاضرات الدراسية الخاصة بكل كليةٍ كان عملًا كثيرًا، إلا أن ذلك جعل الطلاب يشعرون أن الموقع موطنهم الطبيعي. على أي شركة ناشئة يمكن وصفها بأنها متجر أن تبدأ كتابعٍ للسوق عادةً، ولكن يمكن أن يسري ذلك على الشركات الناشئة الأخرى كذلك. من المجدي دائمًا أن تسأل عمّا إذا كانت هناك مجموعة تابعة للسوق الذي يمكنك الحصول فيه على كتلة حرجة من المستخدمين بسرعة. [8] معظم الشركات الناشئة التي تستخدم استراتيجية احتواء النيران تفعل ذلك دون وعي، فهي تبني شيئًا لنفسها ولأصدقائها، الذين يصدف أن يكونوا المستهلكين الأوائل، ثم يدركون لاحقًا أن بإمكانهم تقديم ذلك لسوقٍ أوسع. تنجح الاستراتيجية أيضًا إذا اتبعتها دون وعي. الخطر الأكبر لعدم الوعي بهذا النمط يواجه هؤلاء الذين يستبعدون بسذاجةٍ جزءًا منها. مثال على ذلك، إذا لم تبنِ شيئًا لك ولأصدقائك، أو حتى إذا فعلتَ، ولكنك تنتمي لعالم الشركات وأصدقاؤك ليسوا هم المستهلكين الأوائل لمنتجك، فلن يكون لديك سوقًا أوليًا مثاليًا مُقدمًا لك على طبقٍ من فضة. عادةً ما يكون أفضل المستهلكين الأوائل بين الشركات هم الشركات الناشئة، فهي أكثر انفتاحًا على الأمور الجديدة بطبيعتها، ولأنها لم تحسم كل خياراتها بعد لأنها ما زالت مبتدئة. بالإضافة إلى أنها عندما تنجح تنمو سريعًا، وتنمو أنت معها. كانت إحدى المزايا العديدة غير المتوقعة لنموذج شركة YC (وتحديدًا لتكبير YC) أن الشركات الناشئة المختصة بالأعمال بين الشركات (B2B) أصبح لديها الآن سوقًا فوريًا من مئات الشركات الناشئة الأخرى المستعدة في متناول أيديها. ميراكيهناك شكل مختلف لفعل الأشياء التي لا تتوسع للشركات الناشئة المختصة بالمكونات الصلبة للحواسب، وهو ما نطلق عليه ‹‹تقليد ميراكي››. بالرغم من أننا لم نموِّل شركة Meraki إلا أن مؤسسيها كانوا طلاب روبرت موريس، لذا فإننا نعرف تاريخهم. لقد بدأوا بفعل شيءٍ لا يتوسع حقًا؛ وهو تركيب أجهزة التوجيه (routers) بأنفسهم. تواجه الشركات الناشئة المختصة بالمكونات الصلبة للحواسب عقبةً لا تواجهها شركات البرمجيات، عادةً ما يكون الحد الأدنى للطلب اللازم لتشغيل دورة إنتاج بالمصنع عدة مئات من الآلاف من الدولارات، وهو ما قد يجعلك تدور في حلقةٍ مفرغة؛ فبدون منتج لا يمكنك توليد النمو الذي تحتاجه لجمع المال اللازم لتصنيع منتجك. عندما كان على الشركات الناشئة المختصة بالمكونات الصلبة للحواسب الاعتماد على المستثمرين للحصول على المال، كان عليك أن تكون مقنعًا للغاية للتغلب على هذه العقبة. وقد ساعد ظهور التمويل الجماهيري (أو الطلب المسبق للمنتجات لنكون أكثر دقة) كثيرًا. ولكن مع ذلك أنصح الشركات الناشئة بتقليد ميراكي في البداية إذا استطاعت. وهذا ما فعلته شركة Pebble، فقد قام فريقها بتركيب أول عدة مئات من الساعات بأنفسهم. إذا لم يكونوا قد مروا بتلك المرحلة، لم يكونوا ليبيعوا ما قيمته 10 ملايين دولارًا من الساعات في بدايتهم على موقع Kickstarter على الأرجح. يتضح أن تصنيع الأشياء بنفسك ذا قيمة للشركات الناشئة المختصة بالمكونات الصلبة للحواسب، مثل الانتباه الزائد للعملاء الأوائل. يمكنك تعديل التصميم أسرع عندما تكون أنت المصنع، وتتعلم أمورًا لم تكن لتتعلمها في أي حالة أخرى. قال إيريك ميجيكوفسكي Eric Migicovsky من شركة Pebble أن أحد الأمور التي تعلمها كانت ‹‹مدى قيمة معرفة مَوردٍ للبراغي الجيدة››، من كان ليتوقع ذلك؟ الاستشارةننصح أحيانًا مؤسسي الشركات الناشئة المختصة بالأعمال بين الشركات (B2B) بتوصيل التفاعل الزائد مع المستخدمين إلى أقصى حد، وبأن يختاروا مستخدمًا واحدًا ويتصرفون وكأنهم مستشارين يبنون شيئًا خصيصًا لذلك المستخدم الواحد. يُعد هذا المستخدم الأولي شكلًا لقالبك، ستظل تعدل منتجك حتى تلائم احتياجاته تمامًا، وستجد أنك قد صنعت شيئًا يريده المستخدمون الآخرون أيضًا. حتى إذا لم يكن هناك الكثير من هؤلاء المستخدمين، ستكون هناك على الأرجح قطاعات مجاورة بها الكثير منهم. طالما استطعتَ العثور على مستخدمٍ واحدٍ فقط يحتاج شيئًا ما حقًا واستطعت تلبية تلك الحاجة، فلديك موطئ قدم لصنع شيء ما يرغب فيه الناس، وذلك كل ما تحتاجه أي شركة ناشئة في البداية. [9] إن الاستشارة هي المثال المعياري للعمل الذي لا يتوسع، ولكن من الآمن فعلها طالما لا تتقاضى أجرًا مقابلها (كبقية الأشياء التي يمنحها المرء بسخاء)، فهنا تتجاوز الشركات الحد. سيكون العملاء ممتنين جدًا طالما أنك شركة تقدم منتجًا وتولي انتباهًا زائدًا للعميل فقط، حتى إذا لم تحل كافة مشاكلهم، أما عندما يبدأون في دفع مقابل ذلك الانتباه –عندما يبدأون في الدفع بالساعة- سيتوقعون منك فعل كل شيء. هناك تقنية أخرى شبيهة بالاستشارة لتجنيد المستخدمين غير المتحمسين في البداية، وهي استخدام برنامجك بنفسك نيابةً عنهم، لقد فعلنا ذلك في موقع Viaweb. عندما توجهنا إلى التجار وسألناهم عمَّا إذا ما كانوا يرغبون في استخدام برنامجنا لإنشاء متاجر إلكترونية، رفض بعضهم، ولكنهم كانوا يجعلوننا ننشئها لهم. وبما أننا كنا سنفعل أي شيء لاكتساب مستخدمين؛ وافقنا. شعرنا بملل شديد في ذلك الوقت، فكنا نحاول بيع حقائب سفر وأقلام وأقمصة رجالية بدلًا من تنظيم شراكات تجارية إلكترونية استراتيجية كبيرة. ولكن بالنظر إلى الماضي، كان هذا بالضبط هو ما يجب فعله، لأنه عرَّفنا ما سيشعر به التجار عند استخدام برنامجنا. أحيانًا كانت حلقة التغذية الراجعة فورية تقريبًا؛ ففي وسط بناء موقعٍ لأحد التجار قد أجد أننا بحاجة إلى خاصيةٍ ما لم تكن لدينا؛ فكنتُ أمضي ساعتين في تطبيقها ثم أستأنف تطوير الموقع. العمل اليدويهناك شكل مختلف أكثر تطرفًا لا تستخدم فيه برنامجك فحسب، بل تكون أنت البرنامج. فعندما يكون لديك عدد قليل من المستخدمين، يمكنك أحيانًا فعل بعض الأشياء التي تنوي جعلها آلية فيما بعد يدويًا. يتيح لك ذلك الانطلاق أسرع، وعندما تجعل تلك الأشياء آلية أخيرًا ستعرف بالضبط ما عليك بناءه لأنك ستتذكر جيدًا ما كنت تفعله بنفسك. عندما تبدو المكونات اليدوية للمستخدم مثل البرنامج، تبدأ هذه التقنية في التمتع بجوانب مضحكة. فكانت الطريقة التي يصل موقع Stripe حسابات التجار ‹‹الفورية›› للمستخدمين الأوائل على سبيل المثال، هي أن المؤسسين كانوا يشتركون لهم يدويًا في حسابات التجار العادية وراء الكواليس. قد تكون بعض الشركات الناشئة يدوية كليًا في البداية. إذا استطعتَ العثور على شخصٍ لديه مشكلةً ما بحاجة إلى حلٍ، واستطعتَ حلها يدويًا، افعل ذلك طالما استطعت، ثم اجعل حل العقبات آليًا. سيكون من المخيف قليلًا حل مشاكل المستخدمين بطريقةٍ لم تصبح آلية بعد، ولكنها أقل إخافةً من حالةٍ أكثر شيوعًا؛ وهي أن تكون هناك طريقة آلية لا تحل مشاكل أي أحد بعد. الحجمعليَّ أن أذكر نوعًا من التكتيكات الأولية التي لا تنجح عادةً؛ هو الانطلاق الكبير. ألتقي من حينٍ لآخر بمؤسسين يبدو أنهم يعتقدون أن الشركات الناشئة قذائف وليست طائرات مزودة بالطاقة، وأنهم سيجعلونها كبيرةً إذا أطلقوها بسرعة أولية كافية فقط. فهم يريدون أن ينطلقوا في 8 منشورات في وقتٍ واحد، وفي يوم ثلاثاء بالطبع، بما أنهم قرأوا في مكانٍ ما أنه اليوم الأمثل لإطلاق شيء ما. من السهل رؤية ضآلة ما يعنيه انطلاق الشركات، فكِّر في انطلاق بعض الشركات الناشئة الناجحة، كم تتذكر منها؟ كل ما تحتاجه من الانطلاق هو مجموعة أساسية أولية من المستخدمين، سيعتمد وضعك بعد بضعة أشهر على مدى إسعادك لهؤلاء المستخدمين أكثر مما سيعتمد على عددهم. (10) إذًا لماذا يعتقد المؤسسون أن الانطلاق هام؟ الإجابة مزيج من النزعة المركزية الذاتية والكسل، فهم يعتقدون أن ما يبنونه رائع للغاية لدرجة أن كل من سيسمع عنه سيشترك على الفور. كما أنه سيكون من الأسهل كثيرًا إذا استطعت اكتساب المستخدمين بمجرد الإعلان عن وجودك، بدلًا من تجنيدهم واحدًا تلو الآخر. ولكن حتى إذا كان ما تبنيه رائعًا، سيظل اكتساب المستخدمين عملية تدريجية، يرجع ذلك جزئيًا إلى أن الأشياء العظيمة عادةً ما تكون مبتكرة أيضًا، ولكنه يرجع أساسًا إلى أن المستخدمين لديهم أمورًا أخرى ليفكروا بها. لا تنجح الشراكات أيضًا عادةً، لا تنجح مع الشركات الناشئة عمومًا، ولكنها لا تنجح خاصةً كطريقةٍ لبدء النمو. إنه لخطأ شائع بين المؤسسين المبتدئين أن يعتقدوا أن الشراكة مع شركةٍ كبيرةٍ ستكون فرصتهم الكبيرة. بعد ستة أشهر يقولون جميعًا الكلام نفسه؛ كان ذلك عملًا أكثر بكثير مما توقعنا، ولم نستفِد عمليًا شيئًا منه في نهاية الأمر. [11] ليس كافيًا أن تصنع شيئًا استثنائيًا في البداية، بل عليك أيضًا أن تبذل جهدًا استثنائيًا في البداية. أي استراتيجية تحذف جانب الجهد –سواء كانت توقع أن يأتيك الانطلاق الكبير بمستخدمين، أو شريك كبير- هي موضع شك بطبيعة الحال. الشعاع المُوجّهإن الحاجة لفعل شيءٍ شاق للغاية لبدء العمل هي أمرٌ عام تقريبًا، لدرجة أنه ربما يكون من الجيد أن نتوقف عن التفكير في أفكار الشركات الناشئة باعتبارها كميات قياسية. علينا محاولة التفكير فيها بدلًا من ذلك باعتبارها أزواجًا مما ستبنيه بالإضافة إلى الشيء، أو الأشياء، التي لا تتوسَّع التي ستفعلها في البداية لتبدأ الشركة في العمل. قد يكون من المثير للاهتمام البدء في النظر إلى أفكار الشركات الناشئة على هذا النحو، لأن الآن بعد أن أصبح هناك مكونان، يمكنك محاولة أن تكون مبدعًا في الثاني بالإضافة إلى الأول. ولكن سيكون المكوِّن الثاني في معظم الحالات كما هو عادةً –تجنيد المستخدمين يدويًا وتقديم تجربةً جيدةً بصورةٍ كبيرة لهم- وستكون الفائدة الأساسية للتعامل مع الشركات الناشئة باعتبارها كميات متجهة أن ذلك سيُذكِّر المؤسسين أنهم بحاجة للعمل بجِدٍ في بُعدَين. [12] في أفضل الاحتمالات، سيساهم كلٌ من مُكوِّنيّ الشّعاع المُوجّه في تركيب شركتك؛ فالأشياء التي لا تتوسَّع التي عليك القيام بها للبدء في العمل ليست مجرد شرٍ لا بد منه، ولكنها تغير الشركة للأفضل بصورةٍ دائمة. إذا اضطررت إلى أن تكون جريئًا فيما يتعلق باكتساب المستخدمين عندما تكون شركتك صغيرة، ستظل جريئًا على الأرجح عندما تكون الشركة كبيرة. إذا اضطررت إلى تصنيع المكونات الصلبة للحواسب بنفسك أو استخدام برنامجك نيابةً عن المستخدمين، ستتعلم أمورًا لم تكن لتتعلمها في أي حالة أخرى. والأهم من ذلك، إذا اضطررت إلى العمل بجِدٍ لإدخال السرور على المستخدمين عندما يكون لديك القليل منهم، ستظل تفعل ذلك عندما يكون لديك الكثير. هوامش1- لم يذكر إميرسون في الحقيقة المصائد تحديدًا قط، فقد كتب: ‹‹إذا كان هناك رجل يمتلك ذُرةً أو خشبًا أو ألواح أو خنازير جيدة للبيع، أو يمكنه صنع كراسي أو سكاكين أو بواتق أو آلات أرغن للكنيسة أفضل من أي شخصٍ آخر، ستجد طريقًا واسعًا ممهدًا إلى بيته، ولو كان في الغابة››. 2- أتوجه بالشكر إلى سام آلتمان لاقتراحه عليَّ أن أكتب هذا التوضيح. لا، لا يمكنك تجنب العمل في المبيعات عبر تعيين شخصٍ ما ليفعل ذلك نيابةً عنك، عليك أن تقوم بالمبيعات بنفسك في البداية، ويمكنك تعيين مندوب مبيعات حقيقي لاحقًا. 3- سبب نجاح ذلك أنك كلما كبرت، كلما ساعدك حجمك على النمو. كتب باتريك كوليزون: ‹‹في مرحلةٍ ما كان هناك تغيير كبير في شعورنا نحو Stripe، فقد انتقل من كونه تلك الصخرة التي كان علينا دفعها، إلى كونه عربة قطار تتمتع في الحقيقة بزخمها الخاص››. 4- من الطرق الأبرع التي تستطيع YC بها مساعدة المؤسسين، هي تدريج طموحاتهم، لأننا نعلم تمامًا كيف كانت الشركات الناشئة الناجحة تبدو عندما كانت في بدايتها. 5- إذا كنت تبني شيئًا لا يمكنك جعل مجموعة صغيرة من المستخدمين تلاحظه بسهولة –مثل البرامج المخصصة للمؤسسات- وفي نطاقٍ ليس لديك صلةٍ بأحد فيه، ستضطر إلى الاعتماد على المكالمات الهاتفية والمقدمات الباردة. ولكن هل عليك أن تعمل فعلًا على فكرةٍ مثل هذه؟ 6- أشار جاري تان إلى فخٍ مثير للاهتمام يقع فيه المؤسسون في البداية. إنهم يريدون بشدة أن يبدوا كبارًا لدرجة أنهم يحاكون حتى عيوب الشركات الكبيرة، مثل اللامبالاة بالمستخدمين الأفراد. يبدو ذلك في نظرهم أكثر ‹‹احترافيةً››. من الأفضل في الحقيقة استيعاب حقيقة كونك صغيرًا واستغلال أي ميزات يمدك ذلك بها. 7- لا يمكن أن يكون نموذجك للمستخدمين دقيقًا بصورة مثالية تقريبًا، لأن احتياجات المستخدمين تتغير غالبًا استجابةً لما تبني لهم. إذا بنيتَ لهم حاسبًا صغيرًا سيحتاجون فجأة لتشغيل جداول البيانات عليه، لأن ظهور حاسبك الصغير الجديد جعل شخصًا ما يخترع جداول البيانات. 8- إذا كان عليك الاختيار بين مجموعة فرعية تابعة ستسجل الاشتراك أسرع وبين من سيدفعون أكثر، من الأفضل عادةً اختيار الأولى، لأن هؤلاء سيكونون على الأرجح المستهلكين الأوائل. سيكون لهم تأثيرًا أفضل على منتجك، ولن يجعلوك تبذل جهدًا كبيرًا في المبيعات. وعلى الرغم من امتلاكهم مالًا أقل، لن تحتاج إلى الكثير للحفاظ على معدل نموك المستهدف في البداية. 9- أجل، أتخيل احتمالية أن ينتهي بك الأمر في بعض الحالات تصنع شيئًا ما مفيدًا حقًا لمستخدم واحد فقط، ولكن تكون هذه الحالات عادةً واضحة، حتى للمؤسسين المبتدئين. إذًا فإن لم تكن واضحة، ستكون تصنع شيئًا لسوقٍ مكونٍ من واحدٍ فقط، لا تقلق بشأن ذلك الخطر. 10- ربما حتى تكون هناك علاقة عكسية بين حجم الانطلاق وبين النجاح. فأنا لا أتذكر سوى ما فشل مثل انطلاق Segway وموجة جوجل Google Wave. وهذه الموجة مثال منذر بصفةٍ خاصة لأنني أعتقد أنها كانت فكرة رائعة حقًا شارك في قتلها الانطلاق المغالي. 11- نمت جوجل على حساب ياهو، ولكن لم تكن تلك شراكةً، بل كانت ياهو عميلتها. 12- كما أنه سيُذكِّر المؤسسين أن الفكرة التي يكون مكوِّنها الثاني خاليًا –فكرةً لا يكون هناك ما يمكنك فعله لتشغيلها، لأن ليست هناك طريقةً مثلًا للعثور على المستخدمين لتجنيدهم يدويًا- فكرة سيئة على الأرجح، لهؤلاء المؤسسين على الأقل. ترجمة -وبتصرّف- للمقال Do Things that Don't Scale لصاحبه بول جراهام (Paul Graham) مُؤسس حاضنة مشاريع واي كومبيناتور (Y Combinator). اقرأ المزيد من مقالات بول جراهام بالعربية
    1 نقطة
  2. سنتعرف في هذا الدّرس على الأنماط Patterns، الظلال Shadows وقواعد الملء في Canvas بالإضافة لرسم النصوص وتطبيق التنسيقات عليها مثل أنواع الخطوط Fonts وخصائصها. كما سنتعرف على واحدة من السمات الأكثر إثارة في canvas وهي القدرة على استخدام الصور لعمل تركيبات صور ديناميكية، خلفيات أو حتى شخصيات الألعاب. الأنماط Patterns تتيح لك canvas إنشاء أنماط باستخدام الصور وتحديد أنواعها باستخدام الدالة ()createPattern. تأخذ الدالة ()createPtterns معاملين هما الصورة المراد استخدامها لتطبيق النمط والتي يمكن أن تكون عنصر HTML أو وسم <video> أو حتى عنصر canvas آخر. المعامل الآخر هو النوع Type وهو عبارة عن نص string يحدد كيفيّة استخدام الصورة لتطبيق النمط. createPattern(image, type) يأخذ المعامل type أحد القيم التالية والتي تحدد كيفية استخدام الصورة لإنشاء النمط Pattern: Repeat: تكرر الصورة في الاتجاهين الأفقي Horizontal والعمودي Vertical repeat-x: تكرر الصورة في الاتجاه الأفقي Horizontal repeat-y: تكرر الصورة في الاتجاه العمودي Vertical no-repeat: تظهر الصورة مرة واحد كما هي. تشبه الدالة ()createPattern دوال التدرج اللّوني gradient التي شرحتها في الدرس السّابق. عند إنشاء نمط يمكننا إسناده إلى الخاصية fillStyle أو strokeStyle كما في المثال التالي: var img = new Image(); img.src = 'someimage.png'; var ptrn = ctx.createPattern(img,'repeat'); ملاحظة: تأكّد من أنك قمت بإنشاء صورة وإعطائها المسار الصحيح قبل استدعاء الدالة ()createPattern. في هذا المثال سنقوم بإنشاء نمط وإسناده للخاصية fillStyle حيث سننشئ النمط ضمن الدالة onload للصورة وذلك للتأكد من تحميل الصورة قبل إسنادها للنمط. function draw() { var ctx = document.getElementById('canvas').getContext('2d'); var img = new Image(); img.src = 'https://mdn.mozillademos.org/files/222/Canvas_createpattern.png'; img.onload = function(){ var ptrn = ctx.createPattern(img,'repeat'); ctx.fillStyle = ptrn; ctx.fillRect(0,0,150,150); } } النتيجة: الظلال Shadows باستخدام الظلال في canvas يمكنك عمل تظليل للنصوص والصور. استخدام الظلال في canvas يتضمن 4 خصائص: shadowOffsetX = float تشير إلى أن الظل يمتد من الكائن بمسافة أفقية. لا تتأثر هذه القيمة بمصفوفة التحويل Transformation matrix وقيمتها الافتراضية هي 0. shadowOffsetY = float تشير إلى أن الظل يمتد من الكائن بمسافة عمودية. لا تتأثر هذه القيمة بمصفوفة التحويل Transformation matrix وقيمتها الافتراضية هي 0. shadowBlur = float تحدد حجم تأثير الضبابية blurring. لا تتعلق هذه القيمة بعدد الـ pixels ولا تتأثر بمصفوفة التحويل Transformation matrix وقيمتها الافتراضية هي 0. shadowColor = color هي قيمة ألوان CSS قياسية وتحدد لون الظل وقيمتها الافتراضية هي لون أسود بشفافية كاملة. الخاصيتان shadowOffsetX و shadowOffsetY تشيران إلى أي مدى ينبغي أن يمتد الظل من الكائن في الاتجاه X والاتجاه Y. تأخذ الخاصيتين قيمًا سالبة وذلك لتحديد اتجاه الظل إما لليسار X- أو للأعلى Y-. الخاصية shadowBlur تحدد حجم الضبابية للظل ولا تتعلق بعدد الـ pixels ولا تتأثر بمصفوفة التحويل Transformation matrix وقيمتها الافتراضية هي 0. المثال التالي يرسم نصًا بتأثيرات ظلال مختلفة باستخدام القيم أعلاه: function draw() { var ctx = document.getElementById('canvas').getContext('2d'); ctx.shadowOffsetX = 2; ctx.shadowOffsetY = 2; ctx.shadowBlur = 2; ctx.shadowColor = "rgba(0, 0, 0, 0.5)"; ctx.font = "20px Times New Roman"; ctx.fillStyle = "Black"; ctx.fillText("أهلًا بك في أكاديمية حسوب", 5, 30); } قواعد الملء Fill Rules عند استخدام الخاصية ()fill يمكنك تحديد خوارزمية الملء التي تريد تطبيقها ويمكن من خلالها تحديد فيما إذا كانت النقطة داخل أو خارج المسار وبالتالي تحديد هل سيتم ملئها أم لا. ويوجد لها قيمتان: nonzero وهي القيمة الافتراضية. evenodd مثال: function draw() { var ctx = document.getElementById('canvas').getContext('2d'); ctx.beginPath(); ctx.arc(50, 50, 30, 0, Math.PI*2, true); ctx.arc(50, 50, 15, 0, Math.PI*2, true); ctx.fill("evenodd"); } رسم النصوص كأي شكل من الأشكال التي يمكن رسمها على canvas يمكن أيضًا رسم النصوص وتطبيق خصائص مختلفة عليها. يوفّر سياق التصيير rendering context في canvas طريقتين لتصيير النصوص: 1- باستخدام الدالة fillText fillText(text, x, y [, maxWidth]) تملأ نصًا مُعيّنًا عند موضع x,y معين، المعامل maxWidth معامل اختياري يحدد أقصى عرض للرسم. 2- باستخدام الدالة strokeText strokeText(text, x, y [, maxWidth]) تملأ حواف نص معين عند موضع x,y معين، المعامل maxWidth معامل اختياري يحدد أقصى عرض للرسم. مثال: ملء نص باستخدام fillStyle function draw() { var ctx = document.getElementById('canvas').getContext('2d'); ctx.font = "48px serif"; ctx.fillText("Hello world", 10, 50); } مثال: ملء حواف نص باستخدام strokeStyle function draw() { var ctx = document.getElementById('canvas').getContext('2d'); ctx.font = "48px serif"; ctx.strokeText("Hello world", 10, 50); } تصميم وتنسيق النصوص يوفر سياق التصيير Rendering Context مجموعة من الخصائص تمكّنك من تحديد المظهر الذي تريد إظهار النص به على Canvas. ستبدو هذه الخصائص مألوفة لك إن كنت قد عملت على CSS من قبل. font = value تحدد نمط النص الحالي (نوع الخط) الذي سيظهر به النص، تستخدم هذه الخاصية نفس قواعد استخدام الخاصية CSS font. القيمة الافتراضية للخط هي 10px sans-serif. textAlign = value تُحدّد إعدادات محاذاة النص. القيم التي تأخذها هذه الخاصية هي start ،end ،left ،right أو center. القيمة الافتراضية لها هي center. textBaseline = value تُحدّد إعدادات خط الأساس .Baseline القيم التي تأخذها الخاصية text Baseline هي top ،hanging ،middle ،alphabetic ،ideographic أو bottom. القيمة الافتراضية لها هي alphabetic. direction = value تُحدّد الاتجاهية. القيم التي تأخذها الخاصية textAlign هي ltr ،rtl ،inherit. القيمة الافتراضية لها هي inherit. يوضّح الرّسم البياني التالي المأخوذ من WHATWG مختلف خطوط الأساس Baseline التي تدعمها الخاصية textBaseline. مثال: ctx.font = "48px serif"; ctx.textBaseline = "hanging"; ctx.strokeText("Hello world", 0, 100); قياسات النصوص المتقدمة في حال كنت بحاجة لتطبيق المزيد من التفاصيل على النصوص فإن الدالة ()measureText توفر لك إمكانية لقياس النصوص حيث تُرجع الدالة ()measureText كائن من نوع TextMetrics يحتوي على عرض النص الحالي بالبكسل. يظهر المثال التالي كيف يمكنك قياس الخط والحصول على عرضه: function draw() { var ctx = document.getElementById('canvas').getContext('2d'); var text = ctx.measureText("foo"); object text.width; } الصور يعتمد استيراد الصور في Canvas على خطوتين أساسيتين: الحصول على مرجع reference لكائن HTMLImage أو لعنصر Canvas آخر لاستخدامه كمصدر. يمكن استخدام الصور أيضًا عن طريق توفير رابط URL. رسم الصورة على canvas باستخدام DrawImage. يستخدم Canvas API أي من أنواع البيانات التالية باعتبارها مصدر صورة للحصول على الصور ورسمها: HTMLImageElement: يتم إنشاء الصور باستخدام المنشئ constructor كأي عنصر <img> في HTML. HTMLVideoElement: استخدام عنصر <video> كمصدر للصورة أي استخدام الاطار الحالي للفيديو كصورة. HTMLCanvasElement: يمكن استخدام عنصر <canvas> آخر كمصدر صورة. استخدام الصور في Canvas يوجد عدة طرق لاستخدام الصور في Canvas: استخدام صور من نفس الصفحة يمكننا الحصول على مرجع للصور reference من نفس الصفحة باستخدام أحد الطرق التالية: document.images collection استخدام الدالة ()document.getElementsByTagName استخدام الدالة ()document.getElementById عن طريق معرّف ID الخاص بالصورة استخدام صور من مجالات أخرى ويتم ذلك باستخدام الخاصية crossorigin للعنصر <img> يمكنك طلب إذن لتحميل الصورة من مجال Domain آخر لاستخدامها في استدعائك للدالة ()drawImage. إذا سمح مجال الاستضافة وصول cross-domain للصورة فسيتم استخدام الصورة في Canvas دون التأثير عليها أما في حال لم يتم السماح بالوصول للصورة فسيحدث تشويه للعنصر canvas. استخدام عناصر Canvas أخرى كما هو الحال مع الصور العادية يمكن الوصول لعناصر canvas أخرى باستخدام الدالة ()document.getElementsByTagName أو ()document.getElementById. يجب التأكد قبل استخدام عنصر Canvas آخر من أن العنصر الأساسي يحوي على رسم أو مسار. واحدة من أهم استخدامات هذا الأسلوب هو استخدام عنصر canvas كمعرض صور مصغرات لعنصر Canvas أكبر منه. إنشاء صورة من الصفر خيار آخر لإنشاء HTMLImageElement هي باستخدام المنشئ() Image: var img = new Image(); img.src = 'myImage.png'; في حال استدعائك للدالة ()drawImage قبل الانتهاء من تحميل الصورة قد يظهر خطأ في المتصفحات القديمة لذا عليك التأكد من استخدام الحدث load بعد الانتهاء من تحميل الصورة: var img = new Image(); img.addEventListener("load", function() { // execute drawImage statements here }, false); img.src = 'myImage.png'; استخدام إطارات الفيديو يمكنك أيضًا استخدام إطارات الفيديو <video> لإظهاره في الـ canvas. مثال: function getMyVideo() { var canvas = document.getElementById('canvas'); if (canvas.getContext) { var ctx = canvas.getContext('2d'); return document.getElementById('myvideo'); } } سنكمل في الدّرس القادم التعامل مع الصور في canvas والتعرّف على خصائصها بالإضافة لإنشاء معرض فني. المصادر
    1 نقطة
  3. تصنف لغات البرمجة استناد إلى عدة معايير، أولاها هو إقبال المبرمجين على اللغة، وهذا المعيار لوحده يحمل في طياته العديد من المعايير الأخرى، فما اختيار الغالبية من المبرمجين للغة برمجة معينة أكثر من باقي اللغات إلا دليل على فاعليتها بشكل كبير، تأديتها لأغلب الوظائف البرمجية، سهولة التعامل معها، توفيرها للمتطلبات ومجاراتها للتقنية، دعمها المستمر من قبل الهيئة التقنية المسؤولة عنها. كما أن هناك العديد من لغات البرمجة التي عرفت عدم إقبال من قبل المبرمجين نظراً لأنها لم يتم تحديثها وتطوير إمكانياتها فتجدها تتراجع شيئاً فشيئا إلى أن تندثر. وهذا هو ترتيب للغات البرمجة لسنة 2015:
    1 نقطة
  4. وعليكم السّلام ورحمة الله وبركاته. مرحبا بك يا صديقي. يُمكنك أن تعرض الصور على مشروع Sinatra بوضعها داخل مجلّد public إذا لم يكن موجودا فأنشئه داخل مجلّد المشروع. لنقل بأنّك أنشأت المُجلّد ووضعت داخله صورة باسم image.jpg يُمكنك عرض هذه الصورة في ملف erb داخل مجلّد views بالطّريقة التّالية: <img src='image.jpg' /> عند إكمال هذه الخطوة ستُعرض لك الصورة دون مشاكل
    1 نقطة
×
×
  • أضف...