How Big Should a Function Be? 119

Posted by Uncle Bob Tue, 30 Oct 2007 03:25:37 GMT

In the ‘80s we had a rule that a function should be no longer than a screenful. Few, if any, of us followed that rule. Our functions were typically much longer than the 20 lines that would fit on a VT100.

Nowadays, on a 17” laptop screen with the font cranked way down low, you can get 60, 80, maybe even 100 lines of code on the screen. Does the same rule still apply? Should functions be no longer than a screenful?

Of course the idea is ridiculous. Functions should be small. Very small. A well written function might be 4, 5, perhaps 8 lines long; but no longer.

There are exceptions of course. Some functions will have long switch/case statements (We’ll talk about those later), or long array initializations, or some other mindless structure that simply takes space to fill. But the fast majority of functions are not of that kind, and should be very short. Specifically, functions that process information as part of an algorithm should be very small.

A function should have zero or one level of indentation. Nested ifs and while’s should be avoided in most cases. Moreover, the body of an if or while should be one or two lines long. Typically, the body of an if or while statement should be no more than a single function call.

The body of a try block should also be a function call; and the word try should be the first word in the function.

Each function should have a descriptive name, two or three words in length, that makes it clear what the function does. Moreover the function should have between zero and three arguments.

A source file should read like a newspaper article. Newspaper articles begin with a headline, followed by a single synoptic paragraph, followed by paragraphs full of ever increasing detail. The ideal article can be read until it gets boring. A source file should read the same way. High level functions should be followed by lower level functions that should be followed by still lower level functions. The calls should all point downwards in the source file if possible.

Of course these rules cannot be followed 100% of the time, but they are good rules nonetheless. Our goal, as programmers, is to write programs that humans can understand and maintain.

It is not good enough that a program work. A program must also be written well. As a programmer you should take pride in your work and never leave a mess under the hood. Remember, a product that works, but that has a bad internal structure is a bad product.

Comments

