After giving it some thought, I declare that from now on, I will be using the old blog again, since I actually want to be able to fully control every aspect of it.
When I'm learning about the application of OOP in web programming, I come across something called MVC (Model-View-Controller). It's an architecture for an application which allows the application to be easily configurable for different UI. Basically, it allows the same application to be viewed across different type of devices.
The controller is basically a layer which receives all of the input from the user, validates it, and execute the requested action. It has some type of input sanitization, and it knows all of the other element in the application in order to tell them what to do.
The model is a layer which handle all of the business logic, data abstraction and data processing. In conjunction to input-processing-output mechanism, the model layer is comparable to the processing part, while the controller is comparable to the input part.
The view layer, as its name tells, is a layer that allows the user to view the requested content/action. It knows nothing about database or any data sources, it only knows that it needs to render the content provided by the model.
However, when I dug deeper into the MVC architecture, I also come across PAC (Presentation-Abstraction-Control). It basically is an altered version of MVC, where the Model (in this case the "abstraction" part) can't directly access the view ("presentation"). The abstraction layer needs to transmit the data stream to the controller, and when the controller done validating the data stream, it tells the presentation layer to render the data accordingly.
Why do I write about this? It has something to do with the main concept of the blog engine. It will use PAC as the base architecture. It's secure, because all of the data transmission is controlled in one layer (try to beat that, hackers!). OOP will sure be used as the basic paradigm of programming the blog engine.
That's it for today, and, Happy Blogging!
update (2011/10/12 13:15 GMT+7): I will temporarily use MVC for the beginning, and move to PAC as I understand it better.
I'm currently trying to learn some subjects, which is HTML5 for rich content editing and WebGL for better content presentation. I've also come across one major feature that will complete the Blog Engine (which I was referring to as "CMS" previously). I'm currently learning how to make an Android app.
Why an app, and why android? First, it has to be an app because I'd like to have the ability to update my blog easily with my mobile devices. Second, I develop on android because, well, my phone is an Android phone.
I'd like to have the ability to edit my content not only from anywhere, but also when I have no internet connection. Yes, we will soon be able to edit our content in offline mode. How do I do that? That's simple. Like most android app, including the Gmail app, those things store data in our local storage, and sync it whenever something new come out. So, when we update from the app or from the web based editor, it will always be synced. Therefore, we will always have an offline backup of our contents, and we can edit them with no internet connection.
With HTML5 and WebGL already at work, added with the offline Android app, that's a lot of work indeed. However, when it's all finished, it will become a complete package of Blog Engine. At last, happy blogging!