====== إطار الويب عكاشة ======
انظر http://ojuba.org

===== تمهيد =====
إن مواقع الإنترنت الناجحة ليست مجرد صفحات HTML ساكنة بل إن أغلبها تحتوي على محتويات تفاعلية (تستخدم حسابات أو قواعد بيانات وتتفاعل مع المستخدم وتسمح لهم بالتعليق والتواصل معا). يتم توليد المحتويات عبر لغات برمجة تنفذ على الخادم

إن تطوير تطبيقات الويب يحتوي على الكثير من الأمور الرتيبة المملة ومن هنا ظهرت الحاجة لأطر الويب web frameworks

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

===== الأسئلة الشائعة =====
==== ما هو عكاشة ؟ ====
هو إطار ويب لعمل تطبيقات ويب متطورة بلغة البرمجة بايثون متوافقة مع مبدأ ويز-جي WSGI بكل بساطة وسهولة.
==== من هو عكاشة ؟ ====
هو الصحابي الجليل عكاشة بن محصن((هو عكاشة بن محصن ابن حرثان بن قيس بن مرة بن كبير بن غنم بن دودان بن أسد بن خزيمة)) رضي الله عنه وهو ممن  يدخلون الجنة بلا حساب ولا عذاب. قال عنه ابن حجر في الإصابة: من السابقين الأولين وشهد بدراً، وقع ذكره في الصحيحين في حديث ابن عباس في السبعين ألفاً الذين يدخلون الجنة بغير حساب، فقال عكاشة: ادع الله أن يجعلني مني. قال: "أنت منهم". فقام آخر فقال: "سبقك بها عكاشة". قيل: استشهد عكاشة في قتال أهل الردة.

==== ما معنى الكلمة ؟ ====
في القاموس المحيط نجد أنها العَنْكَبوتُ، أو ذُكُورها، أو بَيْتُها (...) عُكاشَةُ الغَنَوِيُّ، وابنُ ثَوْرٍ، وابنُ مِحْصَنٍ، الصحابِيُّونَ. 

ذكر ابن منظور في لسان العرب تحت جذر عكش: عكَشَ عليه: حَمَلَ. وعَكِش النباتُ والشعرُ وتعَكَّش: كَثُرَ والتفَّ. وكلُّ شيءٍ لزم بعضُه بعضاً فقد تَعَكَّشَ. وشعرٌ عَكِشٌ ومُتَعَكِّشُ إِذا تلبَّد. وشعر عَكِشُ الأَطراف إِذا كان جَعْداً (...) وشجرة عَكِشَةٌ: كثيرةُ الفروع مُتَشَجِّنةٌ. والعُكَاشة والعُكَّاشةُ: **العنكبوت**: وبها سمي الرجل. (...) وعُكَيْشٌ وعُكَّاشةُ وعَكَّاشٌ: أَسماء. (...) وعُكَّاشة بن مِحْصن الأَسدي: من الصحابة، وقد يخفف.

الشكر لأخي طه الزروقي الذي اختار الاسم.

==== من أين أحصل عليه ؟ ====
كود عكاشة متوفر من خلال git علىhttps://github.com/ojuba-org/okasha/

==== لماذا لم يكتب على php كبقية التطبيقات في العالم ؟ ====
لغة php ليست لغة نظيفة خصوصا في ما يتعلق بدعم utf-8

==== هل هو وفق بنية MVC ؟ ====
نعم تستطيع أن تقول ذلك. إذ يشكل الصنف baseWebApp المتحكم Controller ويترك لك الإطار اختيار أي كائن بايثوني ليكون النموذج Model (الذي قد يكون مصدره من قاعدة بيانات عبر elixir) وتحدد أي نظام قوالب تريد ليكون عنصر العرض.

==== أين تضعه مقارنة بالأطر البايثونية الأخرى ؟ ====
يمتاز عكاشة عن كل أطر الويب التي اختبرتها بالبساطة لهذا أعرفه إطار الويب البدهي trivial web framework أو إطار الويب الذي لا يقوم بشيء do nothing web framework بمعنى أنه لا يقف في طريقك ولن يكون صعبا عليك أن تدرك كل ما يحيط به في ذاكرتك دون الرجوع للوثائق.

عكاشة أقرب ما يكون إلى cherrypy
وأبعد ما يكون عن django

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

في Pylon يتم تعريف طريقة التعامل مع URL من خلال مكتبة http://routes.groovie.org
الذي بدوره يحاكي RoR حيث تربط أنت نمط من العناوين مع دالة معينة. في حين أن طريقة الربط محدد مسبقا في عكاشة بحيث تمنعك من "إطلاق النار على نفسك!" 

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

==== كيف يمكنني اختبار برنامجي ؟ ====
يمكنك إطلاق خادم ضمني صغير يقوم بتشغيل تطبيق الويب دون الحاجة لخادم apache.

==== أين أجد هكذا خادم ضمني ؟ ====
بما أنه مطابق لمعايير WSGI يمكنك استخدام أي خادم ضمني يدعمها. أفضل مثال على ذلك هو عبر مكتبة python-paste
وهي مكتبة بايثونية صرفة لا يزيد حجمها عن واحد ونصف ميغابايت. وهي تعمل على كل الأنظمة بما فيها ويندوز.

==== كيف يمكنني نشر تطبيق الويب ؟ وأي الاستضافات تدعمه ؟ ====
إن هناك عشرات الطرق لإطلاق تطبيقات عكاشة شأنه في ذلك شان تطبيقات WSGI حيث أنها معايير كتابة تطبيقات الويب في بايثون. ومن هذه الطرق انظر http://okasha.ojuba.org/deployment

