الأحد، 21 مايو، 2017

برنامج لوح مفاتيح القرآن الكريم

السلام عليكم و رحمة الله و بركاته
هذا البرنامج هو لوح مفاتيح عربي متكامل، أضفت إليه خدمة البحث السريع في القرآن الكريم ونسخ الآيات أثناء الكتابة على أجهزة الأندرويد. 
هدفه توفير الوقت وصيانة كلام الله عن أخطاء النقل التي تحدث بسبب النسيان أو صعوبة إدخال النص يدويا، خصوصاً على شاشات اللمس.
يمكن تنزيل النسخة التجريبية من هذا البرنامج على هذا الرابط.
يُرجى التنبيه على أية خطأ، خصوصاً في نص الآيات، بمراسلة البريد الإلكتروني holyquran.keyboard@gmail.com
رخصة البرنامج: هذا البرنامج يستعمل مصدر لوح مفاتيح من مشروع أندرويد (AOSP) تحت رخصة أباتشي 2.0. وسيتم نشر مصدره كاملاً تحت نفس الرخصة في المستقبل القريب بعون الله.
يستعمل هذا البرنامج نص القرآن الكريم بالرسم العثماني ورواية حفص، المنشور في موقع "مُجمّع المصحف الشريف بالمدينة المنورة"، إصدار 0.09 (fonts.qurancomplex.gov.sa/?page_id=42). ويستعمل الرسم الإملائي (مع و بدون شكل) من موقع "تنزيل" (tanzil.net/download).  للاستفادة الكاملة من الرسم العثماني يجب أن يكون التطبيق الذي يُكتب فيه النص يستعمل الخط المناسب.
صور توضيحية لكيفية التثبيت والتفعيل:
صور توضيحية لكيفية الاستعمال:













صور توضيحية لكيفية تغيير الإعدادات:




الاثنين، 13 فبراير، 2017

طباعة كتاب من سطر أوامر لينكس على وجه وقفا الورق في طابعة لا تدعم ذلك

السلام عليكم و رحمة الله و بركاته

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

باستعمال سطر أوامر لينكس يمكن جعل طابعة صغيرة تطبع على وجه وقفا الورق بحيث يمكن طبع كتاب كامل بمعدل صفحتين على كل ورقة. الفكرة تقوم على طبع كل الصفحات الفردية أولا، بترتيب تصاعدي، مثلاً: 1، 2، 3...41. ثم إعادة إدخال كومة الأوراق التي خرجت من الطابعة وطبع الصفحات الفردية بترتيب تنازلي من آخر صفحة إلى أولها، مثلاً: 40، 38،...،2.
.
أولا نصدر أمر طباعة الأوراق الفردية وترك الطابعة تعمل دون لمس الأوراق التي تخرج منها:

lpr -o page-set=odd filename.pdf

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

وأخيراً نصدر أمر طباعة الأوراق الزوجية معكوسة.

lpr -o page-set=even -o outputorder=reverse filename.pdf 

الجمعة، 18 سبتمبر، 2015

برمجة هاتف ذكي أندرويد كحاكوم لجهاز الاستقبال الفضائي الرقمي Samsat HD 800

السلام عليكم و رحمة الله و بركاته

هناك العديد من برامج  أندرويد التي تحول الهواتف الذكية الحديثة إلى حاكوم (remote control) إذا كانت تتوفر على مخرج للأشعة  تحت الحمراء.
لقد جربت العديد منها مثل Peel Smart Remote و AnyMote Smart Remote و لم أعثر على ما يدعم جهازي للاستقبال الفضائي الرقمي Samsat HD 800. 

لكن لحسن الحظ  برنامج AnyMote يمكنه دعم أي جهاز عن طريق برمجة أكواد الأشعة ما تحت الحمراء المناسبة لكل زر من أزرار الحاكوم، إما مباشرة إذا كان عتاد الهاتف يدعم قراءة هاته الأشعة أو عن طريق تحميل ملف بصيغة خاصة (.amsr) فيه تلك الأكواد مبرمجة مسبقا.

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

