لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 06/12/15 في كل الموقع
-
تعلمنا في الجزء السابق أن HTTP بروتوكول على مستوى التطبيقات. حان الوقت لنفهم كيفية استخدام هذا البروتوكول للتواصل بين العميل والخادوم. جلب الأشياء من الويب تذكر أن عميل HTTP (وهو المتصفح عادةً) هو الطرف الذي يبدأ بإرسال الطلب إلى الخادوم. يسمح بروتوكول HTTP للعميل بالتعبير عن نيّته من خلال بضعة مُكوّنات: الرابط (URI)، وأفعال HTTP، وترويساته. تسمية الأشياء تمثّل الروابط (URIs) حجر الأساس في الويب، لأنّها تحل مشكلة مهمّة على مستوى الإنترنت بكاملها، وهي مشكلة منح الأشياء مُعرّفًا تنفرد به على الشّبكة. افترض أنّك سألت شخصًا أن يجلب لك شيئًا ويُحضره إليك، يمكن عدّ الطرق الممكنة للطلب على الأصابع. فعادةً ما تُعرّف الكلمات الّتي تستخدمها الشيء الّذي تريده. بإمكانك أن تطلب من صديقك قائلًا: "اجلب لي الكتاب." قد يجيبك صديقك: "حاضر. ولكن أي كتاب؟". فتقول أنت: "الكتاب في الغرفة الأخرى." فيذهب صديقك إلى الغرفة ويسأل: "أي كتاب قلت؟" فتقول أنت وقد شعرت بالضّيق: "الأخضر!" ليقول صديقك: "تمهّل لحظة... هناك كتابان أخضران في الغرفة!" وعندها تنهض لتحضر الكتاب بنفسك. كان الأمر ليكون أكثر بساطة لو أننا وحدنا طريقة نُحدّد فيها الأشياء بطريقة مميّزة للوصول إليها لاحقًا. إحدى الوسائل الممكنة هي الاعتماد على الذاكرة. كيف نعطي الأوامر لشخص ما ليحضر إلينا الغرض المطلوب؟ لنُنشئ نظامًا لذلك: قص ورقات صغيرة أو استخدم ورق الملاحظات اللّصّاق. ضع هذه الأوراق على الأغراض في الغرفة المجاورة أو على الطّاولة (كالكتب مثلًا). اكتب مُعرّفًا مُميِّزًا على كل ورقة. كرّر العملية في غرفة مجاورة أو على طاولة مجاورة. تذكّر أن هذا النّظام لا يقتصر على أغراضك، بل يمتد ليسمح بنوعٍ من التّواصل بين الأغراض جميعها. طبّقت هذا النّظام على أغراضي، فكتبت على كل قطعة ورق واحدًا من المُعرّفات التالية: myRoom.org/table/book/001 myRoom.org/shelf/book/002 otherRoom.org/cup/001 otherRoom.org/flower/001 otherRoom.org/book/001 أعتقد أنك الآن فهمت ما أقصد. لدينا الآن نظام من اللصاقات الّتي تستخدم لتحديد كل شيء في المكان بدقة. في الويب، نحن نتعامل مع فضاء معلومات واللصاقات المُستخدمة ليست سوى الروابط (URIs). الوصول إلى الأشياء المُسمَّاة شرحنا كيف يُبنى طلب HTTP في المقال السابق من خلال الطرفية. استخدمنا بناءً بسيطًا مع فعل HTTP المُسمّى GET مع ترويسة واحدة: Host. GET / HTTP/1.1 Host: www.opera.com القائمة الكاملة لأفعال HTTP الحالية هي: OPTIONS، GET، HEAD، POST، PUT، DELETE، TRACE، CONNECT. لكل فعل دورٌ مختلف عن الأفعال الأخرى وسنشرح ذلك في المقالات التالية. أكثر الأفعال استخدامًا هو GET، ففي كلّ مرة نُدخل عنوان HTTP في شريط العناوين في المتصفح، فإنّنا نرسل طلب GET إلى خادوم. في عالم الويب يُرسل العميل معلومات أكثر (المزيد من ترويسات HTTP) إلى الخادوم للتفاهم على المطلوب. يستغل الخادوم هذه المعلومات ليُعدّل الجواب بما يناسب الترويسات. تتوفّر أداة عمليّة جدًا في Opera Dragonfly لإنشاء طلبات HTTP مُخصّصة وفحص إجابة الخادوم. يمكنك إيجادها في قسم Network في تبويب "Make Request". هنالك ثلاث مناطق في تبويب Make Request: الرابط (URL): مُعرّف المُحتوى (أو عنوان الويب) متن الطّلب (Request body): ما سيُرسله العميل إلى الخادوم (يُرسل الزّر "Send request" الطّلب إلى الخادوم عبر الشّبكة) الجواب (Response): جواب الخادوم بعد إرسال الطّلب تخصيص طلب HTTP انسخ http://www.opera.com/ إلى قسم URL. انسخ والصق طلب HTTP التّالي إلى قسم "Request body" في تبويب Network. أضفنا الترويسة Accept-Language إلى طلب HTTP السابق. اضغط الزر "Send request". GET / HTTP/1.1 Host: www.opera.com Accept-Language: en سيُجيب خادوم Opera بجواب HTTP مؤلّف من بضع ترويسات يليها محتوى المستند. قد تحتاج إلى تمرير النافذة، لأن الجواب قد يكون طويلًا. لاحظ أن المُستند باللغة الإنكليزيّة، ليس فقط من حيث اللغة الّتي كتب بها، بل أيضًا يُنصّ على ذلك صراحةً في خاصّة lang على ال عنصر html: <!DOCTYPE html> <html lang="en"> لنُجرّب الفرنسيّة: GET / HTTP/1.1 Host: www.opera.com Accept-Language: fr سُيجيب الخادم هذه المرة بالفرنسيّة، ويتبيّن ذلك في نص المستند وفي مصدره: <!DOCTYPE html> <html lang="fr"> لاحظ أنّنا استخدمنا الرابط نفسه بالضّبط (http://www.opera.com/) ولكنّنا تلقّينا إجابتين مُختلفتين لا لشيء إلا لأننا غيّرنا الترويسة Accept-Language. لاحظ أيضًا أنّ الخادوم أجاب بترويسات كثيرة تُعطينا معلوماتٍ عن حالة المحتوى ونوعه... إلخ. يسمح هذا للعميل بتعديل أسلوب معالجة المستند. يمكنك تجربة لغات مُختلفة مثل اليابانية (ja) والألمانية (de)... إلخ. ما الذي يحدث إن طلبنا لغة غير موجودة على الخادوم؟ جرّب مثلًا الصّينيّة (zh): GET / HTTP/1.1 Host: www.opera.com Accept-Language: zh ستتلقى النسخة الإنكليزية من الموقع. هل هذا مُحيّر؟ الحقيقة أنّ هذا الأمر يعتمد على تصميم الموقع ذاته. فقد يُصمم جواب HTTP بأسلوب آخر، كأن يُجيب الخادوم "لا، ما من نسخة صينية من الموقع لدينا"، أو "ليست لدينا نسخة صينية، ولكن لدينا اللغات التالية: ...). ولكن فريق تجربة المستخدمين في Opera قرر إرسال النسخة الإنكليزية من الموقع عند طلب لغة غير مُتوفّرة. المسألة مسألة اختيار، فلا قاعدة تُفرض على المواقع بهذا الشأن. ولهذا السّبب أقوم عادةً بتعليم مُصمّمي تجربة الاستخدام ومُطوّري الواجهات بعض أساسيّات HTTP، فهو بروتوكول يتوسّط التفاعل بين العميل والخادوم، وعليه فإنّ فهمه يُساعد في تصميم تفاعلات ذات معنى عند بناء المواقع، وذلك للبشر والآلات معًا (كالبرامج الّتي تستخدم الواجهات البرمجيّة (APIs) وما شابهها... إلخ). تذكّر URI: نظام لتعريف المعلومات على الشبكة. أفعال HTTP: يتضمّن البروتوكول حاليًا الأفعال التّالية: OPTIONS، GET، HEAD، POST، PUT، DELETE، TRACE، CONNECT. وقد تعرّفنا في هذه المقالة على أكثرها استخدامًا وهو GET. ترويسات HTTP:** الترويسات هي بيانات إضافية يُرسلها العميل لإعطاء معلومات أكثر عن البيانات المُتبادلة بين العميل والخادوم. تُفيد بعض هذه الترويسات الخادوم بحيث يختار الأسلوب الأفضل للإجابة. ترجمة (بشيء من التّصرّف) لمقال HTTP: Let’s GET It On! لصاحبه Karl Dubosy.1 نقطة
-
لا يخلو الإنترنت من المقالات التي تتحدّث عن مشكلة ضياع الأفكار أو غور أفكار الكاتب. تستطيع اعتبارها الترجمة المتواضعة لحالة الـ Writer's Block وهي تعني باللفظ عدم قدرة الكاتب على العثور على أفكار تصلح لصياغتها في تدوينات/مقالات. ككاتب مُستقل ليس لدي وقت للـ Writer's Block. فالناس تدفع لي مقابل الكتابة، لذلك أنا بحاجة إلى الوفاء بكل التزاماتي التي قطعتها مع عملائي حتى أستطيع الاستمرار في هذه المهنة. لن أكذب وأقول بأن الكتابة عملية سهلة، وأن الكلمات تأتي سريعًا، أو أن أيامي في الكتابة يُشبه بعضها بعضًا، لأنها ليست كذلك بالفعل. ولكن الثابت الآن هو أنني لديّ عمل لإنجازه، وكتابة محتوى جديد متجدد باستمرار يعتبر جزءًا كبيرًا من هذا العمل. كي تستطيع إنجاز مهام التدوين التي توكل إليك كل يوم، أحضرت لك الوصفة الخاصة بي في العمل – وهي مكونة من 6 خطوات– كي تضمن عدم انقطاع مشاريع الكتابة التي تحصل عليها، وورودها بشكل مُستمر: الخطوة الأولى: العصف الذهني، ثم العصف الذهني بالإضافة إلى العصف الذهني لقد جربت كل شيء تقريبًا لتوليد الأفكار، بداية من التشديد على تخصيص نصف ساعة يوميًا للعصف الذهني، لجلب أفكار تدوينات (وهي لم تعمل معي بالمناسبة)، حتى الاحتفاظ بجدول Excel أو حتى ملف على مستندات Google Docs مملوء بالأفكار، ثم إماطة اللثام عن إحدى الأفكار الرائعة لإخراجها والعمل عليها في منتصف الليل. ومع ذلك، فبالنسبة لي لا يوجد نظام مثالي للعصف الذهني Brainstorming. ولكن الأكثر أهمية من ذلك هو أنني دومًا أضع في اعتباري من أكتب لهم، وأحتفظ دائًما بخط إمداد دائم من الأفكار الجاهزة أعرضها عليهم لسد احتياجاتهم. تستطيع فعل ذلك على نحو منتظم (يومي، أسبوعي، أو حتى شهري)، أو حينما يسمح مزاجك بهذا. قبل كل شيء، داوم على توليد المزيد من الأفكار الجديدة، والعثور على مكان لنشرها فيه. الخطوة الثانية: دع الفكرة تنمو من النادر بالنسبة لي أن آتي بفكرة جديدة، ثم أجلس وأكتبها على الفور. هو شيء ممكن لكنّه نادر الحدوث معي، حيث أنّها ليست الطّريقة التي أعمل بها عادة. بدلاً من ذلك أقوم بفتح جدول الإكسل أو صفحة Google Doc وأجد العنوان والوصف الذي تم سبق لك كتابته، فلقد توصّلت إلى أن عقلي يعمل بأحسن حالاته حينما أقوم بالعمل على تدوينة تركت فكرتها تتخمّر في رأسي لأيّام، خاصة مع العملاء الجدد. عقلي يعمل – نوعًا ما– في الخلفية بشكل لاشعوري، ومن ثم سأقوم على أثره بتكوين أفكار مختلفة، خطوط عريضة، عناوين رئيسية، ...ألخ. هذا يعمل بشكل جيد حينما يأتي وقت الكتابة، حيث يدرك عقلي أي وجهة نظر تلك التي أريد عرضها في قطعة المحتوى التي أعتزم كتابتها، ثم تقوم أصابعي على لوحة المفاتيح بترجمة هذه الأفكار إلى كلمات جذابة. الخطوة الثالثة: ضع مخططًا لكل تدوينة كما أشرتُ من قبل، من الشائع بالنسبة لي أن أستخدم ملفًا على مستندات جوجل Google Doc لكل قطعة منفصلة من المحتوى، وأقوم بوضع الملاحظات التي أعثر عليها من خلال المصادر والأفكار التي أقوم باستخلاصها لأجل تلك القطعة. حتى ولو كنت أكتب التدوينة في المكان النهائي المخصص لها – لوحة التحكم Dashboard في مدونة الوردبريس– إلّا أنني أشرع في تخطيطها أوّلا على Google Docs. لقد كتبت هذه التدوينة بالكامل بهذه الطريقة. إن لم تكن مستخدمًا مُنتظمًا لمستندات جوجل، فهناك أمر قد يزعجك، وهو أن التنسيق غالبًا ما يُفقد حال النسخ من مستندات جوجل Google Docs واللصق في لوحة التحكم في مدونة الوردبريس Wordpress. هي ليست مشكلة كبيرة في الواقع، فعادة تتم إضافة مسافات بين الفقرات، ولسبب ما يتم جعل الفقرة الأخيرة سميكة Bold، حيث أقوم في النهاية بالذهاب إليها وإصلاحها. بغض النظر عن المكان الذي أكتب فيه التدوينة، فأن يكون لديك مكان مخصص تضع فيه ملاحظاتك وما يُستجد في ذهنك من أفكار بشأن موضوع مُعيّن، تُعد لتصبح مشروع تدوينة، فهذا أمر مفيد للغاية. جعلني هذا الأمر منظمًا إلى أبعد الحدود، وأن أقوم باستمرار بدعم تلك التدوينة بالكثير من الأفكار والإضافات الثرية. الخطوة الرابعة: ابدأ بالكتابة وأخيرًا، جاء الوقت الذي تجلس فيه على مقعدك أمام شاشة حاسوبك لتجمع قطع الأحجية في شكل مفهوم. إذا استطعت اتباع الخطوات الموضحة بالأعلى، سيكون من المستحيل بالنسبة لي أن أجلس محدقًا في شاشة الحاسوب أعاني من حالة Writer's Block. إن لم أكن حقًا في مزاج يسمح لي بالكتابة، أحيانًا أنتظر حتى اليوم التالي لتحسن حالتي المزاجية. منذ أن أعتدت أن أعطي نفسي متسعًا من الوقت للكتابة قبل المواعيد النهائية لتسليم عملي، فأنا عادة لا أشعر بالكثير من الضغط للكتابة حينما لا أشعر برغبة في ذلك. على سبيل المثال، إن لم أنم في الليلة السابقة بشكل كاف، وكان عقلي يعلوه الضباب بعض الشيء، فأنا أقوم – بدلاً من ذلك– أحيانًا بعمل بعض المهام الأخرى التي لا تتطلب الكثير من التركيز في هذا اليوم. أو في بعض الأحيان الأخرى، يتطلب مني الأمر فقط الانغماس في الكتابة لبضع دقائق حتى أستعيد مزاج الكتابة المعتاد وأمارس عملي. كل يوم مختلف عن اليوم الذي قبله، ولم يُخلق أي منهم ليكون مشابهًا للآخر، ومنذ أن كنت أنا رئيس نفسي، بدون ضغط خارجي من رئيس عمل رقيب، فأنا أترك عملي وألهو مع مزاجي، بدلاً من إجبار نفسي على عمل لن أستطيع تأديته بشكل جيد بهذا المزاج. الخطوة الخامسة: راجع، عدّل، نقّح ربما تكون هذه عادة سيئة بالنسبة لي، ولكن من الشائع كذلك بالنسبة لي أن أعيد مراجعة كل تدوينة مرات عديدة. الطبيعي أن تقوم بمراجعة المقال مرة واحدة، وهي كافية نوعًا ما، ولكن حينما تكون أنت الكاتب – وليس شخصًا آخر– فمن الطبيعي أن عقلك لن يغفل عن كثير من الأشياء التي غفل عنها في المرة الأولى، ومن ثم من المفضل مراجعة نفس المقال مرة ومرات. ولهذا تكون المراجعة عدة مرات مفيدة. بل إنني أيضًا أقرأ المقال بصوت مرتفع إذا احتجت أن أكون أكثر اجتهادًا (خاصة إذا كان هذا هو المقال الأول لعميل جديد لديّ)، أو إذا كان عقلي مشوشًا بعض الشيء. إذا كنت حديث عهد بمهنتنا، أو تعمل بها بشكل موسمي، فإن قراءة عملك بصوت عال يعتبر تدريبًا جيّدًا لتندمج به. بهذه الطريقة سيكون من السهل للغاية تصحيح أي أخطاء شائعة قد تكون ارتكبتها وأنت لا تدري. الخطوة السادسة: وأخيرًا ... التوصيل أخيرًا! إنه الوقت الذي تنتظره لتقوم بتوصيل تلك القطعة من المحتوى إلى العميل. هذا أفضل جزء على الإطلاق بالنسبة لك، أليس كذلك؟ يوم الدفع أصبح قاب قوسين أو أدنى. كما أشرتُ سابقًا، كما أن العملاء مختلفون فهم كذلك يريدون توصيل المقالات/التدوينات لهم بطرق مختلفة. معظم عملائي يعطوني حسابات لتسجيل الدخول ونشر التدوينات، ومن ثم أختصر على نفسي الكثير من الوقت، وأقوم بحفظ التدوينة كنسخة مسودة Draft على لوحة التحكم الخاصة بي في الوردبريس، ثم أقوم بإرسال رسالة بريدية له أخبره فيها أن العمل قد تم. لبعض العملاء الآخرين، أقوم بإرسال العمل عبر مستندات جوجل Google Docs، بتحويلهم إلى مستندات ببرنامج ميكروسوفت ورد Word، وفي بعض الأحيان عبر ملف نصي عادي للغاية Test file. الشيء الهام الذي لا يجب أن تنساه خاصة إذا كُنت تتعامل مع الكثير من العملاء (خاصة أولئك الذين بدأت العمل معهم للتو) هي الطريقة التي يفضل بها هذا كل عميل توصيل العمل له. أنا أحتفظ بملف خاص لكل عميل من عملائي، به المعايير والسمات والإرشادات التي يحب تطبيقها في عمله. وسواء كنت جمعت هذه السمات التي يرغبون في تنفيذها في أعمالهم منهم بشكل مباشر، أو تلك التي جمعتها من النسخ واللصق عبر تبادل الرسائل البريدية فيما بيننا عما هو مهم بالنسبة لهم، فهذه السمات هي المفتاح الذي يساعدني على فهم كل عميل بشكل دقيق. وكما قلت من قبل، أن عملي هو جعل حياة عملائي أسهل بقدر الإمكان. في الختام كل كاتب لديه الوصفة الخاصة به كي يحتفظ بعقوده مع عملائه مستمرة لا تتوقف، ويتم تسليمها في الوقت المحدد. الوصفة الموضحة بأعلى بخطواتها الـ 6، هي الوصفة التي أفلحت معي، وقد تم تطويرها على مدار العام الماضي أو نحو ذلك. البدء بالعصف الذهني هو السر. أنت في حاجة إلى إخراج زحام الأفكار من رأسك أولاً، ثم تنقيح تلك الأفكار واختيار الأنسب منها. الخطوة التالية أن تقوم بالعمل على الأفكار المنتقاة ليوم أو يومين – إن استطعت– ثم قم بالتخطيط لكل تدوينة بإضافة الملاحظات التي ترد من المصادر والأفكار الإضافية المساندة، قبل أن تجلس وتبدأ الكتابة. بهذه الطريقة حينما تقوم بالتخطيط لميعاد تبدأ بالكتابة فيه، سيكون لديك القدرة على الغوص بشكل صحيح في أعماق الموضوع الذي تنوي كتابته، والخروج بأفضل قطعة محتوى في وقت قياسي. ويجب أن تكون بجودة مرتفعة كذلك. تذكر أن تقوم بالمراجعة مرات عديدة، وتلتزم بالمعايير القياسية التي يفرضها عليك عملائك، أو تلك التي استخلصتها من خلال تعاملك معهم، إن لم يصرحوا بها، قبل أن تقوم بإرسال عملك إليهم في النهاية. في الختام، قم بإرسال عملك إلى العميل بابتسامة ثقة، حيث تدرك لحظتها أنك قد بذلت ما في وسعك لإخراج هذا العمل على أفضل صورة ممكنة. ياله من إحساس رائع! هل تبدو المنهجية التي تعمل بها مع عملائك مختلفة عن خاصتي؟ كيف ذلك؟ وأين الاختلاف؟ ترجمة -وبتصرّف- للمقال: 6Steps to Keep Your Freelance Writing Assignments Flowing (And on Time.1 نقطة
-
حينما يأتي الحديث عن العمل كمدون مستقل لحساب الغير Freelance Blogging، يمكن القول بأن أسهل الطرق لزيادة أسعار خدماتك التدوينية هو "تحسين كفاءة أعمالك". العميل يدفع نفس السعر ليأخذ نفس الخدمة، ولكن التغير الوحيد سيكون أنك عملت بشكل أسرع وحصلت على ما نفس القيمة مقابل وقت أقل، وهذا بالتالي يرفع من قيمة ساعة العمل لديك، وبالتالي أرباحك. بوضع ما سبق في الاعتبار، فأنا أريد اليوم الحديث عن ما يمكن تسميته العنصر الأكثر أهمية لنماء عملي كمدون مستقل. لقد لعب هذا الأمر دورًا رئيسيًا بالنسبة لي في رفع تسعير السّاعة 7 أضعاف في الفترة من 2011 حتى 2013. فإذا كانت مسألة الكفاءة تسير بخطى ثابتة نحو التحسين، فكل شيء على ما يرام. اكتب في ما تعرفحاليًا لديّ 10 عملاء منتظمين. ملخص المواضيع التي أقوم بتغطيتها لهم كالتالي: الووردبريس: 4 عملاء.العمل الحر: 3 عملاءالتسويق الإلكتروني Online Marketing: عميلين.ريادة الأعمال Entrepreneurship: عميل.ما هو العامل المشترك الذي يربط تلك المواضيع كلها ببعض؟ أنني خبير فيها جميعًا. أنا رائد أعمال، ومسوق إلكتروني، أعمل كمستقل Freelancer، وأستخدم الوردبريس Wordpress. هذه هي المناطق التي أقوم بارتيادها بشكل منتظم كل يوم في عملي. في الماضي عملت مع قلة من العملاء على مواضيع ليست مألوفة بالنسبة لي. وبالتأكيد هناك سبب واضح لعدم استمراري في العمل معهم. فحينما أقوم بكتابة مقال عن الوردبريس يأخذ مني نحو الساعة، بينما مقال بنفس الحجم عن موضوع آخر غير مألوف بالنسبة لي قد يأخذ مني أكثر من ساعتين في الكتابة. أيهما أفضل – في رأيك – للعمل على المدى البعيد للعمل كمدون محترف؟ كلما زاد عدد العملاء الذين تعمل معهم ويطلبون أعمالًا تشعر بالألفة حيال الكتابة عنها، كلما زاد معدل سرعة المواضيع التي تكتب، كلما أصبح لديك القدرة على إنجاز أعمالك بشكل أسرع، وبالتالي ربح المزيد من المال. التخصص ≠ الضياعكلما زاد عدد المقالات التي تستطيع كتابتها في المواضيع المألوفة بالنسبة لك، كلما كان ذلك أفضل. في الحقيقة أرغب في الذهاب إلى ما هو أبعد من ذلك، وهو أن تقوم بجعل كل عروضك متخصصة في هذه النوعية من المواضيع. وفي نفس الوقت كن حذرًا بشأن المواضيع التي تنوي التخصص فيها، فربما لا تجلب تلك المواضيع أسعار مناسبة لمجهوداتك. تأمل المواضيع التي أحافظ على الكتابة بها. كل منهم ينتمي إلى أسواق أرباحها مرتفعة، تنفق الكثير على تنمية وتسويق أعمالها، وبالتالي صناعة المحتوى (وهو ما يعني إمكانية جني الأرباح منها بشكل ثابت). عملائي الذين يطورون قوالب الوردبريس يبيعون قوالب Themes، وإضافات Plugins، وأدوات متميزة. عملاء العمل الحر Freelancing يبيعون أدوات مساعدة للعمل الحر على الإنترنت. عملاء التسويق الإلكتروني يبيعون خطط استضافة وأدوات مساعدة. عملاء ريادة الأعمال يبيعون مواقع إنترنت. إذا كنت تجيد الكتابة عن أخبار وفضائح المشاهير، فربما لا تخدمك هذه المواضيع. لا يوجد من يرغب في الدفع لمثل هذه النوعية من المواضيع، وهو ما يعني الضياع. أنصحك بأن تتبع منهجي الكتابي في هذا الشأن. الجميل في هذا المنهج هو أنه يثبت نجاح نفسه بنفسه. لقد بدأت كمدون، وهذا أتاح لي لفترة من الزمن الكتابة عن الوردبريس (منصة التدوين التي أستخدمها). ثم بعد فترة من الزمن – ومن العقود مع العملاء – بدأت في التدوين عن العمل الحر كمدون مستقل في موقعي الشخصي. ثم بعد فترة من الزمن ومن نمو متابعيّ، بدأت أجتذب عملاء يريدون مني الكتابة عن التسويق الإلكتروني وريادة الأعمال. تطوري أدائي وتطور أعمالي كمدون محترف، وكمدون مستقل ارتبطا إلى حد كبير كباقة عمل واحدة. ما هو أفضل من ذلك هو أنني لم أقع أبدًا في فخ نقص الأفكار للكتابة، فأنا أعيش تلك المواضيع – كخبرات وتجارب – أولاً قبل أن أكتب عنها، وبالتالي فتدويناتي مؤثرة إلى حد بعيد، لأنها منقولة رأسًا من أرض الواقع. الذهاب إلى ما هو أعمقحتى ولو كنت تكتب عن مواضيع تشعر براحة حيال الكتابة عنها، ستظل تقضي الكثير من الوقت في البحث. أنا أعلم أنني أفعل هذا، وسعيد به للغاية. ولكن السر هنا هو التركيز على المواضيع التي لا تتطلب الكثير من البحث، بالإضافة إلى خبراتك المتراكمة في هذه المواضيع بالفعل. فكر بشأن ما تعرفه بالفعل، ويمكن تحويله إلى تدوينات/مقالات. هذه هي أسرع وأسهل تدوينة تكتبها على الإطلاق. فأنت تقوم – ببساطة – بترجمة الأفكار التي ترد إلى ذهنك. هذا ما أفعله بالفعل الآن – في هذه التدوينة – ومن ثم تلاحظ أنها متناسقة ومتسقة أيما اتساق. على الجانب الآخر، ربما تختار أن تقوم بإنشاء قطعة قيمة للغاية من المحتوى التي تتطلب البحث والتنقيح لساعات وربما أيام. قد تكون هذه فكرة جيدة، وقد يكون من الجيد المزج بين الطريقتين (طريقتي تفريغ الأفكار والبحث). أما ما أفضله على نحو شخصي، وأرى أنه زبدة أعمالي، فهو تلك اللحظات التي تتدفق فيها الكلمات من عقلي إلى أصابعي لتصنع قطعة المحتوى التي لا تُرد. وأنا بالطبع لا أدعو إلى استعارة أفكار الآخرين بأي صورة من الصور. يجب أن تكون لك لمستك الخاصة فيما تكتب. حتى ولو كان المجال الذي تكتب فيه مزدحمًا وسبقك فيه آخرون، يجب أن تكون مميزًا. يجب أن تضع إضافة، ولمسة خاصة لم يسبقك فيها غيرك، من واقع إبداعك وخبرتك الشخصية. معضلة وحلحتى هذه اللحظة، ربما يظن البعض منكم أنه بالطبع من الجيد والرائع أن تكتب في المواضيع التي تعرفها، ولكن ماذا لو لم يكن لديك موضوع معين تبرع في الكتابة عنه؟ لمن يعاني من هذه الحالة، أقدم له هذه النصيحة البسيطة: تعلّم .. تعلّم .. تعلّم. الق نظرة على المواضيع التي يعرضها عليك عملاؤك. في مايو 2011 لم أكن أعرف أي شيء عن الوردبريس، العمل الحر، أو التسويق الإلكتروني. بعد عام واحد فقط من القراءة والتعلم والمران ازداد معدل كتابتي في هذه المواضيع سرعة، وبالتالي ارتفع معدل أسعاري كذلك. ربما تكون في حاجة إلى اتخاذ الخطوة الأولى – الصعبة نوعًا ما – التي تساعدك في المضي قُدمًا في موضوع ما، لذلك إذا كنت تشعر أنك لست خبيرًا في أي من الأسواق المربحة التي يروق لك خوضها، ثم اسع بجدية لتصبح أحد الخبراء المتحدثين فيها. في ختام كلامي سأخبرك بشيء واحد فقط: من السهل للغاية أن تكتب عن أي شيء أنت منهمك فيه بالفعل (كما أنا في الووردبريس والعمل الحر وغيرها) أكثر من مجال أنت بعيد عنه كل البعد. لا أنصح – على الإطلاق – أن تكتب في مجال لا يلعب أي دور في حياتك اليومية. عن ماذا تكتب؟الآن وبعد أن أخبرتك بما أظن أنه ينبغي أن تكتب عنه، فأنا أرغب حقًا في معرفة عن ماذا تكتب فعليًا الآن. هل تكتب في مواضيع تشعر بالراحة والألفة معها؟ هل ترفض المقالات التي تتطلب بحث شاق؟ هل انغمست بالفعل في المواضيع التي لا تنتمي إليها والتي تتطلب الكثير من البحث؟ أخبرنا بتجاربك في التعليقات. ترجمة -وبتصرّف- للمقال One Simple Way to Increase Your Freelance Blogging Earnings.1 نقطة
-
لو كنت أبًا، أمًا، كاتبًا مستقلاً، أو لم تكن أي مما سبق، يمكن لهذه المقالة أن تغير حياتك. كثير منا يدخل في عالم العمل الحُرّ، مُمنّين أنفسنا بالحرية في العمل، وبحرية ترتيب الوقت وأن نقرر مع من نعمل، وأي المشاريع نختار، ليس هنالك من يتحكم في دخلنا، وفي ما نكسبه من مال في أعمالنا التجارية أو في حياتنا. تبدو الأمور جذابة بغض النظر عمن أنت، وهذه الأمور تصبح أكثر جاذبية خاصة عندما يكون لك عائلة وأطفال، أعني أنها تبدو فكرة عظيمة، فكرة البقاء في المنزل مع الأطفال، وتكون هناك لاستقبالهم عند العودة من المدرسة، وحتى إنجاز العمل المنزلي ما بين المشاريع، هذا هو بالضبط ما كنت اعتقد أنه يمكنني عندما ولدت ابنتي، إلا أن ذلك لم يحدث تمامًا كما كنت أتخيله، إليكم قصتي قصتيكنت أكتب وأدوّن لعدة سنوات بدافع المتعة في المقام الأول، وللحصول على بعض المال الإضافي، ولكن بعد أن ولدت ابنتي، كان من الواجب الحتمي أن أكون معها في المنزل، ولذلك قررت أن أترك العمل بالطريقة النظامية وأعمل من منزلي ككاتبة مستقلة. ولأتأكد أن نجاحي حتمي في هذا القرار خطوت بجد باتجاه التدريب الذاتي على أن أكون كاتبة مستقلة، حيث بدأت بمتابعة المختصين في هذا المجال، مثل السيدة ليندا - Linda Formichelli، كارول - Carol Tice، ورالف - Mridu Khullar Relph وغيرهم من الكُتاب المشاهير في المدونات لحاسبهم الخاص. كنت أراقبهن وهن يعملن ويكسبن، ولكن بدون كأنهن لا يبذلن جهداً كبيراً، وهذا من منبع إمكاناتهن الشخصية، ولكن التجربة علمتني، أن الفترات القصيرة في الصباح وفي الظهر وما قبل النوم، ليست كافية لتبني إمبراطوريتك الخاصة ككاتب مستقل. كنت أعمل طيلة أيام الأسبوع ومعظم الأمسيات لكي أنهي بعض الأعمال الكتابية التي طُلبت مني، كان بيتي في حالة من الفوضى يرثى لها، وكان الطعام مقتصرًا على الأكل الجاهز، وغير ذلك الكثير. وبعد ذلك كله وجدت صعوبة في إيجاد الوقت لعرض وبيع كتاباتي وللترويج لنفسي ككاتبة مستقلة، والأكثر سوء من ذلك كله، لم يكن لدي الوقت الكافي لزوجي وطفلتي. أصبحت بائسة، لم استطع تفهُم ما يجري حولي، فقد استطاعت معظم النساء من حولي أن يبنين لأنفسهن حياة عملية ناجحة ككاتبات مستقلات من بيوتهن، ولكنني لم أستطع فعل ذلك وبنفس الكفاءة. هنا راودتني فكرة التخلي عن هذا المشروع الذي بدأ وكأنه يقودني إلى لا شيء. هل في الحقيقة أنا كاتبة غير جيدة، كما كنت اعتقد؟هل أنني لم أرغب بالكتابة بكل كياني وجوارحي؟أم أن هناك شيء أكثر من ذلك لم أفقهه؟أيًا ما كانت الأسباب، كنت مصممة على عدم العودة للوظيفة الثابتة مرة أخرى. وبدا لي أنني بحاجة لمساعدة شخص خبير في هذا المجال، شخص مقتدر يقودني ويضعني على المسار الصحيح، لذلك وفي لحظة يأس بعثت برسالة إلكترونية لكارول أخبرها بما أواجهه من صعوبات، لأكون كاتبة مستقلة واعمل من المنزل، وأعرض عليها مقابل مادي لقاء هذه المهمة. ولكن بدلاً من أن تقبل مساعدتي، ردت تقول : هل أنت جادة أنك ترغبين بفعل ذلك كله وحدك؟ أخبرتني أنني لست بحاجة للمساعدة، كلما يلزمني هو أن أتفهم كيف أتعامل مع الواقع. فيوم العمل لدى كارول ينتهي بلحظة وصول أطفالها من المدرسة، ذلك لأنها تعلم تمامًا بمُجرّد وصول أطفالها إلى المنزل فإنه من المستحيل أن تكتب موضوعًا ذا قيمة. لذلك كانت تعمل في المشاريع الكبيرة عندما يكون أطفالها في المدرسة وتترك الأشياء البسيطة لما بعد عودتهم. وأما الثنائي ليندا وزوجها وهما يعملان سويًا من المنزل، فهما يتشاركان في رعاية طفلهما، وعلاوة على ذلك أن والدة ليندا تأخذ ابنهما مرة في الأسبوع حتى تستطيع هي وزوجها العمل كامل اليوم من غير انقطاع. وبالنسبة لرالف أيضًا، فهي تتقاسم مع زوجها المسؤولية في رعاية الأطفال والقيام بالواجبات الاجتماعية تجاه الأصدقاء والأقارب، كلما استدعت الحاجة لذلك. فتوصلت حينها لخلاصة أن نجاحهن كسيدات أعمال لا يعني بالضرورة أن لديهن الوقت الكافي ليتمشين بملابس زاهية في المنتزهات ويحضرن ألذ أصناف الطعام لعائلاتهن ويحضرن الاجتماعات المدرسية وينظفن المنزل أو ينشغلن بحياكة القطع الصغيرة ليملأن بذلك وقت الفراغ، كما كنت أتصور. الواقع أن محاولة إقامة عمل خاص مستقل وتربية أطفال والقيام بمتطلبات البيت والعائلة وتخصيص زمن للأسرة و الأصدقاء، يبدو ذلك كله خلطة جاهزة للفشل. فبعد أن أيقظتني كارول بذلك الرد من أحلامي الوردية، عرفت أنه لا بُد أن أتخلى عن فكرة أن أكون الأم المثالية وأن أتنازل عن الصورة الخيالية التي رسمتها للواقع، وأن أراجع كل ما كنت أفعله و أتصوره. وجاءت لحظة الحقيقة، وكان لابُد أن أتحكم فيما أريد أن أفعله، وكانت الخطوة الأولى لي هي: حديث من القلب إلى القلب مع زوجي، ولأنه الوحيد الذي له دخل مادي من عمله خارج المنزل، فنحن بحاجة إلى من يرعى الطفلة بشكل كلي أثناء النهار، ولأن زوجي يتفهم ما أريد أن افعله أقترح أن يأخذ ابنتنا مرة كل نهاية أسبوع للتنزه، ليترك لي المجال للعمل كل اليوم والتركيز في الأعمال الخاصة، بالإضافة لذلك وجدت مربية لمدة يومين في الأسبوع تجالس طفلتي وأنا أعمل في غرفة المكتب في الطابق العلوي. ولكنني لم أتوقف عند هذا الحدّ، فبدأت التحدث والتشاور مع صاحبة لي في مجال الكتابة وبدأنا بتقليب الأفكار، في كيف تكون منتج من غير أن تهمل في رعاية الأطفال. في ذلك الوقت كنت عضوة في مجموعة كارول للكُتاب المستقلين، واستغليت ذلك بالتواصل مع الآخرين للحصول على أفكار إضافية تساعدني في تربية الأطفال وإدارة الوقت وغيرها من الأمور التي عانيت منها. ثم وضعت كل هذه الأفكار تحت الاختبار ، فلاحظت أن إنتاجي بدأ يتصاعد طردياً، وأصبحت قادرة على أن أكمل كل مسؤولياتي الكتابية وأن استمر في تسويق إمكانياتي الكتابية. فحققت دخلاً لا بأس به في تلك السنة إضافة لتمتعي بالإجازات وساعات عمل محددة في الأسبوع، والأفضل من ذلك كله أنني لا زلت زوجة وأمًا، وأجد دائمًا وقتًا أكون فيه لنفسي، كانت بحق تجربة مذهلة. فإذا كان أحد الوالدين كاتب مستقل، ولا زال يعاني من عقدة أن يكون أمًا أو أبًا مثاليًا، هنا بعض النقاط التي جمعتها من تجاربي السابقة وهي: اعملي على توفير مقدم رعاية لأطفالك، يمكن أن تكون رعاية نهارية أو مربية في البيت لساعات أو صديق أو قريب، لو كانت الأمور المالية متأزمة قليلاً، أوصي بأن تتواصل الأمهات ويرتبن بينهم دور لرعاية أطفال المجموعة بالتناوب.أخّري ما تطلق عليه كارول "الأحمال الثقيلة" إلى أوقات المدرسة أو القيلولة، بحيث أنك تعملين بشكل أكبر في المهام الصعبة التي تحتاج لتركيز عندما يكون الأطفال بعيدين، والأعمال الخفيفة بعد عودتهم.تعوّدي على النهوض مبكرًا أو النّوم متأخرًا أو كليهما، فالصحو مبكرًا أو النوم متأخرًا يعطيك وقتًا أكثر للعمل بحكم أن الأطفال لا يزالون في أسرّتهم.علّمي أطفالك اللعب باستقلالية، فليندا علمت طفلها ليعمل في مشاريعه المسلية بهدوء في ساعات عملها بتركيز، ألغاز أو تلوين أو اللعب بالدمى، بحيث يتعلم أن له مهامه الخاصة ليكملها عندما تكون أمه مستغرقة في الكتابة،لو فشل كل ذلك قدم لطفلك تطبيقات مثيرة أو أشغله بأفلام تناسب خياله وعمره.داومي على إنشاء قائمة واقعية بالمهام التي تريد القيام بها عمليًا، دعونا نواجه الأمر فكونك أمًا تعمل من المنزل، فأن ذلك لا يعني أنك تستطيعين أداء كل المهام التي كتبتها في الورق، فقائمة يومية بثلاث إلى خمس مهام ستكون أكثر واقعية.ابدئي بكتابة قائمة بما فعلتيه، لأننا أحياناً نُحبط عندما لا نستطيع إنجاز كل ما قررنا إنجازه في ذلك اليوم، وذلك ليس معناه أنك لم تحققي بعض المهام. في هذه الحالة فكري في ما تم إنجازه وليس فيما لم يُنجز، وعندها في نهاية اليوم سوف تفاجئين بمدى الإنتاجية التي حققتها.غيري الموقع، خارج المنزل، في غرفة أخرى، أو مقهى أو شرفة ما، فإن تغيير الوضع والظروف المحيطة، ربما يكون كل ما تتطلبه لزيادة إنتاجيتك، حتى تغيير الوضع من طاولة المكتب للأريكة ربما يغير من تسلسل الأفكار.اعملي كل بحثك في الإنترنت دفعة واحدة قبل أن تفصلي الاتصال، فإن الإنترنت هي من أكثر الأماكن التي يضيع فيها الكثير من الوقت، فكثيراً ما تُحدث نفسك أن زيارة قصيرة لفيس بوك و مرور سريع على البريد الإلكتروني لن يضر، ولكنك لحظة تفكر بهذه الطريقة تكون قد وقعت في الشرك.حدّدي المواضيع التي تريدين البحث فيها أكثر أو أن تتأكّدي من صحتها ، فبذلك يمكنك أن تُواصلي الكتابة في فترة واحدة من غير العودة للنت في كل مرة.حدّدي زمنًا لمواقع التواصل الاجتماعي والبريد الإلكتروني واجعليها قاعدة وحافظي عليها ، ذلك يكفيك شر أن تعودي لهذه المواقع كل حين ووقت، فإن هذا يساعدك في الحفاظ على الزمن.حمّلي برامج مثل Freedom أوAntisocial، فمهمة هذه البرامج أن تمنعك من دخول مواقع التواصل لفترة محددة، وعندها ليس لك خيار سوى القيام بعمل مجدي.حاولي معرفة الوقت الذي تكونين فيه أكثر إنتاجية، هذا مهم حين تريد أن تعمل في مشاريع أكثر إنتاجية.اضبطي مُنبّه الساعة ، اعملي لمُدّة 45 دقيقة متواصلة وأعطي نفسك بعدها فسحة قصيرة، فإن ذلك يعطيك وقتًا كافي للتّركيز ومع مرور الوقت ستكون عادة شخصية جيدة، وربما تستغنين مع الوقت عن هذا المنبه.مارسي الرياضة وخذي قيلولة، لأنك ستندهشين بما تفعله قيلولة قصيرة أو رياضة لعدة دقائق، ستعطيك طاقة أكثر وبالتالي إنتاجية أكبر.خصّصي زمنًا لنفسك، فحتى الموظفين يأخذون إجازات، وأنت أحق بها إذا كنت تريد مواصلة عملك بنجاح وخصوصًا لو كان لديك أطفال.استعيني بمصادر خارجية، لماذا تفعلين كل ما تريد فعله بنفسك، في حين يمكنك استئجار آخرين بأجر أقل، فربما يكلّفك قليلاً لكنه أجدى من أن تعمل ذلك بنفسك، كشخص لتنظيم البريد الخاص و شخص يبني موقعك الخاص وأخر يُدير حساباتك على مواقع التواصل الاجتماعي والزمن الذي ستكسبه بالاستعانة بالمصادر الخارجية يتيح لك فرص للبحث عن أعمال أخرى أكثر مردوداً مما تدفعين.استأجري آخرين، وفّري لنفسك زمنًا أكثر باستئجار شخص يُنظّف المنزل أو شخص يحضر الطعام وقومي بالتّسوق عبر الإنترنت وما إلى هنالك.والآن ماذا عنك؟في النهاية، ليس عليك فعل كل ما كتبته في هذا الموضوع، فلك حرية التطبيق، وأنت الأكثر معرفة بما يصلح لك ولعائلتك. جرّبي، تكلّمي، شاوري، ثم اختاري ما يناسبك. هذه النقاط ليست سوى أفكار لتبني حولها الإستراتيجية التي توفر لك الوقت، والأهم أن تتخلى عن فكرة الأم أو الأب المثالي. وعندها فقط يمكنك التخلي عن وظيفتك الحالية وتوفّري وقتًا أكثر لعائلتك وأطفالك.... ترجمة -وبتصرّف- للمقال: How to be a Successful Entrepreneur and a Great Stay at Home Parent.1 نقطة
-
ظننت أنك لم تجربي ذلك، ولو أنك ذكرت ما جربته من خطوات ضمن تفاصيل السؤال كان ليكون أفيد وما كنا لنعيد اختراع العجلة كما يقال، لكن لا بأس، فشخصيا استفدت من ذلك الخطأ. بعد بحث عن بديل عثرت على جملة شرطية خاصة بالتسميات، أرجو أن تجربيها وتخبرينا بالنتائج. لقد عدلت على جوابي السابق بحيث صارت الجملة الشرطية الآن تتضمن اسم التصنيف.1 نقطة
-
في سلسلة من عدة أجزاء سنناقش موضوعًا نظريًّا يُعتبر من أساسيّات هندسة البرامج، وهو أنماط التصميم (Design Patterns)، وسنعتمد لغة JavaScript في نقاشنا لتصاعد شعبيّتها ومرونتها التي تسمح لنا ببناء مشاريعنا وفق أنماط متنوّعة مما سيُسهّل علينا شرح موضوع السّلسلة نمط المُشيِّد (Constructor)يشيع استخدام المُشيّدات في اللغات الكائنيّة التّوجّه، حيث تُستخدم لإنشاء نُسخ (instances) من الأصناف (classes)، ومع أنّ JavaScript ليست لغةً كائنيّة التّوجّه بالمعنى التّقليديّ، إلّا أنّها تسمح بإنشاء نُسخ عن كائنات باستخدام بالمُشيّدات، ويمكن لأيّ دالّة أن تُستخدم كمُشيّد، وذلك بأن نُسبقها بالكلمة new، ولتوضيح هذا النّمط سنقوم بإنشاء مُنبّه (كالّذي تضبطه للاستيقاظ في هاتفك) يمكن ضبطه إلى تاريخ ووقت معيّنين ثمّ تفعيله أو تعطيله حسب الرّغبة: function Alarm(when) { this.setAt = when; this.enable = function() { var startAfter = new Date(this.setAt) - new Date; console.log("Alarm will wake you up after " + startAfter/1000 + " seconds"); this.timeout = setTimeout(function() { console.log("Wake up!"); }, startAfter); } this.disable = function() { if (this.timeout) { clearTimeout(this.timeout); delete this.timeout; console.log("Alarm diabled"); } } } var a = new Alarm("2015-03-19 5:58 PM"); a.enable() // Alarm will wake you up after 8.982 seconds // After a few seconds: // Wake up!في المثال السّابق نُسمّي الدّالة Alarm() مُشيّدًا (constructor)، والكائن a نُسخة (instance). لاحظ أنّ Alarm في المثال السّابق ليست سوى دالّة (function)، فهي ليست صنفًا كما في لغات أخرى مثل Java وC++، إذ تُعتبر الدّوال في JavaScript مكوّنًا من الدّرجة الأولى وتُعامل كما يُعامل أيّ كائن، وهكذا يمكن استخدامها كمشيّد لكائن آخر ممّا يسمح بمحاكاة مفهوم الأصناف الّذي لم يُضَف إلّا مؤخّرًا في JavaScript. من عيوب المِثال السّابق إسناد الدّوال الّتي ستعمل عمل الوظائف (methods) إلى النُسخة ذاتها عند إنشائها، وهذا يعني تكرار محتوى الدّوال في الذّاكرة مع كلّ نسخة جديدة من الكائن Alarm، بينما يمكننا توفير هذا الاستهلاك غير المُبرّر للذّاكرة بإسناد الدّوال إلى النّموذج البدئيّ للكائن (أي إلى Alarm.prototype) مما يسمح بمشاركتها بين كل نسخ الكائن، لتقوم الآلة الافتراضيّة بتنفيذ النّصّ البرمجيّ للدّالّة ذاتها بسياق النّسخة (instance context) الّتي استدعت الدّالة، أي إنّ this تُشير ضمن الدّالة عند تنفيذها إلى النُسخةَ المنشأة وليس الصّنف؛ بالطّبع ليس من المرغوب تطبيق الفكرة ذاتها على المُتغيّرات الأخرى مثل setAt، لأنّه من البديهيّ أن تختلف قيمتها بين نسخة وأخرى. لنُعد كتابة المثال السّابق بصورة أفضل: function Alarm(when) { this.setAt = when; } Alarm.prototype.enable = function() { var startAfter = new Date(this.setAt) - new Date; console.log("Alarm will wake you up after " + startAfter/1000 + " seconds"); this.timeout = setTimeout(function() { console.log("Wake up!"); }, startAfter); } Alarm.prototype.disable = function() { if (this.timeout) { clearTimeout(this.timeout); delete this.timeout; console.log("Alarm diabled"); } } var a = new Alarm("2015-03-19 6:21 PM"); a.enable(); // Alarm will wake you up after 30.243 seconds // After 30 seconds... // Wake up!هذا الأسلوب في إنشاء الأصناف شائع جدًّا، وهو يتطلّب فهمًا دقيقًا لآليّة الوراثة في JavaScript؛ إذ يُبنى كلّ كائنٍ فيها على كائن آخر يُسمّى النّموذج البدئيّ (prototype)، ويقوم هذا الكائن الأخير على كائن ثالث أعلى منه في السّلسلة هو نموذجه البدئيّ، وهكذا حتّى نصل إلى null الّذي ليس له نموذج بدئيّ بحسب تعريف اللّغة. في مثالنا السّابق الكائن Alarm.prototype هو النّموذج البدئيّ للكائن a، وهذا يعني أنّ كل الخواصّ المُسندة إلى Alarm.prototype وما فوقه ستكون مُتاحة للكائن a، ولو كتابنا برنامجًا مُشابهًا بـJava لقُلنا إنّ Alarm صنفٌ وإنّ a نُسخة عن هذا الصّنف (instance). عندما نحاول الوصول إلى الخاصّة a.setAt، فإنّ مُفسِّر JavaScript يبدأ بالبحث عن هذه الخاصّة من أدنى سلسلة الوراثة، أي من الكائن a ذاته، فإنّ وجدها قرأها وأعاد قيمتها، وإلّا تابع البحث صعودًا إلى النّموذج البدئيّ وهكذا... وطبيعة JavaScript هذه هي ما سمح لنا بإسناد الوظيفتين enable وdisable إلى Alarm.prototype مطمئنّين إلى أنّها ستكون مُتاحة عند قراءة a.enable() وa.disable(). يمكن التأكّد من النّموذج البدئيّ للكائن a كما يلي: Object.getPrototypeOf(a) == Alarm.prototype; // trueالأصناف في ECMAScript 6يُقدّم الإصدار الأحدث من JavaScript مفهوم الأصناف (classes) بصورته التّقليديّة المعروفة في اللّغات الأخرى، إلّا أنّه ليس سوى أسلوب آخر لصياغة النّماذج البدئيّة (أو ما يُسمّى syntactic sugar)، وهذا يعني أنّه نموذج الوراثة في JavaScript لم يتغيّر. يمكننا إعادة كتابة المثال السّابق بصياغة الأصناف في ES6 كما يلي: class Alarm { constructor(when) { this.startAt = when; } enable() { var startAfter = new Date(this.setAt) - new Date; console.log("Alarm will wake you up after " + startAfter/1000 + " seconds"); this.timeout = setTimeout(function() { console.log("Wake up!"); }, startAfter); } disable() { if (this.timeout) { clearTimeout(this.timeout); delete this.timeout; console.log("Alarm diabled"); } } }وستُسند الدّوال enable() وdisable() إلى Alarm.prototype تمامًا كما في المثال الذي سبقه. يُذكر أنّ استخدام new ليست الطّريقة الوحيدة لتشييد الكائنات، إذ يمكن استخدام الوظيفة Object.create() لتُعطي النّتيجة ذاتها: var a = Object.create(Alarm.prototype); Object.getPrototypeOf(a) == Alarm.prototype; // trueإسناد الخواصّ إلى الكائناتJavaScript لغة ديناميكية، وهذا يعني أنّه يمكن إضافة وحذف الخواصّ من الكائنات وتعديل نماذجها البدئيّة أثناء التّنفيذ، وهذا ما يمنحها القسم الأكبر من مرونتها ويجعلها مناسبة للاستخدام في بيئة مُعقّدة مثل بيئة الويب، وليس من الغرابة أن توفّر اللّغة وسائل متعدّدة لإسناد الخصائص إلى الكائنات لتلبية الحاجات المتنوّعة لتطبيقات الويب. ماذا لو أردنا تغيير قيمة المنبّه في مثالنا السّابق بعد تفعيله؟ لربّما ترادونا للوهلة الأولى إمكانيّة تغيير قيمة الخاصّة setAt بالطّريقة التّقليدية: a.setAt = "2016-03-03 03:03 PM"; // or a["setAt"] = "2016-03-03 03:03 PM";لكنّ نتيجة هذا الفعل لن تكون كما يُتوقّع، فلو عدنا للمثال السابق وتمعّنا في خواصّه، للاحظنا عيبًا في كيفيّة عمل المُنبّه، إذ إنّ الخاصّة setAt مكشوفة ويمكن تغيير قيمتها في أيّ وقت، حتى بعد تفعيل المُنبّه، إلّا أنّ تغييرها بعدئذٍ لن يغيّر اللّحظة الحقيقيّة الّتي سينطلق فيها المنبّه كما يتضّح لنا عند قراءة النّصّ البرمجيّ، ولذا فنحن هنا أمام حلّين: إمّا منع تغيير قيمة الخاصّة setAt وجعلها للقراءة فقط بعد إنشاء المُنبّه، أو إيقاف المنبّه وإعادة ضبطه في كلّ مرّة تُغيّر فيها قيمة الخاصّة setAt، وكلا الحلّين متاحان إذا كنّا على علم بأساليب إسناد الخصائص في JavaScript. توفّر اللّغة الوظيفة Object.defineProperty() الّتي تسمح بتعريف خواصّ لكائن ما مع إمكانيّة التّحكم بتفاصيل هذه الخاصّة، ومن هذه التّفاصيل: هل الخاصّة قابلة للكتابة؟ (writable)هل يجب المرور على هذه الخاصّة عند سرد خواصّ الكائن؟ (enumerable)ما الذي يحدث عند إسناد قيمة للخاصّة؟ (set)ما الذي يحدث عند قراءة قيمة الخاصّة؟ (get)وبهذا يمكننا بسهولة منع تغيير قيمة الخاصّة setAt بعد إسنادها: function Alarm(when) { Object.defineProperty(this, "setAt", { value: when, writable: false }) } Alarm.prototype.enable = function() { var startAfter = new Date(this.setAt) - new Date; console.log("Alarm will wake you up after " + startAfter/1000 + " seconds"); this.timeout = setTimeout(function() { console.log("Wake up!"); }, startAfter); } Alarm.prototype.disable = function() { if (this.timeout) { clearTimeout(this.timeout); delete this.timeout; console.log("Alarm diabled"); } } var a = new Alarm("2015-03-19 7:51 PM"); a.setAt = new Date("2016-03-19"); console.log(a.setAt); // "2015-03-19 7:51 PM"لاحظ أنّ قيمة setAt لم تتغيّر. هذا حلّ جيّد، لكن سيكون من الأفضل السّماح للمُستخدم بتعديل قيمة المنبّه، وعندها سنلجأ لإيقاف المنّبه وإعادة ضبطه كما يلي: function Alarm(when) { var _hidden_value = new Date(when); Object.defineProperty(this, "setAt", { set: function(newValue) { _hidden_value = new Date(newValue); if (this.timeout) { this.disable(); console.log("Alarm changed to " + newValue); console.log("You need to re-enable the alarm for changes to take effect"); } }, get: function() { return _hidden_value; } }) } Alarm.prototype.enable = function() { var startAfter = new Date(this.setAt) - new Date; console.log("Alarm will wake you up after " + startAfter/1000 + " seconds"); this.timeout = setTimeout(function() { console.log("Wake up!"); }, startAfter); } Alarm.prototype.disable = function() { if (this.timeout) { clearTimeout(this.timeout); delete this.timeout; console.log("Alarm diabled"); } } var a = new Alarm("2016-03-03 03:03 PM") a.enable(); // Alarm will wake you up after 30221933.66 seconds a.setAt = "2015-03-19 8:05 PM"; // Alarm changed to 2015-03-19 8:05 PM // You need to re-enable the alarm for changes to take effect a.enable() // Alarm will wake you up after 20.225 seconds // After 20 seconds... // Wake up!لاحظ أنّنا سنحتاج إلى مُتغيّر سرِّيِّ (_hidden_value) نُخزّن فيه القيمة الفعليّة لوقت التّنبيه. متى أستخدم هذا النّمط؟نمط المُشيّد لا يحتكر بنية مشروعك عند استخدامه؛ معنى هذا أنّه لا شيء يمنعك من استخدام نمط المُشيّد مع أي نمط آخر عند الحاجة لذلك، فيمكن (بل يشيع كثيرًا) استخدام المُشيّدات ضمن الوحدات (modules) ثمّ تصديرها لاستخدامها من موضع آخر في المشروع، ومثال ذلك أشياء مثل EventEmitter وStreams في Node.js. كما يمكن بناء أنماط أخرى سنتعرّف عليها لاحقًا على أساس المُشيِّدات مثل نمط الكائن المُتفرّد (Singleton) ونمط المُراقِب (Observer pattern). المصادر: شبكة مُطوّري موزيلّا: Inheritance and the prototype chainكتاب JavaScript Design Patterns لمؤلّفه Addy Osmani1 نقطة
-
وعليكم السلام ورحمة الله وبركاته. يمكنك استعمال الجمل الشرطية الخاصة بمنصة بلوجر في رأس القالب head لإجراء التعديل الذي ترغبين فيه. لأجل ذلك قومي بالتالي: في ملف القالب ومباشرة قبل الوسم: </head>أضيفي الكود التالي: <b:if cond='data:blog.searchLabel == "LABEL"'> <style> body { background-image: url(DIRECT_LINK_TO_BACKGROUND_IMAGE); background-position: center; background-repeat: repeat; background-attachment: fixed; } </style> </b:if>مع ملاحظة أنه سيتوجب عليك إجراء التعديلات التالية على الكود أعلاه بما يناسبك: تغيير LABEL إلى اسم التصنيف أو التسمية التي ترغبين في جعل الخلفية مختلفة عند زيارتها.تغيير DIRECT_LINK_TO_BACKGROUND_IMAGE إلى رابط مباشر لصورة من اختيارك إذا رغبت في جعل الخلفية صورة، أو يمكنك تخصيص ذلك الكود الخاص بوسوم CSS بما يناسبك، لأنني أفترض أنه لديك خبرة في التعامل مع CSS طالما تعملين على تطوير قالب بلوجر.سيكون عليك تكرار ذلك الكود حسب التسميات التي لديك في المدونة. مصادر:http://helplogger.blogspot.com/2012/04/how-to-add-different-backgrounds-in.htmlhttp://www.bloggersentral.com/2010/08/targeting-specific-pages-with.htmlhttp://stackoverflow.com/questions/16592681/blogger-url-condition-statementshttps://gist.github.com/oliverdoetsch/153334604fdda9fe91911 نقطة
-
تحدّث كلّ من upgrade وdist-upgrade الحزم انطلاقًا من المصادر الموجودة في الملفّ /etc/apt/sources.listيمكن الفرق بين الاثنين أنّ عمل upgrade يقتصر على إصدارات جديدة من الحزم المثبَّتة، أيّ أنّه لن يُضيف حزما غير موجودة. أمّا dist-upgrade فيُمكن أن يُضيف أو يحذف حزمًا جديدة. فلنفرض أنّ الإصدار الجديد من برنامج مثبَّت يتطلّب اعتماديّات (حزم) جديدة؛ في هذه الحالة لن يؤدّي تنفيذ أمر sudo apt-get upgrade إلى تثبيت الإصدار الجديد من البرنامج لأنّ ذلك يستدعي إضافة حزم جديدة؛ أمّا أمر sudo apt-get dist-upgradeفسيُثبّت الإصدار الجديد واعتماديّاته. ملحوظة: من الأفضل قبل تثبيت الحزم عبر أحد الأمرين السّابقين، تحديثُ لائحة الحزم وعناوين مستودعاتها عبر الأمر: sudo apt-get update1 نقطة
-
للأسف هذه مُشكلة تواجه الجميع، الكثير من الأصدقاء أو الأقارب يظن أنك جاهز لخدمته، وأنّك لا تملك أي مشاغل باعتبار أنك جالس خلف حاسوبك، بل إن بعضهم يظن أنّه أسدى إليك معروفًا بسماحه لك بالعمل على حاسوبه وصيانته، فأنت تكسب خبرة بذلك!، في الحقيقة لا يوجد حل سحري، ببساطة عليك أنّ تتشجّع وتقول: "لا، لا وقت لدي"، أو اطلب مقابلًا لعملك، لأنّ العوام لا تحترم الأشياء المجانيّة عامّةً، ووقتك هو رأس مالك.1 نقطة
-
لتحصل على الخبرة يجب عليك أن تعمل بشكل مجاني في البداية، إن كنت مُصمّمًا وكان موقعك المفضل يفتقر إلى شعار جذّاب، صمّم له شعارًا وقدمه هديه لصاحبه مجانًا، إن كنت مُبرمجًا اعمل على دعم المصادر المفتوحة كما يحدث الأمر في موقع Github.com، الجميع هناك يعمل بدون مُقابل، وكل مُطوّر يهتم بأعماله بشكل جدّي، وذلك لسبب بسيط، لأنّ هذه المُساهمات تعتبر بالنسبة لهم كالسيرة الذاتيّة، ناهيك عن الخبرة المُكتسبة، هل أنت كاتب ومُدوّن، اكتب في مدوّنة خاصّة بك، اكتب في مُجتمع حسوب، يوجد الكثير من الحلول. أنصح بقراءة هذه المقالة على الأكاديميّة، فقد تساعدك على فهم الأمور بالشكل الأمثل "كيف تُسوّق لنفسك وتحصل على أول زبائنك"1 نقطة
-
توجد طريقة سهلة، استخدم الأمر: mysql -u root -e 'use db_test'إذا كانت قاعدة البيانات موجدة فلن يظهر أي خطأ، إن لم تكن موجودة فستحصُل أخطاء. انطلاقًا من هذه الملاحظة يُمكنك اختبار رمز العودة Return code إذا كان 0 فهذا يعني ألّا أخطاء؛ أو على النّحو التّالي مثلًا: if ! mysql -u root -e 'use db_test'; then ## إن لم تكن قاعدة البيانات موجودة فسيُنفَّذ هذا الجزء من البرنامج fi1 نقطة
-
هل أنت في حيرة من أمرك بخصوص أي الخدمات والتطبيقات التي يجب عليك استخدامها للقيام بأعمالك وإدارة شركتك الناشئة على الوجه الأمثل؟ إذن هذا المقال قد كُتب خصيصًا لك؛ حيث سنُقدّم 12 خدمة أساسية، كما راعينا اختيار الخدمات مفتوحة المصدر، أو تلك التي تسمح ميزانيات الشركات الناشئة تحمل نفقاتها. 1. Trello لإدارة المشاريع تطبيق وموقع Trello هما إحدى الأدوات المجانية التي تساعدك على إدارة مشروعك وتنظيم عملك ومهامك – ليست المهام اليومية فحسب، ولكن الخطط المستقبلية كذلك – وذلك من خلال لوحات تمثل المشروعات، بداخلها توجد أقسام متعددة، وبداخل الأقسام تُضاف المهام كي يسهُل عليك متابعتها. بإمكانك أيضًا إبقاء إحدى المشروعات سرية وخاصة بك، أوإضافة أعضاء فريقك للعمل معك؛ حيث تخصص لكل شخص مهمة محددة بوقت، وبذلك يُصبح عملك بالكامل مرتّبًا ومنظّمًا. خدمات أخرى بديلة: AsanaBasecampمدير المشاريع (عربي)2. NameCheap لحجز أسماء النّطاقات لا يتميز موقع NameCheap بتوفيره لكافة الامتدادات فحسب، أو بتقديمه أسعارًا زهيدة لأسماء النطاقات مقارنة بالمواقع الأخرى فحسب، وإنما يتميز أيضًا بلوحة تحكم بسيطة وغير معقدة، كذلك يقدم خدمة "WhoisGuard Privacy Protection" مجانًا لمدة عام كامل ويوفّر دعمًا فنيًّا سريعًا ومميزًا. ويبدأ سعر اسم النطاق في موقع NameCheap من 10 دولارات للامتداد ".com"، وفي حالة حجزك اسم النطاق لأول مرة، فلن يتعدى سعره 4 دولارات لمدة عام. ويوفر الموقع العديد من طرق الدفع المختلفة مثل PayPal وبطاقات VESA وMasterCard، وغيرها من طرق الدفع المتنوعة. خدمات أخرى بديلة: GoDaddyname.com1and13. DigitalOcean لاستضافة المواقع والتّطبيقات إنها الاستضافة السحابية الأسرع والأنسب لإدارة موقعك من خلال لوحة تحكم بسيطة ومرتبة، وذات خوادم سريعة الإقلاع؛ فلن يستغرق إعداد الموقع سوى 55 ثانية فقط ليكون بعدها مُتاحًا على الإنترنت، كما تتميز كافة خطط الاستضافة التي تبدأ أسعارها من 5 دولارات شهريًّا بمعدل نقل بيانات (bandwidth) يبدأ من 1 تيرابايت/الشهر بسرعة 1 جيجابت/ثانية يمكن زيادته، كذلك تحتوي كافة الخوادم على أداة KVM لتحسين أداء الخادم، وتوفير الحماية القصوى له. وبخصوص الأجزاء المادية التي تتكون منها خوادم استضافة Digital Ocean، فإنها تتكون من معالجات سريعة من النوع Hex Core، وذاكرات تخزين من النوع EEC RAM، بالإضافة إلى RAID SSD Hard Storage التي تحسن من أداء وسرعة الموقع. خدمات أخرى بديلة: RackspaceLinodeAmazon Web Services4. Dropbox للتخزين السحابي تقدم Dropbox مبدئيا مساحة 2 جيجابايت مجانية في خدمتها للتخزين السحابي، يمكن رفعها إلى 16 جيجابايت عبر دعوة أصدقاء للخدمة (حيث تحصل على 500 م.ب زيادة عن كل صديق)، ويمكنك تخزين كل أنواع الملفات عليها لتصبح متوفرة دائمًا، كما يمكنك الوصول إليها من أي هاتف ذكي أو جهاز لوحي أو كمبيوتر، في أي وقت تريد، ومن أي مكان. يمكنك أيضا مشاركة هذه الملفات مع فريق العمل من أجل التعاون المشترك لإنجاز المهام بالتزامن. يمكن ترقية المساحة الخاصة بك إلى 100 غيغابايت مقابل 1.99 دولار شهريًّا، أو إلى 1 تيرابايت مقابل 9.99 دولار شهريًّا. خدمات أخرى بديلة: Google Drive Amazon Cloud DriveBox5. Wordpress لإدارة المحتوىيعتمد ما يقرب من 23% من مواقع الإنترنت على WordPress، كونه مفتوح المصدر ويقوم بتطويره آلاف المطورين والمبرمجين المحترفين من كل دول العالم. كما يمكن تطويعه ليعمل بالشكل الأمثل الذي تريده؛ فلا يوجد فرق بين استخدامه كمدونة أو كمتجر الكتروني لأنه ملائم للجميع ولكافة الأفكار. ويقدم موقع WordPress قاعدة بيانات ضخمة تحتوي على آلاف القوالب والاضافات المجانية التي تساعدك في عمل أي شيء تريده. أنظمة إدارة محتوى بديلة: جوملاDrupal 6. OpenCart لبناء متجر إلكتروني OpenCart هو برنامج مفتوح المصدر لإنشاء متجر إلكتروني متكامل؛ حيث يمكنك من إضافة عدد غير محدود من الأقسام والمنتجات والمصانع والعملات واللغات والتقييمات. كما يتوفر مع البرنامج أكثر من 20 طريقة لقبول الدفع من العملاء. وOpenCart مناسب لمحركات البحث، ومدمجة معه لوحة تحكم بسيطة تعطيك نتائج وتحليلات شاملة حول كل كبيرة وصغيرة بموقعك. متاجر إلكترونية بديلة: OSCommerceMagentoPresta shop7. Google Analytics لتحليل المواقع خدمة التحليلات المقدمة من Google هي الأشهر من بين مثيلاتها المجانية؛ فهي توضح لك كل شيء بخصوص زوار موقعك من المكان الذي أتى منه الزائر لموقعك، وحتى يخرج من الموقع. ولا تقف Google Analytics عند تحديد أي الصفحات قد شوهدت، ولكن تعطيك معلومات مفصلة عن نوعية الزائر؛ حيث توضح لك إحصائية بالزوار الفريدين الذين دخلوا الموقع للمرة الأولى، والزوار العائدين للموقع. كذلك توضح Google Analytics نوعية جهاز المستخدم، نظام التشغيل، نوع المتصفح، وتقدم لك إحصائيات متكاملة عن عدد الزيارات والزوار خلال مدة زمنية محددة. خدمات أخرى بديلة: PiwikBloomberg8. LiveChat للتواصل مع العملاء إذا كنت تدير موقعًا لبيع إحدى المنتجات، أو تقدم خدمة ما، فحتمًا ستحتاج إلى خدمة LiveChat للدردشة الفورية مع العملاء بشكل مفتوح ومباشر. إذ تتميز هذه بعدد من المميزات، منها: إمكانية تقسيم فريق العمل إلى أقسامنظام تذاكر الدعم الفنيحماية المحادثةعمل تقارير نهائية لكافة المحادثاتإمكانية وضع مهام للفريقإمكانية توجيه المحادثات للعميل فور الانتهاءتقييم الخدمة فور انتهاء المحادثة.خدمة LiveChat ليست مجانية؛ فهي بمقابل 39 دولارًا شهريًّا للمواقع متوسطة الحجم، و59 دولارًا شهريًّا للشركات الكبيرة ذات التعاملات الكبيرة والكثيرة؛ لأنها توفر خدمات أكثر. خدمات أخرى بديلة: خدمة Pure Chatخدمة Mibew9. Osticket للدّعم الفنّي لأصحاب المواقع الناشئة الصغيرة الذين يريدون خدمة للدعم الفني تكون بسيطة دون الدردشة المباشرة مع العملاء، نقدم لهم Osticket المفتوح المصدر؛ حيث يمكنك عمل نموذج مخصص وإضافة كافة الحقول التي تريدها إلى هذا النموذج، كما يمكنك إضافة أقسام بعدد غير محدود كقسم الدعم الفني، وقسم المبيعات. ويتمتع Osticket بخصائص متنوعة مثل خاصية إعادة توجيه الرسائل؛ وذلك في حالة أن العميل اختار القسم الخطأ. ويَمنع المستخدم من إضافة نفس التعليق مرتين في نفس الوقت، كذلك فهو مزود بالردود الآليّة لإعلام العميل بأن شركتك قد استلمت رسالته. ويمكن للعميل الاستفسار عما حدث بشأن شكواه من خلال لوحة تحكم مخصصة لهذا الغرض. خدمات بديلة: eTicketHelpDesk LiteOTRS10. HootSuite لإدارة الشبكات الاجتماعية أنت بحاجة إلى نظام محكم لإدارة الشبكات الاجتماعية، فبدلاً من تخصيص وقت معين لموقع فيس بوك، ووقت آخر لموقع تويتر، أصبح كل ما عليك فعله هو تخصيص وقت محدد لموقع HootSuite؛ وذلك لإدارة كافة الشبكات الاجتماعية من مكان واحد فقط باحترافية تامة؛ حيث بإمكانك جدولة المنشورات لكافة الشبكات التي تتعامل معها، ومتابعة التقارير والإحصائيات الخاصة بكل شبكة اجتماعية من مكان واحد. يمنحك HootSuite حسابًا مجانيًّا لاستخدامه مع ثلاثة شبكات اجتماعية مختلفة، أما إن أردت أن تتمتع بكافة الخصائص فهناك حساب مدفوع بقيمة 8.99 دولار شهريًّا. خدمات أخرى بديلة: MarketMeSuiteSprout SocialSendibleOktopostAgora Pulse11. MailChimp لإنشاء القوائم البريدية موقع MailChimp هو أحد المواقع التي تتيح لك إنشاء قوائم بريدية والتي تعد من أهم الخدمات التي يحتاج إليها أي موقع سواء كان جديدًا أو قديمًا؛ فهي تحفظ الزوار وتحثهم على الرجوع إلى الموقع مرة أخرى. ويقدم لك موقع MailChimp معلومات مفصلة عن المشتركين بقائمتك البريدية، كما يمكنك إرسال رسائل تلقائية مجدولة مسبقاً لمن تريد من المشتركين حسب صفات معينة فيهم، مثل أعمارهم وجنسهم وبلادهم في الوقت الذي تحدده. خدمات أخرى بديلة: AWeberGetResponse12. PayPal للدفع الإلكتروني حتما أنت بحاجة إلى خدمة من خلالها تستقبل الدفع من عملائك، وتريد وسيلة آمنة لا يمكن للمخترقين أن يتخطوها، لذلك نحن نقترح عليك موقع PayPal الشهير؛ فهو يقدم خدمات الدفع الإلكتروني الاحترافية والتي تجعله خدمة الدفع الإلكتروني الأولى على مستوى العالم. يوفر لك PayPal –بجانب الحماية القوية– كافة الأدوات التي تحتاج إليها لتمكين الدفع في موقعك، بالإضافة إلى كونه اسم موثوقًا به من قبل ملايين العملاء. بدائل PayPal: Stripe2Checkoutكاش يو (عربي)13. Google Apps for Work للبريد الإلكتروني احصل على بريد إلكتروني احترافي بامتداد اسم النطاق الخاص بك لنشاطك التجاري عبر الإنترنت باستخدام Google Apps for Work التي توفر أدوات مخصصة للأنشطة التجارية تتيح لك تنفيذ المزيد من المهام، بتصميم مناسب تمامًا لفرق العمل. ويوفر لك Google Apps بريدًا إلكترونيًّا احترافيًّا بسعة 30 جيجابايت وفي زيادة مستمرة، وبدون إعلانات، وبحماية شديدة من الرسائل المزعجة، بسعر 5 دولارات في الشهر أو 50 دولارًا في السنة لكل مستخدم. أو يمكنك الحصول على سعة تخزينية غير محدودة وبإمكانيات أكثر مقابل 10 دولارات في الشهر. Google Apps متكامل مع باقي خدمات Google ومنها Drive التي تطرقنا لها بالأعلى، ويمكنك متابعة البريد الإلكتروني الخاص بك من أي مكان باستخدام الهاتف الذكي، أو الجهاز اللوحي أو جهاز الكمبيوتر. كما يقدم Google Apps إمكانية إجراء محادثات فيديو جماعية. خدمات أخرى بديلة: خدمة Zohoتطبيق RoundCupeموقع Dotsterإلى هنا نكون قد قدمنا إليكم 12 تطبيقًا وخدمة هامة جدًا وأساسية لكل من يود أن يبدأ شركته الجديدة أو موقعه الجديد عبر الإنترنت.1 نقطة