Reading List

The Selfish Gene
The Psychopath Test: A Journey Through the Madness Industry
Bad Science
The Feynman Lectures on Physics
The Theory of Everything: The Origin and Fate of the Universe


ifknot's favorite books »

Tuesday 9 May 2017

Tic-Tac-Toe Bitboards


CPE1704TKS

Board Games are, generally speaking, a collection of position based states and whilst it might seem intuitive for games like draughts, othello, chess, etc to have their positional states encoded in arrays and matrices of integers or floats it isn't efficient and it certainly isn't easy to reason about those states. So, quite early on (1950s and 1960s) it was discovered, and rediscovered, that it is more efficient to represent game states as 1 dimensional collections of bits and, more importantly, much easier and faster to reason about those states using boolean operators.

Such 1D bit arrays are termed bitboards and reach their zenith of complexity and utility in the game of Chess.

But it's not just Chess that can benefit from bitboards so can the humble game of Tic-Tac-Toe (a.k.a. Noughts & Crosses if you're Blighty based).


Tuesday 25 April 2017

LNMHH Towards A Full Stack Developer Jack-Of-All-Trades



LNMHH

LNMHH is my alternative solution stack to the archetypal LAMP model of web service stacks. Using the LAMP naming convention as an acronym of the names of its composing five open-source components it consists of: 
  • Linux operating system
  • Nginx HTTP Server
  • MySQL relational database management system (RDBMS)
  • Hip Hop Virtual Machine (HHVM) virtual machine designed for executing programs written in Hack and PHP

LNMHH is intended to be the modern, typesafe approach to building dynamic web sites and web applications.

Other supporting members of the cast are also included, not least of which is the excellent Hack Lang compatible editor Nuclide (built atop Atom) for its remote development strengths:
  • Nuclide client development environment for remote & local Hack projects
  • Nuclide server to enable remote development
  • Watchman utility that watches files/directories for changes and performs actions on change
  • Composer tool for dependency management in PHP Hack Lang
  • XHP extension to Hack for inline XML/HTML for custom and reusable HTML elements
The initial LNMHH test stack was set up on a Digital Ocean Droplet...

Saturday 22 April 2017

I have a pipe-dream! One idiot's efforts in programming land...

Paper 53 client-server interaction diagram

  • I want to learn Hack - Facebook's typesafe version of PHP and use it with HHVM to serve up game connections for simple board games.
  • I want to learn QML - Qt's cross platform user interface markup language with inline JavaScript (which I will also need to learn) for simple board game clients e.g. Tic-tac-toe and Snakes & Ladders.
Importantly, I have no idea how to do any of this but even if it all crashes and burns I will hopefully have learned along the way - and, just maybe, the journey will be of useful interest to others.