1.  التأكد من أن توزيعة لينكس على الحاسوب المحمول تدعم عتاد الأشعة ما تحت الحمراء. بالنسبة لحاسوبي أقلعت بتوزيعة Ubuntu 14.04 الافتراضية من مفتاح USB، ثم تحققت من وجود الملف /dev/lirc0.  إذا لم تعثروا عليه فيمكن مراجعة وثائق أبنتو حول الموضوع من هنا  https://help.ubuntu.com/community/LIRC

2.  تثبيت برنامج lirc  عن طريق  sudo apt-get install lirc

3.  تسجيل أكواد الأشعة الحمراء لكل أزرار الحاكوم عن طريق
  sudo irrecord -d /dev/lirc0 SamsatHD800.lirc 
 ثم اتباع  الأوامر التي تظهر على الشاشة. في البدأ سيطلب برنامج irrecord الضغط على الأزرار عشوائيا للتعرف على بعض ميزات الحاكوم ثم، في وقت ثان، يطلب تسمية كل زر وتسجيل شعاعه بالضغط على الزر المناسب في الحاكوم مع توجيهه لمنفذ الأشعة ما تحت الحمراء في الحاسوب.
 أسماء الأزرار قياسية وهي موجودة هنا  http://arnaud.quette.free.fr/lirc/lirc-conversion.html  (تبدأ بـ KEY_).

4. لمن يستعمل برنامج AnyMote يبقى عليه تحويل الملف الناتج عن برنامج irrecord إلى صيغة .amsr عن طريق هاته الصفحة http://colortiger.com/lirc2amsr.php. يجب نسخ نص ملف lirc ولصقه في المكان المحدد ثم الضغط على convert. بعدها يجب نقل الملف إلى الهاتف واستعماله في برنامج AnyMote.

طبعا من لديه جهاز Samsat HD 80  يمكنه استعمال الملف الذي أعددته من هنا

تحياتي

الأربعاء، 29 يوليو، 2015

هل فتح مصدر ويندوز سيمنع أفوله؟

السلام عليكم و رحمة الله و بركاته 

منذ أسابيع عديدة قرأت خبرا حول تصريح مفاجئ للمسؤول عن المنصة السحابية لميكروسوفت حيث يقول أن مستقبل ويندوز "يمكن أن يكون مفتوح المصدر" ولم أتمكن وقتها من التعليق وإعمال فكري في المسألة لإنشغالي بالعمل وأمور أخرى...
http://www.forbes.com/sites/gordonkelly/2015/04/05/open-source-microsoft-windows/

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

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

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

طبعا هذه الثورة إن اقتصرت على فتح المصدر فلن يجدي شيئا لسببين رئيسين:

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

- تأخر الوقت كثيرا (وهو السبب الأهم). التوقيت مهم جدا في مسألة تحرير البرامج وفتح مصدرها وأي تأخير سيؤدي إلى الفشل بسبب تفويت فرصة تشكيل المجتمع الضروري من مستخدمين ومطورين والذي لا بد منه لحضانة البرامج وتطوريها. لقد سبق لشركة  صن sun (قبل أن تبتلعها أوراكل) أن فتحت مصدر نظام تشغيلها Solaris لكنه كان تحركا متأخرا جاء بعد سيطرة لينكس ، وبدرجة أقل فرع أنظمة BSD ، على الساحة وخصوصا فوزهما باهتمام المجتمع. ولم يشفع لصن قربها من هذا المجتمع وفهمها لديناميكياته ومشاركاتها فيه بل وتفرعها منه فكيف بمن هو مثل ميكروسوفت.


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

المصادر المفتوحة لا شيئ دون مجتمعها والتعامل مع هذا المجتمع يتطلب ثقافة ومهارات قد لا تتوفر لدى البعض.

الثلاثاء، 30 يونيو، 2015

برنامج أندرويد حر وصغير لحساب أوقات الصلاة

السلام عليكم و رحمة الله و بركاته

لأسباب أكاديمية قمت منذ أشهر بتطوير برنامج أندرويد صغير على عجالة لحساب أوقات الصلاة باستعمال جزء من مكتبة  ITL بعد نقلها إلى الجافا هنا:
 https://github.com/arabeyes-org/ITL/tree/master/prayertime

