Tuesday, May 20, 2008

PHP rand(0,1) on Windows < OpenSSL rand() on Debian

512x512 image made using `if rand(0,1)` on PHP/Windows

(Please excuse the inflammatory title.)

Bo Allen recently made a post regarding the difference between true random and pseudorandom numbers, using 512x512 bitmaps as illustration.

Some might doubt his result on Windows, as the image seems to be too predictable. Initially, I passed it off as PHP using the default Windows pseudorandom number generator, which is a Linear Congruential Generator.

The default windows rand() function is implemented as follows (coefficients from this site, many others have them also):

unsigned long randState = 0;

//Get random number
unsigned long rand(void) {
randState = randState * 214013 + 2531011L;
return (randState >> 16) & 0x7fff;
}

//Seed RNG
void srand(unsigned long seed) {
randState = seed;
}

Here is Bo Allen's code:
// Requires the GD Library
header ("Content-type: image/png");
$im = @imagecreatetruecolor(512, 512)
or die("Cannot Initialize new GD image stream");
$white = imagecolorallocate($im, 255, 255, 255);
for($y=0;$y<512;$y++){
for($x=0;$x<512;$x++){
if(rand(0,1)===1){
imagesetpixel($im, $x, $y, $white);
}
}
$x=0;
}
imagepng($im);
imagedestroy($im);


Let's have a look at how PHP does rand(0,1). All code is from the php-5.2.6 source release.

//ext/standard/rand.c:296-315
/* {{{ proto int rand([int min, int max])
Returns a random number */
PHP_FUNCTION(rand)
{
long min;
long max;
long number;
int argc = ZEND_NUM_ARGS();

if (argc != 0 &&
zend_parse_parameters(argc TSRMLS_CC, "ll", &min, &max) == FAILURE)
return;

number = php_rand(TSRMLS_C);
if (argc == 2) {
RAND_RANGE(number, min, max, PHP_RAND_MAX);
}

RETURN_LONG(number);
}
/* }}} */


A bit of digging reveals that php_rand is just a wrapper to the system's random() function. Okay, so what exactly is RAND_RANGE?

//ext/standard/php_rand.h:43-44
#define RAND_RANGE(__n, __min, __max, __tmax) \
(__n) = (__min) + (long) ((double) ( (double) (__max) - (__min) + 1.0) \
* ((__n) / ((__tmax) + 1.0)))

Wow, that is some ugly code.

Python's default random generator uses Mersenne Twister, which is an excellent choice for any application outside of cryptography. Here's code that replicates Bo's experiment, including a re-implementation of php's broken rand() function.


import PIL.Image, random, time

class MsftRand(random.Random):
'''This is equivalent to rand() and srand() on the Windows platform'''
state = 0
def __init__(self): # constructor method
self.state = int(time.time()) # seconds since the epoch
def seed(self,s):
self.state = s
def setstate(self,s):
self.state = s
def getstate(self):
return self.state
def random(self): # returns a float [0,1)
self.state = (self.state * 214013 + 2531011) % 2**32
return float((self.state >> 16) & 0x7fff) / 2**15

class bogoRand(MsftRand):
'''This replicates how PHP does randint()'''
def randint(self, a, b):
self.state = (self.state * 214013 + 2531011) % 2**32
return a + int(float((float(b-a+1)*((self.state&0x7fff)/((1<<15)+1.0)))))

image = PIL.Image.new("1",(512,512)) # Creates a 512x512 bitmap

# creates a list of different RNG objects and names
rand_mapping = [ (MsftRand(), "Microsoft"),
(random.Random(), "Mersenne"),
(bogoRand(), "bogoRand") ]

for rnd, name in rand_mapping:
for y in xrange(512):
for x in xrange(512):
image.putpixel((x,y), rnd.randint(0,1))
image.save("random_"+name+".png")

This will create three images when you run it--random_Mersenne.png, which uses Python's default random generator and randint() implementations, random_Microsoft.png, which uses the Windows LCG and Python's randint() implementation, and random_bogoRand.png, which uses the Windows LCG and PHP's randint() implementation.

Here's what random_bogoRand.png looks like:

This doesn't look exactly like Bo's image, as I probably didn't exactly replicate all the quirks of PHP's RAND_RANGE macro. I could be using the wrong LCG as well.

The other two images have no patterns obvious to the eye. How does Python do randint()?

from Lib/rand.py:

def randint(self, a, b):
"""Return random integer in range [a, b], including both end points.
"""
return self.randrange(a, b+1)
def randrange(self, start, stop):
#I'm paraphrasing here, it does checks to make sure the arguments
# are integers and other sanity stuff
return start + int(self.random() * (stop - start))

It's not that PRNGs are visibly flawed, it's that PHP has a terrible method of generating a random range.

