Excuse me sir, What Planet is this? 144
Update 12 hours later.
I’m not very proud of this blog (or as one commenter correctly called it “blart”). It is derisive, sneering, and petulant. It is unprofessional. I guess I was having a bad morning. I slipped. I didn’t check with my green band.
So I apologize to the audience at large, and to Cashto. You should expect better from me.
I thought about pulling the blog down; but I think I’ll leave it up here as an example of how not to write a blog.
Some folks on twitter have been asking me to respond to this blough (don’t bother to read it right now, I’ll give you the capsule summary below. Read it later if you must). It’s a typical screed complete with all the usual complaints, pejoratives, and illogic. Generally I don’t respond to blarts like this because I don’t imagine that any readers take them very seriously. But it appears that this blelch has made the twitter rounds and that I’m going to have to say something.
Here are the writer’s main points:
- He likens unit tests to training wheels and says you can’t use them to win the Tour de France.
- I think winning the Tour de France has much more to do with self-discipline than he imagines it does. I mean it’s not really just as simple as: “Get on a bike and ride like hell!”
- He says testing is popular amongst college students
- I’d like to see his data!
- He goes on to say: (cue John Cleese): “(ahem) unit tests lose their effectiveness around level four of the Dreyfus model of skill acquisition”.
- (blank stunned stare). Is this a joke? All false erudition aside, WTF is he talking about?
- He says that unit tests don’t give us confidence in refactoring because they over-specify behavior and are too fine-grained.
- He apparently prefers hyphenations to green bars.
- He says they mostly follow the “happy path” and therefore don’t find bugs.
- Maybe when he writes them! This is a big clue that the author can’t spell TDD.
- He complains about Jester
- without getting the joke!
- He says unit tests “encourage some pretty questionable practices.” He flings a few design principles around and says that unit testing doesn’t help with them.
- as the author, editor, and/or advocate of many of those principles; I have a slightly different view.
- He says that “many are starting to discover that functional programming teaches far better design principles than unit testing ever will”
- Oh no! Not the old “My language teaches design.” claim. We’ve heard it all before. They said it about C++, Java, COM (?!), etc… The lesson of the ‘90s? Languages don’t teach design. You can make a mess in any language.
- He says: “tests can have negative ROI. Not only do they cost a lot to write, they’re fragile, they’re always broken, they get in the way of your refactoring, they’re always having you chase down bogus failures, and the only way to get anything done is to ignore them.”
- In one of my favorite episodes of Dr. Who, Tom Baker exits the Tardis, walks up to someone on the street and says: “Excuse me sir, what planet is this?”
- He says: “What I’m saying is that it’s okay if you don’t write unit tests for everything. You probably have already suspected this for a long time, but now you know. I don’t want you to feel guilty about it any more.”
- Translation: “I don’t want to feel guilty about it anymore so I’m going to try to convince you…” I sincerely doubt this author has your best interests at heart.
- He says: “Debugging is easy, at least in comparison to writing all those tedious tests.”
- Refer back to the Dr. Who quote.
To quote Barack Obama: “Enough!”
Has this guy ever done TDD? I rather doubt it. Or if he did, he was so inept at it that his tests were “fragile”, “always broken”, and “in the way of refactoring”. I think he should give it another try and this time spend a bit more time on test design.
Perhaps he’s one of those guys who thought that unit tests were best written after the code. Certainly his list of complains makes a lot of sense in that light. Hint: If you want to fail at unit testing, write them last.
The bottom line is that the guy probably had a bad experience writing unit tests. He’s tired of writing them and wants to write fewer of them. He’d rather debug. He thinks he can refactor without tests (which is definitively false). He thinks he can go faster by writing fewer tests. Fine, that’s his choice. And he’s found a rationalization to support his desires. Great.
I predict that his results will not compare well with those who adopt the discipline of TDD. I predict that after a few years he’ll either change his mind, or go into management.
Oh, and to the author: Gesundheit!
He would make a great manager, one that can tell the developers not to do TDD because he knows they are useless, because he was a developer once and a good one of course who has even written a blog post about how useless TDD is.
When he promotes I would start looking for a different job.
-Mark
My (short) experience with unit testing says that when a refactoring breaks some tests, it’s because those tests were checking implementation rather than behavior, or because a change in behavior is what we’re looking for (which means that, by Fowler’s definition, you’re actually doing something that isn’t a refactoring). So, if you break some test while refactoring, maybe your tests are not well designed.
@kewlito
...or your tests are telling you that your refactoring was wrong!
I’d much rather you pondered the discussion at http://www.artima.com/forums/flat.jsp?forum=106&;thread=272118.
A common complain is that refactoring breaks too many tests, resulting in too many costs for the benefit. That would be a nice topic for a post. And, as opposed to this one, useful! :-)
Yes, tests break every once in a while when you’re doing refactoring. You know what?
But you know what? I EXPECT my tests to break/fail when I change a lot of stuff mercilessly.. That tells me that I’m probably touching something I just don’t know about, and reminds me of old bugs that were fixed, old business rules written three years ago, and decisions that were made a long time ago. Knowing that those tests would break is what allows me to refactor a lot of stuff in the first place. I don’t know how people refactor code without a suite of tests in place.
Each test that breaks because of changes made is basically a bug that was never introduced in the system by the changes in the first place. Much better than end up throwing a bunch of crap to the testers.
In my experience, most people who complain about tests are simply people with zero experience writing large enterprise applications, written by dozens of developers during many years.
MSDN blogs blurting out crap??
I had been eagerly waiting for your response to that crap, but somehow I felt that you’d take him just as a non-follower and let him go. But we like to see Uncle Bob spank the naughty kid.
And, yes the post is quite demeaning to the devoted followers of UT and its benefits. I’m usually surrounded by people who think the same. It’s a lost cause to explain things to them.
I usually ignore these controversial posts. They’re not for me. I follow what I know is best for me and my code and Uncle Bob does an awesome job of reminding us exactly that, time and again.
Rob,
The article you quote is more about emphasizing the importance of functional tests over unit tests than it is about bashing testing, so I think you’re overreacting a bit here.
He’s mistaken about completely disregarding unit tests, but I sympathize with his point about emphasizing functional tests, which I think should never get neglected because they impact your users (as opposed to unit tests, which impact the developer, and are therefore more ‘selfish’).
I still think that your dogmatism toward TDD is troublesome and clouds your overall message (the quoted article only mentions TDD once, by the way). I wish you spent more time convincing the world that it needs testing (“any testing”) and then let everyone figure out the best way to do that. If it’s TDD, then it will happen naturally.
— Cedric
I, for one, appreciate it when there is some discussion about the costs/benefits of TDD. I personally believe in the merits of TDD if done correctly, but have a hard time convincing others as a result of http://martinfowler.com/bliki/CannotMeasureProductivity.html. Even the TDD case studies done at MS and IBM can be disputed on the grounds that they are: different projects/technologies/experience/team size/code size.
Uncle Bob, rather than condemning some of the assertions, can you provide more explanation? For example, you say
“as the author, editor, and/or advocate of many of those principles; I have a slightly different view.” - What is your view on the effects TDD has on those principles?
“He says they mostly follow the “happy path” and therefore don’t find bugs.” - I understand TDD is intended to prevent bugs, not find them, but can anyone provide more reading on how to avoid this very common pitfall of writing the same mistakes into both code and test?
@Cedric,
Well said. Couldn’t agree more.
You know what cashto’s real problem is … “working on various features now and then, but mostly just a lot of bugfixing.” He likes wasting time debugging and bug fixing rather than trying anything else, maybe he is even like “hey you will put me out of my job” :)
@Cedric, @Jake and I couldn’t disagree more … that article clearly presents arguments regarding his view that unit tests has all those issues.
Not saying anything about it, is giving into all the wrong statements that are in that post. It has so much of that, that it clouds whatever he was trying to say and makes the whole thing pointless.
You just can’t ignore that. Of course, I wouldn’t use the same tone in uncle bob’s reply, specially because its not that hard for someone not to realize the mistakes they are making when trying to do unit testing and there is no one around to coach. That person should be pointed to clear examples / readings … maybe he will write a post: “what I was missing about using unit tests during development”. developing with unit
cashto is not saying that tests are a bad idea, or even that unit testing is. He’s simply pointing out that over-reliance on unit testing is a bad idea. (He doesn’t make his point very well though, I admit.)
A few years back, I designed, implemented and supported a large DB framework handling thousands of transactions per seconds on a 24×7 life-critical system. In five years, I was not called even once for a problem at a customer site. Not once in five years.
How many unit tests did my framework have? A grand total of zero. z-e-r-o.
However, we had a truck load of acceptance tests, load tests, etc. These higher-level tests were not only able to catch unit-test level bugs easily but also systemic bugs, memory consumption bugs, performance bugs, wrong libraries bugs, wrong OS patchlevel bugs…
People must come to the realization that unit testing is not the end all and be all of testing. The TDD religion is wearisome.
cashto is not saying that tests are a bad idea, or even that unit testing is. He’s simply pointing out that over-reliance on unit testing is a bad idea. (He doesn’t make his point very well though, I admit.)
A few years back, I designed, implemented and supported a large DB framework handling thousands of transactions per seconds on a 24×7 life-critical system. In five years, I was not called even once for a problem at a customer site. Not once in five years.
How many unit tests did my framework have? A grand total of zero. z-e-r-o.
However, we had a truck load of acceptance tests, load tests, etc. These higher-level tests were not only able to catch unit-test level bugs easily but also systemic bugs, memory consumption bugs, performance bugs, wrong libraries bugs, wrong OS patchlevel bugs…
People must come to the realization that unit testing is not the end all and be all of testing. The TDD religion is wearisome.
It’s funny, Max; when I first started reading Uncle Bob’s opinions on testing, the common reaction was that automated testing was never really worth it, or even if theoretically worth it, impossible in practice. If we’re down to arguing about which sort of testing is best to achieve zero defects, then the industry has come a long way, and I think most of that’s due to the Agile movement.
You might also note that Bob is a major force behind Fitnesse, an acceptance test framework. So I’m pretty sure he’s not suggesting that unit testing is the end-all of anything.
What your critique lacks is an indication that you’ve actually tried TDD in a significant way. There are an awful lot of New Yorkers who will tell you that New York is the best city in the world, but if they’ve never lived anywhere else, it’s hard to take their assertion of relative superiority seriously, yes?
This answer is the same blart as the one you are answering…
@Max: the anti-TDD “religion” is just as wearisome as the TDD-”religion”. “Religious” arguments only let those who use them look silly, whatever side they’re on.
As far as I know there were scientists who never accepted the theory of relativity or quantum mechanic – they died out, mostly. Not to say that TDD is right or ground breaking – only that time will tell what survives…
Yeah, well… TDD is hard. It’s very pay up front. Frankly it’s hard for a long time and it forces you to give up the smug notion that “you just think better in code.” It’s like people who say they drive better with a couple drinks in them to loosen them up.
No you don’t.
Once you get good at it you begin to have those Michael Feathers moments of “Wow, when would I possibly have found that bug without the tests.”
Tom Baker is my favorite Doctor. He would have been a big advocate for unit tests.
Unfortunately, every one of cashto’s points are valid at some point in the maturity of the programmer writing the tests. Most of us encountered the problems he mentioned.
The difference is that some of us invested the time to solve those problems and get good at unit testing. Cashto decided that the problems outweighed any perceived advantages of unit testing and gave up. He isn’t alone.
As a coach, cashto’s opinions are very interesting to me. He clearly tried TDD and did it very poorly. I want to make sure that the teams I coach try it too, and I want to make sure that they have more help than cashto did.
I think the trouble is that his opening statement in response to Michael Feathers’ writing is bloody confusing:
“If they are any dependencies, they are mocked away. Do your tests do that?
That’s what I thought. They’re not unit tests, they’re just tests.”
What is the point he’s trying to get across? That if you’re tests “do” mock away dependencies, they “aren’t” unit tests, or is his assumption that most people “don’t” mock away dependencies therefor they aren’t writing unit tests? Assumptions based on “you think like me, right?” are a really stupid way to try and make an argument for anything.
His assumptions about the purpose of unit tests, whether “pure”, functional, or behavioural are completely and utterly wrong. Unit tests don’t find bugs, they prevent them. Tests are only as good as the people that write them. If you’re breaking tests “unnecessarily” then you need to learn to write better tests and better code. (Adopting IoC etc. to manage dependencies and test in isolation.)
As for his comments about the cost of testing. BALDERDASH. I have this discussion all the time. Developers will say “I have to factor in extra time to write unit tests.” I tell them that they actually don’t. When you give an estimate for a unit of work you surely factor in time to fire up the application and make sure the functionality works as you expect and meets the requirement, non? That is the time you should be spending writing tests to assert the desired behaviour. Writing it as a repeatable test is far, far better than doing that step manually because how often when implementing functionality do you go through the application thoroughly enough to assert that not only this requirement is met, but all previous requirements are also still met? If you write it to be repeated, you SAVE a hell of a lot of time that you SHOULD be spending to repeat it. Choosing simply not to repeat it is irresponsible and causes expensive and embarassing problems down the road. IMO if anyone can’t see that, they should switch careers.
Maybe you can argue that these aren’t unit tests by the letter of some law that was written. Follow the spirit, and leave the letter of the law to those that feed on dogma.
Uncle Bob, I think you are awesome and your insights are moving our art forward, but I get really sick and tired of seeing you write nonsense like this:
“The bottom line is that the guy probably had a bad experience writing unit tests.”
You’ve admitted indirection in your “Clean Code” book and directly in your blog that TDD requires a certain moment of “getting it”. I’ve been a professional programmer for 20 years and I do not “get” TDD.
Yet, I understand why you need something like TDD - you need engineering discipline and the confidence to know whether your system works. Well, there are other techniques for this. Ironically, your product FitNesse is one of the best behavioral and adversarial-testing suites around.
Rather than “red-green-refactor”, I tend to test at the “let’s understand how the system works as a whole” level and then go “red-hack-hack-hack-hack-refactor-hack-hack some more-no, that’s not it-start over-hack-hack-hack-hack-green”. By the time I get to green, my code needs little refactoring. But, you know what, even if my code is complete garbage internally, by then I have quite the little suite of behavior-driven tests and can rewrite the system as many times as I want with great confidence, because when the bar is green I know I can freaking ship.
Can you say the same for your unit tests? Well, sometimes you can and sometimes you can’t. But if I express every high-level story and every bug as an entire army of behavior tests, I know that when my bar is green I can freaking ship.
What I’m saying is that while I recognize TDD works for you, I recognize that BDD + CIR + incessant hacking works for me.
I view the Agile movement as a collection of “hey, this might work” practices rather than “do it EXACTLY THIS WAY or OMG you are an idiot”. I think you would do even more for the art if you occasionally thought of it in those terms, too.
“You’ve admitted indirection” is supposed to be “you’ve admitted indirectly.” Sorry about that.
I found this response interesting: http://www.codethinked.com/post/2009/11/05/Ite28099s-Okay-To-Write-Unit-Tests.aspx
He is actually right. I have seen lots (ooh, lots) of people lose their way writing unit tests. In extreme cases, they go off and write “testConstructor”-type test, because someone told them they needed a high test coverage, and then Good Stuff would happen. They become puzzled when they can’t refactor their code without significant test breakages.
Often, there is a project manager around who is actively dissuading developers from any quality-enhancing efforts by repeating variations of a “more speed” mantra. The frequency of repetition of the mantra goes up with the amount of delay caused by frantic bugfixing.
I think developers are a lazy bunch. Sometimes, we read the preface to a book, become immediate experts, and then reject the contents of the book based on not getting it to work as advertised. I hope I am not like that too often.
I agree with Adam Sroka’s comment. To me the one overly harsh note in Uncle Bob’s post was “he was so inept at it that his tests were…”
Writing good unit tests is a skill. It is hard. I’ve been doing it for years (with and without TDD) and still feel I have much to learn. I’ve made many of the mistakes mentioned and experienced the associated pain.
So why do I keep doing it? Because I see the benefits. Improved code quality. Improved design. Less time spent in the debugger. Confidence when refactoring. Fast feedback.
Kind of ironic that reading the About page of the author of the said “blough” you find the following statement:
”...working on various features now and then, but mostly just a lot of bugfixing…”
Roy Osherove and myself discuss this at our weekly “This week in testing” video cast:
http://learn.typemock.com/this-week-in-test/2009/11/11/episode-3-magic-numbers.html
At this point, I feel obliged that I have personally put your blog in the category of “blogs of programmers more experienced than me, who I can learn stuff from”.
(please don’t confuse me for Bob Koss – i’m just a random reader)
you are great!
guncel siirt haberleri http://www.siirtim.com bu sitede
Payla?t???n?z için te?ekkür ederiz !!!
thanks for the good info, continued to write for other interesting info. Good luck!
Payla?t???n?z için te?ekkür ederiz !!!
I found this response interesting: http://www.codethinked.com/post/2009/11/05/Ite28099s-Okay-To-Write-Unit-Tests.aspx
all products are high quality but low price,welcome to http://www.uggjordanghd.com/.
>Roy Osherove and myself discuss this at our weekly “This week in testing” video cast:
Prudential West
yeah it is right
Unfortunately, every one of cashto’s points are valid at some point in the maturity of the programmer writing the tests. Most of us encountered the problems he mentioned.
Wholesale Brand Name Clothing
A common complain is that refactoring breaks too many tests, resulting in too many costs for the benefit. That would be a nice topic for a post. And, as opposed to this one, useful! :-)
Wholesalers
Hi, Very cool information. Thanks for this. Keep up the good work. Regards, Mical
Your post Is very informative , I am really pleased to post my comment on this blog . It helped me with ocean of knowledge so I really believe you will do much better in the future.
nice
A common complain is that refactoring breaks too many tests
best
Thanks for a great time visiting your site. It’s really a pleasure knowing a site like this packed with great information. Thanks for sharing.
sss femalecostume several popular this year, for your dress reference!
clothing
Excellent observation! I completely agree with you.
Thanks for a great time visiting your site. It’s really a pleasure knowing a site like this packed with great information. Thanks for sharing.
Thank you so much for your work on keeping the site together and keeping these flowing.
cheap VPS
Hermes belt, Hermes belts, Hermes Mens belts, Hermes belts for men.
Fashion, a general term for the style and custom prevalent at a given time, in its most common usage refers to costume or clothing style. The more technical term, costume, has become so linked in the public eye with the term “fashion” that the more general term “costume” has in popular use mostly been relegated to special senses like fancy dress or masquerade wear, while the term “fashion” means clothing generally, and the study of it.
joint operation projects and enterprises funded solely with foreign investment which are engaged in technology
commenter correctly called it “blart”). It is derisive, sneering, and petulant. It is
Many people do not understand that we live in a world that has probably around 11 dimensions.
Pretty good post. I just found your site and wanted to say that I have really enjoyed browsing your posts.In any case I’ll be subscribing to your blog and I hope you post again soon
Background color
I think you failed to understand what he was trying to get across. He was saying that if your tests “do” mock away dependencies, they “aren’t” unit tests, or is his assumption that most people “don’t” mock away dependencies therefor they aren’t writing unit tests? Assumptions based on “you think like me, right?” are a really stupid way to try and make an argument for anything.
I read that Post and got it fine and informative. casino
A common complain is that refactoring breaks too many tests, resulting in too many costs for the benefit. That would be a nice topic for a post. And, as opposed to this one, useful! :-)
A common complain is that refactoring breaks too many tests, resulting in too many costs for the benefit. That would be a nice topic for a post. And, as opposed to this one, useful! :-)
holistiline psühhoteraapia holistiline teraapia teraapia psühholoog psühhoterapeut holistiline teraapia
This is such a good information. Thanks for sharing this to us.
It’s not so simply to bring a nice essays written, essentially if you are booked. I give advice you to set buy custom essays and to be void from query that your work will be done by professionals
Without a doubt one of the best posts on this subject I have come across. Any updates?
Awesome topic.Thanks for sharing!!!
Very few has the knack of writing such beautiful post like you do.. !!moncler mens I have been following this blog and i feel different energy while reading your post. Keep it dear buddy.. !!moncler women
Your posts inspire me being the greatest I could be. many thanks for your useful details. I will definately be implementing this quickly.
Thank you for this good post
my blog: justin bieber biography | how to get rid of love handles
every one of cashto’s points are valid at some point in the maturity of the programmer writing the tests. Most of us encountered the problems he mentioned.
The replies were numerous and vociferous. Dave Astels poignantly stated that hand-rolling mocks is so 2001!
This is great article, thank you forsharing all your information. Do you know other post on the same subject?
das war echt ein super Artikel, Thank you for this good post and viele Grüße vom Hip Hop Girl
Come and make a change for your lovely iphone 4 white!
ntertech Machinery Inc. provides the most precise Plastic Injection Mold and Rubber Molds from Taiwan. With applying excellent unscrewing device in molds, Intertech is also very professional for making flip top Cap Molds in the world.
Intertech Machinery Inc. provides the most precise Plastic Injection Mold and Rubber Molds from Taiwan. With applying excellent unscrewing device in molds, Intertech is also very professional for making flip top Cap Molds in the world.
Great It is clear that TDD tried it and did it very poorly. Provillus I want to make sure that the teams I coach try it too, and I want to make sure that they have more help than cashto did
thanks for Moncler Jackets || Christian louboutin UK || Moncler coats || Christian louboutin shoes || Christian louboutin pumps your post!
The article you quote is more about emphasizing the importance of functional tests over unit tests than it is about bashing testing, so I think you’re overreacting a bit here.
Simply, admirable what you have done here. It is pleasing to look you express from the heart and your clarity on this significant content can be easily looked. Remarkable post and will look forward to your future update. Great Thanks!
The post is quite demeaning to the devoted followers of UT and its tenant Screening benefits. Thank you for sharing all your information.
That’s what I thought. They’re not unit tests, they’re just tests.”
best blog
Visit
vendita computer
lago di caldonazzo
He says they mostly follow the “happy path” and therefore don’t find bugs
According to me most people who complain about tests are simply people with zero experience writing tenant Screening large enterprise applications, written by dozens of developers during many years.
I’m probably touching something I just don’t know about, and reminds me of old bugs that were fixed, old business rules written three years ago, and decisions tenant Screening that were made a long time ago. Knowing that those tests would break is what allows me to refactor a lot of stuff in the first place
every one of cashto’s points are valid at some point in the maturity of the programmer writing the tests. Most of us encountered the problems he mentioned.
Perhaps he’s one of those guys who thought that unit tests were best written after the code. Certainly his list of complains makes a lot of sense in that light.
Great, if we’re down to arguing about which sort of testing is best to achieve zero defects, then the industry has come a long way, and I think most of that’s due to the Agile movement. Proactol
Ct Credit Bureau is a nationwide, full service and accurate information for tenant screening, employment screening and mortgage credit reporting company.
Well, sometimes you can and sometimes you can’t. But if I express every high-level story and every bug as an entire army of behavior tests, I know that when my bar is green I can freaking ship.
brilliant blog. great job!
We are the professional jacket manufacturer, jacket supplier, jacket factory, welcome you to custom jacket.
Sunglasses with 3-day FREE SHIPPING
Thank you very much for this blog.I like its.
Thanks for sharing an interesting post would like to have an regular visit
Hermes belt store offers high quality and cheap designer belts, please have a look.
There are various kinds of Hermes belts available to match your needs.
I need to state that I haven’t read something so interesting in a while. There are a lot of motivating views and opinions. I think that you certainly discovered an significant fact. Social Network
Almost any situation--good or bad --is affected by the attitude we bring to. Adversity reveals genius; fortune conceals it. As fruit needs not only sunshine but cold nights and chilling showers to ripen it, so character needs not only joy but trial and difficulty to mellow it. Although the world is full of suffering, it is full also of the overcoming of it. tiffany and co outlet
good post and thanks for share
Strongly recommended for shopping at Hermes belts store.
Strongly recommended for shopping at Hermes belt store.
wow. It is the professional responsibility of everyone involved in developing software to understand the value they are provied. Hemen online okey oyunu indir ve dünyan?n en büyük salonlar?nda oynamaya ba?la.
nice explanation.
internette görüntülü olarak okey oyunu oyna, gerçek kisilerle tanis, turnuva heyecanini yasa.
Very good I will recommended to more friends.Good luck! http://www.gzqiyue88.com/">HeidelBerg Parts http://www.gzqiyue88.com/">Printing Spare Parts
hmm ,i’m not sure if this is what i’m looking for but anyway this is interresting and could be useful some day,thanks for taking time to write such cool stuff
A man walking in the street, I remembered that I bought her that mobile glasses, in fact also pretty good
Hi buddy, your blog’s design is simple, clean, and I like it. I really enjoy reading your blog popular distributed: a good article waiting for you!<a href=”http://www.fakelvbelts.com”>Fake louis vuitton belts< /strong> Louis Vuitton sale< /strong> louis vuitton belts sale< /strong> cheap louis vuitton belts< /strong>
that I bought her that mobile glasses, in fact also pretty goodbeats by dre sale cheap beats by dre
HuangXiao surplus think gymnastics and fashion in her speaking complement each other, gymnastics is full of petr cech itself design changes T-shirt stores and inspiration, so she’s graduation work also is a gymnastics, and he came to different parts of the world DuoNian in gymnastics competition, but also to her to experience different cultures, and expand the horizons of their own design.
As Hong Kong the highest level of women’s gymnastics athlete, in addition to the Olympic Games this year, at the age of 24 HuangXiao surplus what game in, and that is also graduated from the www.t-shirtsgo.com/">cheap t-shirts university last year of the last time she in the world university games. Don’t say don’t know, original HuangXiao surplus last year in the Hong Kong polytechnic university graduate, major is fashion design, although after the graduation HuangXiao surplus temporarily when a professional athlete, but she told the reporter, you actually or want to be professing clothing designers, so is looking for work. In my spare time, she will also test NiuDao, such as design some to gymnastics as the theme of the T-shirt, this www.t-shirtsgo.com/">wholesale t-shirts year’s gymnastics championship will be held in Hong Kong, she is involved in the game T-shirt design, very happy.
Good post.You did a good work and offer more effective imformation for us
href=”http://www.cheapguccibeltsformen.com/”>gucci belts for men
.Thank you.href=”http://www.cheapguccibeltsformen.com/”>cheap gucci belt
.Thank you very much for posting and sharing this great article. It is so interesting. I want to know some other information about this site. So pleasenotebook computer hard drive
i’m not sure if this is what i’m looking for but anyway this is interresting and could be useful some day,thanks for taking time to write such cool stuff
Thanks to this blog I finally managed to find the information matching my criteria and for this I would like to thank the author for sharing this blog with us. Looking forward for more.
asdas df+0asd+s+ss
asdfas df+98sd+9sd6s666
asas f7d8d8d8dd
Hi buddy, your blog’s design is simple, Keep up on it. Thanks for sharing the information.
aaaaaaallright
Thank you very much for posting and sharing this great article. It is so interesting.
Christian Louboutin Pik Pik Pik 120 Studded Slingbacks Black” is a fashion statement – that’s sexy, it makes you look longer highlight, and it highlights the curves in the woman body and makes the body look more elegant and thinner without any diet.
Technical details of Christian Louboutin Pik Pik Pik 120 Studded Slingbacks Black:
Fashion, delicate, luxurious Christian louboutins shoes on sale, one of its series is Christian Louboutin Slingbacks, is urbanism collocation. This Christian louboutins shoes design makes people new and refreshing. Red soles shoes is personality, your charm will be wonderful performance.
Louis Vuitton Outlet Store in contrast to if buying throughout local shops, you can save far more if you discover this suit carrier online. There are tons with internet shopping sites marketing garment plus louis vuitton rolling eole m93553 within lower prices to catch the attention of more buyers. Therefore, employ this opportunity to look for suit hand louis vuitton rolling eole m93553 in deal prices.Louis Vuitton Outlet Online This really is another practical buying avenue to discover affordable louis vuitton coming eole m93553 for agrees with. Visit reputable auction web sites, such as Ebay and also Amazon, to discover louis vuitton rolling eole m93553 that are currently upward for maximum taker. Make sure to make a good bidding price in case however, you find a louis vuitton coming eole m93553 style that will interests you. Keep in mind buyer work by getting the most beneficial and most sensible rates for bids through interested customers.
Bids generally start really low so you will surely be able to get a reasonable price for this auctioned suit garment carrier.
I am totally enjoyed with the nice feedback here. Some of the outstanding and speechless stuff you have posted here. I must say thanks. Awesome work!
A university studentbeats by dr dre caught by the enemy, the enemy tied him at the poles,just beats solo headphones purple and then asked him: say, where are you? You do not say it electrocuted! Scheap dr.dre beats studio headphones balck/yellowtudents back to the enemy a word, the result was electrocuted, he said: I am TVU.Hot sale beats by dr dre pro headphones
The perfect winter insulation should be ultra warm, extremely light and packable, and stay warm when wet. Cheap North Face Jackets For Women No single insulation-not the classic goose down, not the best efforts of synthetic insulation makers-has met all three of those criteria, Cheap North Face Jacketsand folks Cheap Womens North Face Jacketslike hikers, skiers, and snowboarders have had to settle. But North Face claims its newest jacket technologyis the perfect compromise.
How many people understand this? it is a good choice to make a copy of it and save it on computer. We can retrieve them when necessary.
iPad to Mac Transfer lets you transfer music, movie, photo, ePub, PDF, Audiobook, Podcast and TV Show from iPad to Mac or iPad to iTunes.
Welcome to fake raybans store online!Our company is fake ray bans manufacturer & supplier,our company also supply fake ray bans .we have been in designer sunglasses for 8 years.there u can get the cheapest price in our company sites,waiting for u visiting.Fake ray bans sold in our company.our company’s .fake raybans let you enjoy your life withour paying high prices,and our daily necessities have been sold all over the world for many years and influenced by the customers’ approval.our company is your first choice.
Don’t think too much about this. We should think about other factor.
Thanks for very interesting post. I have a high regard for the valuable information you offer in your articles.
Thanks for very interesting post. I have a high regard for the valuable information you offer in your articles.
Thank you for sharing such great information with us. I really appreciate everything that you’ve done here and am glad to know that you really care about the world that we live in hiawassee retirement communities | murphy real estate
Thanks for the information, I’ll visit the site again to get update information online shopping
Very interesting , i like read this thanks.
He would make a great manager
You really make it seem so easy with your presentation but I find this topic to remain really something which I think I would never know. It seems too complicated and broad for me. My organization is looking forward for your following post; I will try to find the hang of it.
amazing acclimation rates abounding basal of bodies become a abstruse time above to exercise and way of action blossom action about first. Added and added bodies to accompany the gym
avant garde their health. Outdoor because in acclimation to abhorrence the needs of the. If acclimatize clothes on the Internet or in an commodity, you can acclimatize not
Excuse me sir, What Planet is this? 137 good post131
Excuse me sir, What Planet is this? 138 hoo,good article!!I like the post!181
Intertech Machinery Inc. provides the most precise Plastic Injection Mold and Rubber Molds from Taiwan. With applying excellent unscrewing device in molds,
Intertech is also very professional for making flip top Cap Molds in the world. Mold making is the core business of Intertech (Taiwan). With world level technology, Intertech enjoys a very good reputation for making Injection Mold and Plastic Molds for their worldwide customers.
Nice, i like it…
Backpack diaper bags are the latest trend, and are popular largely because you are able to keep it on your back and have your hands free?
With more than 20 years of experience, Intertech provides an extensive integrated operational ability from design to production of molds 100% made in Taiwan. Additional to our own mold making factory, we also cooperate with our team vendors to form a very strong working force in Taiwan.
For the overseas market, we work very closely with local representatives in order to take care of the technical communication and after-sales service to our customers. We also participate in the EUROMOLD & FAKUMA exhibitions and meet our customers every year in Europe. By concentrating on mold “niche markets”, we play a very useful mold maker role from the Far East whenever customers want to develop their new projects. We provide services from A to Z to our customers on a very economic cost and effect basis.
http://www.outfitscosplay.com/cosplay-wigs/tales-of-the-abyss-cosplay-wig Deluxe Tales of the Abyss Cosplay Wig for Sale.Find your favorite characters and cosplay outfits from all the popular anime and games.