البرنامج مرخص بالإصدار الثالث من جنو العمومية GPLv3  وهو متوفر لمن أراد إلقاء نظرة أو تجربته أو المساهمة في تطويره على نفس موقع  github  هنا:
 https://github.com/cdjalel/Bilal

البرنامج بسيط جدا وينقصه الكثير كما هو مبين في ملف TODO. لقد أسميته على اسم مؤذن رسول الله صلى الله عليه وآله وسلم وهو الصحابي الجليل بلال بن رباح رضي الله عنه.

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




تحياتي.

ترجمة مكتبة حساب أوقات الصلاة من عربآيز إلى لغة جافا

السلام عليكم و رحمة الله و بركاته

لأسباب آكاديمية قمت في وقت سابق بترجمة مكتبة حساب أوقات الصلاة prayertime  التي هي جزء من مكتبة Islamic Tools Library  المطورة من طرف فريق عربآيز تحت رخصة LGPL
 http://old.arabeyes.org/project.php?proj=ITL


تجدون نسخة الجافا بنفس الرخصة في موقع   github هنا:
https://github.com/cdjalel/libjprayertime



بعد الترجمة لاحظت أن النسخة الأصلية في لغة C تم رفعها على نفس الموقع من قريب:
https://github.com/arabeyes-org/ITL/tree/master/prayertime

الجمعة، 27 فبراير، 2015

تحرير قرص الحالة الثابتة SSD من سطوة الويندوز وإعماره لفائدة لينكس

السلام عليكم و رحمة الله و بركاته

منذ مدة وضعت نظام MacBuntu على حاسوبي المحمول ذو الذاكرة الثانوية الهجينة (المكونة من قرص صلب ممغنط دوّار HDD وقرص فلاش ذو حالة ثابتة SSD أصغر حجما)، لكني تركت الجزء الثابت تحت "سطوة" الويندوز يستعمله للتسريع، لأنه وقتها -كما هو الحال الآن- برامج تثبيت توزيعات لينكس الشهيرة لا تدعم تحويل مثل هذا القرص إلى ذاكرة مخبئيه cache لتسريع الوصول إلى بيانات القرص التقليدي. وعلى ما أذكر كنت قرأت أن فيدورا هي الوحيدة التي تخطط لتوفير هذا الدعم في برنامج Anaconda لكنه لا زال في رحم الغيب.

مؤخرا قررت سحب امتياز الذاكرة المخبئية من ويندوز وتجريبه في لينكس بعد أن بحثت على الطريقة والبرامج التي يستعملها ويندوز لهذا الغرض وحفظت نسخة احتياطية منها - في حال قررت لاحقا إرجاع الحاسوب إلى حالته يوم خروجه من المصنع لأجل بيعه مثلا. إذا نصيحتي أولا لمن أراد أن يخوض التجربة أي يتأكد من أنه قادر على إعادة الأمور إلى نصابها في حال قرر لاحقا الرجوع إلى الوراء أيا كان السبب وهذه مهمة تختلف من حاسوب لآخر وليس هذا مكان شرحها.

بالنسبة للينكس هناك عدة تقنيات تدعم تحويل قرص ثابت إلى ذاكرة مخبئية لغرض التسريع منها dm-cache وسليله الفايسبوكي  Flashcache وفرعه EnhanceIO. هناك أيضا bcache الذي وقع عليه اختياري بعد بحث عن مقارنات بين هاته الحلول وعثوري على مقال في LWN يقضي بأن bcache الأكثر ثباتا وهو عامل أهم عندي من الفروق الضئيلة في السرعة. طبعا هناك تجربة أخرى من مطوري EnhanceIO يزعمون فيها تفوق منتوجهم.

لتثبيت وتفعيل bcache على أبنتو وجدت شرحا جيدا من مدونة W. Dong وآخر مشتق منه في مدونة Kloppenborg
وثالث وهو الذي اتبعته لأنه الأحدث من دونة c0rp.

وأخيرا لاحظت فرقا كبيرا في سرعة النظام والتطبيقات وتمنيت أني قمت بهاته الخطوة مبكرا.