Friday, June 29, 2007

An interesting bug in Java binarySearch

Josh Bloch, author of Effective Java Programming and one of the best in the biz, blogged last summer about an error in his own implementation of binary search within Sun's JDK. It turns out that the most straightforward implementation admits a flaw so subtle that the version in java.util.Arrays, in particular, lay dormant for almost a decade. It is one of the most interesting bugs I have seen in a long time, and in fact I didn't notice it myself. Simplified slightly from the original:

// locate an index of key k in sorted array a[],
// or if k is not present, return -1
int binarySearch( int[] a, int k ){
int i = 0;
int j = a.length - 1;

while( i <= j ){
int m = (i + j) / 2;

if( k < a[m] ){ // left half
j = m - 1;

} else if( a[m] < k ){ // right half
i = m + 1;

} else { // found
return m;
}

}
return -1; // not present
}

The culprit is sly: Operating on a large enough array, computing m = (i+j)/2 is subject to integer overflow, becoming negative due to wraparound, e.g.

int M = 0x7fffffff; // 2^31 - 1
int[] a = new int[ M ];
a[ M - 1 ] = 1;

// the call...
int r = binarySearch( a, 1 );
// ...throws an ArrayIndexOutOfBoundsException !

Fortunately the midpoint can be computed safely via m = i + (j-i)/2. Already there are many blog posts on this blemish, but none concerning quality. What might a software engineer learn about testing from this long-hidden oversight?

1. A lesson from numerical analysis, that time-honored formulas aren't necessarily robust when copied to finite arithmetic.

2. Vary your test data. Surely the Sun test battery for binarySearch passed, again and again, on the same sets of arrays and keys. Fine for 9 years -- but static lists of tests become stale. Which arrays should we select, or search for? Read on...

3. Specialized conditions are required to pinpoint rare defects. This flaw cannot be exposed for sizes below 2^30, about 1 billion; no wonder nobody noticed. The truth is that the endpoints of anything almost always provide interesting insights. Here, searching far to the left always passes, and only searching far enough to the right can throw the Exception. Aha. This leads to a favorite maxim...

4. Design tests specific to the implementation. The greatest of the Java int primitives is M -- nothing to do with binary search -- instead, a boundary in the language itself! Therefore, an array of that length makes a worthwhile test case in Java (cf. Mathematica, Python). Something to remember when writing your own test suites.

Professor Kahan at Berkeley once summed up his lessons about testing (from the infamous Pentium divide glitch) into a fitting quote:
Seek singularities!  There lie all the errors.

Wisely put, as are Josh's remarks about programming defensively, vigilance, code reviews, static analysis, solid proofs, and formal verification. (I would disagree with his view that there will always be bugs, but opposing formidable Dr. Bloch isn't really something one ought to do).

The paradox is that although testing can't exterminate our errors, it still needs to be done to provide corroborative evidence of correctness, even for well-proved algorithms! Later, I'll augment this post with test strategies which might have exposed the flaw. With test methods in mind, we might be able to expose ever more errors, and add to our QA repertoire.

An exercise: Using 32-bit two's compliment integer arithmetic, compute the average of i and j, correctly rounding to even. Test it with i and j at the extremes. My solution is not short.

170 comments:

Anonymous said...

Another lesson might be "don't sweat the irrelevant stuff." This bug could stay dormant because no real Java program uses an array of over a billion elements on a 32-bit machine.

Anonymous said...

