by Michael

Practical Programming in C++ Homepage Amazon I founded Practical Programming Guides in C++ in year 2011.

I wrote and published a book Finite Programming in C++ in 2005. In 2011 I thought I needed to update the book but didn't want to publish the book again. Therefore I decided to put the entire contents of the book on a website so that I can update it any time I want. Thus Programming in C++ is born.

The book trains readers by walking them through a set of well designed programming exercises such as Write a program to generate a random maze and develop a program to solve the draught puzzle!

The website is built using the following technologies:

  • PHP: PHP is the backbone of the website. THe PHP engine generates all the dynamic content of the website using the Yii Framework which I will introduce next.
  • The Yii Framework: I needed a PHP framework to develop Programming in C++ on because pure PHP can be messy and confusing and time consuming. I surveyed all the popular frameworks including CakepHP, Zend Framework, Symphony.

    And I realized the Yii framework, an MVC framework, is relatively new and seem to be the most popular and have the best performance. Therefore I picked Yii.

    The fun thing is that I needed to do a small hack to make my website work. I didn't need conventional controller/action functionality in MVC frameworks such as CakePHP and Yii; I simply need to route all the requests to one single controller and one single action, and that action handles everything.

    I take advantage of the caching functionality it comes with and it's very fast. In the future as I am enhancing the website I'll be relying on more of its popular features.

    Also Yii provides an ORM tool which is extremely useful in manipulating your data models. I needed to link every chapter to each other in an orderly fashion, and Yii helps a lot!
  • jQuery: The Javascript library jQuery is one of the most popular libraries. It has a rich list of plugins that do all kinds of visual effects which were only possible with Flash before.

    I use jQuery to dynamically inject CSS or HTML tags. For example for every HTML element that has class set to 'highlight' I automatically insert a link upon clicked the browser scrolls to the top of the webpage.

    I also use jQuery to load Facebook API asynchronously.
  • MySQL: Being one of the most SQL engines MySQL is naturally my choice of database.

    Needlessly to say I use MySQL to store all the data of the website including the title, URL, content of every chapter, every sub chapter.
  • Nginx: I use Nginx as the web server and file server for Programming in C++.

    I don't have a preference over what web server to use, but my website host happens to have Nginx and so I use it. I like the simplicity of its configuration's syntax and its optimal performance.
  • SVN: I use SVN to do source control for all the files posted on Programming in C++.
  • Facebook Plugins: As you can see I use FB Like plugin, FB Share plugin, and FB comment plugin on Programming in C++.
What are your favorite chapters on Programming in C++?
Post your comment below.
Anything is okay.
I am serious.