Thursday, May 27, 2010

Recommended Car Dealers in Chennai

If you ever plan to buy used cars in Chennai then choose any of the following dealers.

  • Automart India Limited4/9, Nungambakkam, Chennai, Tamil Nadu 600006044 28227863
  • T S Mahalingam & SonsNo. 240, Royapettah High Road, Royapettah, Chennai, Tamil Nadu 600014 044 22442525
  • S R Finance For Immediate Response Contact - 9841 777 111
  • Cars & Caars53/11, Pillaiyar Koil Street, Kodambakkam, Chennai, Tamil nadu 600024
  • Super Cars1, A-Block, Chamiers Road, Nandanam, Chennai, Tamil nadu 600035044 24340152
  • Excel Marketing4th Floor, Peters Road, Royapettah, Chennai, Tamil nadu 600014044 28413090
  • Sun CarsIi Floor, Kasturba Nagar, 3rd Cross, Chennai, Tamil nadu 600020
  • UshaacarsHabibullah Rd, Thyagaraya Nagar, Chennai, Tamil Nadu 600017044 28340400  – 09841050625 – 044 28340399 (Fax) – 09841020625 (Mobile)
  • Concorde Motors LtdVelachery Road, Guindy, Chennai, Tamil Nadu044 22354014 Contact Number :       044 64541912
  • Grace Cars3, Pondy Bazar, Muthukrishnan Street, Behind Naidu Hall, T Nagar, Chennai, Tamil nadu 600017 044 28158933
  • Tata Car Sales803, Anna Salai, Opposite Lic Building, Chennai, Tamil Nadu 600002 044 28412892
  • Gvk Reddy & Sons20, T Nagar, Chennai, Tamil Nadu 600017 044 24337123
  • Anwar Forex Pvt LtdNo 18-A, Periyar Road, T Nagar, Chennai, Tamil nadu 600017 09840711007
  • India Auto Center (P) Ltd.12/28, Dr Sadasivam St, Thyagaraya Nagar, Chennai, Tamil Nadu 600017044 4202 5897 – 09994475991 (Mobile)
  • Car-Trade114/86, Drrksalai,, Mylapore, Chennai, Tamil Nadu 600004 044 28114789
  • Chennai Motors36, SH 113, Kodambakkam, Chennai, Tamil Nadu 600034044 24726555  – 09841023456  – 09841311111 (Mobile)
  • Jeejaycars2nd Main Rd, Velachery, Chennai, Tamil Nadu 600042044 4233 4041  – 09841097179  (Mobile)

Thursday, May 13, 2010

Google to Launch E-book Store

A credible threat to Amazon and Apple in the race to become the predominant electronic bookseller!
_____________________

Google is planning to launch its own e-book store this summer, setting the scene for an all-out war with Apple and Amazon over the future of the digital book market.

Speaking at a panel discussion held by Random House today, Chris Palma, Google's manager for strategic partner development, said Google Editions would launch in June or July, offering digital versions of the titles on its book search service. The company says the e-books will work across multiple devices and unlike the e-books of iPad and Kindle, any device with a browser will be able to view the books. Customers with a Google account will be able to access the service.

Readers will be able to buy digital copies they find through Google's book search function and book retailers will be able to sell Google Editions on their own sites, getting most of the revenue from sales. Google Editions will be browser based, offering the latest digital books without locking customers to a specific device.

A Google spokesman said its plans had been in the pipeline for some time. "We've consistently maintained that we're committed to helping our partners find more ways to make their books accessible and available for purchase online, and we've been sharing details with our partner publishers for some time now. We hope to launch this to consumers in 2010."

Google joins the fray as the e-book market looks set to be the latest to be transformed by the internet, following on from music and films. Wholesale revenues from e-book sales in the US tripled in the third quarter of 2009 to $46.4m (£30.6m), from $13.9m during the same period in the previous year.

Google Books, formerly known as Google Print, was launched in 2004 but put on hold a year later when the Authors Guild of America and Association of American Publishers sued over alleged "massive copyright infringement".

Its attempt to create a vast digital library has raised anti-trust and copyright concerns. Earlier this year, the US justice department said the "plan still confers significant and possibly anti-competitive advantages on Google as a single entity".

But analysts say the arrival of e-book reading devices has been a shot in the arm for the book industry. The Kindle has been a hit, selling 2.4m units, and has a market share of 55%, according to Forrester, the market research company.

Apple said this week it has sold 1m iPads so far. Prices for the iPad begin at $499 and it is more expensive than a Kindle, which begins at $259. However, the iPad can also be used to surf the net, play films and store music.

