Photobucket

Sunday, October 23, 2011

How to frighten your friend on a boring weekend

So, you wanna scare your friend this weekend? And you are wondering how to do that. Well, here is an idea. During my summer internship, I was trying out VNC on various machines including my android phone and an android tablet. That is when I found this out -



What you need is a VNC server and a client. On my ubuntu machine I had installed tightvncserver and xtightvncviewer. What we could do is use the vnc server to start a new X session. For those of you totally new to many such things, 


1) To install tightvncserver do a

Code:
sudo apt-get install tightvncserver

Similarly install xtightvncviewer.


2) Set up your vnc password by doing a

Code:
tightvncpasswd


Set your password and then

3) Start the new X session in a different display by doing

Code:
tightvncserver :1

4) Next, in order to view the session you created you need to use vnc viewer. For this do

Code:
xtightvncviewer :1

Type in your password and then you should have a window which shows your desktop.
Find below a screen shot I took of my office screen with two viewers open side by side for the same new session ( I soo miss the huge monitor :| )


So now, all you need to do to scare your friend, is some how sneak up one day, download a scary mp3 on his computer and may be setup a cronjob to start the vncserver, and then run the mp3 in the :1 display. Do tell me if you try this out or you have a better way to spook your friend ;)
Read more!

A very handy wireless mouse using your android phone

PRemoteDroid is an awesome app which you must have on your android phone and your laptop. Suppose you are giving a talk somewhere or just giving your course presentation, you don't have to stand right next to your laptop without going forward and interacting with the audience. All you need is this app installed on your phone and your laptop with bluetooth enabled.

You need the server app on your laptop and the client on your android phone(which you can get it on the market). You can get the server app here . If you are using an ubuntu machine then you also need libbluetooth-dev installed. After this all you need to do is start the server on your laptop as




Code:
java -classpath bluecove-2.1.jar -classpath blucove-gpl-2.1.0.jar -jar PRemoteDroid-Server.jar


Then set the password up, and start the bluetooth server by right clicking the tray icon. Also open up the android application and pair up your laptop with your phone. Now you have your handy wireless mouse whereever you carry your phone. :)



<Fart> As I had said many times, there is a reason for almost everything. So the reason for this post is a talk I attended during Shaastra 2011. For those of you who haven't heard of Shaastra, it is supposedly the biggest Tech-fest in the southern states and is hosted by IITM, a 'premier' technical institute of India. So you would generally expect a lot of high tech stuff here. But alas.

So, I was sitting for this talk where the speaker was all geared up to give the talk. Even the event co-ordinators had set up the computer attached to the projector with the necessary presentation. And as the speaker was about to start, he asked them a remote to the computer so that he can switch between slides. But this 'technical' institute had no such thing at all. 

So ,what followed was a series of embarrassing and awkward situations where the person in front of the computer had to be constantly woken up from his slumber to move to the next slide.We can't blame the poor sleeping guy if the talk were that boring. But still the point is, being in one of the (supposed) most elite institutes in the country, we couldn't do anything to help the speaker. </Fart>.

So, that was when I started thinking how smartphones can be used is such cases or may be a wii remote and a led. Ofcourse a wireless mouse would do as well, but what is the fun if you do things straight ;).


P.S. : The author is also from IITM in case some one was wondering 
Read more!

Sunday, September 25, 2011

Getting music out of your fav Youtube videos

So, again this is like a ready reference for me so that whenever I need to extract and convert music out of a video I can just come here and look at this post. Long long ago, I had done this once. I used ffmpeg to extract music out of a video and then convert it to some specific format. I remember reading that instead of using some one click tools which are readily available, using ffmpeg will help in maintaining the sound quality. Find below the detailed steps.

1) Install ffmpeg: I had initially thought that installing just ffmpeg would be sufficient but apparently it wasn't. I needed some extras too. So, to install everything that is needed, do this


Code:
sudo apt-get install ffmpeg libavcodec-extra-52


2) Extracting music: Next we need to check what kind of audio does my file have 


Code:
ffmpeg -i inputvideofile.flv

This will tell me what kind of audio does the file have. So I know what will my output be. Next I use the following command to get the music

Code:
ffmpeg -i inputvideofile.flv -acodec copy output.aac
3) Now I realize that an app in my phone ( Ringdroid) does not recognize this format. So I decide to convert .aac to .mp3
Code:
ffmpeg -i input.aac -ar 44100 -ab 115 -map_meta_data output.mp3:input.aac output.mp3

