اضغط هنا للحصول على العضوية الذهبية في منتدى سوالف سوفت

اتصالاتالانترنتالانترنت العربية

برنامج زحمة أو لا للآي فون – تابع حركة السير على جسر الملك فهد

زحمة أو لا

فكرة زحمة أو لا بدأت في العام ٢٠٠٨، واطلاق الموقع بنسخته الأولى كانت في العام ٢٠٠٩. وفي العام ٢٠١٠ كنا قد وسعنا من نطاق الفكرة، كونها تغطي حالة السير في جسر الملك فهد الذين يربط بين السعودية والبحرين فقط، الى أن تغطى كامل المملكة. هذه النسخة لم تلاقي نجاحاً، وفشلت تماماً، نظراً لتعقيدها وعدم عملها بالطريقة الصحيحة. اضافة الى أن المستخدمين كانوا مهتمون بالجسر فقط.

 

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

كنا قد حاولنا في العام ٢٠٠٩ أثناء اطلاق الموقع، التحدث مع المسؤولين في الجسر، لمعرفة ما ان كان ممكناً وضع كاميرات أو أجهزة حساسة لخدمة الفكرة، الا أنهم رفضوا هذا كلياً

أما الطريقة التي اتبعناها طوال ستة أشهر من تشغيلنا للموقع في العام ٢٠٠٩ الى ٢٠١٠، كان تؤدي الغرض، لكنها غير ثابتة. كنا نعتمد على من يمرون بالجسر يومياً وفي أوقات مختلفة. لكن أحياناً يتعذر على الكثير منهم أن يمروا بالجسر، أو ينسى الارسال، أو لا يهتم بالأمر

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

من هنا جاءت فكرة أن نجعل التطبيق لا يقبل المدخلات الا لو كنت فعلاً على الجسر. شكراً للـ GPS

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

لكن حتى لو لم يفعل المستخدمون ذلك. أضفنا في البرنامج خاصية تستبعد المدخلات البعيدة كلياً عن البقية، في الفترة نفسها. فمثلاً، لو وصلت للبرنامج ٦ مدخلات في خلال ١٥ دقيقة، كانوا كالتالي:

الأول: أضاف فاضي

الثاني: فاضي نوعاً ما

الثالث: فاضي نوعاً ما

الرابع: مزدحم

الخامس:  فاضي نوعاً ما

السادس: فاضي

سيتم استبعاد ادخال الشخص السادس، ويتم احتساب مدخلات الخمسة فقط، ويؤخذ معدلهم

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

١. رسم بياني يوضح حالة السير على الجسر لليوم، الأسبوع، الشهر.

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

 

لتحميل التطبيق على الآي فون:

https://itunes.apple.com/us/app/zhmt-aw-la/id654895985?mt=8

ان لم يكن لديك آي فون، يمكنك مشاهدة حالة السير فقط على موقع زحمة أو لا:

http://www.zahmaola.com

لا يسمح بنقل هذا المحتوى من سوالف دون الاشارة برابط مباشر

محمد الفارس

محمد الفارس، مؤسس بلوميل bluemeel.com

اقرأ أيضا:

