Category: Theory

  • IBM’s Watson On Jeopardy!

    I’ve been a fan of Jeopardy! for quite some time now.  Even more so over the past year.  Now that I am the Father of twins, going out at night just isn’t as easy as it was!  When I first heard about Watson being on Jeopardy, probably about 3 or 4 months ago, I was extremely excited.  Actually watching it over the past two nights has been just as thrilling.

    Learning about the technology behind it, being a geek and trying to think and understand some of the algorithms used, watching it think and tell you it’s best guess and a little bit about the process to find it has been nothing but entertaining. (more…)

  • Building A Scalable Queueing System With PHP

    In today’s article we are going to cover building a queueing system with PHP.  Before we begin, let’s define what a queueing system is.  The best place to start is the dictionary:

    “to line up or wait in a queue”

    Now that we have our definition, let’s define why we would want to build a queueing system.  A queueing system is an excellent tool that will allow us to take a specific process and perform the functionality “offline”, e.g. the process will line up and we will process them one at a time at a later date.  This will probably be easier to explain with an example.

    Imagine an admin area of a website that allows the administrator to send out a mass email to all of their users.  The simple process to building this functionality would be as follows:

    1. Build a form that accepts a subject and a body for the email.
    2. Retrieve the list of users from your database.
    3. Loop through the users and send each person an individual email.

    The above example works nice and fast when there are only a few hundred users.  However, imagine trying to send this email to 10,000 users.  The administrator would be waiting a long time for this process to finish.  Not only that, if they closed the browser, it probably would not finish properly.

    So, the goal of our queueing system is to remove a specific process from running “online” (in a web browser) and running it “offline” with a scheduled task. (more…)

  • Publishing an e-book on Smashwords

    I feel a little bit behind in the times on this one, but I’ll work to catch up quickly.  Over the past year or so I’ve been compiling samples and I put together a book for developing CakePHP websites.  I saught publishing on the book, but unfortunately all of the big name publishers felt that CakePHP is too small of a market.

    After being rejected, I wasn’t too sure what to do with the book.  So, I left it for a while.  Then, earlier this week through some Google searching I stumbled upon the idea of an e-book.  Previously I’ve associated e-books with “Get rich quick schemes” as you see a lot of websites selling e-books along those lines.

    I started investigating this option a bit more and I found some videos about creating e-books with Adobe Indesign and formatting them for the various readers.  This quickly started sounding like a lot of work!  Instead I searched for other solutions.  That’s when I found it: Smashwords.  This is an incredible service.  You upload your Word Document and they automatically convert it for the over 10 e-book options out there!  Not only that, they will sell it and promote it on your behalf. (more…)

  • Speeding up client/server response times

    In the past 6 months I’ve switched jobs from being a web developer to being a server side game developer.  So far it’s been an excellent career shift.  I get to focus on my true passions, intelligent back-end code and no longer having to waste my time with frustrating design challenges (there is a separate team that does that).

    Having said that, when developing large Facebook virtual worlds, there are a lot of client/server communication.  For example, each time someone buys something, each time you buy something, etc…  Currently, a lot of games wait for the server to respond, but why should we?  There are a lot of server calls that are done for informational purposes; just to keep the database up-to-date.  So I ask you, why should the end user wait for the server to catch up?  Let’s examine a simple approach to alleviate the need for the client to wait. (more…)

  • Developer High Fives (in honor of Barney Stinson)

    Last night was the premiere of my current favorite TV show “How I Met Your Mother”.  If you are not familiar with the show, former childhood star Neil Patrick Harris (Doogie Howser), plays a character named Barney Stinson.  Barney is known for several catch-phrases as well as special high fives.

    Borrowing some of the more popular high fives, I have created a top five high fives for developers.

    Without further adieu, let’s begin the countdown. (more…)