If you don't want to map metadata then you can just have
Code:
ffmpeg -i input.aac -ar 44100 -ab 115 output.mp3

The values 44100 and 115, I get them from ffmpeg -i inputfile.mp3 command 
Read more!

Thursday, September 22, 2011

Finally rooted my phone

Yep. Rooted it finally! I was a bit apprehensive about rooting it even more because I got a mail from LG saying android 2.3 arrived in India, but I decided to go ahead with it :D. And the best part was that it was just one click using gingerbreak.


This is the link which helped me. I do wonder what that app does actually. Hope to look into the internals some day :) .


Find below the various things I did after rooting my phone
Edit1 : I have even proxy issues at IITM. So the first thing I did was install ProxyDroid. It is working pretty good except for the gmail and gchat apps. Hope to do something about this.
Also I have installed Titanium backup and busybox 

Edit2: I installed ROM manager by Koush, and stupidly went to the recovery partition without flashing Clockworkmod recovery on to my phone. So my phone got reset. But now I installed again and also flashed Clockworkmod recovery.


Edit3: Most useful and detailed link for getting custom rom on your p500 - xda-link . Currently running    mik_os' CyanogenMod 7 port which runs android 2.3.7 . Really, it is a lot smoother than stock rom.
Read more!

Thursday, August 4, 2011

Proxy settings for android without rooting( just browing capabilities)

Here, in IIT Madras, we have a proxy through which we need to pass before we access the outside world. Even the wi-fi in the dept has a proxy. So what to do in order to be able to atleast browse the web using the wi-fi?

Here is the link for I found which explains two possible solutions. I installed latest Opera and it is working very well. Will be trying the other option too soon.
Proxy Settings in android for browsing capabilities

It would be awesome if other alternatives are also suggested in the comments.
Read more!

Sunday, July 24, 2011

Finally flashed an android device

Yay!

Before any of you think I was not sober while writing this and before you start imagining stuff, I'd like to make it clear that I am talking about my tablet here. Yes, I finally flashed it. I just couldn't resist trying it out and so I finally tried it out. I still have to confess I don't know what exactly is the whole process of flashing and what happens during this process but the story goes like this. 




<Fart>
So, I got this new tablet from my boss to play around. It was a new android tablet released in India just this month. It is called Zinglife. I know the name sounds so much chinese ( actually this would turn out to be one reason which would help me in my pursuit to flash this ). This is a neat tablet to play around with in India and spoil it, but I would not suggest anyone to buy it if they really want to join the android tablets fun.

Next day, I was asked by my boss to try to change the name 'Zinglife' during the booting . So I set about trying that. First thing is that I did not know what the 'boot logo' was called( it is called boot logo, which I came to know much later). Now, I believed that something like this can only be done by rooting the device. So I started searching on how to root this device.
</Fart>


Actually, Zinglife comes with 'superuser' app preinstalled. But it did not seem to have been rooted. Then I tried z4root applicaiton. It said success. But then none of the applications could get superuser privileges and even in the terminal emulator, when I typed 'su' I was getting some linkage error. So I searched for the error and found that the possible culprit could be the su binary which might be screwed up and I will have to replace it. So now I have to connect the tablet to my pc via adb.


You think that will be easy, right. Just shove the otg-usb cable into the usb slot in your lappy and run a command. It should be connected. That is how it was for my cell phone if I remember right. But nope. My tablet is not detected. So a quick googling tells me that I need to create a rules files somewhere in the /etc hierarchy. And I also need to get the vendor ID for this. I try all I could but still for some reason I just couldn't get it to work for this device :( . Only good thing which came out of this - I learnt a new command 'lsusb' which i needed to find vendor ID.


So next I began a quest of insane googling all the key words I could for various things. It is important to note here that the main thing I _had_ to do was change the boot logo. Not rooting the device and not getting su binary to work. So it was in this journey into the abyss of webdom did I find some tablet which looked identical to Zinglife. After some more research I found that Zinglife is infact just rebranded Zenithink zt-180. Just a cheap chinese product. So the name makes sense afterall ;)