Source: Guardian.Co.Uk

Go to http://www.ubuntu.com/getubuntu and Request a CD to get your free copy of Ubuntu. It is totally FREE and no hidden cost.

Spread the love for Open Source.

PS: Do not Request for it if you are not going to use it. Let us not waste the resource, please! :)

I do not know why but I feel so “C++” today (This is the first time I am using C++ as a verb haha) and hence this knowledge share… :)

If you are a C++ programmer, you must know that it is not advisable to overload Virtual Functions even though the compiler will not complain.

… But why?

Look at the below sample code:

#include 
using std::cout;
 
class Base {
  public:
    virtual void foo(int f) {
        cout << f;
    }
    virtual void foo(double f) {
        cout << f;
    }
};
 
class Derived : public Base {
  public:
    void foo(int f) {
        cout << f;
    }
};
 
int main() {
 
    Derived *d = new Derived;
    Base *b = d;
 
    cout << "Calling Base foo(double) through Base\n";
    b->foo(3.14); // Base Class foo(double) is called
 
    cout << "Calling Base foo(double) through Derived\n";
    d->foo(3.14);//Derived Class foo(int) is called
 
    delete b;
}

THiNK 1: What will happen if you try to overload Pure Virtual Functions in the Derived Class? Will my below code compile? Try it :)

#include
using namespace std;
class base
{
public:
base();
virtual void foo()=0; //Pure virtual function
};

class Derived : public Base
{
public:
void foo(int f) //Pure virtual function overloaded
{cout << f;}
};

int main()
{
Derived *dObj = new Derived();
Base *bObj = dObj;
dObj->foo(2); //What will happen?
bObj->foo(2); //What will happen?
return 0;
}



NOTE: While all pure virtual functions MUST NOT have a function body, Pure Virtual Destructor MUST have! Also, Pure Virtual Destructors NEED NOT be overridden in the derived class. As a proof, the below code will compile and link fine…

class AbstractBase {
public:
  virtual ~AbstractBase() = 0; //Pure Virtual Destructor and hence AbstractBase is an Abstract Class
};
 
AbstractBase::~AbstractBase() {} // Implementation of Pure Virtual Destructor
 
class Derived : public AbstractBase {};
// No overriding of destructor necessary
 
int main() { Derived d; } 

Here are some of the major differences between Virtual and Pure Virtual Functions

Virtual Functions
  • Virtual functions have a function body.
  • Overriding can be done by the virtual functions. (Optional)
  • It is define as : virtual int myfunction();

Pure Virtual Functions
  • Pure virtual functions have no function body.
  • Overriding is must in pure virtual functions. (Must)
  • It is define as : virtual int myfunction() = 0;
  • A class is called as "abstract class" when it has at least one pure virtual function.
  • You can not create instance of "abstract class", rather you have to inherit the "abstract class" and overload all pure virtual function

Friends,

Last weekend my FireNookz’ (desktop) HDD crashed and I had a chance to install RHEL 5 in my system. After a long time I was trying to mess with some of the UNIX commands. I am not that expert in SED and AWK however I can survive and I am still learning though… I shall also share a “Practically Useful GREP Commands” as soon as possible but for now… Here are few commands which every UNIX professional may find useful.

______________________________

1. Display specific lines (based on line number) of a file using sed command

Syntax: $ sed -n -e Xp -e Yp FILENAME

sed : sed command, which will print all the lines by default.
-n : Suppresses output.
-e CMD : Command to be executed
Xp: Print line number X
Yp: Print line number Y
FILENAME : name of the file to be processed.

Example: $ sed -n -e 120p -e 145p -e 1050p /var/log/syslog

2. Viewing the content of var/log/cron from line number 101 to 110.

Syntax: sed -n M,Np FILENAME

M – Starting line number
N – Ending line number

Example: $ sed -n 101,110p /var/log/cron

3. Display first N lines of a file using head command

Syntax: head -n N FILENAME

Example: $ head -n 15 /var/log/maillog


4. Ignore last N lines of a file using head command and show only the remaining lines from the top of file.

Syntax: head -n -N FILENAME

Example: $ head -n -250 /var/log/secure

5. Display last N lines of the file using tail command

Syntax: tail -n N FILENAME

Example: $ tail -n 50 /var/log/messages

6. Ignore first N-1 lines of the file using tail command and show only the remaining of the lines.

Syntax: tail -n +N FILENAME

Example: $ tail -n +5 /etc/xinetd.conf

7. View growing log file in real time using tail command

Syntax: tail -f FILENAME

Example: $ tail -f /var/log/syslog

