Ali AlaaThe logo is comprised of to A letters joined together representing my initials.

The Blog

Published on:

Reading Time: 8 minutes

Tic-Tac-Toe with JavaScript: Building the User Interface

In the previous part we created a JavaScript class for the computer player. In this final part, we will build a simple user interface for the tic-tac-toe board. We will use classes and methods created in previous parts to simulate a game with a certain search depth and a starting player.This is the second part of a 3 parts series. Below you can find the list of other parts:Part 3: Building the Use...

Published on:

Reading Time: 11 minutes

Tic-Tac-Toe with JavaScript: AI Player with Minimax Algorithm

In the previous part we created a JavaScript class for our tic-tac-toe board. Let’s in this part learn how to implement the minimax algorithm in JavaScript to get the best move for the computer player. We will calculate each possible move’s heuristic value given some assumptions and a depth (the the number of turns to calculate).This is the second part of a 3 parts series. Below you can find the l...

Published on:

Reading Time: 11 minutes

Tic-Tac-Toe with JavaScript: Creating the Board Class

In this series of article we will create an unbeatable tic-tac-toe game using JavaScript. This is a reiteration on an article that I wrote in 2017 on medium. Some things have changed however since 2017. In the old version of the article I used webpack to process ESNext JS into ES5 because most browsers didn’t support modules, classes and other ESNext features at the time. This time however I am go...

Published on:

Reading Time: 1 minute

Managing WordPress Metadata in Gutenberg Using a Sidebar Plugin

In this article, we will discuss metaboxes and metafields in WordPress. Specifically, we’ll cover how to replace the old PHP metaboxes in Gutenberg and extend Gutenberg’s sidebar to add a React component that will be used to manipulate the metadata using the global JavaScript Redux-like stores. Note that metadata in Gutenberg can also be manipulated using blocks. And both ways are discussed in my ...

Published on:

Reading Time: 1 minute

Automating your WordPress Theme Development Workflow with Gulp

This is a two-part series that I wrote for CSS Tricks on creating a Gulp workflow for WordPress theme development. The first part covers a lot of ground for the initial setup, including Gulp installation and an outline of the tasks we want it to run. The second part goes deep into the tasks Gulp will run by breaking down what each task does and how to tailor them to streamline theme development.He...

Published on:

Reading Time: 1 minute

How I Created a Simple Game with Expo, React Native and Redux

This is an article that I wrote in 2017 on medium. The dependencies used might be outdated; however, It might still be useful to take a look at. At the time I wrote this article, expo was relatively new and I was working with it on a big react native project and I thought it was completely magical. So I decided to try and create a simple game using expo and it turned out OK. In this article I shed...