Now that I knew what tablet this was, I could get the extensive data which was already present and found out that I could flash a new rom easily into this tablet. It turned out that Zenithink guys made this easy. All you need to do is create a folder called zt-update in a freshly formatted micro sd card and place the needed files into it and then just switch on the tablet with the 'back'(right button on the face) button pressed. So all I needed to do was get these files, change the file called boot.logo with my custom boot.logo (which has to be vertically inverted to come correctly) and then 'flash' my tablet. A whole series of verbose get printed on your screen and there you have it - your brand new custom rom. So finally I do not fear the word 'flash' as much as I did earlier. Here is a pic of my boot logo.
Now, this made me wonder


How do you flash any new device which was just released?
And what exactly is flashing?


I would like to find out answers to that and would be thankful if some one actually could give me more insights into all this.


This post is basically for those people in India who have recently bought a Zinglife tablet and wish to hack on it and play with it. The almost seemingly trivial knowledge that it is a rebranded chinese tablet should help a lot. BTW mine is a Zinglife ZL 101 10' tablet.

Ignore the 'Read more' button here. This is the end of the post.
Read more!

Friday, July 22, 2011

How to design a game in 10 minutes.

Trust me when I say this is a non technical post.
-


Everyone would have played some game or the other in his/her lifetime. And surely, most would have played a lot of board games or games on electronic devices. So one day I wanted to design a game. A game, which you can play again and again, and not a game which has a definite solution to win. So that is what I intend to explain in this post.


How to design a game in 10 minutes
Step 1 Enroll yourself in a course of Basic Graph Theory in the maths dept, especially under the Prof S A Chaudum. It is a lovely course and the professor is really, as we use the word very often in insti, God in it. So complete the course fast and get an S grade( for people from outside insti it is 10 points ) in it. You are done with graph theory and the first step.


At this point you should be asking me a question.


"Would just a basic course in graph theory suffice to design a game or would you also need to take an advance course".


Trust me my friends, you are not planning to write a solution for the game, you just want to design it.


Step 2 Now enroll yourself in the Automata Theory(most correctly Languages, machines and computation ) course by Prof Kamala Krithivasan in CSE dept. Even this is an awesome course and taught very very well too. Successfully complete this course. Any grade is fine as long as you pass here.


At this point I had like to congratulate you. You are half done.


Step 3 This is the hardest step. Choose an NP-complete problem from graph theory and disguise it as well as you can into some real world objects and their relation. Sprinkle some player interaction so that the game is not something which one player can play independently of the other. Choose a scoring system and you are done. Hurray!! All this shouldn't take more than 9 minutes.


Step 4 This is the easiest step of all. After commercializing this game and marketing it well, you'll be earning millions. Just write me a check for a million dollars. It shouldn't take more than a minute.


That is it. You have designed a game in 10 minutes. Your name will be etched forever in the glorious books of history in bold golden letters.


If you have any technical questions you can directly ask me by mailing me or asking your questions in the comments section. For these people the post ends right here.


At this point I believe some of you might have some questions for me. If you want to ask


"How does semester + semester + 9 minutes + 1 minute add up to 10 minutes?"


I would just like to say to those people that this post was intended only for the students who are pursuing their Master of Arts in IITM or those who've passed out recently ( yes, the first batch of MA students have finally passed out of IIT and god save them ).


Disclaimer: This post was written in the most serious of senses and the author should be forgiven for any non seriousness that might be apparent to the reader in this post.


Ignore the 'Read more' button here. This is the end of the post.
Read more!

Thursday, July 7, 2011

How to create a User Interface (UI) using Glade and pygtk - 1

This is a very basic tutorial to just get started on making small GUI.
I use Ubuntu but I believe any linux distro must do. Part 2 of this is specific to python but you could also do similar things with pure C.


<Important Fart>
I have decided to help readers by identifying the various parts of my posts as fart or not.This way anyone can dive into the actual stuff without having to bear with my runblings :D .
</Important Fart>


<Fart>
So yesterday night I had tried to give a small talk on the IRC channel #iitm-linux about GUI programming. I had intended to give the talk mainly based on what I had learnt during my first year summer as part of writing an application for Shaastra Distro( Shaastra-2010). 


So the main thing which irritated me initially while writing the application was that although I could drag and drop in Glade I couldn't exactly just drag and drop things at the location where I wanted. If I wanted a button at say location 70,30 in the window, I just couldn't place it there directly.And more irritating was that I couldn't even set the size of the button as I had wanted. 


