Tuesday, August 27, 2019

Music That I Like Part 1: Mix

Starting today, I will be posting one post from time to time which will contain 3 videos or audios. The selected 3 will might be from various popular music or video hosting services like YouTube or SoundCloud (Mostly YouTube). The aim of the posts is to keep track of the music that I like and to let people see which type of music that I love to listen to.

In addition to that, I will state my opinion on each video or audio.

In this post, I have selected 3 music videos from YouTube. The videos are:

Delta Heavy - Get By (Official Video)

This video is posted in 2012. The introduction of the video is awesome. In addition to that, The visuals in the video are very cool and align very well with the music. I can tell that the artist has put a lot of effort to come with such an amazing piece of art.

Xilent - Boss Wave (Official Video)

What I like about this music video is that it uses the effects of the music that is usually used in old games. The intro isn't that good but the overall video is satisfying. The part that I like the most starts at 2:30 (FUNGUS TIME). The visuals are kinda weirdo and funny starting this point.

[SFM FNAF] Survive the Night - FNaF 2 Song by MandoPony [5K SUBSCRIBERS!]

This music video is related to the famous horror game 'Five Nights at Freddy's'. In the game, you will be acting as new security guard and you have to stay alive while trying to watch security cameras. This music video summarize the whole story of the game. What I like about the video is the harmony that was created between the music and the animation.


Wednesday, May 8, 2019

تجربتي: الإختبار التحريري بجامعة الملك فهد لعام 1439 - 2018

مقدمة

السلام عليكم و رحمة الله و بركاته. بما أنه قد مرت تقريباً حوالي سنة كاملة على تجربتي, قررت الكتابة عنها الآن.

في يوم الأحد المصادف لتاريخ 1 يوليو عام 2018, كان الإختبار التحريري لوظيفة مطور برامج بجامعة الملك فهد للبترول و المعادن. انا قدمت على هذه الوظيفة بتاريخ مايو 2, 2018 عن طريق الموقع الإلكتروني للمسابقة الوظيفية طبعا الموقع حالياً تغير و أصبح لتقديم طلبات الدراسات العليا. لكن عند تسجيل دخولي, ارى ان ملفي لا يزال كما هو. في هذا المنشور، سوف اتحدث عن تجربتي بذاك اليوم و سوف اتطرق الى الأسئلة اللي كانت بالإختبار و كيفية الإستعداد للإختبار بشكل عام.

الإنطلاق من الأحساء

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

الوصول و دخول قاعة الإختبار

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

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

داخل قاعة الإختبار

كما جرت العادةفي اي إختبار، تم إخبار جميع المختبرين عن بعض التعليمات حول الإختبار. بعض من التعليمات كانت:

  • اطفاء الجوال و وضعه اسفل يمين الكرسي
  • اخراج اي جهاز الكتروني من الجيب و وضعه مع الجوال
  • كيفية كتابة معلوماتك على ورقة الإجابة.
  • طريقة اختيار الإجابة و عملية التظليل.
  • مدة الإختبار و متى يمكننا الخروج.

بعدها بدأوا بتوزيع اوراق الأسئلة على جميع المختبرين. بعد توزيع الأسئلة، بدأ الإختبار بعدها بعشر دقائق تقريباً.

الإختبار و طبيعة الأسئِلة

الإختبار كان يحتوي على ثلاثين سؤال باللغة الإنجليزية. الأسئلة كانت اختر الإجابة الصحيحة من بين اربع خيارات. مدة الإختبار كانت تقريبا ساعتين لكن من الممكن الخروج بعد انقضاء نصف الوقت. الأسئلة كانت تتمحور حول المواضيع التالية:

  • Data size mesurment units.
  • Boolean expressions and how to evaluate.
  • Data structures.
  • Database related questions.
  • Modular software development.
  • Software life cycle.
  • Basics of networking.
  • Client, server and web development related questions.
  • General questions.

بشكل عام، الأسئلة كلها كانت سهلة بالنسبة لي ماعدا قسم ال Boolean expressions و ال general questions. جميع الأسئلة اللتي كانت حول التعابير المنطقية كانت تحتوي على مُعامل XOR و هو ما جعل القسم صعب. بالنسبة لقسم الأسئلة العامة, سؤال واحد كنت محتار في اجابته الا وهو من هو مخترع الإنترنت. طبعا من اجل الإستعداد للإختبار، عليك انك تراجع المواضيع اللي فوق قبل الإختبار بثلاثة أيام على الأقل.

بعد الإنتهاء من الإختبار

بعد الإنتهاء من الإختبار، تم إخبرانا بأنه سوف يتم إرسال رسائل عبر الجوال للأشخاص الناجحين بالإختبار اليوم التالي و تحديد موعد المقابلات.

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


Saturday, April 27, 2019

What I Have Learned Today: Using PHP Through Command Line Interface (CLI)

One of the things that I was interested in is how some PHP frameworks can be used from command line interface to execute PHP code and commands. Some of the tools that I have used are composer and PHPUnit and both can be used from command line. For that reason, I started to think about adding this feature to WebFiori Framework.

After few attempts and failures, I managed to add basic support for running the framework from command line. You can see from the following picture that running the framework from CMD is working without problems.


There are few things that I had to do in order to add support for running the framework from the command line. The things are the following:

  • Checking if main script file is loaded using command line using the method php_sapi_name().
  • Initializing some $_SERVER and $_ENV variables as they are not initialized if PHP script is accessed through command line.
  • Getting command line arguments using the constant $_SERVER['argv'].

For the last two steps, I created new class to handle the two tasks. The name of the class is CLI.php After doing that, I have only changed few lines of code in main class to redirect user to use CLI as shown in the following picture.

Saturday, March 9, 2019

WebFiori, New Web Development Framework

WebFiori Framework is new web development framework which was built in top of PHP scripting language. It was designed from scratch to provide the developer with needed tools to setup new website or create a very complex web application using minimum tools.

Basic features (Taken from official website):

  • Theming and the ability to create multiple UIs for the same web page using any CSS or JavaScript framework.
  • Support for routing that makes the ability of creating search-engine-friendly links an easy task.
  • Creation of web APIs that supports JSON, data filtering and validation.
  • Basic support for MySQL schema and query building.
  • Lightweight. The total size of framework core files is less than 3 megabytes.
  • Access management by assigning system user a set of privileges.
  • The ability to create and manage multiple sessions at once.
  • Support for creating and sending nice-looking emails in a simple way by using SMTP protocol.
  • Autoloading of user defined classes.
  • The ability to create automatic tasks and let them run in specific time using CRON.
  • Support for logging of system events.
  • Well-defined file upload and file handling sub-system.

The project is currently hosted in my personal website and it can be accessed through the URL: https://programmingacademia.com/webfiori . You can find more information about the project there.

Another thing is that the project is open source and is licensed under MIT license. You can grab the source code of the framework from my GitHub repo at https://github.com/usernane/webfiori.

Your Contribution is Appreciated

One of the things that I need your help in is your feedback (Negative or positive). You can help me by trying the framework your self and provide me with your feedback. You check https://programmingacademia.com/webfiori/learn to get started.

Another thing is that you might find hundreds of issues in the source code of the framework since I'm not an experienced PHP developer (Design issues, Security issues, Bad practices, etc...). What you can possibly do is to review the source code and report any issue that you might find regarding how things are done.

Also, if you need any help regarding how to use the framework or you are just interested, please join telegram group using the following link: https://t.me/webfiori

Thank you for your time.