Labels: , , ,

109 Comments:

Blogger Bo said...

Wow, excellent follow-up! I appreciate the time you spent looking into the details of this.

Using PHP's mt_rand() function (which utilizes the Mersenne Twister) provides a better random value.

May 27, 2008 at 5:34 PM  
Anonymous Anonymous said...

After digging deeper into this, it seems likely that the real problem is two-fold:

first, rand() on Win32 has a period of 32767;

secondly, the RAND_RANGE define is trying to scale the generated number into the range you requested. This can result in some loss of randomness (see http://bugs.php.net/bug.php?id=45184).

Python's randrange() solves this by calling _randbelow() in a loop while you're outside the requested range - which is probably the best way to do it. There is some work on this that should be coming out as of 5.3 - thanks for bringing it up!

October 20, 2008 at 5:40 PM  
Blogger Hubadu said...

deja-vu on random.org

September 6, 2009 at 7:56 AM  
Blogger Eric said...

Even with PHP 5.3, the results aren't that much different. Using mt_rand instead, though, is mind-blowing...

PHP 5.3 with rand: http://twitpic.com/gq81b

PHP 5.3 with mt_rand: http://twitpic.com/gq827

September 6, 2009 at 10:01 AM  
Blogger Juln the Squid said...

Yes, you have to use mt_rand. That's why they describe it as "Generate a better random value".

September 6, 2009 at 2:47 PM  
Blogger jacquesm said...

If you want to do a comparison at least make it a meaningful one and use the rand function the way it is intended:

This will give your bit: "rand() & 1;", so imagesetpixel($im,$x,$y,rand() &1);

will do the job. To save you the typing you can look here:

http://ww.com/random.php

That's on a linux box running php 4.4.2, the results look pretty random to me. To make the result reproducible I've seeded the PRNG with '0' using srand(0); at the beginning of the program.

If you want to use the 'scale' function in PHP for something that you should be doing by a one bit and then you will reap the results of that, you are effectively sampling the lowest bit after a bunch of float operations, which is clearly sub-optimal.

PHP can't correct for incorrect use.

As for the rest of your code, the $x=0; line can be dropped, there is no need to 'reset' your loop variable at the end of a loop, last I checked.

I'm no PHP fan but before you criticize a project make sure you understand the material.

September 6, 2009 at 4:06 PM  
Blogger abadinfluence said...

http://pastebin.com/m40b85179

Public domain. Have fun.

September 8, 2009 at 12:11 AM  
Blogger Bo said...

@jacquesm

1.) Linux was never the problem. Read the post title...

2.) Your code is wrong.

imagesetpixel($im,$x,$y,rand() &1);

...Pretty much just makes a black square.

3.) After fixing your code, your bitwise use of rand() on Windows actually makes an even worse random graphic.

4.) rand(0, 1) works just fine. Yes, rand() &1 is faster, but that doesn't mean rand(0, 1) is "wrong"... Especially since, in this case, rand(0, 1) produces better randomness.

September 3, 2011 at 4:06 PM  
Blogger Emmanuel Jeandel said...

Your analysis is completely wrong.

You made a mistake in the code for bogoRand. IF php were to call windows random(), the call would be:

return a + int(float((float(b-a+1)*((self.state&0x7fff >> 16)/((1<<15)+1.0)))))

You forgot the ">> 16", I hope it's not intentional. But IF php were to call windows random(), there would be no problem, as anyone can see by adding back the ">> 16" that is missing.

What's really happening is that PHP in the ZTS mode (I don't know what it stands for, but it has something to do with Thread Safety) uses its own version of random() which is defined by:

return ((*ctx = *ctx * 1103515245 + 12345) % ((u_long)PHP_RAND_MAX + 1));


And you can test that by replacing your code for bogoRand by:
def randint(self, a, b):
self.state = (self.state* 1103515245 + 12345) % (1 << 15)
return a + int(float((float(b-a+1)*((self.state/((1<<15)+1.0))))))

you will obtain EXACTLY what happens in Bo Allen post.

October 5, 2012 at 3:42 AM  
Blogger Salman said...

Thank you !! Very usefull !!
vb dot net training in chennai
csharp training in chennai

November 23, 2017 at 2:39 AM  
Blogger venkatesh krishna said...

THanks for the insightful article goDigitally

February 10, 2018 at 1:27 PM  
Blogger abril joseph said...

Thanks a lot very much for the high quality and results-oriented help. I won’t think twice to endorse your blog post to anybody who wants and needs support about this area.
hadoop-training-institute-in-chennai

March 26, 2018 at 4:05 AM  
Blogger meena dlk said...

Nice Info!