It was not until later that I realized why was it like that and why that was actually a better way to make a UI. I might not have made much sense till now but you will understand what I mean as you proceed along this post. Ofcourse making UI has lot more things than just this dragging and dropping but, to me as a beginner, the most irritating part was this. That is why, although using glade is just something which you get after playing around with it for sometime, I am including it in this tutorial.
</Fart>


We Begin
To make UI there are two parts
One is to design how the application should look, where must a button be placed etc. The other part and the _important & interesting_ part is controlling how your app reacts to user inputs like clicking on buttons or pressing keys on the keyboard.


The easy way to do this is by using glade for the first part and using pygtk coding in python for the second part. This is the link to jump directly into part2


PART 1 : "Dragging and Dropping"


Little Introduction:
Most of the applications based in gnome desktop environment use gtk to show the UI. What is there in the gtk libraries are definitions of various types of objects possible i.e, windows, buttons and stuff like that. So what we try to do is use these libraries to create windows, button etc by setting various properties of these GTKObjects like width, height name, etc and assigning locations to these objects.
We do all this using glade to make our life easier and save time.


So first, install Glade software if you don't have it.
Open up glade. If a smaller window opens asking for some details and stuff like that just close it or click Ok.So first thing you need is a top level window. From your left side menu choose a window and just click on it. You should have it in your main space. You can see that on the right hand side towards the lower half all the window's properties.


Basically you will need to play around with them if you are making UI but in this intro I will just point you to some important things you can tweak in those properties on the right bottom. Name, resizable, default height, width etc can be changed in the 'General' settings tab. Right now you won't need to change anything in 'Signals' tab but that will come in Part 2.So I would suggest playing around a bit at this point in the tut.


Your glade window should look like this.


So now .. if you are done with playing around with those properties we shall proceed.
Important point to note is - when you intend to make UI, the best way to make it is by imagining the whole space into vertical and horizontal boxes. This is how glade wants you to make it. You will understand what I mean as you proceed.


I will use something called horizontal boxes and vertical boxes first. You can find Horizontal boxes and vertical boxes in the left side menu under containers.
Here are steps to follow


1) Click on vertical box
2) Place the vertical box on the window
3) Choose the number of Partitions to 2
4) Click on horizontal box
5) Choose the number to 3 after placing it into the bottom half of the vertical box.
It should look something like this


6) Click on button from left side panel and place it into the centre of the 3 partitions in the horizontal box.


You will observe the button to be huge in size and ugly. Choose the button now in the hierarchy on the top right and go to the 'Packing' tab in the bottom right.


7)Make the 'Fill' and 'Expand' properties to 'No'
8) Go to 'Common' tab and check the width request and height request boxes and fill both of them with a value 50 .


You will observe that the button is not exactly square. Now select the hbox from the hierarchy and go to its 'Packing' tab . And here again make the 'Fill' and 'Expand' property to 'No'. Now you will observe that the button is finally correct. So you should understand that when you are trying to decide a size for any item you are just requesting a size. Only if it is possible to have that size will you get it. The possibility depends on various things especially the container in which the item is placed. It also depends on the neighbors and other such factors. 


This way if you did not do the math properly and kept random sizes or if the user later resizes the window, everything will be taken care.I hope you now understood what I meant by " Imagine your whole UI in terms of vertical and horizontal boxes".


This tutorial was to just point you towards things. You will get better only by playing around with glade.


NICE TIP: I used this a lot. If you want to place something at some particular position but you are not getting it exactly at that position, then you could use an item called 'Label' in the left side menu near the buttons. You can place this at the right places where you want a space, may be so that you could move a button to further right or up. You have to remove the name of this label for it to mix into white space and your final user won't know.


This ends part 1 of the tutorial which I did not expect to be this big.
Find part two here.


Ignore the 'Read more' button here. This is the end of the post.
Read more!

How to create a User Interface (UI) using Glade and pygtk - 2

So this is part 2 in which I am going to explain controlling UI. You can find part 1 here. The coding part will be done in python in this post but you can also do the same in C


PART 2: "Being the God to your UI"
Before we go into the coding you need to understand what I mean by 'controlling'.It is how you would want the application to respond to user clicking and stuff like that. So for this what actually happens is something like this ....