8. Display specific lines (based on line number) of a file using head and tail command

The example below will display line numbers 101 – 110 of /var/log/anaconda.log file

M – Starting line number
N – Ending line number

Syntax: cat file | tail -n +N | head -n (M-N+1)

Example: $ cat /var/log/anaconda.log | tail -n +101 | head -n 10

cat : prints the whole file to the stdout.
tail -n +101 : ignores lines upto the given line number, and then start printing lines after the given number.
head -n 10 : prints the first 10 line, that is 101 to 110 and ignores the remaining lines.

9. Display lines matching a pattern, and few lines following the match.
The following example displays the line that matches “Initializing CPU” from the /var/log/dmesg and 5 lines immediately after this match.
# grep "Initializing CPU#1" /var/log/dmesg
Initializing CPU#1
[Note: The above shows only the line matching the pattern]
 
# grep -A 5 "Initializing CPU#1" dmesg
Initializing CPU#1
Calibrating delay using timer specific routine.. 3989.96 BogoMIPS (lpj=1994982)
CPU: After generic identify, caps: bfebfbff 20100000 00000000 00000000
CPU: After vendor identify, caps:  bfebfbff 20100000 00000000 00000000
monitor/mwait feature present.
CPU: L1 I cache: 32K, L1 D cache: 32K
[Note: The above shows the line and 5 lines after the pattern matching]
PS:
Viewing N lines after the match with -A option.
Viewing N lines before the match with -B option.
Viewing N lines around the match with -C option.

10. Displaying specific bytes from a file.

Display first 40 bytes from syslog.
$ head -c40 /var/log/syslog

Display last 30 bytes from syslog.
$ tail -c30 /var/log/syslog

11. Viewing compressed log files

The following example explains how to display either the top 40 or the last 30 bytes of a file.

# Display the first N lines of a compressed file.
$ zcat file.gz | head -250

# Display the last N lines of a compressed file.
$ zcat file.gz | tail -250

# Ignoring the last N lines of a compressed file.
$ zcat file.gz | head -n -250

# Ignoring the first N lines of a compressed file.
$ zcat file.gz | tail -n +250

# Viewing the lines matching the pattern
$ zcat file.gz | grep -A2 'error'

# Viewing particular range of lines identified by line number.
$ zcat file.gz | sed -n -e 45p -e 52p

Happy Learning!

Yesterday I was reading “Design Patterns: Elements of Reusable Object-Oriented Software” book and found an interesting concept hence just wanted to share... Being in C++ for years, I have never had a chance to work with State Pattern; well its ok there is always room for improvement.
 
With no further ado, here it is…
 
Consider a case where you want to change an Object’s Class during Run-Time. This example could explain the need for it:
 
If you have an account, and don't use the account for a long time, or close it, it may change to a closed account. The information you have in a closed account may be very different from that in an open account. There may be some shared information, primarily the id of the account. Implementation would be base class of account, with two inherited classes, open and closed account. Now it would be useful to be able to change an open account to closed account (Change type) at runtime without having to do extra work. It should be possible to implement invariants as to what transitions are possible. Open to Closed but not Closed to Open.
 
State Pattern comes handy in solving such problems. When you find some free time, read more at State Patterns! If you are new to Design Patterns and want to learn more, the above said book is the best bet.

Is this SCAM or REAL? Read this
 
To order your Lunar Land , Go Here

People with uncommon names don't expect perfect pronunciation the first time they meet someone, but they're probably impressed when they encounter it. Get a jump on your next business meeting or speaking opportunity with HearNames.com, along with another pronunciation resource.
 
Check out Hear Names

Tuesday, February 23, 2010

PHP cURL - An Insight

Friends,
 
It has been quite some since I shared something useful. Here it is…
 
Disclaimer:  
 
The piece of code I give here is a Black Hat SEO hack and I take no responsibility if you use it for spamming purposes. You can use it to spam though but do NOT credit me :)
 
With no further ado, let’s begin!
 
If you are a blogger or Black Hat SEO Enthusiast, you would have wanted to blast comments on more than 1Lac blogs in literally no time, yeah? (If you are new to Blogging and ask WHY I would want to comment on that many blogs then the simple answer is – BACKLINKS. Yeah! When you comment on someone’s blog post, you have the option to leave your Blog/Website URL there thus getting a FREE, One-Way Backlink)
 
Here is the code for you… I hope that I have given enough comments for even beginners to understand and also I have used fake details so do not try to spam me back using this script haha.
 