I known the difference between random numbers from your blog.you also refer the logic for php for cse project centers in chennai.

Thanks.

May 10, 2018 at 7:48 AM  
Blogger Harish said...

Thank you for posting this useful information


Big Data Training Chennai | Best Hadoop Training in Chennai

May 14, 2018 at 4:53 AM  
Blogger Prasanth Krishnan said...

Nice blog! Thank you for sharing valuable information.

Hadoop Training in Chennai | Android Training in Chennai

June 4, 2018 at 4:59 AM  
Blogger sriram said...

Thank you so much for sharing this worth able content with us. The concept taken here will be useful for my future programs and i will surely implement them in my study. Keep blogging article like this.

web designing course in chennai

June 11, 2018 at 10:08 PM  
Blogger Block Chain Training said...

Thanks a lot for your information.

PHP Training in Chennai



July 6, 2018 at 1:31 AM  
Blogger Vicky Ram said...

Wonderful post!!Thank you for sharing this info with us.
Keep updating I would like to know more updates on this topic
Very useful content, I would like to suggest this blog to my friends.

PHP Course in Chennai

PHP Training Center in Chennai

July 12, 2018 at 10:47 PM  
Blogger suvathi said...

wow great Article, the details you have provided are much clear, easy to understand, if you post some more Article, it will be very much useful for me.
PHP Training in Chennai

July 27, 2018 at 11:59 PM  
Blogger Anexas Europe said...


It’s great to come across a blog every once in a while that isn’t the same out of date rehashed material. Fantastic read.

Digital Marketing Training in Mumbai

Six Sigma Training in Dubai

Six Sigma Abu Dhabi

September 6, 2018 at 10:13 PM  
Blogger Unknown said...

Thanks for sharing the information, keep updating us.This information is really useful to me
dot net training in chennai

September 25, 2018 at 7:57 PM  
Blogger Aruna Ram said...

Useful post.Thank you for sharing such an important data.Keep updating for this blog.
PHP Training in Chennai
PHP training in velachery
PHP training in Velachery

September 28, 2018 at 11:21 PM  
Blogger Anexas Europe said...

Very nice post here and thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.
Good discussion. Thank you.
Anexas
Six Sigma Training in Abu Dhabi
Six Sigma Training in Dammam
Six Sigma Training in Riyadh

September 29, 2018 at 2:17 AM  
Blogger LindaJasmine said...

Awesome Post. Thanks for Sharing. Kepp updating.
Html5 Training in Chennai
Html5 Courses in Chennai
Html5 Training
Html5 Course
Html5 Training Course
Html5 Training for Beginners
Best Html5 Course
Best Html5 Training

October 4, 2018 at 4:44 AM  
Blogger Vicky Ram said...

Thank you for sharing this post.

Education
Technology

October 8, 2018 at 2:12 AM  
Blogger Annie said...

Awwsome informative blog ,Very good information thanks for sharing such wonderful blog with us ,after long time came across such knowlegeble blog. keep sharing such informative blog with us.
Aviation Academy in Chennai | Aviation Courses in Chennai | Best Aviation Academy in Chennai | Aviation Institute in Chennai | Aviation Training in Chennai

October 10, 2018 at 4:40 AM  
Blogger w3 Webschool said...

Thanks for the valuable information and insights you have so provided here... SEO Training

October 11, 2018 at 12:05 AM  
Blogger Eminent It Info said...

This comment has been removed by the author.

October 17, 2018 at 11:05 PM  
Blogger w3 Webschool said...

Nice post By reading your blog, i get inspired and this provides some useful information. Thank you for posting this exclusive post for our vision.
Digital Marketing Training

October 17, 2018 at 11:17 PM  
Blogger Noor Aqsa said...

Nice Blog thanks for the blog. Good to share with my friends.
Wedding Photographer

October 21, 2018 at 10:02 PM  
Blogger amsa leka said...

Thanks for such a great article here. I was searching for something like this for quite a long time and at last I’ve found it on your blog. It was definitely interesting for me to read about their market situation nowadays.Well written article on codefiles. Thank You Sharing with Us.android code structure best practices |
android development guide
| demand for android developers 2018

October 25, 2018 at 12:01 AM  
Blogger svr said...

Hi, thanks for sharing such an informative blog. I have read your blog and I gathered some needful information from your blog. Keep update your blog. Awaiting for your next update.
ibm datapower online training

November 2, 2018 at 3:21 AM  
Blogger Sadhana Rathore said...

Thanks for sharing this information admin, it helps me to learn new things. Continue sharing more like this.
ReactJS Training in Chennai
ReactJS course in Chennai
RPA courses in Chennai
AWS Certification in Chennai
Angular 5 Training in Chennai
Angularjs Training in Chennai

