لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 02/06/16 في كل الموقع
-
ما هي PHP؟ PHP هي اختصارٌ للعبارة PHP: Hypertext Preprocessor؛ وهي معروفةٌ كلغة سكربتات (scripting language) مُفسَّرة (interpreter) من جهة الخادوم تُستعمَل لتطوير الويب؛ وهذا يعني أنَّ PHP تُستعمَل على الخادوم لتوليد صفحات الويب الديناميكية. ما يُقصَد بصفحات الويب الديناميكية هي تلك الصفحات التي تُنشَأ أو تُعدَّل من الخادوم قبل إرسالها إلى العميل. إن لم تكن تعرف ما هو الخادوم وما هو العميل، فافتح لسانًا جديدًا في متصفح الويب الخاص بك واكتب فيه academy.hsoub.com، وبهذا يُصبِح متصفحك "عميلًا" (client) والمكان الذي تأتي منه صفحة الويب المطلوبة هو "الخادوم" (خادوم الويب أو web server). يمكن تضمين سكربتات PHP في مستندات HTML، وهي لغةٌ سهلة التعلم، وتشبه بنيتها كثيرًا البنية القاعدية للغات C و Java و Perl. التثبيت يمكنك بسهولة تثبيت WAMP (على نظام ويندوز) أو LAMP (على لينُكس) أو حزمة البرمجيات XAMPP (التي تعمل على ويندوز، ولينُكس، وماك) وذلك تبعًا لنظام تشغيل حاسوبك، راجع مقال كيفية تنصيب ووردبريس محليا باستخدام MAMP لمزيدٍ من المعلومات عن MAMP. تجربة الأمثلة يمكنك تجربة سكربتات PHP عبر تثبيت خادم أباتشي مع دعم PHP يدويًا أو عبر تثبيت حزم جاهزة كالتي ذكرناها آنفًا، لكن توفِّر PHP لك طريقتين لتنفيذ الملفات: عبر سطر الأوامر، وعبر الخادوم المدمج مع PHP؛ وسنشرح كلا الطريقتين في هذا الدرس. استخدام الخادوم المدمج وفَّرت PHP من الإصدار 5.4.0 خادومًا مدمجًا معها يُسهِّل تجربة السكربتات دون عبء تثبيت خادوم ويب كامل مثل أباتشي وضبطه؛ لكن الغرض منه هو تجربة البرامج فقط وليس مصممًا للاستعمال كخادوم إنتاجي على الشبكة. ستُخدَّم الملفات الموجودة في مجلد العمل الحالي عبر ذاك الخادوم المدمج، الذي يُشغَّل كالآتي: cd ~/public_html php -S localhost:8000 PHP 5.5.9-1ubuntu4.5 Development Server started at Fri Jan 8 13:58:31 2016 Listening on http://localhost:8000 Document root is /home/user/public_html Press Ctrl-C to quit. الأمر php -S localhost:8000 سيشغِّل الخادوم في مجلد العمل الحالي (~/public_html) وسيكون متاحًا للوصول من الجهاز المحلي فقط، وسيعمل على المنفذ 8000؛ إن أردت أن يعمل على البطاقات الشبكية، فضع 0.0.0.0 بدلًا من localhost؛ اضغط على Ctrl+C لإيقاف الخادوم. أنشِئ الملف test.php وضع فيه المحتويات الآتية لتجربه: <?php // هذه تجربة لتنفيذ سكربتات PHP من الخادوم المدمج echo "test"; ?> افتح الآن المتصفح وأدخِل http://localhost:8000/test.php في شريط العنوان، وستحصل على نتيجة مشابهة لما يلي: يجدر بالذكر أنَّه بإمكانك تخديم صفحات HTML الثابتة عبر هذا الخادوم، وليس بالضرورة أن تكون الصفحة بلاحقة PHP. ملاحظة: اختر رقمًا أكبر من 1024 كرقم للمنفذ الذي سيستعمله الخادوم، كي لا تحتاج إلى امتيازات إدارية لتشغيله. استعمال سطر الأوامر من البدهي أن تستطيع تنفيذ شيفرات PHP (كغيرها من لغات السكربتات) من سطر الأوامر؛ كل ما عليك فعله هو استدعاء السكربت من الأمر PHP كالآتي: php ~/public_html/test.php أو يمكن تضمين ما يسمى shebang في الأنظمة الشبيهة بيونكس (كنظامَي لينُكس وماك) في بداية السكربت ليبدو كما يلي: #!/usr/bin/php <?php // هذه تجربة لتنفيذ سكربتات PHP من سطر الأوامر echo "test"; ?> وعندها تستطيع تنفيذ السكربت مباشرةً دون استدعاء مفسر PHP كما يلي: ~/public_html/test.php ملاحظة: لا تنسَ إعطاء الملف امتيازات التنفيذ قبل محاولة تنفيذه: chmod +x ~/public_html/test.php يمكن أيضًا تنفيذ الشيفرات تفاعليًا، عبر تنفيذ الأمر php -a ثم كتابة الأوامر تفاعليًا كما يظهر في الصورة الآتية (لاحظ أنه بإمكانك استعمال زر tab لإكمال أسماء الدوال والأصناف وغيرها): البنية القاعدية للغة لنأخذ مثالًا بسيطًا لنشرح فيه القواعد الأساسية للكتابة. <?php /* author: Abd Allatif Eymsh website: academy.hsoub.com version: 1.0 date: 22 12 2015 */ // هذا تعليقٌ ذو سطرٍ وحيد // يتم تجاهل التعليقات من المفسِّر $variable = 'variable'; // نستعمل عبارة echo لطباعة الجمل echo "string"; echo $variable; ?> انسخ ما سبق والصقه في ملفٍ باسم index.php في مجلد htdocs (في نظام ويندوز) أو www (في لينُكس) أو أي مكان تريده إن كنت تستعمل الخادوم المدمج، ثم افتح ذاك الملف في متصفح الويب (بعد أن تُشغِّل الخادوم) وستحصل على النتيجة "stringvariable"، لنُقسِّم الآن الملف ولنشرح بنيته. تُكتَب شيفرات PHP في ملفٍ بامتداد .php تُكتَب شيفرات PHP بين وسمَيّ البداية <?php والنهاية ?> وكما في لغتَيّ C أو Perl، تتطلب PHP أن تنتهي التعليمات البرمجية بفاصلة منقوطة ";" يُشير الرمز $ إلى متغير (variable)، سنتحدث عن المتغيرات في هذا الدرس لاحقًا تكافئ علامات الاقتباس المفردة والمزدوجة بعضها (لكنها ليس لها نفس المعنى تمامًا، سنشرح الاختلاف البسيط لاحقًا) يُستعمَل الأمر echo لطباعة البيانات التعليقات التعليقات جزءٌ من البرنامج لا ينفِّذها مُفسِّر اللغة؛ وهي ملاحظاتٌ لكي يتذكر القارئ أو يفهم أمرًا برمجيًا ما لاحقًا. وهنالك نوعان من التعليقات: التعليقات ذات السطر الوحيد: وهذه التعليقات قصيرةٌ تمتد لسطرٍ وحيدٍ فقط، وتبدأ عادةً بالرمز "//"، ولا بأس أن يكون قبلها تعليماتٌ برمجية، لكن التعليق سينتهي مع نهاية السطر؛ ويستحق أن نذكر أننا نستطيع أن نبدأ التعليقات ذات السطر الوحيد برمز المربع (#) بدلًا من شرطتين مائلتين. التعليقات متعددة الأسطر: وهي تعليقاتٌ طويلة، قد تمتد لأكثر من سطر؛ وتوضع بين علامة البداية /* وعلامة النهاية */، ومن استعمالات هذا النوع من التعليقات أيضًا هي تعطيل جزء من الشيفرة ﻷغراض التجربة. يمكنك أن ترى نوعَيّ التعليقات السابقين في المثال أعلاه. المتغيرات تسمح لك المتغيرات بتخزين ومعالجة البيانات في السكربتات، ويمكنك اعتبارها شبيهةً بالمتغيرات التي تستعملها في الرياضيات؛ إذ أنَّ المتغير -ببساطة- هو حاويةٌ تحوي قيمةً معيّنة؛ أُطلِقَت تسمية "المتغيرات" عليها لأنها القيمة المُسنَدة إليها قد تتغير أثناء تنفيذ السكربت، وقابلية التغير تلك تجعل من المتغيرات أداةً مفيدةً جدًا. وكما ذكرنا سابقًا، يبدأ اسم المتغير بالإشارة $. هذه بعض الأمثلة عن أسماءٍ صحيحةٍ للمتغيرات: $simple $_start_with_underscore $_includes_numbers_23 $_includes_UPPERCASE_2 $_23_it_is_valid ملاحظة: لا يمكنك بدء اسم المتغير برقمٍ كالاسم الآتي $2_invalid_variable_name، ولا يمكن أيضًا أن تستعمل الشرطة "-" في اسمه. أنواع البيانات أنواع البيانات (data types) هي أنواع المتغيرات في PHP؛ وأنواعُ البياناتِ البسيطة في PHP هي: الأعداد الصحيحة (integers) الأعداد ذات الفاصلة (floats) السلاسل النصيّة (strings) القيم المنطقية البوليانية (صح [true] أو خطأ [false])؛ وهنالك أنواع بياناتٍ أخرى مثل الكائنات (objects) والمصفوفات (arrays) سنتحدث عنها لاحقًا في هذه السلسلة. ملاحظة: إن كانت لديك معلوماتٌ سابقة عن إحدى لغات البرمجة التي تُحدِّد نوع البيانات المُخزَّنة في المتغيرات (أي strongly typed)، فاعلم أنَّ PHP هي لغةٌ لا تتطلب منك تحديد النوع (أي أنها loosely typed)؛ فلا تحتاج إلى أن تخبر اللغة ما نوع البيانات التي ستُخزَّن في المتغير. الثوابت الثابت هو مُعرِّف (أي اسم) يحمل قيمةً معيّنة، وكما يوحي اسمه، لن تتغير قيمته أثناء تنفيذ السكربت بعد أن تُعرَّف لأول مرة، واسمه حساسٌ لحالة الأحرف، وتُستعمَل الأحرف الكبيرة فيه عادةً؛ وله نفس قواعد تسمية المتغيرات (لا يجوز أن يبدأ برقم، أو يحتوي على شرطة…)، لكن لا يوضع الرمز $ قبله. <?php /* author: Abd Allatif Eymsh website: academy.hsoub.com version: 1.0 date: 22 12 2015 */ // هذا تعليقٌ ذو سطرٍ وحيد $variable = 'variablename'; echo "string"; echo $variable; define( "MY_CONSTANT", "19" ); define('PI', 3.14); echo PI; echo MY_CONSTANT; ?> تكون PI و MY_CONSTANT ثوابت في المثال السابق. ملاحظة: يمكن استعمال الكلمة المحجوزة const لتعريف الثوابت بدلًا من الدالة define() في إصدار PHP 5.3 وما بعده كما يلي: <?php // تعمل في إصدار PHP 5.3 const CONSTANT = 'Hello World'; echo CONSTANT; ?> لكن لا يمكن تعريف الثوابت باستخدام const داخل الدوال أو الحلقات، لأنها تُعرَّف في وقت التصريف (compile-time). المعاملات يأخذ المعامل قيمةً أو أكثر (أو "تعبيرًا" [expressions] كما نقول في الاصطلاحات البرمجية) ويُنتِج قيمةً أخرى. يمكن أن تُجمَّع المعاملات بناءً على عدد القيم التي تأخذها، فمثلًا المعاملات الأحادية (unary operators) تأخذ قيمةً واحدةً فقط (مثل معامل الزيادة الذي شرحناها أدناه)، والمعاملات الثنائية تأخذ قيمتين مثل المعاملات الحسابية البسيطة (الجمع والطرح والضرب…) وتُصنَّف أغلبية المعاملات في PHP ضمن هذا القسم؛ وهنالك معامل ثلاثي وحيد يأخذ ثلاث قيم سنشرحه في درسٍ لاحق. هنالك عددٌ كبيرٌ من المعاملات في لغة PHP، أهمها: المعاملات الحسابية الإسناد معاملات الأعداد الثنائية (Bitwise) معاملات المقارنة الزيادة أو الإنقاص معامل السلاسل النصية المعاملات الحسابية هي تلك المعاملات التي تستعملها في الحسابات الرياضية، مثل الجمع (+)، والطرح (-)، والضرب (*)، والقسمة (/)، وباقي القسمة (%)؛ مثال: $a = 4 + 5; // + هو معامل حسابي لاحظ الفرق بين المعاملين / و %، إذ أنَّ / هو معامل القسمة بينما % هو باقي القسمة؛ أي 8 /5 = 1.6 ، بينما 8 % 5 = 3 (إذ أنَّ 8 = 5 *1 +3، فإن باقي القسمة هو 3). أما معامل الإسناد، فيسند القيم إلى المتغيرات، وهو إشارة = كما في المثال الآتي: $a = 4;. تجري المعاملات الثنائية العمليات الحسابية على البتات الموجودة في الأعداد الصحيحة، وهي & (and)، و | (or)، و >> (الإزاحة نحو اليسار)، و << (الإزاحة نحو اليمين)، و ^ (XOR)، و ~ (NOR)؛ مثال على ذلك هو 14 & 3 = 2، لأنَّ 00001110 & 00000011 = 00000010. أما معاملات المقارنة، فهي -كما يدل اسمها- تقارن بين قيمتين؛ يُظهِر الجدول الآتي معاملات المقارنة الشائعة: المثال اسم المعامل النتيجة $a == $b المساواة TRUE إن كان المتغير $a مساويًا بالقيمة إلى المتغير $b $a === $b مطابقة TRUE إن كان المتغير $a مساويًا المتغير $b بالقيمة والنوع $a != $b $a <> $b عدم مساواة TRUE إن لم يكن المتغير $a مساويًا للمتغير $b $a !== $b عدم مطابقة TRUE إن لم يكن المتغير $a مساويًا للمتغير $b بالقيمة أو بالنوع $a < $b أصغر من TRUE إن كان المتغير $a أصغر تمامًا من المتغير $b $a > $b أكبر من TRUE إن كان المتغير $a أكبر تمامًا من المتغير $b $a <= $b أصغر من أو يساوي TRUE إن كان المتغير $a أصغر أو يساوي المتغير $b $a >= $b أكبر من أو يساوي TRUE إن كان المتغير $a أكبر أو يساوي المتغير $b تستعمل معاملات الزيادة أو الإنقاص لزيادة أو إنقاص قيمة المتغير بقيمة 1. المثال شرحه ++$x; إضافة القيمة 1 إلى المتغير $x ثم إعادة القيمة النهائية $x++; إعادة قيمة المتغير $x ثم إضافة 1 –-$x; إنقاص القيمة 1 من المتغير $x ثم إعادة القيمة النهائية $x–-; إعادة قيمة المتغير $x ثم إنقاص 1 <?php echo "Postincrement"; $a = 5; echo "Should be 5: " . $a++; echo "Should be 6: " . $a; echo "Preincrement"; $a = 5; echo "Should be 6: " . ++$a; echo "Should be 6: " . $a; echo "Postdecrement"; $a = 5; echo "Should be 5: " . $a--; echo "Should be 4: " . $a; echo "Predecrement"; $a = 5; echo "Should be 4: " . --$a; echo "Should be 4: " . $a; ?> معامل السلاسل النصية (.) يستعمل لجمع سلسلتين نصيتين أو متغيرين مع بعضهما بعضًا؛ انظر إلى الشيفرة الآتي: <?php $a = 4; $q = 5; $c = $a.$q; // المتغيران $a و $b أصبحا مدمجين مع بعضهما echo $c; $n = 'myname'; echo "string ".$n.' $n inserted'; // دمج ثلاث سلاسل نصيّة ?> حاول أن تتدَّرب على تعريف وطباعة قيمة المتغيرات الخاصة بك، وأن تستعمل مختلف المعاملات السابقة عليها. المصادر مقال Introduction to PHP لصاحبه Harish Kumar. صفحة Operators من دليل PHP، وغيرها.1 نقطة
-
الصورة بألف كلمة شرط أن تكون صورة مناسبة. لنستعرض معًا سبعة أنواع من الصور التي يمكنك استخدامها في حملات التسويق عبر البريد الإلكتروني، ولنتعرف على الأماكن التي نجد فيها مثل هذه الأنواع. عندما تحاول تقديم الكثير من المعلومات في حملة تسويقية واحدة، يجدر أن يكون أول سؤال يدور في ذهنك هو: "كيف أتمكن من توخي البساطة" أو "كيف أتمكن من عرض هذا بصورة أفضل؟" وبدلًا من إغراق القارئ بالنصوص، استخدم الصور المعبّرة والتي يمكنك من خلالها تلخيص الأفكار وجلب انتباه القارئ في نفس الوقت. المخططات والرسوم البيانية يصعب في كثير من الأحيان فهم الإحصاءات والتقارير والبيانات المعقدة واستخلاص الرسالة الرئيسية التي تنشدها، غير أن استخدام المخططات والرسوم البيانية لتمثيل هذه البيانات سيجعل من إيصال الرسالة المتوخاة أمرًا سهلًا ويسيرًا. هناك العديد من الأدوات التي يمكنك الاستفادة منها في تصميم المخططات والرسوم البيانية لحملتك التسويقية عبر البريد الإلكتروني: Piktochat هناك العديد من المزايا القوية في هذه الأداة المتخصصة في صناعة الإنفوغراف، إذ يمكنك إدخال بياناتك، ثم تحديد شكل الرسم البياني وتصميمه لتحصل على رسم بياني احترافي، يمكنك بعد ذلك تحميله مجّانًا (مقابل وجود علامة مائية صغيرة على الصورة) أو يمكنك ترقية حسابك للحصول على المزيد من القوالب والتحميل دون وجود العلامة المائية. هذه الأداة ممتازة في حال كانت بياناتك مبسّطة ومحدودة. Google Sheets أو Microsoft Excel يمكن لبرامج الجداول التقليدية هذه أن تحول وبكلّ سهولة جميع بياناتك إلى أنواع مختلفة من الرسوم البيانية، ومع أنّ التصميم الأوّلي الافتراضي للرسوم في هذه البرامج رديء جدًّا، إلا أنه يمكن الحصول على تصاميم جذابة إن كنت تملك لمسة فنية. وبشكل عام فإن هذه البرامج مفيدة في حال كانت بياناتك كبيرة ومعقدة. لقطات الشاشة إنّ استخدام لقطات الشاشة في الحملة التسويقية طريقة مفيدة جدًّا في عرض المزايا والمنتجات الجديدة، فبدلًا من كتابة الطريقة التي يعمل بها تطبيقك أو موقعك، يمكنك أن تعطي للقارئ صورة مجملة لما يمكن أن يراه على جهازه. هناك بعض الأدوات التي يمكن أن تساعدك في إنشاء لقطات الشاشة لحملتك التسويقية: Awesome Screenshot يمكن لهذه الأداة أن تلتقط صورًا للشاشة ومن متصفحك بشكل مباشر، إذ أنها عبارة عن إضافة لمتصفحات Chrome, Safari و Firefox. يمكنك التقاط صورة لكامل الصفحة أو لجزء منها، وتحميلها إلى حاسوبك مباشرة، لاستخدامها في الحملة التسويقية الخاصة بك. PlaceIt تمكّنك هذه الأداة الرائعة من التقاط صور الشاشة ووضعها على أنواع مختلفة من الشاشات، مثل جهاز Macbook موضوع على طاولة، أو على شاشة iPad موضوع على مقعد في الحديقة. تسمح لك هذه الأداة بإضافة لقطات الشاشة إلى تلك الصور الاحترافية دون الحاجة إلى معرفة قواعد التصوير الفوتوغرافي أو مهارات استخدام الفوتوشوب. وهناك العديد من الإعدادات التي يمكنك اختيارها، كما يمكنك رفع لقطة الشاشة من حاسوبك أو إدخال رابط الموقع الذي ترغب في التقاط صورته لتقوم الأداة بذلك بشكل تلقائي. كلما ستحتاجه بعد ذلك هو تحميل الصورة التي ستنتجها هذه الأداة ووضعها في حملتك التسويقية. الصور الشخصية قد تحتاج في بعض الأحيان إلى صورة حقيقية لمنتجك أو مشروعك ليطلع الناس عليه وعلى جودته، وفي هذه الحال، لا تتردد في التقاط بعض الصور ووضعها في حملتك التسويقية، وحتى لو لم تكن الصورة ذات جودة عالية، فقد تكون هذه الصور الشخصية ما يبحث عنه المشتركون من لمسة شخصية في رسائلك الإلكترونية. إليك بعض الأدوات التي يمكنك الاستفادة منها في الحصول على صور شخصية رائعة: كاميرا الهاتف المحمول يمتلك معظم الناس الهواتف المزوّدة بالكاميرات، وإن كنت تمتلك هاتفًا حديثًا فإن فرصتك في الحصول على صورة جيّدة لحملتك التسويقية ستكون عالية. التقط بعض الصور عبر هاتفك المحمول ثم استخدمها في حملتك التسويقية القادمة. كاميرا الهاتف المحمول + عدسات إن كنت ترغب في الحصول على صورة فوتوغرافية أكثر جمالًا (ولكنك لست قادرًا على شراء كاميرا احترافية) فيمكنك أن تجرب بعض الملحقات التي تضاف إلى كاميرا الهاتف المحمول. يمكن لأدوات مثل عدسة Moment أن تحول جهاز الآيفون الخاص بك إلى كاميرا قوية قادرة على التقاط صور جميلة ستفخر بوضعها في حملتك التسويقية. كاميرا احترافية DSLR إن كنت ترغب في التقاط بعض الصور الاحترافية لمنتجك أو مشروعك فالاستثمار في كاميرا احترافية DSLR سيكون أمرًا جيدًا. الكاميرات الموجّهة للمبتدئين ليست غالية الثمن، ويمكنك وبقليل من الإلمام بطريقة استخدام الكاميرا أن تلتقط بعضًا من الصور الفوتوغرافية الرائعة في وقت قصير جدًّا. الصور الخام Stock photographs يمكن للصورة الخام المناسبة في رسالتك الإلكترونية أن تعطي استجابة عاطفية لمنتجك أو الخدمة التي تقدمها، وقد تقنع الناس بالضغط على الإعلان. فصورة جميلة للطعام ستدفع الناس للحجز في المطعم، وصور رائعة للمناطق الاستوائية قد تلهم الناس في أخذ إجازة، خاصة عندما يكون الجوّ ممطرًا. ولكن عليك الانتباه إلى أن هناك الكثير من الصور الخام الرديئة على شبكة الإنترنت، وما تفعله هذه الصور هو العكس تمامًا، وقد تقلل من نسبة التحويل المحتملة. إليك قائمة بمواقع الصور الخام الأفضل على شبكة الإنترنت: Death to the Stock Photo موقع جيد يحتوي على المئات من الصور الخام الرائعة جدًا، يمكنك التسجيل في النشرة البريدية لتحصل على مجموعة مجانية من الصور يرسلها الموقع إلى صندوق بريدك الإلكتروني شهريًا، أو يمكنك ترقية حسابك مقابل 10 دولارات لتتمكن من الوصول إلى جميع الصور في الموقع. Gratisogrphy مجموعة من الصور يقدّمها Ryan McGuire مجّانًا، ومع أن الصور المقدّمة محدودة جدًّا، إلا أنّها ملتقطة بطريقة رائعة، وستحصل على رسالة إلكترونية جميلة إن وجدت الصورة الملائمة. IMFree موقع جيد يحتوي على مجموعة كبيرة من الصور الخام الرائعة المنظّمة ضمن مجموعات مختلفة، ستسهّل عليك عملية إيجاد الصورة المناسبة. الصور الخاصة إن لم تجد ضالّتك في مواقع الصور الخام، فالخيار التالي هو أن تصنع تلك الصور بنفسك. قد يتهيّب البعض من هذا الأمر لأنّه لا يمتلك الخبرة الكافية في برنامج الفوتوشوب، ولكن ليس من الضروري أن تكون الصورة بجودة عالية، بل ستحتاج فقط إلى أن تكون الصورة معبرة عن الرسالة التي تريد طرحها وتقدّم الحافز للقراء لزيادة نسبة التحويل. وهناك العديد من الأدوات الرائعة التي تمكّن الأشخاص ممن لا يمتلكون الخبرة الكافية في مجال التصميم من صنع صور ذات مظهر احترافي، ومن هذه الأدوات: Canva أداة رائعة لصنع صور جميلة لحملتك التسويقية، إذ تحتوي على صور خام جميلة يمكن استخدامها في تصميماتك، كما يمكنك إضافة عناصر أخرى مثل النصوص والأشرطة والإطارات والأزرار بكل سهولة ويسر. تعتمد الواجهة على مبدأ السحب والإفلات والتعامل معها في غاية السهولة، وستشعر معها بأنّك مصمم عبقري. الصور الهزلية Comics يمكن الاستفادة من الصور الهزلية في إضافة بعض المتعة والمرح إلى مشروعك التجاري أو الرسالة التي تريد طرحها، وسواء أكانت هذه الصور مضحكة أو تعيد إلى المشاهد بعضًا من ذكريات الماضي، فستساعدك هذه الصور الممتعة في زيادة إعجاب الناس بمشروعك التجاري، ولكن كن حذرًا من المبالغة في استخدام هذه الصور. إليك بعض المصادر التي يمكنك الاستفادة منها في الحصول على مثل هذه الصور: WebDonuts أرشيف للصور الهزلية المجّانية للفنّان Mike Gruhn. قد تشكّل هذه الصور الهزلية المضحكة إضافة قيّمة لرسالتك الإلكترونية إن وجدْتَ ما هو ملائم لموضوع الرسالة. الأيقونات قد يصبح استخدام الكثير من النصوص أو الصور أمرًا مربِكا للقارئ، ومن الأفضل استخدام الأيقونات للتعبير عن الأفكار بصورة مبسّطة، ومن الشائع استخدام الأيقونات لتسليط الضوء على الخصائص الرئيسية للمنتج وعلى العكس من الصور المعقدة فإن الأيقونات تجعل ما تنشده في رسالتك الإلكترونية في متناول يد القراء. هناك الكثير من الأيقونات المتوفرة على الإنترنت، ولكن سأعرض عليك بعضًا من مصادري المفضلة: The Noun Project مجموعة من الأيقونات المجانية والمدفوعة والتي يمكن تحميلها واستخدمها في المحتوى التسويقي. ويحتوي الموقع على أداة بحث رائعة تمكنك من الوصول إلى الأيقونة التي تبحث عنها بكل سهولة، ويمكن لعبارات بحث بسيطة مثل "طائرة" أو "كتاب" أن تقدّم لك مئات من الأيقونات التي يمكنك استخدامها لأغراض مختلفة. GraphicRiver متجر إلكتروني للتصاميم، حيث يعرض محترفو التصميم أعمالهم للبيع، ويتراوح أدنى مستوى للأسعار بين دولار واحد وعشرة دولارات بالاعتماد على طبيعة ومدى تعقيد السلعة المباعة. هناك الآلاف من الأيقونات المعروضة للبيع في الموقع وبأنماط وأشكال مختلفة ومتنوعة، ومن المؤكد أنّك ستجد ما تحتاجه لحملتك التسويقية. في الختام ستحقق حملتك التسويقية عبر البريد الإلكتروني نجاحات باهرة باستخدام هذه الأنواع المختلفة من الصور. أتعتقد أن هناك أنواع أخرى من الصور يمكن إضافتها إلى هذه القائمة؟ شاركنا رأيك. ترجمة -وبتصرّف- للمقال The 7 types of images that can help improve your email click-through rate لصاحبه Aaron Beashel.1 نقطة
-
موقع بفر يقوم بجدولة التغريدات متباعدة بفترات زمنية ، السؤال لماذا ليست متقاربة ؟فالذي يجدني مرة سيسهل عليه قراءة التغريدات القريبة زمنيا أما المتباعدة فهي مخلة .1 نقطة
-
تبعًا للكثير من الملاحظات إغراق المتابعين بسيل من التغريدات المتتالية يدفعهم لإلغاء الاشتراك، خلافًا لإرسال التغريدات على فترات متباعدة (كما تفعل بفر). لذا إن كنت تنوي جدولة تغريداتك باستخدام أحد التطبيقات أن تتبع هذا المبدأ.1 نقطة
-
أريد الحصول على قيمة حرف معين ثم أزيد عدد محدد وبعد ذلك أرجعه إلى حرف ليصبح حرف جديد، فكيف أفعل ذلك في بايثون؟1 نقطة
-
يوجد عدة طرق لفعل ذلك فيمكنك على سبيل المثال -كما قال الأخ سامر- استخدام دالة ord للحصول على رقم الحرف ومن ثم يمكنك إضافة إلى رقم إليه لتحصل بعد استخدامك لدالة chr على حرف جديد ويمكنك جعل كل هذه الخطوات في سطر واحد فقط كما في المثال التالي: >>> chr(ord('a') + 3) 'd' ملاحظة: في بايثون 3 أصبحت السلسلة النصية Unicode لذلك ستستقبل ord حروف Unicode وستنتجهم chr كذلك، وليس في الإصدار الثاني.1 نقطة
-
أريد الحصول على قيمة عشوائية من القيم الموجودة في القاموس، فما الطريقة الصحيحة لفعل ذلك في لغة بايثون؟1 نقطة
-
يوجد عدة طرق في لغة بايثون لفعل ذلك، فيمكنك على سبيل المثال استخدام دالة choice من وحدة random الخاص بالأعداد العشوائية على مفاتيح القاموس وذلك باستعمال دالة keys كما في المثال التالي: import random d = {'a':'b', 'c':'d'} random.choice(d.keys()) أما لو كنت تستخدم الإصدار الثالث من بايثون فيجب عليك استخدام دالة list وخلافا لذلك سيحدث خطأ عند تنفيذ الأسطر السابقة: import random d = {'a':'b', 'c':'d'} random.choice(listd.keys())) وإذا لم تكن بحاجة إلى القيم هذا القاموس فيمكنك في هذه الحالة استخدام دالة popitem التي سترجع لك قيم بترتيب معين (لكنه ليس عشوائي) كما في المثال التالي: d = {'a':'b', 'c':'d', 'e':'f'} d.popitem() #('a':'b') d.popitem() #('e':'f') ملاحظة: الدالة ستحذف العناصر.1 نقطة
-
نعم أتفق معك في وجوب توفر البرنامج لتجربة جمل الاستعلام وكذا مختلف وظائف Oracle، وخاصة أن المبتدئين يجدون بعض الصعوبات في بادئ الأمر، إليك خطوات التثبيت: حمل ملف التثبيت من خلال رابط الموقع. بعد الضغط على الملف المحمّل من الموقع وبعد بعض الوقت ستظهر لك النافذة: بعد الضغط على Next، ستنتقل إلى المرحلة الفعلية للتثبيت: ثم: ستظهر لك نافذة تظهر ملخص للإعدادات البرنامج على حاسوبك: ثم نافذة تُظهر تدرج العملية: ثم إنشاء قواعد نظام البيانات: اضغط على زر OK: ثم Exit ثم اضغط OK لإنهاء العملية:1 نقطة
-
يُمكنك أن تقوم بهذا الأمر ببساطة بالاستعانة بجملة While لتكرار الشيفرة كلما كانت كلمة المرور غير مُساوية لكلمة المرور المرغوبة، وذلك بالشيفرة التّالية: user_password = 'secret' password = raw_input('Enter the Password: ') while password != user_password: password = raw_input('Wrong Password, please try again: ') print 'successfully signed in!' السّطر الأول: نعيّن كلمة المرور إلى المتغيّر user_password السّطر الثاني: يقوم البرنامج بطلب كلمة المرور من المُستخدم السّطر الثالث: تتحقّق حلقة While من كون كلمة المرور غير مطابقة لكلمة المرور المُدخلة، إذا تحقّق الشّرط، ينتقل البرنامج إلى السّطر الرابع، إذا لم يتحقّق (أي كلمتا المرور متساويتان )، ينتقل البرنامج إلى السّطر الخامس. السّطر الرابع: يقوم البرنامج بإخبار المُستخدم بأنّ كلمة المرور خاطئة ويطلب منه إعادة المُحاولة. السّطر الخامس: يطبع البرنامج جملة تفيد المستخدم بأنّ تسجيل الدخول قد نجح.1 نقطة
-
نعم يا صديقي، يُمكن أن تقوم باختصار أوامر الطرفية الطويلة لتُصبح كلمات قصيرة أو حتى أحرفا. وهذا بفضل نظام الأسماء المُستعارة في أنظمة لينكس أو ما يُسمى بـAlias وهي خاصية مُفيدة جدا. يُمكنك أن تُنشئ مثلا اختصارا لأمر تنصيب الحزم: sudo apt-get install ليُصبح كلمة أو حرفا كالتّالي: inst وذلك بتنفيذ الأمر: alias inst='sudo apt-get install' لاحظ بأنّ علامة "=” يجب أن تكون ملتحمة مع الأمر المراد أن يُختصَر، أي أنّه لا يجب عليك أن تضع أي مساحة. عندما تُنفّذ الأمر في الطّرفية يُمكنك أن تعمل بالاختصار إلى أن تُغلق الطرفية، عند فتح الطّرفية من جديد ستجد بأنّ الاختصار لم يعد موجودا. لكي تجعل الاختصار دائما عليك أن تضع الأمر داخل ملف bashrc الموجود في مجلّد المنزل لكن تذكر بأنّه ملف مخفي أي أنّه مسبوق بنقطة. افتح الملف بمُحررك المُفضل، أو يُمكنك أن تنفّذ الأمر التالي داخل مجلّد المنزل لكي تفتحه بمُحرّر nano: nano .bashrc ابحث عن السطر التالي: alias l='ls -CF' وضع أمر الاختصار تحته: alias inst='sudo apt-get install' احفظ وأغلق الملف بتركيبة مفاتيح Ctrl+x، عند إكمال هذه الخطوة، سيكون الاختصار مُتاحا دائما حتى لو أغلقت الطرفية وفتحتها مُجددا.1 نقطة
-
تحتاج إلى الكثير من الصبر والمثابرة لتعلم أول لغة برمجة لك فمعدل ما تحتاجه للوصول إلى مستويات متقدمة في البرمجة بلغة معينة حوالي 9 أشهر. كثرة قراءة وكتابة الشيفرات البرمجية سيُسرع من عملية تعلمك للبرمجة كما يعلمك طرق جديد للبرمجية لذلك يُنصح ببدء المشاركة في المشاريع البرمجية بعد الانتهاء من البرمجة ولو كانت صغيرة. بعد تعلمك لأول لغة برمجة ستتمكن من تعلم لغة برمجة ثانية بسهولة وفي وقت أقصر بكثير من وقت تعلمك للغة الأولى. أنصحك ببدء تعلم لغة البايثون أو السي بلس بلس أولا قبل الانتقال إلى لغات أخرى لأن هاتين اللغتين تعتبران من أشهر لغات البرمجة في نظام لينكس وويندوز. يمكنك البدء من خلال أكاديمية حسوب بتعلم البرمجة ففيها العديد من الدروس البرمجية السهلة والمفيدة.1 نقطة
-
الخطوة 1: ابن المُنتج. الخطوة 2: أطلقه. الخطوة 3: استعن بتقنيات استسراع النّمو Growth Hacking لتحقيق النّجاح. يبدو على كل هذه الخطوات وكأنها استُخرجت من دليل "احصل على الثراء السريع". النّمو Growth هو عصب حياة الشّركات النّاشئة. النّمو هو ما يميز سنابشات عن محلات القهوة. هو الفرق في الأرباح القليلة بين الإنستغرام وصحيفة نيويورك تايمز. هو السبب الذي يجعل المستثمرين يتحمسون عند سماعهم لتطبيق "Yo" لكنهم يقلقون بشأن أبل. من خلال الجمع بين ملاحظة النّمو الشهري الذي نُحقّقه في Intercom ومن خلال قيادتي لفريق النّمو في هذه الشّركة النّاشئة في الآونة الأخيرة، فقد توصّلت لقناعة أن النّمو الحقيقي يأتي من مكان ما أعمق من استسراع النّمو Growth Hacking. لست متأكداً حتى من إذا كان "استسراع النّمو" شيئاً حقيقياً. إذا كان فهل يُمكن أن تذكر لي أي نجاحات استسراع نّمو شهيرة؟ إليك الطّريقة التي ننظر إلى النّمو فيها في شركة Intercom: مقاييس محدودة، تعريفات محدودة، جهود محدودة"هل لديّ منتجٌ جيد؟" هو سؤال صعب يستحيل الإجابة عليه بمعرفة مقاييس المنتج (product metrics) فقط، خاصّة إذا قارنا هذا السّؤال بسؤال مثل "كم عدد الأشخاص الذين يضغطون على زر التسجيل في الموقع؟" مدى عمق فهم المشكلة ومدى تحديدها بشكل ملموس يحدّد الحد الأعلى لجودة أي حلول لاحقة. في كتاب التفكير بسرعة وببطي، وضّح العالم النفسي دانيال كانيمان أنه عندما تُسأل سؤالاً لا تعلم الإجابة عليه، فسرعان ما يقوم عقلك بإيجاد بدائل لأسئلة أسهل، والإجابة على الأسئلة السهلة عِوضاً عنها. وما يتصدّى للنّمو غالباً، هو أن المشاكل الحقيقية تُستبدل بمشاكل سهلة قابلة للقياس. على مستوى أعلى، هذه التعريفات المحدودة قد تجعل الفِرَق تتغاضى عن القضايا الأساسية: هل يحلّ منتجك مشكلة حقيقية؟ المنتج هو أساس كل نمو-أو بعبارة أخرى-، الجميع يعمل على النّمو. الفرق الوحيد بين فريق تطوير المنتج وفريق التسويق في شركة ناشئة، هو أن أحدهما يركّز على النّمو على المدى الطويل، والآخر يركّز مباشرةً على النّمو القابل للقياس. عندما يُطلق فريق التّطوير خاصّيّة جديدة فإنّهم لا يتوقّعون حدوث تأثير ما بين عشيّة وضحاها على المداخيل أو على أعداد المُستخدمين. قارن ذلك مع فريق التّسويق عندما يُطلق حملة تسويقية جديدة، فإن الجميع يترقّب نتائج لحظية. الاختلاف يتمثّل في المُدّة الزّمنية التي يُمكن قياس النّمو فيها وكلا الفريقين يعمل جاهدًا على تحقيق نمو. وعلى مستوى أدنى، خطر التعريفات المحدودة هي أنها تؤدي إلى جهودٍ محدودة. فعلى سبيل المثال لا يجب أن يتحوّل تركيز فرق التّطوير التي تُعنى بالنّمو على المدى القصير(عادةً ما يطلق عليه "فِرَق النّمو" growth teams ) وفِرَق التسويق، على النّتائج التي يُمكن قياسها على المدى القصير إلى التّركيز على بسائط الأمور. حجم التغييرات التي ترغب في تقديمها، يرتبط مباشرةً بحجم أرباحك. وبعبارة أخرى: لا يُمكن بناء شركة ناشئة بقيمة مليار دولار بمُجرّد تغيير لون زر واحد. حلوللتجنب المشاكل المُترتّبة عن المقاييس المحدودة micro metrics، من المهم قرن كل مقياس مع مقياسه العكسيّ المناسب: فيجب قرن عدد الاشتراكات بعدد الحسابات النّشيطة، وقرن عدد الاشتراكات مدفوعة الأجر الجديدة بعدد الاشتراكات التي تمّ إلغاؤها، أو مع إجمالي الإيرادات. القيام بذلك يُحقّق أمرين: إدراك أن منتجك عبارة عن مجموعة مقاييس metrics، وعليه فإنّ التّركيز وتسليط الضوء على مقياس واحد بمعزلٍ عن المقاييس الأخرى هو تصرّف غير صحيح.الإقرار بأننا نتعامل مع مجموعة مُتكاملة من المقاييس، يشجّع على اتباع نهج أكثر شمولا للنّمو.التشجيع على اتّباع نهج أكثر شمولًا سيبعدك بشكل تلقائي عن التّركيز على توافه الأمور كالتّركيز على ألوان الأيقونات أو تضييع الكثير من الوقت في اختيار العناوين المُناسبة واستبدالها. هنا بعض الأسئلة التي طرحناها على أنفسنا بها مؤخراً، والتي ساعدتنا على التركيز على الصورة الأكبر وحل المشاكل الجوهرية المتعلّقة بالنّمو: هل تصف منتجك بنفس اللغة والمصطلحات التي يُحتمل أن يستخدمها العملاء للتعبير عن مشاكلهم؟ إن كانت الأسئلة مطابقة للأجوبة، فهو أمر حاسم للعملاء المحتملين الذين وجدوا مكاناً لمنتجك في رؤوسهم.متى كانت آخر مرة سجّلت حسابًا جديدًا على منتجك؟ هل يُركّز أي عضو في فريق شركتك النّاشئة على مسار تسجيل الحسابات الجديدة؟ من المُحتمل جدّا أنّك ستستغرب من جملة الافتراضات التي بنيت عليها صفحات تسجيل حسابات جديدة ومن المُحتمل جدًا أنه لم يعد يعمل/يركّز على هذه الصّفحات أي أحد في فريقك.كيف تعلّم وتدرّب عملاءك لاستخدام منتجك؟ هل تساعدهم على حل مشاكلهم بنجاح؟ أو أنك تكتفي فقط بآلية استخدام المُنتج؟المسوّقون ومطوّرو المُنتجات العظماء قد يمضون أعمارهم على هذه القائمة، وحل المشاكل التي تنشأ مع الكثير من التكرارات، الكثير من الانتصارات الصغيرة. هذا ليس استسراع نموّ Growth Hacking، هذا هو بالضبط ما يُطلق عليه تسويق المنتج، تصميم المنتج وهندسة المنتج. استسراع النّمو هو أشبه ما يكون من الوعود المستمرة بتوفير طرق سحرية: الأزرار الحمراء تزيد من معدل الاشتراك بنسبة 80%، العناوين الرئيسية بحجم خط "33" تزيد من معدل الإيرادات بنسبة 30%، تخفيض الأسعار تقلل من نزوح العملاء بنسبة 27%... لكن، النّمو لا يأتي بطرقٍ سحرية، النّمو يأتي من الفوز في ألف معركة صغيرة: 0.5% هنا، 1% هناك. النّمو الحقيقي يحتاج إلى كبير كبير من النًصائح. النّمو الحقيقي ينشأ منذ أول سطر برمجي، من منتج عظيم، ومن عمل فريق كامل. النّمو قضية مُهمّة، لا تستعجلها. ترجمة -وبتصرّف- للمقال: Growth Hacking is Bullshit لصاحبه Ben McRedmond.1 نقطة
-
أول وأهم أمر مطلوب هو أن تتعلم التفكير البرمجي ، وهذا لا يكون إلا بمعرفة مفهوم البرمجة وماهيتها، فالبرمجة شيء ولغات البرمجة شيء آخر مختلف تماماً. فالأول هو فكر وطريقة تفكير ومنهج تفكير، أما اللغات فهي وعاء ذاك الفكر الذي من خلاله تتجسد البرمجة وتصبح ملموسة ومنتجة ومثمرة. لتقريب الصورة أكثر، خذ مثلاً الشعر، فالشعر أمر لا يتذوقه ويحس به إلا صاحبه، ولكي يستطيع أن ينقل تأثيره للآخرين لا بد من وسيلة تجسده، فكان هناك الأسلوب الشعري والأبيات والأبحر والأوزان .. الخ. عندما تتقن التفكير البرمجي و من ثم تجد إحدى اللغات لتجسيده سيسهل عليك كثيراً تعلم لغات أخرى. كخطوة أولى أرشدك للاطلاع على السلسلة التالية هذا على افتراض أن من يطلع هو يدخل باب البرمجة لأول مرة ، وإلا فعليه أن ينتقل لتعلم البرمجة التطبيقية من خلال إحدى اللغات. سلسلة تبسيط البرمجة1 نقطة
-
عليك أنّ تدرك أنّه لا يوجد ما يُسمى "أفضل طريقة"، الطرق كثيرة وعليك اكتشاف الطريقة الّتي تُناسبك، ولكن بعد تعلّم الأساسيات، سواء بقراءة الكتب أو مُتابعة دورة ما، عليك مُتابعة التعلّم بالتطبيق العمليّ، وهو ما يُسمى Learn by doing.عندما يكون لديك هدف في تعلّم البرمجة، مثلًا لديك فكرة تطبيق أوفكرة موقع وتريد تطبيقها، سيكون ذلك حافزًا قويًا جدًا لك للمُتابعة.اللغة الإنكليزية لا مَفر منها خصوصًا في المرحلة المتوسطة والمُتقدمة، وليس من المُفترض أنّ تكون "بلبلًا" كل ما عليك أنّ تعرفه هو الأساسيات والباقي ترجمة -الجميع يفعل ذلك على الأقل في البداية-فأنت لا تقرأ كتابًا أدبيًا، والكتب التقنيّة أسهل بكثير.أبتعد عن المُقارنات بين لغات البرمجة ولا تلتفت إليها أبدًا، وعندما تقرأ عنوان "لغة x بطيئة" فهذا إشارة لك لكي تُغلق الموضوع على الفور، وضع في بالك أنّه عندما تتعلّم أي لغة فأنت تتعلم أساسيات باقي اللغات، وعليه اختر اللغة الّتي تُناسب رغبتك وميولك.النقطة الأخيرة وهي أهم نقطة في رأي، في مرحلة ما خلال تعلمك وبعد تعلّم الأساسيات، سوف تصل إلى نقطة تظن بها أنّ البرمجة أمرًا صعبًا وهو مجال ليس لك، هذه المرحلة بالذات إنّ تجاوزتها فاعتبر نفسك مُبرمجًا.1 نقطة