Obviously, I have coded this in PHP - cURL. I just started learning cURL library and thought why not try something to SPAM others. The result is this little devil... I mean the script
$postfields = array();
$postfields["action"] = "submit";
$postfields["author"] = "Bhavani";
$postfields["email"] = "Bhavani_is_a_spammer@gmail.com";
$postfields["url"] = "http://www.BhavaniKannan.com/";
$postfields["comment"] = "WoW! What a cool post. I am sure gonna bookmark this.";
$postfields["comment_post_ID"] = "123";
$postfields["_wp_unfiltered_html_comment"] = "0d870b294b";
//Url of the form submission
$url = "http://www.SomeBlogThatDoesNotExist.com/blog/suggerer_site.php?action=meta_pass&id_cat=0";
$useragent = "Mozilla/5.0";
$referer = $url; 
  
//Initialize CURL session
$ch = curl_init($url);
//CURL options
curl_setopt($ch, CURLOPT_POST, 1);
//We post $postfields data
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
//We define an useragent (Mozilla/5.0)
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
//We define a refferer ($url)
curl_setopt($ch, CURLOPT_REFERER, $referer);
//We get the result page in a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//We exits CURL
$result = curl_exec($ch);
curl_close($ch);
  
//Finally, we display the result
echo $result;
?>
How to use this?
 
Make a .php script out of the above code I have given and host it in your server. Point the hosted URL at your web browser and there you go… “Someone got a SPAMMy comment on their blog” J
 
Tested and Validated by me both in my Local Host and Web Host. I use LAMP at home. No matter what you use – LAMP, XAMP or WAMP just make sure you have the cURL library balue set ON (value=1) for this script to run.
 
Also, try variations by having a list of URL’s in an EXCEL sheet where you want to make a comment. Instead of passing one single URL using the $url variable, make your script read the .XLS sheet and spam on… I mean comment on all those victim blogs.
 
I hope you find this useful J
 
Next: I am now in the process of making a Twitter bot that will automatically add friends, send auto tweets, etc. I know there is one such tool available in the Market but it costs hell a lot ($199). I am planning to create a remake of it with minimal yet essential features and make it available for free. The use of my Twitter bot would be to increase my CTR (Click Through Rate – Refer Wiki for more) and also to bring in more traffic to my site.
 
Have a great day guys!

If you are a Web Designer/Developer, you will love this…
 
You must be aware of Lorem Ipsum. It is not some dumb random text like many of us think. It is intentionally designed to mimic the size and spacing of English text.
 
How many times have you longed for an Image Version of it? Well I did J
 
While designing templates especially for Wordpress, I try to fill the 125x125 ad spaces with self-made images. Are you of my kind? – Gone are those days!
 
Here comes DummyImage Comes to saves us!
 
How to use it?
 
 
Now you get the idea, yeah? :)

The creator of this must have great sense of humor :)

It can be awkward asking for honest feedback from the people around you, but knowing how others perceive us is important to self improvement. New service BetterMe helps you solicit advice from others without putting them on the spot.
 
Is the entire office annoyed at the team member who yaps away loudly on her cell phone all day? Use BetterMe to send a gentle—and anonymous—email to call her attention to the issue.
 
Source: Make Use Of
 
Check out Better Me

Saturday, January 23, 2010

MyLikes - Share Your Likes


MyLikes - Share Your Likes - www.mylikes.com
You now have a chance to shout out to the world about your likes! You never know, you will end up finding like-minded people :-) What are you still waiting for? Start sharing MyLikes I mean Your Likes today :)

Creating E-Signatures is just 3 clicks away now! Check out My Live Signature

You can use these as a e-signature on your Website (where not necessarily it should match you real signature). If someone does not have a signature, they can get ideas from here. 

Are you a Web applications developer? I have something you must be interested in and which really is extremely useful!

I, being a Freelance Web Developer for years, have seen many people paying for Social Bookmarking, Creating automated tweets in Twitter, Leaving Blog comments and so on…

If you are one of those then STOP wasting your money, right away! iMacro will save you from all that…

What is iMacros?

iMacros is the industry-leading web automation, testing & extraction tool.

What can iMacros do for you?

Ø       Form Filling & Single Sign-On
Ø       Script IE and Firefox
Ø       Web Scraping/Data Mining
Ø       Web Application Testing
Ø       Excel/Access Web Queries
Ø       iMacros as Software Component
Ø       Website Monitoring (AlertFox)

Try out iMacros today! If you need any help you may ask it on their forum.

Found this cartoon on their Issue 30. Download from Full Circle Magazine. This 30th issue includes, Interview with Motu, Programming in Python (Part4) and a lot more techie stuff.