November 14, 2018 at 1:09 AM  
Blogger Learn Digital said...

Your post is really awesome. Your blog is really helpful for me to develop my skills in a right way. Thanks for sharing this unique information with us.
- Learn Digital Academy

November 16, 2018 at 3:08 AM  
Blogger Ananya Krishnan said...

Good job in presenting the correct content with the clear explanation. The content looks real with valid information. Good Work

DevOps is currently a popular model currently organizations all over the world moving towards to it. Your post gave a clear idea about knowing the DevOps model and its importance.

Good to learn about DevOps at this time.


devops training in chennai | devops training in chennai with placement | devops training in chennai omr | devops training in velachery | devops training in chennai tambaram | devops institutes in chennai | devops certification in chennai | trending technologies list 2018

November 25, 2018 at 1:39 AM  
Blogger Unknown said...

ieee projects in chennai

November 27, 2018 at 4:02 AM  
Blogger nanadhini chandran said...

More informative,thanks for sharing with us.
this blog makes the readers more enjoyable.keep add more info on your page.
Best Cloud Computing Training Institute in Anna nagar
Cloud Computing Training in Ambattur
Cloud Computing Certification Training in T nagar
Cloud Computing Courses in T nagar
Cloud Computing Training Institutes in OMR
Cloud Computing Courses in OMR

November 30, 2018 at 8:57 PM  
Blogger sathyaramesh said...

Thanks for splitting your comprehension with us. It’s really useful to me & I hope it helps the people who in need of this vital information.
best big data training in chennai
Big Data Hadoop Training
Hadoop training institutes in chennai
CCNA certification in Chennai
CCNA Training
CCNA courses in Chennai

December 2, 2018 at 11:15 PM  
Blogger Vicky Ram said...

very useful post thanks for sharing

vyaparpages
Education

December 11, 2018 at 3:43 AM  
Blogger shiva said...

Great share !!

ieee final year projects in chennai

Java projects in chennai

Software projects in chennai

December 13, 2018 at 2:15 AM  
Blogger mahi eswari said...

Very informative and well written post! Quite interesting and nice topic chosen for the post.
thanks for sharing this nice post,
excel training in hyderabad

December 13, 2018 at 4:56 AM  
Blogger shiva said...

Great share !!

ieee final year projects in chennai

Java projects in chennai

Software projects in chennai

December 14, 2018 at 2:45 AM  
Blogger Vijay Sethupathi said...

Great Posting…
Keep doing it…
Thanks

Digital Marketing Certification Course in Chennai - Eminent Digital Academy

December 15, 2018 at 3:10 AM  
Blogger shiva said...

Great share !!

ieee final year projects in chennai

Robotics projects in chennai

Arduino projects in chennai

December 16, 2018 at 10:27 PM  
Blogger Vicky Ram said...

Informative post, thanks for sharing.

Article submission sites
Guest posting sites

December 17, 2018 at 12:53 AM  
Blogger sumathi s said...

Your good knowledge and kindness in playing with all the pieces were very useful. I don’t know what I would have done if I had not encountered such a step like this.
industrial safety course in chennai

December 17, 2018 at 1:39 AM  
Blogger Swetha Gauri said...

Appreciation for really being thoughtful and also for deciding on certain marvelous guides most people really want to be aware of.
occupational health and safety course in chennai

December 17, 2018 at 3:15 AM  
Blogger R P said...

builderall is very easy to use and cheap too.

December 18, 2018 at 8:37 PM  
Blogger venu bharath said...

Amazing Post. The choice of words is very unique. Interesting idea. Looking forward for your next post.
Hadoop Admin Training in Chennai
Hadoop Administration Training in Chennai
Hadoop Administration Course in Chennai
Hadoop Administration Training
Big Data Administrator Training
IELTS coaching in Chennai
IELTS Training in Chennai
SAS Training in Chennai
SAS Course in Chennai

December 19, 2018 at 3:01 AM  
Blogger mahi eswari said...

Very good post.
All the ways that you suggested for find a new post was very good.
Keep doing posting and thanks for sharing.
mainframe training in hyderabad
mobile repairing course in hyderabad

December 19, 2018 at 4:47 AM  
Blogger Durai Raj said...

Magnificent blog!!! Thanks for your sharing… waiting for your new updates.
PHP Course in Madurai
PHP Training Center in Chennai
PHP Training Center in Coimbatore
PHP Training Institute in Coimbatore
PHP Training in Chennai

December 19, 2018 at 11:24 PM  
Blogger Shivani Yuvanjalin said...

Nice Post..Thanks for Sharing..
erp in chennai
erp providers in chennai
SAP B1 support chennai
SAP S/4 Hana support chennai
SAP R3 support chennai
hr outsourcing

