Ignatius Teo is a freelance PHP programmer and has been developing n-tier web applications since 1998. In his spare time he enjoys dabbling with Ruby, martial arts, and playing Urban Terror.

Ignatius's articles

  1. Building Engaging Web Apps with Game Mechanics

    When we speak of “games”, we imagine physical, sporting activities, or video and board games. Rest assured, I’m not talking about developing the next blockbuster FPS, 3rd-person slasher, MMORPG, or 2D-platformer. It’s about going beyond the simple visual appeal of JavaScript animations and CSS transforms, into game design and mechanics to create engaging websites and web applications.

    What is Gamification?

    “Gamification” is the use and application of game design techniques and game mechanics, in non-game contexts, to engage a target audience to change behaviours, learn new skills, or enable innovation. Game design can be applied to practically all facets of business from customer engagement, employee performance, training and education, innovation management, personal development, sustainability and health. Gartner predicts that by 2015, more than 50% of organizations that manage innovation processes will gamify those processes.

  2. Data Structures for PHP Devs: Graphs

    This entry is part 4 of 4 in the series Data Structures for PHP Devs

    A graph is a mathematical model of the relationships between key/value pairs. They have a number of real-world applications, for example traffic routing and social network analysis. This article explores two common problems in which graphs are used – the Least Number of Hops and Shortest-Path problems.

  3. Data Structures for PHP Devs: Heaps

    This entry is part 3 of 4 in the series Data Structures for PHP Devs

    This article continues the Data Structures series and introduces you to the heap abstract data type. Heaps are specialized tree-like structures which satisfy the heap property – the node value of any parent is always ordered with respect to its child values across the entire tree. Take a closer look!

  4. Data Structures for PHP Devs: Trees

    This entry is part 2 of 4 in the series Data Structures for PHP Devs

    The previous data structures article was well received so we’ve decided to start an intermittent, on-going series here at SitePoint. This entry introduces you to trees, another data structure commonly used in software design and architecture. Learn what a tree is, how its nodes are inserted, and how to recursively walk a tree in depth-order.

  5. Data Structures for PHP Devs: Stacks and Queues

    This entry is part 1 of 4 in the series Data Structures for PHP Devs

    A data structure, or abstract data type, is a model that’s defined by a collection of operations that can be performed on itself and is limited by the constraints on the effects of those operations. It creates a wall between what can be done to the underlying data and how it is to be done. In this article, you’ll learn about two important data structures which have their conceptual origins in everyday usage: stack and queue.

  6. Build Automation with Composer Scripts

    You know that Composer is a resolver for managing external project dependencies and versioning constraints, but is that all it does? With a little creativity, certainly not! In this article you’ll see how Composer can also be used as a basic build automation tool.

  7. Understanding the Observer Pattern

    In this article you’ll learn how to implement the Observer Pattern, a behavioral design pattern which defines a one-to-many relationship between objects such that, when one object changes its state, all dependent objects are notified and updated automatically.

  8. PHPMaster: Understanding the Command Design Pattern

    Did you know there are over 4 billion mobile phones in use today ? Here in Australia, we have a population of approximately 11 million people and over 22 million mobile phones – that’s an average of 2 phones per person! It’s obvious that mobile phone usage is becoming more prevalent. And given the ubiquity of smartphones and other mobile devices, more and more customers are now opting to receive notifications via SMS rather than email. Text messages certainly have advantages over email – they’re short, immediate, and best of all SPAM is negligible.

  9. PHPMaster: Understanding the Command Design Pattern

    Did you know there are over 4 billion mobile phones in use today ? Here in Australia, we have a population of approximately 11 million people and over 22 million mobile phones – that’s an average of 2 phones per person! It’s obvious that mobile phone usage is becoming more prevalent. And given the ubiquity of smartphones and other mobile devices, more and more customers are now opting to receive notifications via SMS rather than email.

  10. Understanding the Command Design Pattern

    The Command Pattern encapsulates actions so you can queue different requests and then trigger them at once. This article shows you how to implement the design pattern using a simple example of a message queue.