ProgrammingInCpp.com by Michael
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++?