December 20, 2018 at 11:10 PM  
Blogger sunshineprofe said...

Hello there! This is my first comment here, so I just wanted to give a quick shout out and say I genuinely enjoy reading your articles.
nebosh course in chennai

December 21, 2018 at 2:31 AM  
Blogger cloud ace said...

This comment has been removed by the author.

December 25, 2018 at 8:18 AM  
Blogger venu bharath said...

Amazing Post. Your writing is very inspiring. Thanks for Posting.
Ethical Hacking Course in Chennai
Hacking Course in Chennai
Ethical Hacking Training in Chennai
Certified Ethical Hacking Course in Chennai
Ethical Hacking Course
Ethical Hacking Certification
Node JS Training in Chennai
Node JS Course in Chennai

December 27, 2018 at 2:13 AM  
Blogger Sherin Alfonsa said...

Thanks for spending time and your effort to create such an article like this is a wonderful thing. I’ll learn many new info!

German Classes in Chennai
German Language Classes in Chennai
Big Data Training in Chennai
Hadoop Training in Chennai
Android Training in Chennai
Selenium Training in Chennai
Digital Marketing Training in Chennai
JAVA Training in Chennai
Big Data Training

December 28, 2018 at 1:46 AM  
Blogger karori said...

information
information

December 29, 2018 at 10:27 PM  
Blogger venu bharath said...


Thanks for sharing this wonderful article. Your article is very interesting to read. Looking forward to read ur future post.
Node JS Training in Chennai
Node JS Course in Chennai
Node JS Advanced Training
Node JS Training Institute in chennai
Node JS Course
Node JS Training in Velachery
Node JS Training in Tambaram
Node JS Training in Adyar

January 2, 2019 at 4:21 AM  
Blogger Praylin S said...

Thank you for sharing this wonderful post with us. You are providing very valuable information. Looking forward to learn more from you.

Mobile Testing Training in Chennai
Mobile Testing Course in Chennai
Oracle Training in Chennai
Manual Testing Training in Chennai
Corporate Training in Chennai
WordPress Training in Chennai

January 4, 2019 at 1:31 AM  
Blogger Amy Wong said...

Great casino, ever casinos online you can safely put the top ten, with the new year already playing. At first I didn’t enter the topic as it is not hung with all sorts of bells and whistles I used to, but over time you realize that only good gaming games, bonuses and timely payments are needed in the casino, everything else interferes and distracts.

January 11, 2019 at 2:06 AM  
Blogger Shadeep shree said...

The blog is very much informative... Thanks for your updates...
data analytics courses in bangalore
data analysis courses in bangalore
RPA training in bangalore
Selenium Training in Bangalore
Java Training in Madurai
Oracle Training in Coimbatore
PHP Training in Coimbatore

January 12, 2019 at 1:12 AM  
Blogger zara said...

Your writing skill is too good and article shared is really fantastic
Big Data Training in Chennai
Data Science Training in Chennai
Devops Training in Chennai
AWS Training in Chennai
RPA Training in Chennai
Hadoop Training in Chennai

January 16, 2019 at 1:36 AM  
Blogger shiva said...

Great share !!!

Mobile app development

UX UI training in chennai

Adobe Photoshop training in chennai

January 17, 2019 at 3:34 AM  
Blogger Joe said...

The content you have given is Extra-Ordinary. Very interesting write-up. Looking forward for your next Post.
Ethical Hacking Course in Chennai
Hacking Course in Chennai
Certified Ethical Hacking Course in Chennai
Ethical Hacking Course in Velachery
SAS Training in Chennai
SAS Course in Chennai
Informatica Training in Chennai
Informatica course in Chennai

January 19, 2019 at 2:08 AM  
Blogger Riya Raj said...

This is the very good post... Thanks for sharing with us... It is more informative...
Web Designing Course in Coimbatore
Web Design Training in Coimbatore
Web Designing Course in Madurai
Java Course in Bangalore
Devops Training in Bangalore
Digital Marketing Courses in Bangalore
German Language Course in Madurai
Cloud Computing Courses in Coimbatore
Embedded Course in Coimbatore

January 23, 2019 at 9:47 PM  
Blogger akshaya raja said...

Nice article I was really impressed by seeing this blog, it was very interesting and it is very useful for me.
CCNA Course in Chennai
CCNA Training in Chennai
RPA Training in Chennai
Ethical Hacking Course in Chennai
Blue Prism Training in Chennai
CCNA Classes in Tambaram
CCNA Training in OMR
CCNA Training in Velachery

January 24, 2019 at 1:14 AM  
Blogger Anjali Siva said...

Excellent post, it will be definitely helpful for many people. Keep posting more like this.
DevOps certification in Chennai
DevOps Training in Chennai
Data Science Course in Chennai
Data Science Training in Chennai
DevOps Training in Velachery
DevOps Training in Tambaram

