Wednesday, 28 September 2011 - 2:15 PM GMT

Just recently, I studied OOP (Object Oriented Programming) based on java, and am facing my first exam on this subject. It has been an exciting journey to shift from procedural programming to object oriented programming. When you can see things as an entity instead of just an array of codes, it makes coding a real joy.

After several months with OOP, when I see my codes behind this blog engine, I realize it was a mess. Code flies everywhere. There are no clear division of which code handle the database connection, which code handle the html representation, everything was mixed. I was not good at commenting on codes either, so everything is sort of tangled.

Finally, here comes the good news. I decided to drop this project and do it from scratch. However, now I will be using OOP as the base architecture of the project. I hope that the usage of OOP (and better code commenting) will leverage the flexibility of the system. One class per file, one class combiner, and one index for clearer presentation of how the system works. Why do I choose OOP? Clue: private $password;

I'll have my exam soon, and I hope I can get my hands off my keyboard ASAP. Happy blogging!

Friday, 19 August 2011 - 7:16 AM GMT

I've been trying to make my own hashing function for this blog, with no luck at all. So, I try to find the latest hashing function which known to be super secure, and I encounter "whirlpool". This hashing function is and never will be patented, so it's free to use. In addition to the randomized multilevel encryption process which I have been adding since the early development of this blog, I add the whirlpool function to the mix.

Here's my multilevel encryption process which contain the whirlpool algorithm:

$password=$encrypted; //the $encrypted var comes from my hand made encryption algorithm $formation=hash("whirlpool", $password); $array=array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"); $formation=str_replace($array, "", $formation); $i=0; $sementara=""; while($formation[$i] || $formation[$i]=="0") { $a=decbin($formation[$i]); while(strlen($a)<4) { $a="0".$a; } $sementara=$sementara.$a; $i=$i+1; } $formation=$sementara; $encrypted_password=$password; $i=0; while ($formation[$i] || $formation[$i]=="0") { if (intval($formation[$i])==0) { $encrypted_password=md5($encrypted_password).sha1($encrypted_password); $encrypted_password=hash("whirlpool", $encrypted_password); } else if (intval($formation[$i])==1) { $encrypted_password=sha1($encrypted_password).md5($encrypted_password); $encrypted_password=hash("whirlpool", $encrypted_password); } $i=$i+1; }

As you can see, in each level of the encryption process, there's 3 different hash functions to be executed (md5, sha1, and whirlpool). An average password will have at least 300 level of encryption. So a password cracker will have to go through at least 900 hash function executions to brute force the password, and that's only for one word. Even a super computer will be exhausted to crack it.

For more info about whirlpool, please go here. Happy blogging!

Tuesday, 19 July 2011 - 5:17 PM GMT

The past month I've been missing from the blogging world, thanks to my new and shiny device. It's the Samsung Nexus S. Yes, finally, I have a nexus device. I hope that this phone helps me in my future studies, especially in mobile technology.

Just a quick review, this phone, although still equipped with single core CPU running at 1GHz, it does have a decent GPU (Graphics Processing Unit) and a decent RAM (512MB). The screen is 4 inch diagonal, 800x480 pixel, 233 ppi. The only drawback is that there are no microSD card slot, so I'm stuck with 16GB of internal memory. However, my needs of multimedia is not that much, and my biggest microSD card was 8GB, so, it's not really a problem for me. Click here for more info about Nexus S. It's the GT-i9023 version by the way. So, instead of using Super AMOLED display, it uses S-LCD display, which is fine for me.

I was learning to make an android app in my last post, and since this phone come, I've been all over it so I forget about the learning a little bit. However, I'm back now, and I'm making a plan to use every single resource I could use from my new phone. It has NFC, gyro sensor, accelerometer (of course), proximity sensor, ambient light sensor, and some other stuff a typical touch screen android phone would have. I was planning to integrate webGL into this blog engine, so the gyro sensor and accelerometer will be a great use for interactive 3D content editing. In future android release, Google is planning to bring face detection, so that hopefully will bring semi 3D to a non-3D phone display like what Nexus S have. Editing 3D content will be more exciting that ever before.

Just so you know, my college is going to start soon, so I'm expecting a rather slow development progress. However, I'll always try to match what I'm currently studying in class with the development theme, so everything could be done as effective as possible. In my spare time, I'll also try to do some extended learning towards the development needs, especially webGL, openGL, openGL ES, and Android Programming (it uses custom API) since I wont be getting that from my university (I assume).