Little Introduction:
There is something called an 'X server' running on your comp. Long long ago when there used to be long bearded hippie coders in front of giant sized terminals and everyone used mechanical keyboards. The main 'X server' would actually be running some place else on some main computer with lots of computing power . Now anyone who wants a window, suppose a gedit window, would request this 'Xserver' to send it a window of gedit You could have asked from any room in your university and the main computer which is running the server will send the data to your machine on how to render this window. 


So your machine just renders this on the screen. When you suppose click on some place, this X server is the one which gets to know where you clicked and it will hand these events to your application so that you can control what happens when a particular event occurs. So the X events include mouse click, key-press, key-release and many more which the 'X server' captures and tells your application about it if it is relevant to it.


To summarize what I said in the last paragraph, there are things called events which you need to handle which is the final step to make UI.


Let us get started.
Select the 'Signals' tab of the button and under 'GtkButton' select the 'clicked' event and under the Handler column for this event select a function name which you would like to define soon. I chose 'on_button1_clicked' .
Some thing like this
Read more!

Daskalos demo

I am storing all the content which I might want to look back at again on this blog. So this is the video of the demo of an application I wrote as part of Shaastra Distro for Shaastra-2010.

This is the github link for project Daskalos



Ignore the 'Read more' button here. This is the end of the post.
Read more!

Saturday, June 25, 2011

My pursuit to hack on an android device - 2

So this week I have been able to root the android tablet I have with me.
Frankly I thought rooting would be a real hard process where I would have to sit for long hours in front of my terminal with my android device connected and type long long commands. But a simple app did it for me after a small process of enabling USB debugging in my device the option for which is not there in my device inside the settings menu.

So this is the link for the video which helped me
http://www.youtube.com/watch?v=Y_mVnzd7w04

All credit goes to Poweruser77 for finding this.

So things I had like to understand more are
- How to hack firmware of devices ?
- How does z4root work?

Ignore the 'Read more' button here. This is the end of the post.
Read more!

Some good links and info

1) Tree style tab Firefox plugin 
------------------------------------------
 This is just too awesome. I had to reposition this to the top postion out of the 3 points in this post because it is just too awesome. I always had a big issue with tabs. 
I am sure this happens to a lot of people. You start reading an article and you come across some thing which you haven't heard of before, or else you got distracted and you opened some other link. THis way I end up opening a lot of tabs and not knowing how did I get to some link. So I craved for some extension like this. I almost decided to learn how to write firefox extensions and write it on my own during this summer. But ofcourse, as much as I like reinventing the wheel I tried finding out if there is anything like that is already available and found this.
https://addons.mozilla.org/en-US/firefox/addon/tree-style-tab/

Edit: It also works great with vimperator although you don't see vimperator in the below screenshot.

An image of my firefox


2) Real informative android internals 
explanation by Karim
----------------------------------------------------------
You can find the video and the slides here - http://www.opersys.com/blog/android-internals-101103
But apparently he also took another talk recently.
So this is the link for that
http://lanyrd.com/2011/2011-androidtm-builders-summit/sfmyr/

3) A nice material on networks 
------------------------------------------
'Professional .Net network programming' by Tim Parker, Vinod kumar and a few other names some of which I find it really hard to spell now :P

Ignore the 'Read more' button here. This is the end of the post.
Read more!

Friday, June 24, 2011

How to get a copy of flash video in firefox if you have the latest flash

I usually keep large youtube videos for buffering and watch them later after copying them from /tmp folder. But sadly updating your flash to 10.2 changes all that. And I dint know that until I finished buffering 2 large videos of more than one hr. So I began searching on how to do it ... found this awesome post on one Ubuntu forum. I would like to have easy access to it and hence I am storing the exact same thing here. Would love more solutions



1)Open flash video page (that you own of course) and let it load. Don't close the page.

2)Open terminal and give

Code:
lsof | grep Flash
lsof: list open files
In my case (opera user) it gives
Code:
operaplug 2840        teo    9u      REG        8,8  6962837     392986 /tmp/FlashXXFfe85s (deleted)
Notice the 2nd (process id) and 4rth (file descriptor - without the letter) columns.

3)
Code:
cp /proc/2840/fd/9 ~/Desktop/video 

I confess I dunno how this exactly works but one thing I know is in '/proc/2840/fd/9' fd stands for file descriptor. So we are just getting the fd for the video and then copying it.

This is where I got it from


http://ubuntuforums.org/showthread.php?t=1688948&highlight=Temp+Files&page=2

Credit to TeoBigusGeekus 
Read more!