January 24, 2019 at 2:21 AM  
Blogger WUGI said...

There is a desire to earn a lot? Then come to us and win. top slot machine games online .Fate favors you, come in and win.

January 25, 2019 at 5:38 AM  
Blogger Rithi Rawat said...

Very nice post here thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.

machine learning course fees in chennai
machine learning training center in chennai
machine learning with python course in chennai

January 29, 2019 at 2:51 AM  
Blogger Amy Wong said...

Wow cool site I have already withdrawn money from here. Actually my girlfriend advised me and I decided to risk the risk and you elegantplay casino slot games I wish you more victories

February 4, 2019 at 3:24 AM  
Blogger Dale Morris said...

Click here |Norton Customer Service
Click here |Mcafee Customer Service
Click here |Phone number for Malwarebytes
Click here |Hp printer support number
Click here |Canon printer support online

February 11, 2019 at 10:29 PM  
Blogger VRITPROFESSIONALS said...

Nice post. Thanks for sharing! I want people to know just how good this information is in your article. It’s interesting content and Great work.
Thanks & Regards,
VRIT Professionals,
No.1 Leading Web Designing Training Institute In Chennai.

And also those who are looking for
Web Designing Training Institute in Chennai
SEO Training Institute in Chennai
PHP & Mysql Training Institute in Chennai
Photoshop Training Institute in Chennai
Android Training Institute in Chennai

February 12, 2019 at 7:25 AM  
Blogger Anbarasan14 said...

Happy to read your blog and gained a lot of new information in detail. Thanks for sharing.
IELTS Coaching in Chennai
IELTS Coaching Centre in Chennai
IELTS Training in Chennai
Best IELTS Coaching in Chennai
IELTS Classes in Mumbai
IELTS Coaching in Mumbai
Best IELTS Coaching in Mumbai
IELTS Center in Mumbai

February 13, 2019 at 2:03 AM  
Blogger Riya Raj said...

The blog which you have shared is more informative. thanks for your sharing...
German Classes in Bangalore
German coaching classes in Coimbatore
German Classes in Coimbatore
Java Training in Bangalore
Python Training in Bangalore
IELTS Coaching in Madurai
IELTS Coaching in Coimbatore

Java Training in Coimbatore

February 14, 2019 at 3:08 AM  
Blogger franklinraj said...

Thank you for excellent article.

Please refer below if you are looking for best project center in coimbatore

soft skill training in coimbatore
final year projects in coimbatore
Spoken English Training in coimbatore
final year projects for CSE in coimbatore
final year projects for IT in coimbatore
final year projects for ECE in coimbatore
final year projects for EEE in coimbatore
final year projects for Mechanical in coimbatore
final year projects for Instrumentation in coimbatore

February 15, 2019 at 7:08 AM  
Blogger Lithiksha said...

Awesome article! You are providing us very valid information. This is worth reading. Keep sharing more such articles.
Tally Course in Chennai
Tally Classes in Chennai
corporate training in chennai
Excel classes in Chennai
Tally Course in Anna Nagar
Tally Course in Velachery

February 18, 2019 at 10:02 PM  
Blogger jenifer irene said...

Very nice blog, Thank you for providing good information.
Aviation Academy in Chennai
Air hostess training in Chennai
Airport management courses in Chennai
Ground staff training in Chennai
aviation training in chennai
cabin crew training institute in chennai
airlines training chennai
airport ground staff training in chennai

February 18, 2019 at 11:14 PM  
Blogger Unknown said...

Nice Article !!!

luxury properties for sale in chennai

cheap luxury homes for sale in chennai

top luxury apartments in chennai

February 19, 2019 at 2:37 AM  
Blogger VRITPROFESSIONALS said...

Nice post. Thanks for sharing! I want people to know just how good this information is in your article. It’s interesting content and Great work.
Thanks & Regards,
VRIT Professionals,
No.1 Leading Web Designing Training Institute In Chennai.

And also those who are looking for
Web Designing Training Institute in Chennai
SEO Training Institute in Chennai
Photoshop Training Institute in Chennai
PHP & Mysql Training Institute in Chennai
Android Training Institute in Chennai

February 19, 2019 at 7:16 AM  
Blogger Belago said...

Алюминиевый светодиодный профиль для led ленты я обычно беру в Ekodio там достойное качество и отличные цены.

February 20, 2019 at 6:55 AM  
Blogger Ram Niwas said...

This comment has been removed by the author.

February 26, 2019 at 11:24 PM  
Blogger Ramya Krishnan said...

