Saturday, October 19, 2019

Music That I Like Part 2 : Games, Boss Fight

We are back with another set of music. If you have missed part 1, click here. In this post, I have selected 3 music instruments from YouTube. The 3 are from well known video games. The songs are theme songs of final boss in the game. The first one is "Megaman X6", The second is "Undertale" and the last one is from "Crash Bandicoot 3"

Mega Man X6 OST - Sigma 2 - Final

One of my favorite games are Megaman X series. The first Megaman X game that I have ever played was Megaman X5. In general, The boss fight music in the game is Rock Music and I like rock music. Not just that, most of the game music tend to have a flavor of rock music. If you have ever played any X game before, you will recognize the music. It is a remix of Sigma theme from previous X games.

Undertale - Megalovania

The game is one of most well known games. It has a very mysterious story line which makes it fun to play. Even though the art of the looks like it was made in the 90s, it is actually new. The music in the video is played when you fight a caracter named "Sans". The music has a feeling of fun and horror in addition to rock which makes it very good. You might get board at the beginning because of the repeated milady. But continue listening till the end.

Crash Bandicoot [PRE-CONSOLE MUSIC] - Neo Cortex (CB3)

Neo Cortex is famous character that known for his evil plans in the game "Crash Bandicoot". But when it comes to his theme music in "Crash Bandicoot 3", it is an amazing piece of art. Another thing that I would like to mension is that this theme song is based on "Crash Bandicoot 1" is last boss fight which I can call it the most evil theme that I have ever heard. There is a new remix of the theme song which is used in the new game "Crash Bandicoot N. Sane Trilogy". You can listen to it here.


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.