MEG's Blog
تصميم وتعديل ثيمات بيئة سطح المكتب GNOME ..
في Linux، تتنوع بيئات سطح المكتب التي تقدم لمستخدم النظام واجهات رسومية مختلفة. ما اريد التركيز عليه هنا هو تقديم "GTK+ theming system"، او بتعبير اخر فهم الاساسيات التي تمكنك من تصميم أو تعديل ثيمات GTK، والمستخدمة في كلا من بيئتي سطح المكتب GNOME و Xfce ... للمزيد قم بزيارة الرابط التالي: GTK Theming Tutorial.
رأيّ في القضايا الاجتماعية المثيرة للجدل
اتوقع انه في غير الحقائق والمسلمات، من المستحسن ان نعتبر ان جميعنا على خطأ، وأننا نبحث عن رأي افضل. هذا يعني الا نتوقف عند رأي واحد؛ لاننا قد لا نصل اليه في بعض الاحيان. وبالتالي علينا ان نستمر في البحث عن الافضل, وهذا الافضل قد يكون عبارة عن خليط بين اراء متنوعة, وذلك حتى نصل إلى الرأي الفصل او الحقيقة إذا كان ذلك ممكن.
ملاحظة: يمكن ان تشاهد بعض الامثلة على المواضيع الاجتماعية التي يكثر حولها الجدل في حلقة "على الطاير 8".
ملاحظة: يمكن ان تشاهد بعض الامثلة على المواضيع الاجتماعية التي يكثر حولها الجدل في حلقة "على الطاير 8".
[ ملخص ] تشريح ووظائف نظام الكلام لدى الانسان
يتكون نظام الكلام لدى الانسان من الاسفل الى الاعلى مما يلي:
الجزء السفلي وهو ما يسمى بـ "Subglottal system" ويتكون من الحجاب الحاجز "diaphragm" -الذي يحيط بالرئتين من الاسفل- ثم الرئتين "lungs" ثم القصبة الهوائية "trachea". حيث تبدأ عملية اخراج الصوت من هذا الجزء بارتفاع الحجاب الحاجز الى الاعلى مما يضغط على الرئتين من الاسفل الامر الذي يجعل حجمها يتقلص فتدفع بالهواء الى الخارج مروراً بالقصبة الهوائية ثم الحنجرة وانتهاء بالحلق "throat" والانف والفم.
من بعد القصبة الهوائية يبدأ الجزء الاوسط من هذا النظام وهو الحنجرة "larynx" وتسمى "صندوق الصوت" وهي عبارة عن تجويف غضروفي يحتوي مجموعة من اللفافات العضلية "vocal folds" تسمى حبال صوتية "vocal cords". هذه اللفافات العضلية تلتف حول الحنجرة من الداخل بحيث تكون متصلة بها من الاعلى وحرة من الاسفل, بينها فتحة اعلى الحنجرة تفتح وتغلق تدعى "المزمار" او "glottis" منها يخرج الهواء الى الجزء العلوي من النظام, حسب الحالات التالية:
عند ارتخاء الحبال الصوتية ومرور الهواء من بينها يخرج صوت يسمى "voiceless sounds" وعند تحركها يهتز الهواء داخل الحنجرة فيخرج ما يسمى "voice sounds" اما في حال كانت فتحة المزمار مغلقة جزئياً فيخرج ما يسمى بالهمس "whispered sound".
اما الجزء العلوي من هذا النظام فيسمى "Supraglottal system" وهو يتكون من البلعوم "pharynx" وتجويف الفم "oral cavity" وتجويف الانف "nasal cavity". اما البلعوم فهو المنطقة بين الحنجرة وتجويف الفم. وتجويف الفم فهو المنطقة بين الحلق والفم ويتكون من تلك الشحمة المتدلية في اخر تجويف الفم وتدعى "uvula" ثم ياتي بعدها منطقة مرنة في سقف التجويف تسمى الحنك المرن "velum" يتبعها الحنك الصلب "hard palate" الذي يفصل بين تجويف الانف والفم ثم بعد ذلك تأتي المنطقة بين الحنك والاسنان وتدعى "alveolar ridge" واخيراً الاسنان "teeth" واللسان "tongue" والشفتين "lips".
* ملاحظة: التفاصيل بالصور في درس "The Physics and Physiology of Speech" من كتاب "Phonetics" على الانترنت.
برنامج "Special English" يقدم الاخبار باستخدام 1500 مفردة فقط
برنامج "Special English" هو برنامج اخباري يبث على قناة "Voice of America" منذ 1959 عن طريق التلفزيون والراديو ومؤخراً الانترنت. ويقدم الاخبار باسلوب خاص يعتمد على مجموعة محددة من الكلمات توضع في جمل قصيرة وتنطق ببطئ.
تلك الكلمات التي تتكون منها اخبار "Special English", يبلغ عددها قرابة الـ 1500 كلمة, اخذ بعضها من كتاب "Ogden's Basic English" واضيف عليها بعض الكلمات الاخرى ثم جمعت في كتاب يسمى "Word Book" الذي طبعت اول نسخة منه عام 1962, وهو يشرح معاني هذه الكلمات باسلوب رائع وبسيط مدعم بالصور احياناً. -- اذا كنت مهتم فالقي نظرة ..
الانجليزية المبسطة "Ogden's Basic English"
هي لغة انجليزية مبسطة طورها شخص مهتم بتعليم اللغة الانجليزية يدعى Ogden في عام 1930. تحتوي 850 كلمة وتوصف بانها لغة مركبة. تستخدم في شرح الافكار المعقدة باستخدام كلمات بسيطة. لقت رواج عالمياً منذ ما بعد الحرب العالمية الثانية, ويمكن ان تجدها ضمن قائمة لغات Wikipedia تحت اسم "Simple English".
ان كنت مهتم فإذن لابد ان تقرأ عن Basic English في Wikipedia سواء باللغة الانجليزية او الانجليزية المبسطة, فإن اعجبت بها عندئذ لابد ان تطلع على موقع "Ogden's Basic English" على الانترنت. وفي النهاية قد تتفاجئ متى ما عرفت ان كلمة Basic هنا ليست كلمة بل هي اختصار لـ "British American Scientific International Commercial".
ان كنت مهتم فإذن لابد ان تقرأ عن Basic English في Wikipedia سواء باللغة الانجليزية او الانجليزية المبسطة, فإن اعجبت بها عندئذ لابد ان تطلع على موقع "Ogden's Basic English" على الانترنت. وفي النهاية قد تتفاجئ متى ما عرفت ان كلمة Basic هنا ليست كلمة بل هي اختصار لـ "British American Scientific International Commercial".
تثبيت حزمة LAMP على نظام تشغيل Ubuntu
حزمة LAMP ببساطة تعني Apache و MySQL و PHP لأجل Linux. وهي مجموعة من الحزم البرمجية التي تحتاجها لبناء خادم ويب على جهازك لتشغيل تطبيقات الويب. دائماً ما انسى هذه الاوامر واضطر للبحث عنها في كل مرة, لكن هذه المرة قررت الاحتفاظ بها على هذه المدونة لتعم الفائدة.
امر تثبيت Apache Web Server كما يلي:
sudo apt-get install apache2
امر تثبيت PHP كما يلي:
sudo apt-get install php5 libapache2-mod-php5
امر تثبيت MySQL Database Server كما يلي:
sudo apt-get install mysql-server php5-mysql
امر تثبيت نظام ادارة قواعد البيانات phpMyAdmin كما يلي:
sudo apt-get install phpmyadmin
ملاحظة: ان كنت قد وصلت الى هنا بحثاً عن طريقة لتثبيت خادم ويب محلي على Linux, فيجب ان تعرف ان هناك حل اسهل من هذا قد يعجبك, وهو حزمة XAMPP ان كنت قد استخدمتها في Windows, فقد يسرك ان تعرف انها متوفرة ايضاً على Linux و Mac OS. وبتثبيتها ستحصل على كل هذه الحزم البرمجية بأمر واحد. بالنسبة لي فأفضل الطريقة السابقة وذلك للتعلم والحصول على التحديثات بشكل تلقائي. لكن اشجعك على استخدام XAMPP ان كنت تبحث عن راحة البال.
تثبيت JDK على نظام تشغيل Ubuntu
إذا كنت تريد البرمجة باستخدام تقنيات Java فعليك اولاً تثبيت مجموعة ادوات التطوير "JDK" على جهازك, ويمكنك تحميلها من موقع Oracle بكل سهولة, لكن المشكلة التي قد تواجهك بعد التثبيت هي الاعدادات اليدوية.
واجهتني المشكلة فتوقفت, وعندها تذكرت اني كنت قد ثبتت الـ JDK سابقاً من مركز برامج Ubuntu بدون اي مشاكل تذكر. انتقلت مباشرة الى هناك ولم اعثر على الحزمة المطلوبة, عندها شعرت بأن Oracle قد غدرت بنا ولم تعد تعطينا نفس الاهتمام كما كانت تفعل Sun. بحثت عن حل فوجدت طريقة تطوع بها احد افراد مجتمع Java -كما هي العادة- فقمت بتطبيقها ونجحت في التثبت. عدت لإكمال الموضوع الذي من خلاله توصلت لهذا الحل لاكتشفت ان كل ما قامت به Oracle انها فقط تأخرت في اصدار المستودع الخاص بالنسخة الجديدة Ubuntu 10.10, وانها قد فعلت الان.
وبسبب الوقت الذي قضيته في البحث -وان لم يكن طويل- قررت ان احتفظ بخلاصة ما توصلت له من خلال البحث هنا في ارشيف المدونة عليَ انشرها ذات يوم. لكن لان الخطوات كانت قليلة قررت نشرها, ولكن بدون استخدام اسلوب "أدلة الاستخدام" التي تفترض انك لا تعرف شئ. فهذه الطريق جداً متعبة ومملة بالنسبة لي, وهي سبب تأخر نشر كثير من المسودات هنا. لذلك ساشرح الخطوات وكأني اشرح لنفسي او لشخص لديه دراية بما اقول. لذلك اعتذر من الان إن لم تفهم ما أقول, فشئ افضل من لا شئ.
الطريقة الرسمية:
1. قم بالسماح لنظام تشغيلك بالتحميل من مستودعات "Canonical Partners".
2. ابحث عن "Sun JDK" في مركز البرامج وقم بتثبيتها.
2. ابحث عن "Sun JDK" في مركز البرامج وقم بتثبيتها.
الطريقة الاخرى (التي تطوع بها احد افراد المجتمع):
1. اضف الـ PPA التالي إلى النظام : ppa:sun-java-community-team/sun-java6
2. قم بتوليد الـ PPA's key, بالامر التالي : sudo add-apt-repository ppa:sun-java-community-team/sun-java6
3. قم بتحديث النظام, بالامر التالي : sudo apt-get update
4. قم بتثبت JRE و JDK, بالامر التالي : sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk
* ملاحظات:
- تجد خيار تفعيل مستودعات "Canonical Partners" في اداة Software Sources ثم تبويب Other Software.
- تجد خيار تفعيل مستودعات "Canonical Partners" في اداة Software Sources ثم تبويب Other Software.
- مصطلح PPA هو اختصار لـ "Personal Package Archives", ويعني مستودع برامج خاص يتم تحديثه بشكل دوري.
- لاضافة PPA الى النظام اذهب الى Software Sources ومن ثم Other Sources واضف الـ PPA.
- في Ubuntu 10.10 تجد أداة Software Sources في قائمة Edit من Ubuntu Software Center.
ثيم مدونات عربي لأجهزة الهواتف الذكية
لا ابلاغ ان قلت اني افضل تصفح الانترنت بواسطة الـ iPod, وأكاد اجزم انه بمجرد حصولي على iPad فإني عندها قد لا استخدم الكمبيوتر لتصفح الانترنت, او بالاحرى سيقل لاستخدامي للكمبيوتر بشكل ملحوظ بغرض تصفح الانترنت. لذلك فإن أكثر ما يتعبني ويثير غضبي أثناء تصفح مواقع الانترنت والعربي منها على وجه الخصوص -حيث غالباً لا اواجه هذه المشكلة الا معها- هو عدم اعتراف هذه المواقع بالزوار القادمين عن طريق الهواتف الذكية, هذا ان تجاهلت تصميم صفحاتها الثقيلة, الممتلئة بالتفاصيل التي قد لا تهمني, والتي تستنزف كمية البيانات المحددة لي من قبل الشركة المزود لخدمة الانترنت عن طريق الجوال.
وانطلاقاً من هذه المشكلة قمت بالتواصل مع عدد من اصحاب تلك المواقع -التي اتابعها يومياً بواسطة الـ iPod- وحاولت اقتراح حلول للمشكلة, هذه الحلول على شكل اضافات مخصصة لعرض المدونة بشكل مناسب للاجهزة ذات الشاشات الصغيرة, الا ان المشكلة لم تحل وكنا دائماً ما نواجه مشكلة عدم توافق هذه الاضافات مع اللغة العربية. لذلك قررت الا اقف عند هذا وان اقوم بتصميم ثيم للمدونات خاص بالهواتف الذكية, وبعد بحث سريع توصلت من خلاله إلى شرح مفصل قدمته منتديات Nokia, وجدت ان الامر غاية في السهولة, فتسألت هنا لماذا لا نرى ثميات عربية خاصة بالاجهزة ذات الشاشات الصغيرة اذن ؟!
عموماً قد يختلق البعض اسباب لذلك ابرزها ان عدد زوار موقعه عن طريق الهواتف الذكية قليل, لذلك فهو يهمل هذه النقطة تماماً, الا انه لو فكر قليلاً في الامر لوجدت ان من يقوم بزيارة موقعه لأول مرة عن طريق الهاتف الذكي قد لا يزوره ثاني مرة الا ان كان مضطر لذلك. لهذا انا ادعوا من يمتلك مدونة الى تحميل الثيم من هنا وتركيبه كما هو موضح في الملف المرفق, ومن اراد التعديل على الثيم فيحق له ذلك بالطبع.
وانطلاقاً من هذه المشكلة قمت بالتواصل مع عدد من اصحاب تلك المواقع -التي اتابعها يومياً بواسطة الـ iPod- وحاولت اقتراح حلول للمشكلة, هذه الحلول على شكل اضافات مخصصة لعرض المدونة بشكل مناسب للاجهزة ذات الشاشات الصغيرة, الا ان المشكلة لم تحل وكنا دائماً ما نواجه مشكلة عدم توافق هذه الاضافات مع اللغة العربية. لذلك قررت الا اقف عند هذا وان اقوم بتصميم ثيم للمدونات خاص بالهواتف الذكية, وبعد بحث سريع توصلت من خلاله إلى شرح مفصل قدمته منتديات Nokia, وجدت ان الامر غاية في السهولة, فتسألت هنا لماذا لا نرى ثميات عربية خاصة بالاجهزة ذات الشاشات الصغيرة اذن ؟!
عموماً قد يختلق البعض اسباب لذلك ابرزها ان عدد زوار موقعه عن طريق الهواتف الذكية قليل, لذلك فهو يهمل هذه النقطة تماماً, الا انه لو فكر قليلاً في الامر لوجدت ان من يقوم بزيارة موقعه لأول مرة عن طريق الهاتف الذكي قد لا يزوره ثاني مرة الا ان كان مضطر لذلك. لهذا انا ادعوا من يمتلك مدونة الى تحميل الثيم من هنا وتركيبه كما هو موضح في الملف المرفق, ومن اراد التعديل على الثيم فيحق له ذلك بالطبع.
كيف تستفيد من دراسة نظم التشغيل في ادارة وقتك !
كنت ولا زلت اعاني من مشكلة في ادارة وقتي , لذلك اشتريت 3 كتيبات في ادارة الوقت , لكن لم ابدأ في قراءة احدها حتى الان لنفس المشكلة .. الوقت ! بالصدفة خطرت على بالي فكرة الاستفادة من دراسة نظم التشغيل و خورزمات جدولة وحدة المعالجة المركزية في ادارة وقتي , فكانت الفكرة التالية :
1. خوارزمة من أتى اولاً يُخدم اولاً (FCFS) : المهمة التي تكلف بها اولاً انجزها اولاً , و لا تبدأ في المهمة الثانية حتى تنتهي من الاولى تماماً , فهذه الخوارزمية non-preemptive , اي لا تسمح بايقاف المهمة الحالية او تأجيلها لتنتقل الى مهمة اخرى حتى تنتهي من المهمة الحالية .
2. خوارزمة المهمة الاقصر اولاً (SJF) : ابدأ بالمهام الاقصر اولاً حتى تنتهي منها ثم انتقل الى الاخرى , بغض النظر عن الوقت الذي كلفت فيه بهذه المهمة . مشكلة هذه الخوارزمية انها قد تتسبب في وقوع Starvation , اي ان هناك مهام طويلة اقدم ستأجل في كل مرة ريثما يتم انجاز المهام الاقصر منها .
3. خوارزمة الاولويات : ضع اولوية لكل مهمة تكلف بها , و ابدأ بالهمة ذات الاولية الاعلى , فان بدأت بمهمة ثم كلفت باخرى ذات اولية اعلى , فأجل الحالية و ابدأ في الجديدة ذات الاولية الاعلى , فهذه الخوارزمية preemptive , اي انها تسمح بايقاف المهمة الحالية للانتقال الى مهمة اخرى , لكن ليس دائماً .
4. خورازمة Round Robin : ابدأ بالاقدم اولاً و اعطي كل مهمة فترة محددة لانجازها , و في حال لم تنتهي المهمة في تلك الفترة , اتركها و انتقل الى التي تليها , و هكذا حتى تنتهي من جميع المهام ثم تعود للمهام المؤجلة و تنفذ عليها ما سبق .
5. خوارزمة الطوابير متعددة المستويات (Multilevel Queue) : قسم المهام حسب اهميتها الى مستويات , و المهمة الاعلى اهمية تكون في طابور المستوى الاول و المهمة الاقل تكون في طابور المستوى الادنى , و اختر لكل طابور احد الخوارزمات السابقة , و لتكن خورازمة RR للمستوى الاول و خوارزمة FCFS للمستوى الثاني , ثم ابدأ بتنفيذ مهام المستوى الاول حتى تنتهي منها جميعاً ثم انتقل الى تنفيذ مهام المستوى الذي يليه .
6. خوارزمة Multilevel Feedback Queue : هذه الخوارزمة بنفس فكرة سابقتها الا انها تسمح لك بنقل المهام التي لم تنتهي منها في الوقت المحدد الى مستوى اقل اولوية .
1. خوارزمة من أتى اولاً يُخدم اولاً (FCFS) : المهمة التي تكلف بها اولاً انجزها اولاً , و لا تبدأ في المهمة الثانية حتى تنتهي من الاولى تماماً , فهذه الخوارزمية non-preemptive , اي لا تسمح بايقاف المهمة الحالية او تأجيلها لتنتقل الى مهمة اخرى حتى تنتهي من المهمة الحالية .
2. خوارزمة المهمة الاقصر اولاً (SJF) : ابدأ بالمهام الاقصر اولاً حتى تنتهي منها ثم انتقل الى الاخرى , بغض النظر عن الوقت الذي كلفت فيه بهذه المهمة . مشكلة هذه الخوارزمية انها قد تتسبب في وقوع Starvation , اي ان هناك مهام طويلة اقدم ستأجل في كل مرة ريثما يتم انجاز المهام الاقصر منها .
3. خوارزمة الاولويات : ضع اولوية لكل مهمة تكلف بها , و ابدأ بالهمة ذات الاولية الاعلى , فان بدأت بمهمة ثم كلفت باخرى ذات اولية اعلى , فأجل الحالية و ابدأ في الجديدة ذات الاولية الاعلى , فهذه الخوارزمية preemptive , اي انها تسمح بايقاف المهمة الحالية للانتقال الى مهمة اخرى , لكن ليس دائماً .
4. خورازمة Round Robin : ابدأ بالاقدم اولاً و اعطي كل مهمة فترة محددة لانجازها , و في حال لم تنتهي المهمة في تلك الفترة , اتركها و انتقل الى التي تليها , و هكذا حتى تنتهي من جميع المهام ثم تعود للمهام المؤجلة و تنفذ عليها ما سبق .
5. خوارزمة الطوابير متعددة المستويات (Multilevel Queue) : قسم المهام حسب اهميتها الى مستويات , و المهمة الاعلى اهمية تكون في طابور المستوى الاول و المهمة الاقل تكون في طابور المستوى الادنى , و اختر لكل طابور احد الخوارزمات السابقة , و لتكن خورازمة RR للمستوى الاول و خوارزمة FCFS للمستوى الثاني , ثم ابدأ بتنفيذ مهام المستوى الاول حتى تنتهي منها جميعاً ثم انتقل الى تنفيذ مهام المستوى الذي يليه .
6. خوارزمة Multilevel Feedback Queue : هذه الخوارزمة بنفس فكرة سابقتها الا انها تسمح لك بنقل المهام التي لم تنتهي منها في الوقت المحدد الى مستوى اقل اولوية .
الاشتراك في:
الرسائل (Atom)