الجمعة، 12 يونيو، 2015

مزايا و عيوب Windows 8.x (2- العيوب)


هذا هو المقال الثاني من مقالين متصلين أتحدث فيهما عن أنظمة تشغيلWindows 8.x (أي نظام Windows 8 و تحديثاته التالية و علي رأسها Windows 8.1)، و قد خصصتُ المقال الأول لأتحدث فيه عن الميزات التي أراها في النظام، و خصصتُ هذا المقال الثاني لأتحدث عن العيوب التي أراها فيه. و كما أوضحتُ في المرة السابقة فإن المميزات التي أوردتُها و العيوب التي سأوردها تخضع لوجهة نظري و آرائي الشخصية، و تتأثر بتجربتي للنظام علي مدي تسعة عشر شهراً كل التأثر. لذا فلا مشكلة أن تكون لديك انطباعات مختلفة نظراً لاختلاف ظروف تجربتنا للنظام.

الأربعاء، 25 مارس، 2015

مزايا و عيوب Windows 8.x (1- المزايا)

 
مقدمة

من بين كل إصدارات نظام التشغيل Windows أظن أن نظام Windows 8 من أكثر الإصدارات إثارة للجدل (يشترك في المركز الأول مع Windows Vista من وجهة نظري)؛ فما بين رغبة Microsoft في بناء نظام تشغيل موحد يعمل علي مختلف أنواع الأجهزة، و ما بين رغبة المستخدمين القدامي في الحفاظ علي نفس الشكل بدون تغيير، و رغبة المستخدمين الجدد في شكل مختلف يتناسب مع الاحتياجات المعاصرة و تجربة الاستخدام المختلفة عن كل ما هو قديم، صارت الأمور عكس ما ترغب فيه Microsoft.
 
الغريب في الأمر أنني قديماً لم أكن أميل إلي أنظمة الـWindows و كنتُ أفضِّل (و لا زلتُ) توزيعة Kubuntu عليهن جميعاً، و أري أنها تعطيني كل ما أرغب فيه من حيث القوة و الجمال و التطبيقات الناضجة المدمجة، مع قوة الأساسيات التي ورثتها من كونها مبنية علي توزيعة Ubuntu بينما كان معظم الآخرين يميلون للـWindows  و ينفرون من الـGNU/linux إلا أقل القليل، ثم حينما خرج Windows 8 للنور سارت الأمور بشكل عكسي؛ حيث نفرت منه الأغلبية، بينما ملتُ أنا إليه و أحببتُه، ثم ازداد حبي له أكثر بكثير حينما استخدمتُ Windows 8.1 !.

الأربعاء، 4 فبراير، 2015

ابدأ التنقيح debugging باختبار الاحتمالات الأسهل في التحقق

عندما تتأكد من أن لديك مشكلة منطقية في البرنامج الذي تقوم بالعمل عليه، و حينما تقرر أن عليك البدء فعلياً بمعرفة سبب المشكلة و أصلها تمهيداً لحلها، فإن من أهم الأمور التي من الأفضل أن تفعلها في البداية هو أن تتحقق من صحة أو خطأ الأسباب التي يسهل التحقق من صحتها أو خطئها، حتي و إن كانت تلك الأسباب ضعيفة، و إمكانية أن تكون هي السبب الفعلي للمشكلة لا تُقارَن بإمكانية بقية الاحتمالات.

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


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

السبت، 24 يناير، 2015

نصيحة ذهبية: قلل اعتماديات برامجك التي لا لزوم لها قدر الإمكان

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

في البداية فإن من ضمن الاعتماديات التي أتحدث عنها (و النقطة التي سنركز عليها في هذا المقال) أن يكون برنامجك يستعين بمكتبات إضافية في عمله ليست من برمجة المطورين القائمين عليه، سواء أكانت تلك المكتبات مفتوحة المصدر أو مغلقة المصدر. كأن تريد إضافة ميزة الـOCR (اختصار لـOptical character recognition) إلي أحد برامجك، و لأن هذه ميزة معقدة للغاية، فبالتالي سيكون من الأفضل بكثير أن تستعين بمكتبة خارجية لتقوم بتلك العملية، مثل مكتبة tesseract-ocr، و هكذا يمكنك أن تركز جهدك كله علي الأمور التي يتميز بها برنامجك بدون الحاجة لبناء ما بناه الآخرون بالفعل، كما أنك بهذه الطريقة ستستفيد في المستقبل من التحسينات و الإصلاحات التي يطبقونها علي مكتبتهم بدون أي جهد من ناحيتك.
 
 

الجمعة، 23 يناير، 2015

هل كانت الـBasic هلي اللغة المدللة لـMicrosoft طوال تاريخها ؟

لغة الـBasic هي لغة برمجة غاية في القِدم تم تصميمها في عام 1964 علي يد "John Kemeny" و "Thomas Kurtz"، و اسمها اختصار لجملة "Beginner's All-purpose Symbolic Instruction Code" و التي تعني "الأكواد الرمزية عامة الأغراض للمبتدئين". و انتشرت بين المستخدمين لأجهزة الحواسيب الشخصية الأولي لأنها وفرت لهم آلية سهلة و يسيرة لبرمجة تلك الحواسيب، و كذلك تطوير مهارات التفكير البرمجي لديهم، رغم أن تلك اللغة لم تكن من حيث القواعد و الإمكانيات المتاحة لها فائقة القوة. ثم بدأت الشركات المختلفة بإضافة مميزاتها الخاصة إلي اللغة و إخراج إصدارات خاصة بها لأجهزة الحواسيب التي تنتجها. و كانت Microsoft من ضمن تلك الشركات التي تبنت لغة الـBasic و استغلتها لتجذب نحوها هواة البرمجة.

 

الاثنين، 12 يناير، 2015

عن فترة انقطاعي الأخيرة

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

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