This is the exact information I am been searching for, Thanks for sharing the required infos with the clear update and required points. To appreciate this I like to share some useful information regarding Microsoft Azure which is latest and newest,

Regards,
Ramya

Azure Training in Chennai
Azure Training Center in Chennai
Best Azure Training in Chennai
Azure Devops Training in Chenna
Azure Training Institute in Chennai
Azure Training in Chennai OMR
Azure Training in Chennai Velachery
Azure Online Training
Azure Training in Chennai Credo Systemz

March 1, 2019 at 3:52 AM  
Blogger sunshineprofe said...

I believe there are many more pleasurable opportunities ahead for individuals that looked at your site.
nebosh course in chennai
offshore safety course in chennai

March 1, 2019 at 10:54 PM  
Blogger ProPlus Logics said...

Hey Nice Blog!! Thanks For Sharing!!!Wonderful blog & good post.Its really helpful for me, waiting for a more new post. Keep Blogging!
SEO company in coimbatore
Digital Marketing Company in Coimbatore
SEO Services in coimbatore

March 2, 2019 at 12:55 AM  
Blogger abhi pranesh said...

This is really a great blog for the people who need information about this technology.
pearson vue test center in chennai
German Classes in Chennai
IELTS Coaching in Chennai
Japanese Classes in Chennai
spanish language in chennai
Spoken English Classes in Chennai
Spoken English Classes in OMR
Spoken English Classes in Porur

March 9, 2019 at 1:08 AM  
Blogger Aruna Ram said...

This is one of the best blogs on this topic, I have more knowledge after reading you provide the great post.
Corporate Training in Chennai
Corporate Training institute in Chennai
Embedded System Course Chennai
Tableau Training in Chennai
Pega Training in Chennai
Spark Training in Chennai
Unix Training in Chennai
Excel Training in Chennai
Corporate Training in Chennai
Corporate Training institute in Chennai

March 9, 2019 at 10:33 PM  
Blogger Aravind said...

Great info. The content you wrote is very interesting to read. This will loved by all age groups.
Angularjs Training in Chennai
Angularjs Course in Chennai
CCNA Training in Chennai
Salesforce Training in Chennai
Angular5 Training in Chennai
Angular6 Training in Chennai
Angular7 Training in Chennai
Angularjs Training in Chennai
Angularjs Course in Chennai

March 11, 2019 at 4:40 AM  
Blogger Soumitasai said...

Great efforts put it to find the list of articles which is very useful to know, Definitely will share the same to other forums.

Check out : best hadoop training in chennai
hadoop big data training in chennai
best institute for big data in chennai
big data course fees in chennai

March 11, 2019 at 5:52 AM  
Blogger amsa leka said...

Thanks for your great and helpful presentation I like your good service. I always appreciate your post. That is very interesting I love reading and I am always searching for informative information like this.Also Checkout: blockchain technology training chennai | blockchain training institute in chennai | cryptocurrency training in chennai |best blockchain training in chennai

March 12, 2019 at 12:02 AM  
Blogger digitalsourabh said...

AngularJs Training in Bhopal
Cloud Computing Training in Bhopal
PHP Training in Bhopal
Graphic designing training in bhopal
Python Training in Bhopal
Android Training in Bhopal
Machine Learning Training in Bhopal

March 12, 2019 at 1:23 AM  
Blogger amsa leka said...

Thanks for your great and helpful presentation I like your good service. I always appreciate your post. That is very interesting I love reading and I am always searching for informative information like this.Also Checkout: blockchain technology training chennai | blockchain training institute in chennai | best blockchain training in chennai | blockchain coaching in chennai

March 15, 2019 at 2:33 AM  
Blogger divyapriya said...

Thanks for posting this information it really useful for everyone.
French Classes in Chennai
french courses in chennai
Spoken English Classes in Chennai
TOEFL Coaching in Chennai
pearson vue test center in chennai
German Language Course in Chennai
French Classes in T Nagar
French Classes in Anna Nagar

March 15, 2019 at 2:56 AM  
Blogger amsa leka said...

Thanks for your great and helpful presentation I like your good service. I always appreciate your post. That is very interesting I love reading and I am always searching for informative information like this.Also Checkout: blockchain technology training chennai | blockchain training institute in chennai | blockchain certification training in chennai | best blockchain training in chennai

March 16, 2019 at 5:57 AM  
Blogger Android iPhone Indonesian Service said...

Distributor Kuota
PT Lampung Service
Service Center HP Indonesian
Service Center iPhone Indonesian
Service Center Acer Indonesian
PT Lampung Service

March 17, 2019 at 1:06 AM  
Blogger salman chattels said...

Nice Article !!! Great Share

commercial property for sale in chennai

residential apartments for sale in chennai

independent house for sale in chennai