Was er plant? cialis nebenwirkungen cialis rezeptfrei apotheke [url=http//t7-isis.org]viagra wirkungseintritt[/url]

Anonymous said...

I am the kind of guy who enjoys to taste original things. Right now I'm constructing my hold solar panels. I'm making it all alone without the aid of my staff. I'm using the internet as the only path to acheive that. I ran across a really brilliant site that explains how to build photovoltaic panels and so on. The web site explains all the steps needed for constructing photovoltaic panels.

I am not really sure bout how accurate the info given there is. If some people over here who have xp with these works can have a peak and give your feedback in the thread it will be great and I'd highly value it, because I truly would love to try [URL=http://solar-panel-construction.com]solar panel construction[/URL].

Thanks for reading this. You guys are the best.

Anonymous said...

Wanna Get HIGH? Running out of Supply? Then Check Out My Shit!
>>>>> http://bestlegalhighsdrugs.info <<<<
If you have questions, you can email my boy at online.mentor [at] gmail.com


[size=1] IGNORE THIS----------------------------
lefal bids what kind of flower is this [url=http://bestlegalhighsdrugs.info] legal highs online [/url] globus hystericus byfo alvvarius [url=http://buybudshoplegalherbs.info] buds shop[/url] crank drugs dalvia divinorym [url=HTTP://BUYINGMARIJUANASALE.INFO] Buy Ganja [/url] ecstssy iplls toxin rid [url=HTTP://BUYLEGALBUDSCOMREVIEWS.INFO] legal buds reviews [/url] bufp allvarius hashish video [url=HTTP://CANNABISHIGH-PILLSHIGH.INFO] Marijuana Intoxications[/url] amsnita musxaria sslvia divniorum [url=HTTP://HOWTOBUYWEED-BUYINGWEED.INFO] how to purchase ganja[/url] cocaine availability Dry Salvia Divinorum Leaves [url=http://legalbud.drugreviews.info] legalbud [/url]

drug test levels salcia duvinorum [url=http://legalweed.lamodalatina.com] legalweed [/url] do drug stores sell salvia amabita muscaris [url=http://buysalvia.lamodalatina.com] get salvia powder[/url] hashish history drug pass

bufk algarius fly agaric effects [url=http://legalweed.lamodalatina.com] legal weeds [/url] ecstasy definition amanitta musfaria [url=http://buysalviacheap.com] order salvia extracts[/url] taking ecstasy amanita msucaria
[url=http://guaranteedheightincrease.info/]height increase[/url] - http://guaranteedheightincrease.info/
height improvement - http://guaranteedheightincrease.info
[url=http://provenpenisenlargement.info/]proven penis enhancement[/url] - http://provenpenisenlargement.info/
proven penis enlargement - http://provenpenisenlargement.info/
[url=http://provenskincareadvice.info/]skin care techniques[/url] - http://provenskincareadvice.info/
skin care techniques - http://provenskincareadvice.info/
[url=http://getrichgambling.info/]get rich gambling[/url] - http://getrichgambling.info/
get riches gambling - http://getrichgambling.info/
[url=http://herpesoutbreak-gentalwarts.info/]herpes outbreaks[/url] - http://herpesoutbreak-gentalwarts.info/
herpes outbreaks - http://herpesoutbreak-gentalwarts.info/
[url=http://STOP-PREMATURE-EJACULATION-SOLUTIONS.INFO]stop premature ejaculation[/url] - http://STOP-PREMATURE-EJACULATION-SOLUTIONS.INFO
stop premature ejaculation - http://STOP-PREMATURE-EJACULATION-SOLUTIONS.INFO
[url=http://3GMOBILEPHONESFORSALE.INFO]3g mobile phones on sale[/url] - http://3GMOBILEPHONESFORSALE.INFO
3g mobile phones on sale - http://3GMOBILEPHONESFORSALE.INFO
[url=http://internationaloddities.reviewsdiscountsonline.com] internationaloddities scams[/url]
international oddities reviews
[url=http://drobuds.reviewsdiscountsonline.com]dro bud [/url]
dro buds review
[url=http://bestacnetreatmentreviews.info] best acne treatment reviews[/url] http://bestacnetreatmentreviews.info
best acne treatment review http://bestacnetreatmentreviews.info
[url=HTTP://LEARN-HYPNOSIS-ONLINE.INFO]learn hypnotism online[/url]
learn hypnosis online

Unknown said...

Nice post, thanks for sharing this wonderful and useful information

with us.

Green Tea Diet

Anonymous said...

I am able to make link exchange with HIGH pr pages on related keywords like [url=http://www.usainstantpayday.com]bad credit loans[/url] and other financial keywords.
My web page is www.usainstantpayday.com

If your page is important contact me.
please only good pages, wih PR>2 and related to financial keywords
Thanks
flueraroyargo

Anonymous said...

megan fox bush, [url=http://discuss.tigweb.org/thread/187756]megan fox maxem[/url] megan fox : black bra and underwear
kim kardashian tape pictures, [url=http://discuss.tigweb.org/thread/187768]kim kardashian playpoy video[/url] kim kardashian play boy
taylor swift dress up, [url=http://discuss.tigweb.org/thread/187772]taylo swift[/url] taylor swift shouldve said no
hanna montana embroidery designs, [url=http://discuss.tigweb.org/thread/187786]hanna montana ho down lyrics[/url] dress up lola nichols from hannah montana
wikipedia harry potter, [url=http://discuss.tigweb.org/thread/187792]free harry potter games[/url] harry potter 1 walkthrough
albany to new york city cruise, [url=http://discuss.tigweb.org/thread/187798]discovery cruises to bahamas[/url] cruises to rio de janero
one time by justin beiber, [url=http://discuss.tigweb.org/thread/187812]justin bieber issue[/url] justin bieber picturs
britney spears showing all, [url=http://discuss.tigweb.org/thread/187814]britney spears camel toe[/url] britney spears toxic video
new megan fox movie, [url=http://discuss.tigweb.org/thread/175542]megan ofx[/url] girls = megan fox

Anonymous said...

hey everybody

I just wanted to introduce myself to everyone!

Can't wait to start some good conversations!

-Marshall

Thanks again!

buy propecia said...

Hello friend amazing and very interesting blog about An interesting bug in Java binarySearch

Anonymous said...

if you guys desideratum to glimpse [url=http://www.generic4you.com]viagra[/url] online you can do it at www.generic4you.com, the most trusted viagra pharmaceutics seeking generic drugs.
you can clout into uncover drugs like [url=http://www.generic4you.com/Sildenafil_Citrate_Viagra-p2.html]viagra[/url], [url=http://www.generic4you.com/Tadalafil-p1.html]cialis[/url], [url=http://www.generic4you.com/VardenafilLevitra-p3.html]levitra[/url] and more at www.rxpillsmd.net, the pre-eminent [url=http://www.rxpillsmd.net]viagra[/url] tutelary on the web. well another great [url=http://www.i-buy-viagra.com]viagra[/url] pharmacy you can find at www.i-buy-viagra.com

Acai Berry said...

nice post its really good to read your article. I learned a lot from your article. thanks for sharing.

Anonymous said...

A humankind begins cutting his wisdom teeth the senior without surcease he bites out more than he can chew.

Anonymous said...

To be a adroit human being is to be enduring a philanthropic of openness to the mankind, an ability to guardianship undeterminable things beyond your own pilot, that can lead you to be shattered in very exceptional circumstances for which you were not to blame. That says something exceedingly outstanding thither the condition of the ethical life: that it is based on a conviction in the up in the air and on a willingness to be exposed; it's based on being more like a spy than like a treasure, something somewhat dainty, but whose acutely item attraction is inseparable from that fragility.

biletul zilei said...

nice article!

Anonymous said...

well guys! after the latest unregulated rid of [url=http://www.casinolasvegass.com]casino[/url] games like roulette and slots !after demonstrate the all stylish unburden [url=http://www.casinolasvegass.com]online casino[/url] games at the all flash www.casinolasvegass.com, the most trusted [url=http://www.casinolasvegass.com]online casinos[/url] on the final! fancy our [url=http://www.casinolasvegass.com/download.html]free casino software download[/url] and triumph in money.
you can also validate other [url=http://sites.google.com/site/onlinecasinogames2010/]online casinos bonus[/url] . check out this new [url=http://www.place-a-bet.net/]online casino[/url].

Anonymous said...

In harry's time, at some occasion, our inner throw goes out. It is then burst into zeal at hand an be faced with with another benign being. We should all be indebted for those people who rekindle the inner inclination

Anonymous said...

I don't like the earshot of all those lists he's making - it's like intriguing too divers notes at school; you feel you've achieved something when you haven't.

Anonymous said...

In every tom's sustenance, at some dated, our inner throw goes out. It is then burst into zeal by an be faced with with another human being. We should all be thankful for those people who rekindle the inner inspiration

Anonymous said...

In harry's existence, at some time, our inner throw goes out. It is then bust into zeal at near an encounter with another hominoid being. We should all be under obligation quest of those people who rekindle the inner inspiration

send flowers to australia said...

I suggest this site to my friends so it could be useful & informative for them also. Great effort.

Canada flower shops said...

I really liked your article. Keep up the good work.

Anonymous said...

In every tom's sustenance, at some time, our inner throw goes out. It is then burst into zeal by an face with another hominoid being. We should all be thankful quest of those people who rekindle the inner inclination

Anonymous said...

That is fantastic. I learned so much from your post and am looking over the rest of your blog now. I will let others know about your blog. Donna

Anonymous said...

[color=#473624][u]Interesting post! thank you for sharing this information. searchforquality.blogspot.com really got under my
[/u][/color] [url=http://nuscin-online.info]skin,[/url] [color=#473624][u]bookmarked... Keep up the good site...[/u][/color]

Anonymous said...

In everyone's life, at some pass‚, our inner fire goes out. It is then blow up into zeal by an contend with with another benign being. We should all be thankful for those people who rekindle the inner inspiration

Anonymous said...

In harry's existence, at some occasion, our inner pep goes out. It is then bust into flame beside an face with another magnanimous being. We should all be under obligation quest of those people who rekindle the inner inclination

Anonymous said...

In every tom's existence, at some occasion, our inner pep goes out. It is then burst into zeal at near an contend with with another magnanimous being. We should all be indebted for the duration of those people who rekindle the inner inclination

Anonymous said...

In every tom's life, at some dated, our inner throw goes out. It is then burst into passion by an be faced with with another magnanimous being. We should all be glad for those people who rekindle the inner spirit

Anonymous said...

In harry's existence, at some time, our inner throw goes out. It is then blow up into passion at near an be faced with with another magnanimous being. We should all be glad recompense those people who rekindle the inner spirit

Anonymous said...

In the whole world's sustenance, at some dated, our inner throw goes out. It is then break asunder into zeal by an encounter with another hominoid being. We should all be under obligation for the duration of those people who rekindle the inner inclination

Anonymous said...

[url=http://www.pi7.ru/seks-sekrety/2030-vozmozhnye-posledstviya-netradicionnoy-izmeny-muzhu.html ]Прикольные люди [/url]
Доброго всем времени суток. У меня такая ситуация. Встречаюсь с мужчиной 5 лет. Ему 40, мне 30. У него был брак, развелись по её инициативе в последствии 7 лет совместной жизни. Через 2 года мы начали встречаться. Он живёт с родителями, бываю у него дома. Хочу давно семью и детей. Он диалогы на эту тему пресекает, говорит, что не любит выяснять отношения. Уходила от него некоторое количество раз, потом не выдерживала и сама возвращалась. Сейчас решила уйти бесповоротно. Но ужасно тяжело, т.к. он мой первый мужчина и всё-таки 5 лет сообща. Подскажите, верное ли решение я приняла. Спасибо

Anonymous said...

Sildenafil citrate, sold as Viagra, Revatio and eye individual other patrons names, is a drug familiar to scrutinize erectile dysfunction and pulmonary arterial hypertension (PAH). It was developed and is being marketed past the pharmaceutical body Pfizer. It acts by inhibiting cGMP individual phosphodiesterase variety 5, an enzyme that regulates blood flow in the penis. Since seemly on tap in 1998, sildenafil has been the prime treatment recompense erectile dysfunction; its initial competitors on the bazaar are tadalafil (Cialis) and vardenafil (Levitra).

Anonymous said...

Sildenafil citrate, sold as Viagra, Revatio and under different other trade names, is a medicament utilized to scrutinize erectile dysfunction and pulmonary arterial hypertension (PAH). It was developed and is being marketed by the pharmaceutical circle Pfizer. It acts next to inhibiting cGMP individual phosphodiesterase variety 5, an enzyme that regulates blood spout in the penis. Since becoming on tap in 1998, sildenafil has been the prime treatment recompense erectile dysfunction; its initial competitors on the market are tadalafil (Cialis) and vardenafil (Levitra).

eco vacations costa rica said...

Amazing and very professional information on "An interesting bug in Java binarySearch". I like to learn more about the subject. Please when you post new information, you can contact me for updates on the topic, thanks for sharing

flowering tea said...

Thanks for this post regarding the java bug.

loose green tea

bonus bwin said...

There are some very great sources here and thank you for being so kind to post them here. So we can read them and give our opinion on subject.

Anonymous said...

INSERT

Anonymous said...

I'm really Glad i discovered this site.Added searchforquality.blogspot.com to my bookmark!

Penis Enlargement Pills said...

I recently came across your blog and have been reading along. I think I will leave my first comment.
I don’t know what to say except that I have enjoyed reading. Nice blog.
I will keep visiting this blog very often.
By the way,
Blogger how when you visit my blog,
My Blog have been created for the satisfaction of consumer of all.

pariuri sportive said...

This is a really excellent read for me. Must admit that you are one of the best blogger I ever saw. Thanks for posting this informative article.

Property Investment Seminars said...

I'm still learning from you, as I'm improving myself. I certainly enjoy reading all that is written on your site. Keep the articles coming. I enjoyed it!

Rob said...

Hey good post. I would addd more content otherwize very good job. I will send my visitors over to take a look at it.

how to get a bigger buttocks

how to get a bigger buttocks naturally

idol white

maqui berry

buy african mango diet pill

best android apps said...

With the Android market on the rise, the demand for Android application is on the rise. This is mainly because the websites need to be compatible with the smart phones with Android operating system and platform.

ground Transportation in denver said...

Without ground transportation services available at most airports, getting to the airport, moving around airport, and getting home or place of stay from airport could have been an issue of worry for those who are not lucky enough to have a relative or friend to drop to or from airport.

Unknown said...

I found your blog via google and it is exactly about my research topic i want some more interesting posts here hope you will keep me up to date.
term paper writing
outline term paper
college term papers

Causes Of Candida said...

Nice post. I was checking continuously this blog and I am impressed! Very useful information specially the last part: ) I care for such info a lot. I was seeking this particular info for a long time. Thank you and good luck.

buy codeine online said...

This is one of the highly attractive, informatics well written and highly crisp blog that has been explained in fabulous manner to help out reader and visitors.

buy ritalin online said...

oh hoo that's really bad that old series are not available in market...
i wish you get it soon..

buy vicodin online said...

I like your blog post. Keep on writing this type of great stuff. I'll make sure to follow up on your blog in the future.

best online pharmacy said...

Your words are insightful and truly inspiring. I am so happy that I stumbled upon you blog. I am recently "falling out of love" with my boyfriend of two years. Your posts have given me something to think and "do" about. Aha! There's hope :)

organic seo service said...

This site is excellent and so is how the subject matter was explained. I also like some of the comments too.Waiting for next post.

Arghya Chakraborty said...

This is very informative post. I got many unknown information from this post.
Fort Worth theft attorney

arghya said...

I got many unknown information from this informative site. This is an excellent blog.
weight loss

onwebmedia said...

I just wanted to leave a comment to say that I enjoy your blog. Looking at the number of comments, I see others feel the same way! Congratulations on a very popular blog.
Stag and Hen Weekends in London and Nottingham

tubal ligation reversal surgery said...

Thanks for your post, I like this post very much.

drug forum said...

I am speechless after seeing these pictures! I love them all! I teach kindergarten and I'm going to make a theme, and photographs have given me so many ideas! You are so talented! Thanks!

buy hydrocodone online said...

A healthy diet is not about strict nutrition philosophies, staying extremely thin, or depriving yourself of foods you love. Rather it is to get that good to have more energy and you keep healthy as possible.

saim said...

This is a very good blog and I like it a lot. This post is very well written. Thanks a lot for writing good quality posts.


wholesale krill oil

wholesale Curcumin

buy adderall online said...

Thanks for your many years of a great service well done! I’ve always felt good about listing my concerts with you and linking from my website.

wholesale krill oil said...

Hi, I found your post really helpful. Thanks for posting such informative content. Keep posting.

Natural Weight Loss said...

Intimately, the post is actually the best on this laudable topic. I harmonize with your conclusions and will eagerly look forward to your future updates.

maquinas de coser said...

This piece was an inspiration for me to share with everyone I know. I must congratulate the author and the place and coming up with a beautiful creature like this.

maquinas de bordar

Unknown said...

Stunning..!!! It made me stop and to look into it deeply, it’s so wonderful and I want to appreciate you from the bottom of my feelings,
sleep aid spray

sleep aid supplement

natural sleep aid

Android app developers said...

Thanks for share with us.Your blog information is really nice.I am so happy by read about your post.

Android app developers said...

Thanks for share with us.Your blog information is really nice.I am so happy by read about your post.

locksmith in queens said...

This post is a winner! Love the tips and everything you suggest..

denver hotel deals said...

Nice job. really interesting article. Thanks for your work.

Rasan said...

Great blog. All posts have something to learn. Your work is very good and
i appreciate you and hopping for some more informative posts.
thank you……..

Social Bookmarkiing List | "Social Bookmarkiing List" | "Full Free Softwares Download"

ignition lock said...

I am happy when reading your blog with updated information! thanks alot and hope that you will post more site that are related to this site.

Op Dr Ali Mezdeği said...

Comments made ??about the issues impressed me. I like your site.
Fue Saç Ekimi wordpress

Locksmith Washington DC said...

I just got to this amazing site not long ago. I was actually captured with the piece of resources you have got here. Big thumbs up for making such wonderful blog page!

24 hours locksmith said...

Lovely suggestions,like this post. thanks & keep it up

city locksmith said...

This is what I need to know very much.
I appreciate you to sharing this post with us.

laptop repair melbourne said...

Great blog. All posts have something to learn. Your work is very good and i appreciate you and hopping for some more informative posts.thank you……..

laptop repair melbourne said...

I was working and suddenly I visits your site frequently and recommended it to me to read also. The writing style is superior and the content is relevant. Thanks for the insight you provide the readers!

laptop screen fix melbourne said...

Hi! This is my first visit to your blog! We are a team of volunteers and new initiatives in the same niche. Blog gave us useful information to work. You have done an amazing job!

melbourne pc repair said...

I was working and suddenly I visits your site frequently and recommended it to me to read also. The writing style is

superior and the content is relevant. Thanks for the insight you provide the readers!

on site computer repair Melbourne said...

Very interesting thanks. I believe there's even more that could be on there! keep it up

literature review help said...

One of the best and most obvious ways to excel in any company is to show how your work is making the company money, or providing value that directly leads to making the company money

price per head online said...

I really enjoy reading the post, thanks for sharing I really like it, I already bookmarked it, thank you guys.

Nun Gunner said...

This is one of the best blogs I have ever read. I m absolutely excited to get to read such a well blog. I would love to read more of your blogs. Thanks dude

Unknown said...

Surely the Sun test battery for binarySearch passed, again and again, on the same sets of arrays and keys.
academic dissertation papers

Anonymous said...

is it illegal to buy xanax online xanax buy online mastercard - side effects recreational use xanax

Anonymous said...

df purchase cialis , free cialis , cheap generic cialis , generic viagra , viagra no prescription , purchase viagra

Anonymous said...

My cialis.com free offer , cialis for sale , cheap generic cialis , viagra sample , viagra online , viagra on line

Anonymous said...

order viagra pills pfizer viagra online cheap - buy viagra online cheap category

Anonymous said...


An interesting discussion is worth comment. I do believe that you ought to publish more about this issue, it might not be a taboo matter but usually folks don't talk about such topics. To the next! Many thanks!!

Anonymous said...

viagra online without prescription cheap viagra jelly us - viagra user reviews

Anonymous said...

certainly like your website however you need to take a look at the spelling
on several of your posts. Several of them are rife with spelling problems and
I in finding it very bothersome to tell the truth nevertheless I'll certainly come back again.
Also see my page - money online niche

Anonymous said...

Spot on with this write-up, I really believe this amazing
site needs a lot more attention. I'll probably be returning to see more, thanks for the information!
My webpage ... http://grupoqyle.zitepromotions.com/

Anonymous said...

I was suggested this blog by means of my cousin.

I am not positive whether or not this post is written through him as nobody else recognise such exact about my problem.
You are amazing! Thanks!
My webpage: traditional life insurance policies

Anonymous said...

Paragraph writing is also a excitement, if you be acquainted
with after that you can write or else it is
complex to write.
Feel free to visit my web-site ... postal money orders

Anonymous said...

I really like it when people get together and share views.
Great website, continue the good work!
Feel free to surf my homepage : articlejournals.com

Anonymous said...

I'm curious to find out what blog platform you're using? I'm having some small security issues with my latest website and I'd like to find something more secure.
Do you have any suggestions?
My web site ... demo.sedeveloper.com

Anonymous said...

buy soma online soma bras on sale - buy cheap generic soma

Anonymous said...

buy soma soma for muscle spasms - soma pills in brave new world

Anonymous said...

buy soma soma san diego kendrick lamar - soma

Anonymous said...

cialis pills buy cialis online us no prescription - buy cialis from us

Anonymous said...

buy tramadol online mastercard overnight buy tramadol in usa - tramadol hcl vs tramadol

Anonymous said...

buy tramadol without rx tramadol high feeling - tramadol addiction mayo clinic

Anonymous said...

to generic viagra,viagrapricesapf.com , cialis ,cialispriceschu.com
http://genericviagrarbs.com http://viagrapricesapf.com http://cialisonlinesya.com http://cialispriceschu.com

Anonymous said...

to generic viagra,viagrapricesapf.com , cialis ,cialispriceschu.com
http://genericviagrarbs.com http://viagrapricesapf.com http://cialisonlinesya.com http://cialispriceschu.com

Anonymous said...

to generic viagra,viagrapricesapf.com , cialis ,cialispriceschu.com
http://genericviagrarbs.com http://viagrapricesapf.com http://cialisonlinesya.com http://cialispriceschu.com

Anonymous said...

to generic viagra,viagrapricesapf.com , cialis ,cialispriceschu.com
http://genericviagrarbs.com http://viagrapricesapf.com http://cialisonlinesya.com http://cialispriceschu.com

Anonymous said...

generic tramadol online physical addiction tramadol - tramadol dosage labrador retriever

Anonymous said...

carisoprodol 350 mg carisoprodol 350 mg tablet side effects - carisoprodol abuse effects

Anonymous said...

Thanks very nice blog!

Also visit my site - www.alice3d.org

Anonymous said...

buy tramadol buy tramadol online cod - tramadol hcl time release

Anonymous said...

buy cialis in usa generic cialis soft tabs - cialis levitra reviews

Anonymous said...

cialis online cialis 60 mg - cialis daily instructions

Anonymous said...

generic tadalafil cialis online best place buy - canadian pharmacy cialis daily

Anonymous said...

xanax online online physician prescription xanax - xanax 2mg pictures

Anonymous said...

It is true, there is a lot on the net about [url=http://www.hotdeal.vn/ho-chi-minh/]Thoi trang nu[/url], but we have found it to be spread all over the place. It does seem that what can be taken and used is dependent on certain criteria. You can find good sites to read that you can rely on, however not everything you need is necessarily in one place. It is not always safe to assume you have completely all the details and can stop reading and learning. To be sure, even the best online researchers sometimes get stumped when searching for special types of information. This is some extra, and essential, clues about this very specific subject that no doubt will serve you well.

The relative difficulties of women's and men's fashion

Both men and women can feel the pressures of keeping their wardrobe up-to-date and in season, yet men's style usually feels a lot less complicated. Of course, for both genders, garments and style options can be just as complex, and there are many'modern'items that can quickly become fashion faux pas - who can say they often times see people walking on in 70s flames? On the other hand, men's style features a few choice goods that can exist forever - which man is going to watch out of position with a good-quality, tailored suit, for example? Choose basic cuts, colors and materials and you'll never seem out-of-place.

Why traditional men's style is eternal

The basic man's suit has hardly changed for over a hundred years. True, there are many types for different events, but they are all common in their quest for a smart, sharp try to find the individual. The great thing about traditional style for men is that it's simply trendy effortlessly cool. A well-groomed gentleman can typically look his sharpest in a well-tailored suit, and this can be a testament to the style of such apparel. A match will undoubtedly be utilized to work in many occupations due to the professional search it affords to the wearer, instilling a sense of respect and trust. Equally a suit will be used to several social events, such as a tuxedo to a black-tie event. This incredible versatility that enables matches to be utilized in almost all situations is what gives it its amazing border and a permanent place in men's fashion.

Contemporary trends in classic men's style

Though basic men's styles can never be changed, it's interesting to observe that changes in men's fashion trends have brought certain basic clothes back to fashion. The popularity of vintage clothing, specifically, has taken back a wide-variety of common models into men's closets, such as that of the dandy man. 'Dandy'is a term used to refer to men who clothe themselves in a classic yet lavish way, working in a refined method and placing importance on appearance. This tendency for nearly'over-the-top'common style for men is apparent from events like the'Tweed Run', wherever men and women of all ages dress in obviously Victorian-style attire and decide to try the streets on vintage bicycles - with many of the men sporting perfect mustaches! This is just one single of several samples of evidence showing the revival of such styles. Additionally, there are numerous blogs online which concentrate on gentlemanly type - such as'The Dandy Project'and'Dandyism'- as well as whole web sites such as'The Art of Manliness'focused on providing articles on traditional men's fashion and grooming.

In summary, though certain issues with common men's fashion can be cut back as new developments, the fundamental garments which they derive from will never fall out of fashion.

"All it will take certainly are a few simple outfits. And there's one key - the easier the better." - Cary Grant

StyleGun is an online men's fashion retailer with a technical angle.
Read More: [url=http://www.iamsport.org/pg/blog/khamphachinhhang/read/15644267/ke-ten-kieu-mau-thoi-trang-nu-ban-chang-co-so-loi-mot]ao so mi thoi trang nu[/url]

Anonymous said...

buy tramadol tramadol 700 mg - tramadol 50 mg #20

Anonymous said...

learn how to buy tramdadol tramadol for dogs loss of appetite - tramadol online next day delivery

Anonymous said...

Nice weblog here! Additionally your site rather a lot up very fast!
What host are you the usage of? Can I get your affiliate hyperlink to your host?
I want my site loaded up as fast as yours lol

Visit my weblog arranging business checks
Also see my site - Discount Checks

Anonymous said...

buy generic klonopin overdose of klonopin amount - klonopin 2 mg erowid

Anonymous said...

http://landvoicelearning.com/#51438 buy tramadol cod overnight - tramadol for dogs without rx

Anonymous said...

After I initially left a comment I seem to have clicked the -Notify me
when new comments are added- checkbox and from now on each
time a comment is added I recieve 4 emails with the same comment.
There has to be an easy method you can remove me from that service?
Thanks!

my webpage Payroll Checks

Anonymous said...

klonopin mg 2mg klonopin lot - klonopin online overnight

Anonymous said...

eh best price on cialis price per pill for cialis,viagra samples nz cialis price vs viagra, generic cialis kamagra price viagra cialis levitra,cheap viagra next day delivery retail price for cialis 5mg
http://cialispricekutm.com http://viagrasamplesegsu.com http://genericcialistyjk.com http://cheapviagraoyug.com

Anonymous said...

order carisoprodol online carisoprodol highest dose - carisoprodol other names

Anonymous said...

http://southcarolinaaccidentattorney.com/#90864 carisoprodol 350 mg drug test - flumazenil reversal of carisoprodol (soma) intoxication

Anonymous said...

http://southcarolinaaccidentattorney.com/#24975 carisoprodol 700 mg - carisoprodol blue light

Anonymous said...

xanax no rx xanax side effects pupils - what is xanax high like

Anonymous said...

Inѕpiring story there. What hаррened after?

Тhankѕ!

Feel free to vіsit my ωeb site - buy toys

Anonymous said...

Very good blog! Do you have any tips for aspiring writers?
I'm hoping to start my own site soon but I'm a little lost on everything.

Would you propose starting with a free platform like Wordpress or go for a paid option?
There are so many choices out there that I'm totally overwhelmed .. Any ideas? Cheers!

Look at my site :: drip coffee makers

Anonymous said...

ge viagra pills cheap viagra,viagra cheap viagra, generic viagra cheap viagra,generic cialis viagra
http://cheapviagrapillsesl.com#cheap viagra http://cheapviagrapillsvivt.com#cheap viagra http://viagraonlinegenericth.com#viagra online http://cheapcialisgenericsybf.com#cialis

Anonymous said...

ge viagra pills cheap viagra,viagra cheap viagra, generic viagra cheap viagra,generic cialis viagra
http://cheapviagrapillsesl.com#cheap viagra http://cheapviagrapillsvivt.com#cheap viagra http://viagraonlinegenericth.com#viagra online http://cheapcialisgenericsybf.com#cialis

Anonymous said...

ge viagra pills cheap viagra,viagra cheap viagra, generic viagra cheap viagra,generic cialis viagra
http://cheapviagrapillsesl.com#cheap viagra http://cheapviagrapillsvivt.com#cheap viagra http://viagraonlinegenericth.com#viagra online http://cheapcialisgenericsybf.com#cialis

Anonymous said...

men make no attempt to seek treatment, instead opting to suffering in generic viagra in thailand viagra pills wiki,information about viagra 100mg generic viagra express shipping, buy cheap viagra and cialis generic viagra mastercard,cialis pills pictures generic viagra mastercard payment
http://genericviagrapillstzj.com#viagra 100mg information http://viagraonline100mgxhy.com#viagra 100mg efectos http://cialispricecheapsfc.com#cialis price at cvs http://cialispillscheapwr.com#cialis

Anonymous said...

men make no attempt to seek treatment, instead opting to suffering in generic viagra in thailand viagra pills wiki,information about viagra 100mg generic viagra express shipping, buy cheap viagra and cialis generic viagra mastercard,cialis pills pictures generic viagra mastercard payment
http://genericviagrapillstzj.com#viagra 100mg information http://viagraonline100mgxhy.com#viagra 100mg efectos http://cialispricecheapsfc.com#cialis price at cvs http://cialispillscheapwr.com#cialis

Anonymous said...

of controlled prescription drugs and enforce generic viagra levitra viagra pills at walmart,viagra 100 mg didnt work are expired viagra pills dangerous, cialis viagra pills advantages,cheap cialis generic viagra dangerous
http://genericviagrapillstzj.com#viagra 100 mg bula http://viagraonline100mgxhy.com#viagra http://cialispricecheapsfc.com#cialis http://cialispillscheapwr.com#cialis pills

Anonymous said...

of controlled prescription drugs and enforce generic viagra levitra viagra pills at walmart,viagra 100 mg didnt work are expired viagra pills dangerous, cialis viagra pills advantages,cheap cialis generic viagra dangerous
http://genericviagrapillstzj.com#viagra 100 mg bula http://viagraonline100mgxhy.com#viagra http://cialispricecheapsfc.com#cialis http://cialispillscheapwr.com#cialis pills

Anonymous said...

hi viagra viagra pills,viagra viagra pills, generic viagra cheap viagra,cheap cialis viagra
http://cheapviagrapillsesl.com#viagra pills http://cheapviagrapillsvivt.com#viagra http://viagraonlinegenericth.com#viagra online http://cheapcialisgenericsybf.com#generic cialis

Anonymous said...

hi viagra viagra pills,viagra viagra pills, generic viagra cheap viagra,cheap cialis viagra
http://cheapviagrapillsesl.com#viagra pills http://cheapviagrapillsvivt.com#viagra http://viagraonlinegenericth.com#viagra online http://cheapcialisgenericsybf.com#generic cialis

Anonymous said...

hi viagra viagra pills,viagra viagra pills, generic viagra cheap viagra,cheap cialis viagra
http://cheapviagrapillsesl.com#viagra pills http://cheapviagrapillsvivt.com#viagra http://viagraonlinegenericth.com#viagra online http://cheapcialisgenericsybf.com#generic cialis

Anonymous said...

hi viagra viagra pills,viagra viagra pills, generic viagra cheap viagra,cheap cialis viagra
http://cheapviagrapillsesl.com#viagra pills http://cheapviagrapillsvivt.com#viagra http://viagraonlinegenericth.com#viagra online http://cheapcialisgenericsybf.com#generic cialis

Anonymous said...

was here to stay, medical research in males generic cialis cialis online,cialis online cialis online, cheap viagra generic cialis,cialis online cialis online
http://genericcialisonlinevsdk.com#cialis online http://cialisonlinepricesrj.com#cialis online http://cheapviagrapillsesf.com#viagra http://genericcialisonlinevsdt.com#generic cialis

Anonymous said...

s cialis price cialis price,generic viagra cialis, viagra online cialis,viagra cialis price
http://cialisonlinepricesrg.com#viagra http://viagraonlinegenerictsf.com#viagra http://buyviagraonlinewrv.com#buy viagra http://genericviagrapricevth.com#viagra

Anonymous said...

s cialis price cialis price,generic viagra cialis, viagra online cialis,viagra cialis price
http://cialisonlinepricesrg.com#viagra http://viagraonlinegenerictsf.com#viagra http://buyviagraonlinewrv.com#buy viagra http://genericviagrapricevth.com#viagra

Anonymous said...

The гeport provides proѵen necesѕary
tο myself. It’s extremelу useful anԁ уоu really are naturally
eхtremely eduсated of thіѕ tуpе.
You have got openеd up my ρeгsonаl ѕight to numerous viewѕ on
thiѕ specific subject mаtteг together ωith interesting аnd ѕolid content.



Vіsit my webpage: zolpidem
My webpage: buy zolpidem

Anonymous said...

Неllo therе, juѕt beсamе
aware of yοur blog through Google, and found that it's truly informative. I'm going to ωаtch out for brusselѕ.
Ι'll appreciate if you continue this in future. A lot of people will be benefited from your writing. Cheers!

Also visit my blog post ... payday loans

Anonymous said...

I'll right away take hold of your rss as I can not in finding your e-mail subscription link or newsletter service. Do you'vе any?
Please permit me realіze so that І coulԁ subscribe.
Thanks.

Αlso visit my website: short term loans for bad credit - lewissloans.co.uk

Anonymous said...

LEDs, first developed in the early 1960s, produce light by moving electrons through a semiconductor.
There health benefits outnumber their disadvantages, if any.
Next it will be time of the lesser folks like 60w, 40w and 25w.



Visit my page: Stehleuchten

Anonymous said...

Hi, I do think this is a great blog. I stumbledupon it ;) I will come back yet again
since i have saved as a favorite it. Money and freedom is the greatest way to change, may you be rich
and continue to help other people.

Also visit my web site; www.hjcustomjewelry.com

Anonymous said...

Just email him your address and he'll mail one to you. They can provide detailed reports to their customers. Only by changing business practices can we reduce carbon emissions and that's all business not just airlines etc.
Because the costs of Stickers In Facebook Chat your digital photos
are printed on clear film called separations.

My page ... Vinyl Sticker

Anonymous said...

Hi everyone, it's my first pay a quick visit at this website, and paragraph is truly fruitful for me, keep up posting these types of posts.

My webpage :: prosolution

Anonymous said...

Having read this I believed it was rather informative. I appreciate you finding the time and energy to put this
content together. I once again find myself spending way too much time both reading and leaving
comments. But so what, it was still worthwhile!

Here is my webpage Smuaisum.com

Anonymous said...

Hi there, just became aware of your blog through Google, and found
that it's really informative. I'm going to watch out
for brussels. I will be grateful if you continue
this in future. Numerous people will be benefited from your writing.
Cheers!

Also visit my webpage provestra Review

Anonymous said...

This piece of writing presents clear idea for
the new users of blogging, that really how to
do blogging.

Here is my weblog best natural male enhancement

Anonymous said...

Feel the need have a look at a bit more when it comes to
the similar. Produce you have further suggestions?



Review my web site - easy money

Anonymous said...

Hey this is kind of of off topic but I was wondering if blogs use WYSIWYG editors or if you have to manually code with HTML.
I'm starting a blog soon but have no coding know-how so I wanted to get advice from someone with experience. Any help would be greatly appreciated!

Also visit my page: hip hop beat maker torrent

Anonymous said...

There's certainly a great deal to learn about this subject. I like all the points you have made.

Also visit my homepage; hersolution pills side effects

Anonymous said...

What's up, I would like to subscribe for this weblog to obtain hottest updates, therefore where can i do it please help out.

My site; alteril for sleep

Anonymous said...

I think the admin of this site is in fact working hard for his web
page, since here every material is quality based material.


Here is my web blog: http://www.youtube.com/watch?v=uVyxml5n0wo

Anonymous said...

Very good article. Your post had been extremely actually set out and very enlightening.


My web blog ... earn money

Anonymous said...

Hehe.. It really is called Capitalism.. An army of workers with just the?
neccessary skills to be of use but not sufficient schooling to question
the technique may be the wet dream of each capitalist.. Hard
competition is also a capitalistic principle. Maximal output at minimal costs.

. Businesses compete and pass the pressure on for their workers who also compete by selling their operate force one cheaper than the other.

. Simply because they have no other likelihood. A single needs to "survive" as the young man said.


My web page :: stop premature Ejaculation Medicine

Anonymous said...

Maintain up the superb put of get the job done,
we look over few articles on this internet site
and we conceive that your particular web blog is rattling interesting
and has circles of excellent info.

My webpage: Make Money

Anonymous said...

I have fun with, result in I discovered just what I used to be having a look for.

You have ended my 4 day lengthy hunt! God Bless you man.
Have a nice day. Bye

Here is my blog; hair growth inhibitor after waxing

Anonymous said...

Hello! This is kind of off topic but I need some
advice from an established blog. Is it difficult to set
up your own blog? I'm not very techincal but I can figure things out pretty quick. I'm thinking about creating
my own but I'm not sure where to start. Do you have any points or suggestions? With thanks

Also visit my webpage natural collagen production

Anonymous said...

Hi there, You have done a fantastic job. I'll certainly digg it and personally suggest to my friends. I'm sure they'll be benefited from this site.

Also visit my page :: seattle police department

Anonymous said...

Intimately, the post is actually world the greatest on this worthw hile topic.
I match in with your conclusions and will eagerly get excited to
your future updates.

Here is my website; acne skin **

Day Blinds said...

Thanks for this post. It proves very informative for me. Great post to read.Keep Blogging.

Looking for Roller blinds, Wooden blinds, Cheap blinds, or Curtains and Venetian blinds, and more, in Nottingham and surrounding areas like Derby, Mansfield, Leciester, East Midlands or Luton? Day Blinds offers superior window solutions at unmatched prices.Visit our site for Awnings Nottingham

Black Ocean said...

Appreciate this post. Thanks to sharing a very informative great blog about Computer

Shariful said...

Chúng ta có nên mua số đề online không? Để trả lời câu hỏi trên, chúng tôi sẽ đưa ra cho các bạn những đánh giá tổng quát về sản phẩm số đề online tại W88! 188xoso.com

Shariful said...

Cách chơi lô đề miền Nam tại K8 được nhiều chuyên gia chia sẻ. Tuy nhiên, không phải phương pháp soi cầu miền Nam nào cũng đều mang lại cho bạn chiến thắng. cach choi lo de mien nam tai k8

All Bio said...
This comment has been removed by the author.
All Bio said...
This comment has been removed by the author.
All Bio said...
This comment has been removed by the author.