Saturday, June 11, 2011

My pursuit to hack on an android device - 1

Ok. The first think I had like to make it clear here is that this is not a "guide" to start hacking on your android device. This is just a documentation of my pursuit to hack onto my android device.I am writing this since I am having to take a break for today and if and when I resume my pursuit again I had like a place to recap what all I did and how.

One more thing I had like to add is I am not experimenting on my own phone. I may seem dumb as you proceed through this post but I am not that dumb too. I happen to lay my hands on an android tablet from my company which I can play around with as much as I like.
Bottomline: Do not blame me if your device gets screwed up badly :D

First thing I told myself - "I wanna definitely root my device later but before that to start hacking on something you need a terminal right? So let me install a terminal."

I go to android market and search for an android terminal emulator. I get one instantly but then I realize that I don't have internet on my device because of the !@#$% proxy in my institute. So I need something like cntlm on my device for me to access internet from insti behind a proxy.So I search for this and on XDA developers I end up at this link. But alas! I need to root my device for that. So to summarize my pursuit
Want to root = > install terminal
      ^                            ||
      ||                            V
Need root &lt; =     Install Autoproxy

So I got tired of going round and round. Ofcourse you don't _need_ terminal first to root your device but it is the same process for installing anything here.
So next I decided to try to get the .apk directly and attempt to install. So I hit upon this - 3-places-to-download-android-apk/ .
I happily downloaded terminal emulator from Android Terminal Emulator for Android .And then!! I realize that I left my SD card reader in my office and hence I cannot move the apk file to my tablet!
All this reminded me of Lemony Snicket's A series of unfortunate events. So I have to wait till monday to go back to office and continue :(

I would really love comments on how else could I have done all this ( even if you are reading this post a decade after I wrote it ).


Edit #1:  I realised that I have a USB port on the tablet. I was so dumb. So I just installed terminal, droidssh and an ebook reader onto my tablet
Read more!

Sunday, May 29, 2011

Mysterious hacker and Cronjobs


I believe every blogpost has a history. Some like to share, some don't. Some can be shared, some can't. I like to share and in this case I can.

So one day, in my intern office, I was wasting a lot of time not doing my intern work and just gossiping around. So that night I decided that I will have something which will make me ask myself, what I am doing at that instant of time and also if that is what I set upon for working from the start.

First thing that struck me was something which my friend, Vaibhav Agarwal, had long ago asked me to look at when I found some time - Cronjobs. So I decided this is what I was going to use for pinging me every now and then.This reminded me of a post I had read some time ago. Desktop notifications in ubuntu using python.

So I wrote this small code and called it myst-hacker.py

#!/usr/bin/python

import os
import pynotify
import random

a = range(4)

messages = [" Whatcha doing? ",
            "Now stop being naughty and get back to work",
            "I can see everything you do ...... Muhahahaha",
            "Wazzup?"]
pynotify.init("My Application")
n = pynotify.Notification("Mysterious hacker says ...",
                          messages[random.choice(a)],
                          "/media/MY Space/Ginji.jpg")
n.show()

So all this code does is whenever it is run it shows a desktop notification like this(top right)

I made this python code executable( using 'chmod' ) and after this I was expecting to finish setting up a cronjob in 2 mins and slack off for the rest of the night.Unfortunately I thought wrong.

I believe, if you are running ubuntu 9.04 or higher, cron daemon will be automatically running each time you start your comp. So you don't have to start the daemon.So, if you are running 9.04 or higher, to set a cronjob, just do

$ crontab -e
If this is your first time then you will need to select an editor.
Then just write the time and date and the program to be run. ( You can find more details about crontab easily online)
But I did not realize I was missing something until later.

My mistake: Cronjobs which run gui commands need to be specified the display too. So it should be something like this

*/30 * * * * export DISPLAY=:0 && /home/devesh/myst-hacker.py

Remember to write the complete path to your home and not just '~' .
For more info on this check out crontab: How to run GUI programs with cron

So this is how I got mysterious hacker to ping me every now and then to remind me not to be naughty and get to my work :P.
Hope this helps someone.
Read more!

My First Android Phone.

It is important to note, in the title of this post, the word 'First'. It means there are definitely more to come :) .

Specs:
600 Mhz processor, froyo but upgradable soon to gingerbread, 3MP cam.

Here are some pics of my phone




 :D :D
I just love my phone!
Read more!