Leave a response

  1. Avatar
    Jan Daniel Andersen about 7 hours later:

    YES!!!

    Even though most of us know this to be true and practice these rules everyday, it cannot be said often enough. Even those of us, that are very thorough about making our code nice, needs to hear this once in a while.

    Readability is (or should be) on the very top of the checklist, you go through before declaring you code done (done done). Ofcourse the application should work, but I’d much rather fix a well written application with errors than maintaining a working app, with ugly code.

    No code comments (apologies), no long functions, no intricate nested conditionals, no “And” in methods names… no no no! Only code devided into small comprehensive bits of functionality, with names that make it’s purpose totally obvious (even your mom should be able to get the overall idea of what the code does). When a software professional sees wellwritten code, he/she smiles with enjoyment.

    As professional software people we don’t produce applications or systems. We produce (as a team) the working instructions (sourcecode) that lets the compiler build the application or system. And those working instructions needs to be understabdable by the people working on them. Forget that and all is lost.

  2. Avatar
    Peter Wood about 9 hours later:

    That’s the first time I’ve seen anyone suggest putting ‘try’ in the name of the function, although I have done it myself in the past. I wasn’t sure what it was communicating though. Does it just mean the function could throw an exception? Should that function not be used without a try block?

    I like increasing the font size so that I can’t fit more than 80 characters on a row. That helps with function length too.

    Obviously, functions shouldn’t be TallerThanMe, although I’m quite tall.

  3. Avatar
    Brandon about 11 hours later:
    A source file should read like a newspaper article.
    A fun exercise that I do occasionally on my Mac is to highlight a method in your source code and run text to speech on it. If the T2S engine gets confused then you could probably stand to clean up the code a bit.
  4. Avatar
    Anonymous@spambob.com about 12 hours later:

    The body of a finally block should also be a function, preferably callded ‘cleanup’.

  5. Avatar
    Nathan Henkel about 13 hours later:

    An interesting effect of applying the “many short methods per class” rule is that, on modern displays, and entire class definition will occupy about a screenful. That’s a really good thing.

    Of course, that goes away if you require a header for each method or have some other comment-intensive requirement. Comments, which are supposed to illuminate the code, actually obscure it when they force the reader to scroll to find a method that could be on the same page. This is yet another reason to use comments sparingly and instead make the code speak for itself.

  6. Avatar
    yachris2112 about 14 hours later:

    Doesn’t this just raise the question of how many methods a class should have?

  7. Avatar
    Rafael de F. Ferreira about 16 hours later:

    Great advice, but the following let me intrigued: “The body of a try block should also be a function call; and the word try should be the first word in the function.”

    I would love to see an example of code following this guideline.

  8. Avatar
    Dmitry Pavlov 1 day later:

    Good advices. But in practice, we often need to use external framework and it is impossible for some of them to write something useful in few lines. As an example – Managed Package Framework (MPF) from Visual Studio SDK.

  9. Avatar
    Clint Shank 1 day later:

    I wholeheartedly agree and have written about this topic here.

    The interesting part comes after you’ve created all these small methods. You look for where you can move them. That is, you ask, “does this behavior really belong somewhere else?” In object-oriented programming, typically, you can pull up to a base class, extract a new class (e.g., you realize a Data Clump) and move the method over, move the method to one of the objects passed in as a parameter, or maybe even move the method to a utility class. Writing small methods makes this identification easier.

  10. Avatar
    Ruivaldo 1 day later:

    Great hints. I always do this in my code, but i felt sometimes that i was one of the few that does. ;) I was feeling alone, thanks :P

  11. Avatar
    GregB 1 day later:

    Wouldn’t the size of a function be dependent upon what language it is written in? One can accomplish a lot of mayhem with four or five lines of Perl. With four or five lines of well-crafted APL, one can take over the world.

  12. Avatar
    www.EdmundKirwan.com 1 day later:

    Strange, I was just thinking about this a couple of weeks ago.

    I don’t know how big a function should be but splitting functions into smaller functions within a class (if I can go OO for a moment) does have the interesting side-effect of increasing the potential structural complexity of your system, and even defining how big the encapsulating classes should be.

    Well, theoretically, anyway.

    You’re welcome to some thoughts on how big classes and name spaces should be, here: http://www.edmundkirwan.com/encap/intro.html

    .ed

  13. Avatar
    Stan 2 days later:

    I opened a source file the other day and found a 5,000 line method with all local variables defined at the top. I cried a while and went home early. My granddaughter deserves my time more than this. :-)

  14. Avatar
    JamesH 2 days later:

    Length only matters if you’re mixing concepts. For example: if you’re effectively entering data in code(like some patterns for shapes, or variable initializations) then additional subroutines will only add confusion. And if you’re implementing a complex algorithm, you will probably have to code it in a complex way as well. But if you’re doing different things at different points, then adding functions for each, or at the minimum comments, will serve you well.

    Horror 1000+ line functions are usually ones that ignore reusability in favor of cut, paste, tinker methods.

  15. Avatar
    Length and Depth too 3 days later:

    A fellow once said that a “simple” function with “only” ten booleans would be impossible to test exhaustively (like that was a goal) due to the sheer number of combinations. I would like to see a 10-line function handle ten independent boolean conditions. Or rather, I would hate to see ANY function deal with 10 independent flags.

    In other words, a small function can’t be too intense, deep, or complex. That’s why we like them small.

  16. Avatar
    Dave G 3 days later:

    Uncle Bob, is there any production code written by you that’s available for public view? I’d like to see how closely you follow your own rules.

  17. Avatar
    Nathan Henkel 3 days later:

    I believe all the source code for Fitnesse (http://fitnesse.org) is available for download.

  18. Avatar
    p2r 4 days later:

    This is GREAT advice. But … it is possible to take this approach too far – there is a balance between small methods and number of methods (and classes and packages). I am not saying that you shouldn’t write small functions, I am merely saying that it is possible to overdo it. I’ve done it, and my fellow developers complained – it was very hard to understand what was going on since the code was scattered over a zillion one-line methods. This perhaps just as bad as having all the code in one function – in neither case you can understand what’s going on.

  19. Avatar
    Dave G 4 days later:

    I just looked at the fitnesse source, and he violates those rules all over the place, even where the so-called “exceptions” don’t apply. So, in other words, one should write short functions where short functions are called for, but longer functions where longer functions are called for.

    What sage wisdom.

  20. Avatar
    Nathan Henkel 5 days later:

    @Dave

    Uh, could you be more specific? I skimmed some of the code, and the longest method I found in my skimming was 14 sloc. Most were around 8 or fewer. I didn’t see a single example of naming a function called inside a try block try*, but I also know some that things I would advise today are not present in code I wrote 6 months, or even a month ago. My technique is constantly evolving.

    Anyway, if you were to provide some specific examples, and ask questions rather than make broad assertions about “violations all over the place” it would REALLY help you look more objective, and less like someone who’s already made up his mind before he even asks the question.

    I honestly don’t even know if the fitnesse source really follows Bob’s stated principles—I just mentioned it because I know it’s production code Bob worked on. I’d be interested to hear an argument on the subject. But probably not from you. You just come off as an axe-grinder.

  21. Avatar
    xinghua hu 8 days later:

    I agree with GregB. I think the functions of C++ may be long than java’s.Because i think that modifiy C++ function is more difficult. I must change the declare, define and invoker.And they are always in different files.So when I write C++ program i always make flew functions.

  22. Avatar
    hu 8 days later:

    I agree with GregB. I think the functions of C++ may be long than java’s.Because i think that modifiy C++ function is more difficult. I must change the declare, define and invoker.And they are always in different files.So when I write C++ program i always make flew functions.

  23. Avatar
    The Unknown 8 days later:

    One of these nice posts that have a huge amount of “should” in it, but not one single “because”. Hey, I can do this too: You are wrong, anything should be the other way around.

    Seriously, a nice list of thumb rules, but missing any context and therefore quite worthless.

  24. Avatar
    Nathan Henkel 9 days later:

    @The Unknown

    are you claiming the following? 1) It’s a nice list of rules of thumb 2) It has no context 3) Lack of context makes a thing useless

    I think we can also allow this definition 1) All rules of thumb exist without context (it wouldn’t be a rule of thumb otherwise).

    Consequently, all rules of thumb are useless? That’s a strange thing to say/think.

    Seriously, I think you could say of this post “hey, this has been said before—nothing new here”, but…

    really? you don’t live by any rules of thumb? all your rules are completely context sensitive? how do you keep them all in your head? how do you deal with new situations?

  25. Avatar
    The Unknown 9 days later:

    Nathan,

    as others have mentioned, there’s not even a language given.

    A useful rule of thumb would be “Look left and right when you cross the street.” Mind the context: When you cross the street. Usually you won’t look left and right when you go from your living room into your kitchen—except when you have to cross a street for it ;). The thumb rules in this blog post are more of the kind “You should look left and right.”

    But there is another missing context that makes my example in fact a bit dangerous, because there should be a “or right and left depending on your country.”

  26. Avatar
    Paranoid Android 9 days later:

    All generalizations are false.

  27. Avatar
    Joe Hatfield 11 months later:

    I don’t see why anyone thinks wading through 100 ten line functions would be any better than a single well-commented 1000 line function. It seems like a lot more clutter to me.

  28. Avatar
    Kristian about 1 year later:

    Joe> A program broken into modules is easier to understand, test and modify. Parts can be replaced and mocked as needed. Do you practice unit testing?

  29. Avatar
    DVD to HTC Converter over 3 years later:

    thank you for sharing the post ,it is really good PDF to BMP Converter is the

    excellent combination of super high conversion speed and perfect output quality. At the same time, PDF to BMP Converter supports

    various output formats like: JPEG, TIFF, TGA, RLE, EMF, WMF and so on.

  30. Avatar
    animal charms over 3 years later:

    I had gone much.I couldn t judge that I fell in adore with links of london heart bracelets That was one of my big changes. heart bracelet After all, I didn’t like ornaments at all in the launch. Since I fell in dear with links of london Sweetie necklaces , I had realized that an instance of links of london Sweetie rings could bring me much more links of london watch charms

  31. Avatar
    bag factory over 3 years later:

    with the font cranked way down low, you can get 60, 80, maybe even 100 lines of code on the screen. Does the same rule still apply? Should functions be

  32. Avatar
    Designer Bags over 3 years later:

    cool article.Thanks for ur nice sharing!!

  33. Avatar
    chanel store over 3 years later:

    Very pleased that the article is what I want! Thank you

  34. Avatar
    Backup iPhone SMS over 3 years later:

    Transfer iPhone SMS to computer and keep safe.

  35. Avatar
    Pandora over 3 years later:

    I don’t recommend that on any project that needs to work, but I also don’t recommend using a real product to learn your tools.

  36. Avatar
    Protein Rich Foods over 3 years later:

    finding the resouces about this part.It will certainly help educate me.

  37. Avatar
    Coach Factory Outlet over 3 years later:

    very similar. Sleepless & sprang around from the Etsy boards which usually don’t pick up myself tonight… Spend a while stalking about the community forums & perusing products for sale & lately offered.

  38. Avatar
    monster beats by dr dre over 3 years later:

    monster beats by dr dre Extreme comfort is music to your ears With Monster Beats, you feel the music, not the headphones. Spacious earcups give you extra room for a higher level of listening comfor dr dre headphonest. Plush ear cushions covered with ultrasoft breathable materials keep you cool even when the music is hot. This comment has been flagged for moderator approval.

  39. Avatar
    burberry outlet over 3 years later:

    It was time for the University of Michigan football program to make a change. This wasn’t a pleasant day or a pleasant decision but it was something I felt had to [URL=http://www.coachfactory-outlets.com] coach outlet online [/URL] be done.I need to engage in a process that affords me the ability to get that coach. Clearly [URL=http://www.coachfactory-outlets.com]coach sneakers[/URL] it is a disruption; the faster we can bring in a new leader, the better. But I am not going to be [URL=http://www.coachfactory-outlets.com]coach outlet[/URL] motivated by those circumstances and those pressures; I need to get the right individual into this position that will be successful.The Boulder native was named the Longhorns’ assistant recruiting coordinator after his first year on staff.

  40. Avatar
    mens nfl jerseys over 3 years later:

    The fortunate intelligence for people that take place to be superficial for negotiate – and aren’t all of us – could possibly be the simple fact that sixpenny Arizona cardinals NFL jerseys can certainly cheap nfl jerseys be treble attribute. They faculty be sturdy plus they won’t undo easy. They give human being all belonging for that recognizable qualities of substantially overpriced jerseys. The variations in between a tasteless discount women’s nfl jersey and an Football Jerseys high-priced just one lie inside the details and all belonging for that associated bells and whistles.The substantially high-priced youth nfl jerseys are exploit to acquire surplus qualities specified as stitched on lottery with wake less, multicolored artifact layers. mens nfl jerseys They are accomplishment to develop to be fashioned in sizes that mimic the sizes and styles used near to the theater plus they are accomplishment to human being all belonging for that small markings that leave piddle it relaxation out.All of <a href=”http://www.clothing-trading.com/”>Discount NFL Jerseysose components are major, but they are also essentially spare. should you essential to represent your lover squad or participant with affordable youth nfl jerseys online, you can perform so without any all of people design elements.

  41. Avatar
    ugg boots over 3 years later:

    The Boulder native was named the Longhorns’ assistant recruiting coordinator after his first year on staff.

  42. Avatar
    nikeshox over 3 years later:

    he Boulder native was named the Longhorns’ assistant recruiting coordinator after his first year on staff.

  43. Avatar
    cable ties over 3 years later:

    well presented article. thumbs up!

  44. Avatar
    man breast over 3 years later:

    Thanks for such a great article and the review, I am totally amazed! Keep stuff like this coming.

  45. Avatar
    Melisa over 3 years later:

    Thanks for your superb post, i enjoy to see this information.

  46. Avatar
    Coach Factory Outlet Online over 3 years later:

    just we know,your website is useful to many people.

  47. Avatar
    jiopp over 3 years later:

    We also carry an assortment of bird feeders, bird baths and other accessories welcomWood Pellets Fuel

  48. Avatar
    ralph lauren over 3 years later:

    It is a myth that stakeholders would like to have all their requirements included in the final build which in reality is not so true. We all dream of Rolls Royce but end up with Honda because that is best the money could buy.

  49. Avatar
    okey oyunu oyna over 3 years later:

    informative situation. Thanks

    internette görüntülü olarak okey oyunu oyna, gerçek kisilerle tanis, turnuva heyecanini yasa.

  50. Avatar
    marc jacobs eyeglasses over 4 years later:

    marc jacobs eyeglasses is correctional eyesight or eye protection and make simple optical device. Composed by lens and frames. Vision correction use glasses have myopia discount marc jacobs sunglasses and farsightedness glasses, marc jacobs and astigmatism glasses four. Protect eyes with glasses have bond and basto protection lens, the degree of FengJing and fairy dean Laura cindylaura sunglasses, etc. marc jacobs sunglasses is both eye protection tools, it is a kind of hairdressing decorations.

  51. Avatar
    ford leveling kit over 4 years later:

    The articles is so useful and nice. thank you :-)

  52. Avatar
    leveling kit ford over 4 years later:

    The articles is so useful and nice. thank you :-)

  53. Avatar
    leveling kit f250 over 4 years later:

    The articles is so useful and nice. thank you :-)

  54. Avatar
    f350 leveling kit over 4 years later:

    The articles is so useful and nice. thank you :-)

  55. Avatar
    Ed Hardy Outlet over 4 years later:

    I have a simple philosophy: Fill what’s empty. Empty what’s full. Scratch where it itches. I love life because what more is there. I still find each day too short for all the thoughts I want to think, all the walks I want to take, all the books I want to read, and all the friends I want to see.

  56. Avatar
    Soybean Oil Processing over 4 years later:

    To the extent that the subject matter is concerned you have chosen a truly fine and hot topic. I would advise you to get your blog better especially by adding up the matching eminence articles.

  57. Avatar
    christian louboutin shoes on sale over 4 years later:

    Have the christian louboutin patent leather pumps is a happy thing. Here have the most complete kinds of christian louboutin leather platform pumps.

  58. Avatar
    belly band holster over 4 years later:

    As professional software people we don’t produce applications or systems. We produce (as a team) the working instructions (sourcecode) that lets the compiler build the application or system. And those working instructions needs to be understabdable by the people working on them. Forget that and all is lost.

  59. Avatar
    supras shoes cheap over 4 years later:

    Great post! This really is just remarkable

  60. Avatar
    cheap supras over 4 years later:

    Great post! This really is just remarkable

  61. Avatar
    cheap supras shoes over 4 years later:

    i appreciate your blog site and bookmarked it . I agree with most of the issues you said and i am waiting for the new posts .

  62. Avatar
    supras shoes over 4 years later:

    Oh! Good I have read your topic I’m really super success Written …!

  63. Avatar
    supras for sale over 4 years later:

    I believe you’ve made certain pleasant points in the topic likewise. I guess you should not stop with this; I would like to see more of your submissions.

  64. Avatar
    vibram 5 fingers over 4 years later:

    thanks for the information..it was really usefull for me..I have read all the posts and i found very unique information on this blog good work by your side

  65. Avatar
    vibram fivefingers sale over 4 years later:

    Thanks for sharing this. It’s good to see this information i which i was looking for my research.

  66. Avatar
    vibram fivefingers over 4 years later:

    I just can’t stop reading this . Its so fresh, so filled with updates that I just didn’t know . I just can’t stop reading this . Its so fresh, so filled with updates that I just didn’t know.

  67. Avatar
    vibram five fingers cheap over 4 years later:

    Great post! your website is fantastic! I just can’t stop reading this. Its so fresh, so filled with updates that I just didn’t know.

  68. Avatar
    vibram fivefingers bikila over 4 years later:

    Fantatic precise info and this is one of the most nice blogs Ive read in a very long time.

  69. Avatar
    supra footwear website over 4 years later:

    Good I have read your topic I’m really super success Written …! I believe you’ve made certain pleasant points in the topic likewise. I guess you should not stop with this; I would like to see more of your submissions.

  70. Avatar
    wedding dress over 4 years later:

    I have nothing against the strapless cheap formal gowns dresses stores gown but they seem to be the only thing available. When I watch Say Yes to the Dress 98% of the dresses are strapless. Even if formal beach wedding dresses gowns a bride wanted to have sleeves chances are they aren’t available. I’m glad this dress had sleeves. I know she had to keep her shoulders covered due to designed strapless formal dresses royalty or church rules but the dress was beautiful. I hope to see some brides start to cover up a little bit more.

  71. Avatar
    used inversion table over 4 years later:

    A fellow once said that a “simple” function with “only” ten booleans would be impossible to test exhaustively (like that was a goal) due to the sheer number of combinations. I would like to see a 10-line function handle ten independent boolean conditions. Or rather, I would hate to see ANY function deal with 10 independent flags.

  72. Avatar
    deadbeat millionaire review over 4 years later:

    Would you like to banckup iphone SMS to mac, macBook, macbookPro as .txt files? Now a software iphone SMS to Mac Backup can help you to realize it.

  73. Avatar
    salvatore ferragamo shoes over 4 years later:

    Supra Pilot Shoes

    sennheiser hd650 2700

    fake carrera sunglasses

  74. Avatar
    http://www.discount-drdrebeats-outlet.com/ over 4 years later:

    this is nice post

  75. Avatar
    Coach Tote over 4 years later:

    I am happy to have found this blog, and more happy to have long tail explained so well. Thanks.

  76. Avatar
    Coach Tote over 4 years later:

    I am happy to have found this blog, and more happy to have long tail explained so well. Thanks.

  77. Avatar
    ffff over 4 years later:

    A wide range of Australian made UGG Boots and sheepskin leather products.

  78. Avatar
    Adidas Panda Shoes over 4 years later:

    Adidas TS Bounce Commander Kevin Garnett basketball shoes for men have everything you need to Adidas Star Wars Shoes tear up the court. This pair of shoes features: Leather upper with synthetic accents is lightweight and supportive. Midfoot velcro strap maximizes support and stability. AdiPRENE+ cushioning in the forefoot for great propulsion and cushioning.,Adidas Porsche Design Jeremy Scott Panda Shoes

  79. Avatar
    beats by dre store over 4 years later:

    r when the Ark of the survivors to regain a life, one day, when they will also explore the dinosaur fossils found my fossils, they will be suhigh quality headphones new design headphonesrprised in the end is the Jurassic Jurassic age have a human or not human

  80. Avatar
    http://www.topcharmjewelry.com/Pandora-Gift-Sets/Pandora-Forget-Me-Not-Gift-Set_2666.htm over 4 years later:

    Choose the best pandora or chamilia bangle braceletes Choosing a pandora who has a reputation for honesty is very important when buying a serious piece of pandora or a set of jewels from a jewelry store.

  81. Avatar
    live help chat software over 4 years later:

    I believe you’ve made certain pleasant points in the topic likewise. I guess you should not stop with this; I would like to see more of your submissions.

  82. Avatar
    wholesale disney jewelry over 4 years later:

    Nice content, I trust that is a nice blog. Desire to see fresh content when. Thank you sharing this post around. Continue the good work.

  83. Avatar
    buy film online over 4 years later:

    Great blog.Thanks for you published great articleGreat blog.Thanks for you published great article

  84. Avatar
    Jeff Hagen over 4 years later:

    In theory, this idea sounds neat. However, I object to the idea. While I certainly don’t advocate writing goliath (hercules) functions, I do believe there should be a balance; functions should neither be TOO large nor TOO small. The problem with scads of tiny functions is that you have to hunt through multiple layers of code to debug the top level function. It also makes the class way too “busy” with lots of function noise all over the place.

    Granted, if code is going to be re-used, it should definitely be in its own function. However, if it’s not going to be re-used, it makes agile sense (needless complexity) to keep related code as close as possible to the rest (in a single function).

  85. Avatar
    christianlouboutin over 4 years later:

    All among us realise that if you MBT boots or shoes within get hold of, Jimmy Choo Sandaleseducation-women’ vertisements mbt tunisha providing may easily really encourages lymphatic circulation,Jimmy Choo Bottines you’ chemical in all probability more significant receive boots or shoes clearance retail store as a result of MBT while it a good number of at no cost submitting in combination with MBT boots or shoes are almost always pay for and also profit designed notnaxcanada goose outlet.

    A particular low-priced MBT Nama Boots and shoes out of a number of online space boots and shoes plus boot footwear MBT great bargains preferred now in now would be to simply and even safely mbt sandals pay for consumers pay for progressively more over the internetcanada goose jakke, have MBT footwear and remaining grown to be a sample. MBT boots providing now, ways to explain any one prevent
    the north face

    ? Brand-new assumed to test a person's MBT boots pay for, generate a test? My wife and i reassurance any one, we have a special working experience
    North Face Denali Jakker Kvinder hoodie

    .
  86. Avatar
    http://www.polo-homme.net over 4 years later:

    oh,what is that,it is so nice

  87. Avatar
    hair extensions over 4 years later:

    Thank you for sharing the article . It let me know something I didn`t know .You write well, I have bookmarked, I will wander back.

  88. Avatar
    Ashley Bowling over 4 years later:

    In the earliest days of white-collar business automation, large mainframe computers were used to tackle the most tedious jobs, like bank cheque clearing and factory accounting.

  89. Avatar
    piumini moncler over 4 years later:

    Thank you for sharing the article . It let me know something I didn`t know .You write well, I have bookmarked, I will wander back.

  90. Avatar
    canada goose jakke over 4 years later:

    yes , i am agree with your point

  91. Avatar
    Nike run free over 4 years later:

    good post

  92. Avatar
    UGG Bambini Stivali over 4 years later:

    UGG Bambini Stivali , non penso che un partito disonesto può avere nascosto il suo vero motivo del sorpasso complessivo di Israele, e avrebbe potuto accettare temporaneamente allo stato giudaismo, al livello più basso fino a quando alcune persone a costruire una potenza sufficiente ogni singolo bambino ribaltare semplice fatto? Come si poteva sapere, la legge fondamentale per la negoziazione intelligente è sempre quello di “offrire la più piccola quantità importanti per le vostre esigenze, oltre a chiedere l’importante molti”. Qualunque cosa tu possa pensare dei palestinesi particolare, il dibattito è il suo mezzo identificare.

  93. Avatar
    http://www.polo-homme.net over 4 years later:

    ralph lauren polo grossiste

  94. Avatar
    Scarpe Ugg over 4 years later:

    Scarpe Ugg ,?? 0 100 di 2 anni e decenni di Inesorabile, Punt senza confini – Somalia, Estremo Oriente Africa ’s The World Radiant maggioranza IExactly 2 decenni fa, molti dei somali sono svegliato in un incubo incredibile impiegati a loro attraverso criminali mafiosi massonici e anche la loro marionette, gli statisti del New Universe impressionante ordine.Nel Presidente Siad Barre alla fine ha lasciato la realizzazione presidenziale a Mogadiscio dopo il tramonto del 26 Gennaio 1991, cercando altrove contribuire a sostenere a contro-attacco che i ribelli, riconquista la sua capitale, e reinstallare che si aprono somali modo che una grande quantità di promossi ciascuno dei somali così tanto sconvolto l’razzista insieme con il male, forza coloniale? tutte le persone che avevano una maggiore secolo concepiti ogni inganno diabolico realizzabile per annientare un nuovo 40-secolo indesiderate, state.Siad grande dittatore Barre non era un servizio per la ragione che penalmente distorsivi, disumano cattivo, assolutamente massonica, poco raccomandabili pseudo-enciclopedia Wikipedia finge spudoratamente intorno al suo malignamente pubblicato entry.Siad Barre era un uomo incredibile, oltre ad un grande presidente per quelli somali ?? Io in realtà lo ripeto tutti: per la maggior parte dei somali? mentre è comune, ha fabbricato difetti gravi, come ogni ragazzo di alternare grande statista.

  95. Avatar
    http://www.nike-airmax-2012.com over 4 years later:

    Ambassador Robert Ford returned to Washington this weekend pursuing the U.S. obtained “credible threats versus his personal protection in Syria,” suggest division spokesman Mark Toner stated Monday. Ford has long been the theme of numerous incidents of intimidation by pro-government thugs, and enraged Syrian authorities with his forceful defense of peaceful protests and harsh critique of the federal government crackdown which has now claimed a terrific offer greater than 3,000 lives.

  96. Avatar
    canada goose jakke over 4 years later:

    Som topmødet canada goose jakke vært, har hundreder canada goose af millioner værd at Berlusconi forberedt canada goose outlet en gave til ledere: værdien af GBP 500 belstaff outlet limited edition fashion frakke.Denne mørke belstaff blå frakke siges at være “Præsidentens frakke”, udskrives canada goose jakke over Italien flag, udført Canada Goose Banff Parka af fashion brands beidafu og hr. Berlusconis samarbejde, alt ovenstående er gamle Bay autograph Canada Goose Expedition Parka drenge.Hvad angår størrelse, og gav en af lederne af alle lande er fremstillet af deres fotos og Canada Goose Expedition Parka Kvinders videoer af højden af organ oplysninger skræddersyet til.Beidafu mærke bliver Canada Goose Expedition Parka M?nd darling af fashion verden i de seneste år, mange store stjerner har passeret af mærke Canada Goose Kvinder Vest tøj, såsom USA stjernerne Brad Pitt og George Clooney, og Storbritannien har ikke iført fodbold stjerne Canada Goose Montebello Parka David Beckham.

  97. Avatar
    christian louboutin over 4 years later:

    The professional design make you foot more comfortable. Even more tantalizing,this pattern make your legs look as long as you can,it will make you looked more attractive.Moveover,it has reasonable price.If you are a popular woman,do not miss it.

    Technical details of Christian Louboutin Velours Scrunch Suede Boots Coffee:

    Color: Coffee
    Material: Suede
    4(100mm) heel
    Signature red sole x

    Fashion, delicate, luxurious Christian louboutins shoes on sale, one of its series is Christian Louboutin Tall Boots, is urbanism collocation. This Christian louboutins shoes design makes people new and refreshing. Red soles shoes is personality, your charm will be wonderful performance.

  98. Avatar
    christian louboutin over 4 years later:

    Ambassador Robert Ford returned to Washington this weekend pursuing the U.S. obtained “credible threats versus his personal protection in Syria,” suggest division spokesman Mark Toner stated Monday. Ford has long been the theme of numerous incidents of intimidation by pro-government thugs, and enraged Syrian authorities with his forceful defense of peaceful protests and harsh critique of the federal government crackdown which has now claimed a terrific offer greater than 3,00

  99. Avatar
    beats by dr dre over 4 years later:

    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

  100. Avatar
    north face clearance over 4 years later:

    The little boy north face clearance said he would take over the chores for his dad. So he went to the barn and milked the cow when he was done he kicked the cow right in the ass. north face jackets clearance Then he went and fed the pig, when he was done he kicked the pig in the ass. Then he went to feed the chicken, when he was done he kicked the chicken in the ass.

  101. Avatar
    moncler clothing cheap over 4 years later:

    moncler replica replica moncler handbags uk moncler vest uk YangGengSheng

  102. Avatar
    Limo Hire Brisbane over 4 years later:

    Thank you for sharing the article . It let me know something I didn`t know .You write well, I have bookmarked, I will wander back. Limo Hire Brisbane

  103. Avatar
    Brisbane Limo Hire over 4 years later:

    Thank you for sharing the article . It let me know something I didn`t know .You write well, I have bookmarked, I will wander back.Brisbane Limo Hire

  104. Avatar
    Bealls Coupons over 4 years later:

    Well good website.

  105. Avatar
    movers over 4 years later:

    Get the cheapest movers Movers

  106. Avatar
    robe de mariée over 4 years later:

    robes de mariée

  107. Avatar
    international travel insurance for seniors over 4 years later:

    ello più basso fino a quando alcune persone a costruire una potenza sufficiente ogni singolo bambino ribaltare semplice fatto? Come si poteva sapere, la legge fondamentale per la negoziazione intelligente è sempre quello di “offrire la più piccola quantità importanti per le vostre esigenze, oltre a c a Travel insurance for seniors cheap travel insurance over 70

  108. Avatar
    china crafts over 4 years later:

    moncler replica replica moncler handbags uk moncler vest uk YangGengSheng

  109. Avatar
    liudayun over 4 years later:

    I love this article, it’s very well.Oakley Scalpel sunglassesOakley Necessity SunglassesCheap oakleys Oil Rig Sunglasses

  110. Avatar
    louboutin sales over 4 years later:

    How Big Should a Function Be? 109 hoo,good article!!I like the post!53

  111. Avatar
    bladeless fans over 4 years later:

    How Big Should a Function Be? 110 good post163

  112. Avatar
    Tory Burch over 4 years later:

    Engagement rings are jewelries that could Tory Burch never be unrecoverable. Considerably, to Tory Burch excrete them real persistent, you person evening purse to select the reactionary and dead graceful flat prom shoes that are commendable to be kept for a lifespan. orange clutch bag Time, an activity of a diamond action doughnut is in the knowledge of most couples.

  113. Avatar
    fdsfdsfds over 5 years later:

    This is a great post! Thanks.mac cosmetics saleOakley Sideways SunglassesOakley Bottlecap SunglassMAC Sheertone Blush saleReplica Oakley Commit SQ SunglassesMAC Brush

  114. Avatar
    cheap nike free over 5 years later:

    Los Angeles Clippers (microblogging) home 87-86 win over the Memphis Grizzlies, 2-1 ahead of the competition. Core – Chris Paul (microblogging) to become the first hero of the Clippers grabbed the key to this victory, he scored 24 points and 11 assists, four rebounds and four steals. In particular, the backward seven minutes into the fourth premise, Paul led his team to play a wave of counter-attack climax, the final one-point win over opponents to ensure that this crucial victory.

  115. Avatar
    Christian Louboutin over 5 years later:

    Nowadays, it is no surprise that you will be finding a lot of motorcycle Christian Louboutin apparel from various manufacturers. Motorcycle boots such as Double h boots Christian Louboutin glitter pumps are particularly abundant in the market that sometimes it is a confusing Christian Louboutin spiked peep toe pump and frustrating task to find the perfect boots for you. Many companies offer Christian Louboutin for cheap different features such as added protection and the prices can vary considerably depending on the brands and qualities they offer.

  116. Avatar
    hermes sac birkin over 5 years later:

    A bean bag chair filler is just as important as a bean bag chair’s appearance?

  117. Avatar
    Injection Mold over 5 years later:

    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.

  118. Avatar
    [url=http://www.88sportsshoes.com]Cheap Air Max 2012[/url] over 5 years later:

    It is very nice to visit your website. The content is so resourceful and useful for me. www.88sportsshoes.com

  119. Avatar
    plastic injection mold over 5 years later:

    Intertech Machinery Inc.

    With more than 25 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.

    Main Products:

    Injection Mold, Silicone Molding, Rubber Mold, Silicone molding, PC High-Gloss Plastic Mold, Die Casting Mold, Silicone Mold, Silicone Rubber Mold, Liquid Silicone Rubber , Cosmetic Packaging Mold, Medical Products Mold, Engineering Plastic Molds, Home Appliances Mold, etc…

Comments