March 20, 2019 at 3:36 AM  
Blogger Vicky Ram said...

Thanks for posting such an blog it is really very informative. And useful for the freshers Keep posting the
updates.

Article submission sites
Guest posting sites

March 22, 2019 at 11:53 PM  
Blogger sakshta rasal said...


Thanks for sharing information I must say very informative blog post. Keep it up!!
digital marketing classes in baramati | java course in baramati | white label trucking app solution | php classes in baramati


March 23, 2019 at 12:45 AM  
Blogger sakshta rasal said...


Thanks for sharing information I must say very informative blog post. Keep it up!!
digital marketing classes in baramati | java course in baramati | white label trucking app solution | php classes in baramati


March 23, 2019 at 4:05 AM  
Blogger Soumitasai said...

Very nice post here thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.


big data hadoop training in chennai
big data training in chennai chennai tamilnadu
spark training in chennai

March 24, 2019 at 2:57 AM  
Blogger IT Tutorials said...

Really useful information. Thank you so much for sharing.It will help everyone.Keep Post. RPA training in chennai | RPA training in Chennai with placement | UiPath training in Chennai | UiPath certification in Chennai with cost

March 24, 2019 at 5:05 AM  
Blogger Amirtha Gowri said...

Thanks for sharing such a Wonderful blog. This is such a exact information i am been searching for. Keep post
Check Out:
hadoop training in tambaram
hadoop training in chennai omr
big data training in chennai omr velachery adyar tambaram chennai tamil nadu
best hadoop training in omr

March 25, 2019 at 1:02 AM  
Blogger Creators Seo Master said...

Amazing article. Your blog helped me to improve myself in many ways thanks for sharing this kind of wonderful informative blogs in live. Kindly Visit Us @ andaman tour packages
andaman holiday packages
web development company in chennai
Math word problem solver
laptop service center in chennai
Austin Homes for Sale
andaman tourism package
family tour package in andaman

March 26, 2019 at 12:06 AM  
Blogger Gayathri said...

Very nice blog, Thank you for providing good information.
aviation institute in Chennai
cabin crew training in Chennai
diploma in airport management course in Chennai
airport ground staff training courses in Chennai
Aviation Academy in Chennai
air hostess training in Chennai
airport management courses in Chennai
ground staff training in Chennai

March 26, 2019 at 3:39 AM  
Blogger venu bharath said...

Amazing Post. The idea you shared is very useful. Thanks for sharing.
Informatica MDM Training in Chennai
informatica mdm training
Informatica MDM Training in Velachery
Informatica MDM Training in Tambaram
Informatica MDM Training in Anna Nagar
Informatica MDM Training in T nagar

March 27, 2019 at 2:42 AM  
Blogger Unknown said...


Very good information. Its very useful for me. We need learn from real time examples and for this we choose good training institute, we need to learn from experts . So we make use of demo classes . Recently we tried python demo class of Apponix Technologies.
https://www.apponix.com/Python-Institute/Python-Training-in-Bangalore.html

April 1, 2019 at 3:44 AM  
Blogger kavithasathish said...

This is something useful for everyone and please dont stop updating the information.
IELTS Coaching in Chennai
IELTS Training in Chennai
German Courses in Chennai
TOEFL Coaching Centres in Chennai
learn Japanese in Chennai
spanish language classes in chennai
IELTS Coaching in Anna Nagar
IELTS Coaching in Tnagar

April 2, 2019 at 10:01 PM  
Blogger VenuBharath2010@gmail.com said...

Amazing piece of work. Extra-ordinary content. It show cases your keen interest on the subject. Thanks for Posting.
Data Analytics Courses in Chennai
Big Data Analytics Courses in Chennai
Big Data Analytics Training
Big Data Analytics Courses
Data Analytics Certification
Data Analytics Courses in Adyar
Data Analytics Courses in Porur
Data Analytics Courses in Anna Nagar

April 5, 2019 at 5:09 AM  
Blogger Diya shree said...

Good job and thanks for sharing such a good blog You’re doing a great job. Keep it up !!

PMP Certification Fees | Best PMP Training in Chennai |
pmp certification cost in chennai | PMP Certification Training Institutes in Velachery |
pmp certification courses and books | PMP Certification requirements |
PMP Training Centers in Chennai | PMP Certification Requirements | PMP Interview Questions and Answers

April 10, 2019 at 1:35 AM  
Blogger Amirtha Gowri said...


Excellent blog I visit this blog it's really informative. By reading your blog, I get inspired and this provides useful information.

Check out:
best hadoop training in chennai
big data course fees in chennai
hadoop training in chennai cost
hadoop course in chennai

April 14, 2019 at 11:54 PM  

Post a Comment

Subscribe to Post Comments [Atom]

<< Home