‫27 تعليقات

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

    بناء background process يقوم بمعرفة الاحداثيات الحالية للسياره واذا كانت الاحداثيات ضمن منطقة الجسر فيقوم ال process بتشغيل timer وعند نهاية الاحداثيات يقوم بايقاف ال timer وارسال البيانات لتتم معالجتها بناءا على قراءات اخذت من اصحاب المشروع مسبقا

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

    1. مرحبا محمد

      هذا بالضبط ما كتبته أنا في الفكرة الثانية

      المشكلة الوحيدة اللي اكتشفناها حتى الآن مع مثل هذي الفكرة هو استنزاف البطارية، بسبب أن البرنامج يتحقق من الموقع كل فترة

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

      لذلك جالسين نبحث عن طريقة تخلي البرنامج ما يستهلك البطارية حتى لو ترك في الخلفية شغال

      1. اذا كانت تلك مشكله
        ف اطلب من المستخدم فتح البرنامج عند بداية الجسر
        واذا نسي اقفاله يقوم البرنامج بانشاء منبه للمستخدم ب ان يقوم باطفاء ال GPS
        تماما ك reminder

  2. لا يمكن أن تطلب من المستخدم اغلاق ال gps يا محمد لأنه يستخدمه في أمور أخرى. ربما قصدك أن نطلب منه اغلاق البرنامج نفسه. هذا حل يديهي وأكيد انه خطر في بالنا 🙂 . لكنه غير عملي. لا يمكن أن تطلب من المستخدم أن يشغل ويغلق البرنامج وكأننا في العام ١٩٩٥ 🙂

    الحل الصحيح، هو ايجاد حل لمشكلة استنزاف البطارية وترك المستخدم حر في أن يشغل أو يغلق البرنامج

    1. اوكي قم ب اخذ الاحداثيات الخاصه باطراف الجسر وما حولها
      وافحص احداثيات الموقع الحالي … ومن النتيجة التي ستحصل عليها يمكنك تقدير موقعه الحالي وكم يحتاج لكي يصل الجسر وعندها يمكن عمل sleep لفحص الموقع لمدة معينه بناءا على الاحداثيات الحاليه فلا داعي للفحص المستمر

      وكذلك الامر عند مغادرة الجسر يمكن فعل الشيئ نفسه
      قم بالتاكد من المكان الحالي للشخص اذا كان ذاهب ب اتجاه الجسر او قام ب انهاء الجسر
      بالتاكيد سيفيدك ف التقليل من استنزاف البطاريه

      1. لم أفهم الفكرة يا محمد! الموضوع نفسه. المشكلة في التشييك.التطبيق لازم يشيك على الموقع الحالي كل شوي. حتى لو عملنا له sleep لما يقرب الجسر. راح يرجع يشيك كل شوي لما يبعد عن الجسر

        المشكلة في التشييك كل شوي

  3. اوكي اخوي الفكره انو انا مكاني حاليا يبعد عن الجسر مسافه ربع ساعه بالسياره
    ما في داعي اعمل تشييك كل شوي وانا عارف انو ما رح اكون وصلت الجسر
    بوقف التشييك لفتره ربع ساعه كامله
    وبعدها برجع افحص الموقع
    اذا كان بعيد مثلا 5 دقايق برجع اوقف التشييك لمده 5 دقايق وبعدها اشيك
    اذا كان قريب من الجسر ابدا كل شوي اشيك … ولما ينتهي الجسر ما في داعي للتشييك على الاقل ساعه او ساعتين على اعتبار انو انتهى من الجسر

    اتمنى تكون الفكره واضحه اخوي محمد

    1. يشيك بشكل متكرر لحد مرتين او ثلاث قبل ما يدخل الجسر اشي ضروري اتوقع بالبرنامج ولا بد منها
      ممكن تقلل النسبه من خلال قراءات تاخذها انت قبل الجسر
      مثلا احداثيه معينه ظهرت معك بتعرف من خلالها انو هاي السياره فعلا باتجاه الجسر وبعد دقيقه رح تكون وصلت الجسر …. ومن بعد الدقيقه وبدون تشيك اضافي يبدا العداد

      1. محمد أول شي مستحيل تعرف اذا السيارة رايجة للجسر أو لا. أشياء كثيرة حول الجسر يمكن أن يقصدها المستخدم

        لكن حتى الآن ما وضح لك قصدي على ما يبدو

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

        المرة الجاية اللي راح يروح فيها، يمكن بعد أسبوع، أو اثنين، أو شهر. ايش تسوي بالبرنامج والتشييك هنا؟

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

    مثلاً، لو خلينا البرنامج يشيك على الموقع الحالي كل نص ساعة، هذا ممكن ما يستهلك البطارية

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

    مشكلة كبيرة بالبطارية في أي برنامج يشيك عالموقع الحالي كل شوي

    ميزة البرنامج الآن انه يشيك عالموقع فقط لما تضغط على ارسال

  5. رسينا عالمعطيات التاليه
    برنامج يقوم باخذ مجموعه من النقاط على الجسر عن طريق GPS في حال كان على الجسر ويبعث المعلومات للموقع
    البرنامج نفسه غير قادر على تحديد اتجاه المستخدم والمتابعه التلقائيه تستنزف البطاريه
    المستخدم يشغل البرنامج ويفتحه براحته ومتى ما بده
    ما في داعي ل لاي تنبيه من البرنامج ان يقوم المستخدم ب اطفاءه لانه حر

    بنرجع للفكره الاولى لما يروح المستخدم عالجسر يشغل التشيك يلي بتاخذ الاحداثيات وبعد ما يطلع من الجسر يوقف التشيك بشكل ذاتي
    ولما يرجع للجسر كمان مره يشغلها وبعد ما ينتهي البرنامج بشكل ذاتي ينهي التشييك

  6. المستخدم يا محمد اذا كان راح يشغل البرنامج ويطفيه. ما نحتاج لكل الكلام اللي قلته. والبرنامج ما يستهلك البطارية في ساعة أو ساعتين اللي هي فترة وجوده بالجسر

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

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

    1. بصراحة ما تعاملت مع الـ objective c ولا اشتغلت application للاي فون
      بس اتوقع بتقدر تحط كود التشييك ب thread
      وبعدها تعملو kill وليس sleep

  8. عشان حكيت لما البرنامج يعرف انو طلع من الجسر يوقف التشييك “مصدر استنزاف البطاريه” بشكل الي وبدون تدخل المستخدم

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

  10. تحدد سلوك الشخص برمجيا وبدون استخدام ال GPS بشكل متواصل صعب
    عشان هيك وبعد ما تجاوز الجسر اعطيه شاشه يحط فيها معلومات عن مده الرحلة او الوقت التقريبي للعوده وبعد انتهاء الوقت اعطيه رساله انه انت في طريق الرجعه ام لا طبعا بقدر يكنسل مثل هاي التنبيهات لحتى ما تكون مصدر ازعاج اله او بقدر يحدد مده اخرى عشان تنبهه مثل نظام الغفوه بالمنبهات الصباحية 🙂

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

    لعل فيما قلته ما يساعد
    وافضل البريد عن التحدث اما الآخرين، لو كنت ترغب بذلك

    1. مرحبا سليمان،

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

      ورالتشييك مرة كل ربع ساعة، برضه راح تستهلك البطارية

      ما فهمت قصدك بخصوص اهتزاز الجهاز!

      شكراً لك

  12. Dear Mohamed,
    How about if you let the application open manually by the user, and from then it starts to check the gps for like the next 2 hours, if the person did not reach the bridge then it will auto close until next time the user starts the application again.

    1. مرحبا مهدي

      المشكلة في الآي فون حتى لو تسكر البرنامج. استخدام الجي بي اس يظل على الوضع idle ولا يمكن التحكم به

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

      في كل الأحوال، البرنامج لا يستخدم الجي بي اس الا وقت محاولة الارسال فقط

  13. السلام عليكم
    بارك الله فيكم اخوتي الجهد الذي تقدمونه
    انا اريد عمل مثل هذا البرنامج لبلدي لاني اراه مهم جدا

زر الذهاب إلى الأعلى