Feed Me Cookies (rss)
Feed Me Cookies (rss)

12

OCT

2007

Foreword

My primary programming language is PHP. I am going to try to keep these rules as general as possible, for they should apply in any programming situation. The one exception to that theory is in my readability section, some of the syntax may differ. I will draw my examples using PHP.

Grab your keyboard and the nearest shuriken. There will be blood shed by the end of this article!

 

1. Readability

There are a few simple techniques that you can employ to make your code more readable. Readability is important if you’re working on your own, or if you’re working with people. Readability is literally how your code reads and nothing more. There are other players in the overall ability to follow your code, and I will allude back to this section when we get there.

Key Factors in Readability

Whitespace

Whitespace is free, use it. I know some people may disagree with me here, and I’ve seen their atrocious code, but spacing out your code is very important. Think of your code as a book, you need to allow the eye to find breaks and segways easily so that you can scan your code and find the break point you’re looking for.

Figure 1 (Poor Formatting)
Bad Readability Example

Since this is a small amount of code, one could discern it’s intentions pretty easily. But, Figure 2 will show you the difference. It should make you feel like you’ve just showered off the poor formatting and inhaled a fresh breeze of readability.

Figure 2 (Clean Formatting)
Good Readability Example

With the right amount of line breaks, indentation, and spacing, you can produce readable code. Obviously, too much of any of these will start to look bad as well. Find a good median and stick to it throughout the rest of your code.

Alignment

When you have many similar lines of code, ask yourself if they can be aligned or grouped in such a way that express similartiy and also make it easy to extract information from.

Figure 3 (Messy variable declaration)
Bad Alignment Example

Again, in the small scheme of things, this is readable. But, you need to picture this in the grand scheme of things. If all of your code is not written in a careful manner, when you come back to read it, or if someone else has to read it, it will become a nightmare as it grows. In Figure 4, you will see that it’s almost the same except the variable names and values are aligned and the variables of similar types are grouped.

Figure 4 (Organized variable declaration)
Good Alignment Example

Variable Naming

If you want your code to be readable, you should use descriptive variable names. As Alisto said below:

The difference between amateur and professional (and maintainable) code is the amount of semantic load you are required to carry around with you as you navigate through the code. Less semantic load = more brain power available for understanding what the code does.

With modern IDEs and editors there is no excuse for using shortened names for classes, procedures, etc., this increases the semantic load as each time you come across one, you have to expand it to understand it.

For example, a variable called ‘cnt’ does this stand for ‘current’, ‘count’ or what? It gets even worse if ‘cnt’ is expanded to different things in different modules of the code (possibly written by different people).

I agree completely. You should not need to stop and figure out what a variable stands for.  If it’s impossible to express the variable’s contents simply by it’s name, then you should comment it and give a description.

2. Conformity

Conformity is very important in solo or group projects. It is all about keeping your coding style consistent throughout your entire application.

Solo

This can be harder to maintain on a solo level. As you begin to grow as a programmer, your techniques evolve. You can’t be expected to always go back and change all of your old code to reflect your new findings. Sometimes you will, but you can’t always do it.

Over time you will most likely begin to create your own library. A library, as you may know, is a set of code that you bring to every job. It’s basically your self-made toolbox. You begin to understand the need for functions and object orientation in order to make your life easier and reduce repetitive tasks. It is very important to keep your library fresh and take the time to tend to old wounds. Your library is your toolbox and you should make sure your tools are always cutting edge and sharp. If one of your tools grows dull, either sharpen it, or replace it.

Example

At one point in my career I had a set group of functions that I always included in my projects. One of them was called make_dropdown() which would take in an array of ids and their text equivalent and generate the HTML for the dropdown. I did this because it was getting old to always have to write a loop to populate dropdown menus.

Group

In college I had a professor Vic Berry, who made a great point that has stuck with me and should stick with everyone. When you’re joining a project, you shouldn’t push your own coding style. Make it easy for everyone and stick to the style of the project. If you’re making a plugin for wordpress, for instance, you should stick to the way the rest of the code looks in wordpress. Even if it’s atrocious. Why? Conformity in the grand scheme of things is very important.

If you’re reading through an entire project of code, you don’t want to see different coding styles all over the place. This prevents your brain from recognizing patterns. Even if the coding style isn’t to your liking, consistency is important and should be maintained to provide overall project readability.

3. Be Organized

This section plays into both Conformity and Readability. You should organize your files and code the same way throughout your entire project. If you have your includes at the top of the file, they should be at the top of the file in the same place in every file. Again, we’re building on the brain’s expectations and the way it handles patterns.

Code

If you don’t already know, in the software engineering world there is an architectural pattern called MVC (Model-view-controller). MVC separates the Model (database), View (Presentation, UI) and the Controller (what modifies the Model). I won’t go to deep into it here, because it’s an elaborate topic. It’s a great way to organize your code, though, and you should read up on it if you haven’t yet.

File Structure

This should also apply to your directory structure. If you’re naming a directory ‘lib’ in one place that contains specific files, it should be named ‘lib’ in another place that contains those similar specific files that pertain to that section.

Group similar files together. Javascript files go in js, CSS files go in css. Keep anything that doesn’t need to be accessed by the web outside of the web’s reach. Something like:

/home/website/website.com/public_html - Web accessible code (html, javascript, the “view”)
/home/website/website.com/system - System Code (functions, classes, dependencies, ajax functions)

4. Scalability

The ability for your code to scale is vital if you want to sell yourself as a programmer. It’s also vital if you’re supporting your own code and trying to expand it’s ability. The best way to approach scalability is to abstract things when possible. Even if you think you’ll never need to expand something, it’s good practice, and you can never be sure.

If you’re working on a larger project, try to avoid saying “We’ll cross that bridge when we get there”. Sure, cross the bridge, but make sure it’s built by the time you get there. It’s easy to cut corners and not take the extra steps in the early stages of a project. But, it’s very important not to rush and to think things through. The best example of a site that has had horrible scalability issues is Myspace which you can read about in this great article by David F. Carr titled Inside Myspace.

Example

Recently, one of my clients asked me to take their contacts database, which was only one table, and change it so they could have user-definable regions and contact groups within that region. When I had created the original contacts table, the region field was an enum(’US,’UK’,'Other). So, this is an example of how having some foresight could save you some trouble. I had to create the region table, then, update the contact table to have a region_id that corresponds to the contact’s and then update all of my code to reflect these changes.

5. Supportability

Sections 1-4 of this article all amount to this word: Supportability.

By making your code easy to read, organized, conformed, and scalable, you create supportable code. What is supportable code? Supportable code is something that is easily enhanced or modified or easily fixed. After you leave a project, if someone is given the task to fix a bug that falls in your region of code, the more supportable your code, the faster it gets fixed. People like you.

Comments

By now, many of you are probably foaming at the mouth waiting to point out that I haven’t mentioned comments. I’ve left it until the end intentionally. Comments are the most integral part of creating supportable code. While most of your code should tell a story on it’s own, there are times where comments will save you hours of work in the future.

When to use comments

  • Functions. Comments are essential in describing the expected input, output, and purpose of a function.
  • Complex logic. Use comments to give a human description of what is going on in the next several lines.
  • Declaring variables. Indicate what the purpose of a variable is within its scope.
  • Non-intuitive approach. When you are approach any situation with a non-intuitive approach, it is essential to comment.

When to avoid using comments

If you use comments all the time, they become less meaningful and defeat the purpose of having comments. Your comments will become diluted. Comments should be annotation, not narration.

  • Don’t announce you’re going to // loop through vars
  • Don’t comment if the code is redundant to your comment. // Checking if var is equal to 8

Conclusion

Every one of these techniques should become a habit. Each one of the sections in this article applies to each other, it’s almost incestuous. Organization requires conformity, conformity requires organizations, readability requires conformity, supportability requires everything, etc. It’s a vicious ninja star. Use it to tear through your enemies.

The Ninja Star of Pro Code Ninjaism

Buy me a beer if you liked this post or found it helpful

16 RESPONSES TO “The 5 Elements of Writing More Professional Code”

  1. Reggie Drake Says:

    Dude, vicious code ninjas don’t care about readability, organisation, and all that tame gobbledygoo. Vicious code ninjas care about using awesomely clever tricks to compress their whole application into seven lines of code, and using their mean nerd-fu to decapitate anybody who dares criticise them for it. Also, they don’t write PHP, they write assembly — or Haskell.

  2. thecookie Says:

    @Reggie: lol. You must praise the ninja elders, the wise men. They let the boys be boys :)

  3. Ryan Ginstrom Says:

    Nice post! I agree with most of your points, except:

    Readability - alignment
    ===
    I think there is a general idea that lining up equals signs (and a similar pattern — pretty banner boxes) is an anti-pattern in code formatting, because it increases the code-maintenance burden.

    Comments
    ===
    Comments are good when they are necessary, but too many comments is a code smell.
    Particularly:

    Declaring variables
       The variable names should denote their purpose
    Non-intuitive approach
       A good hint that you need an intuitive approach :)

    One situation where a non-intuitive approach should be commented, though:
    When you fix a bug, and it might not be obvious why the fix is needed (to keep future maintainers/you from changing back the fix)

  4. thecookie Says:

    @Ryan: I find that lining up equal signs in certain cases is easy if you have an IDE that supports it. When I hit tab twice for instance, in most IDEs, it ‘lines up’. If you hit tab twice on the next line, instead of passing the other equal sign, it stops at the same column.

    Textmate has a nice feature where if you highlight text and hit apple + option + ], it lines everything up for you.

    Thanks for the comment :)

  5. Alisto Says:

    Following on from some of the points thecookie and Ryan made.

    The difference between amateur and professional (and maintainable) code is the amount of semantic load you are required to carry around with you as you navigate through the code. Less semantic load = more brain power available for understanding what the code does.

    With modern IDEs and editors there is no excuse for using shortened names for classes, procedures, etc., this increases the semantic load as each time you come across one, you have to expand it to understand it.

    For example, a variable called ‘cnt’ does this stand for ‘current’, ‘count’ or what? It gets even worse if ‘cnt’ is expanded to different things in different modules of the code (possibly written by different people).

  6. thecookie Says:

    @Alisto: Damn it I knew I forgot something important. Variable names should always be clear, no matter how long or annoying they are to type. I’m going to amend the post to reflect that. Thanks!

  7. Greg Says:

    echo ($looksgood ? “Damn, you are stunning!” : “Ew, mashed codatos”)

  8. thecookie Says:

    @Greg:

    I’d go with…

    echo $looksgood ? “Damn, you are stunning!” : “Ew, mashed codatos”;

  9. max Says:

    While LOC isn’t everything, I’d have to say this is a substantially cleaner and more readable way to format your specific example (short then clauses, and simple logic):

    if ($looksgood) echo “Damn, you are stunning”;
    elseif (!$looksgood) echo “Ew, mashed codatos”;
    else echo “Start coding buddy”;

    The ternary operator is cool, but excludes the third clause of the example statement in the two comments above.

  10. thecookie Says:

    @max:

    In that case, I’d use braces. Always use braces.

    if ($looksgood)
    {
    echo …
    }
    elseif ($looksbad)
    {
    echo …
    }
    else
    {
    ….
    }

  11. Greg Says:

    @max:

    Re: third clause. I don’t know PHP, but does it really deny the law of the excluded middle? For what value of $looksgood will the third block be entered?

  12. The 5 Elements of Writing More Professional Code « Ballinger’s Professional Blog Says:

    […] 5 Elements of Writing More Professional Code The 5 Elements of Writing More Professional Code (aclevercookie.com) A good short article about elements of writing that are appropriate for any language. I agree will […]

  13. Tipp: 5 Regeln für professionelleren Code | IT.CappuccinoNet.com Blog Says:

    […] auf http://www.aclevercookie.com/the-5-elements-of-being-a-vicious-code-ninja Bookmark to: (No Ratings Yet)  Loading […]

  14. Blog at veanndesign.com » Sunday Weekly Roundup #13 - 10/21/2007 Says:

    […] 5 Elements of writing more professional code […]

  15. Thomas Knierim Says:

    I basically agree with what you are saying here; all of these are good practices with the possible exception of the code formatting suggestions in (1). In the day and age of IDEs like Eclipse and PHP-Designer, programmers can format source code to their own preferences with a single key stroke. So, maybe it isn’t necessary to be too rigid about this. (2) Standards conformity is extremely useful, but unfortunately PHP is not exactly famous for it. Let’s be honest. The inconsistencies of its own APIs and extensions and the name space pollution unfortunately don’t set a good example. In (4) I am not quite sure what you are saying about scalability, but it seems that you mean extensibility. Yes, extensibility belongs into the “good design” category, whereas scalability is an architecture goal/decision which is often desirable but not always required. When talking about golden rules one should probably also mention the three kings: DRY, KISS, and DRTW (sort of the eternal principles and mentioned in litertaure since the 60s…)

    Cheers, Thomas

  16. thecookie Says:

    @Thomas: Thanks for the insight. Perhaps I have blended extensibility and scalability into the same category, but yes, both are important. Scalability is not always required, only in specific cases.

REPLY TO THIS POST

clomiphene risk taking aciphex flonase most potent marijuana seeds ambien apnea sleep marijuana seeds carmela workplace alcohol buy omeprazole no prior prescrition drug category of ecstasy compare prices for xenical pcps about us tylenol college scholarships tramadol mexico online pharmacy welbutrin and prozac for panic attacks ortho tree bug oxycodone 5500 oxycodone apap drug manufacturer by mail synthroid burn cocaine augmentin alcohol hypnosis alcohol cessation virginia diaes law suit zyprexa does clomid make your nipples hurt low cost xenical diltiazem ointment ultram 50mg with methadone 10mg cephalexin origin alcohol is present in the liver alcohol and drug education programs conversion of testosterone to estrogen coronary artery diease and alcohol folic acid kidney cancer celebrex prostate zyban wellbutrin bupropion hcl cocaine drug history alcohol vs meth marijuana clinics teen alcohol abuse stories ignition alcohol recognition system smart start prednisones neem alcohol alcoholism effects lsd description what age group takes ecstasy gag factor soma trazodone tazodone caleigh cocaine naltrexone odor touching cocaine urine activities on cocaine drug seroquel wellbutrin and serotonin cost of pcp history increase lifting testosterone weight marijuana smoking before operations non alcohol agrement for tenants affects of marijuana gained weight flexeril cocaine blues by johny cash crack cocaine user profile xanax lorazepam drinking alcohol and nosebleeds xenical cap tremor from atenolol clonazepam tired ortho evra patch prices xanax and alcohol addiction palmerston drug and alcohol viagra worldcanada swab test for alcohol vicodin detox bay area 6 best price for propecia cheap cialis find delusions of parasitosis cocaine oxycontin addiction and side effects can ortho evra be considered abortion richard jeni lexapro famous people who use steroids cetirizine dietary supplement effects furosemide side preganacy and cocaine use pariet ramipril canadian steroids diovan safer than lisinopril legal status of cocaine in canada cipro doxycycline zithromax metronidazole levaquin flagyl taking prilosec with zantac addiction help oxycontin kaye fillmore alcohol side effects from weaning off diovan ngoc pham heroin pellets cymbalta interactions with alcohol what do you use carisoprodol for meridia attorneys auburn medications azmacort zanaflex toprol xl interaction alcohol on wellbutrin disfunci n metoprolol agoraphobic nosebleed pcp torrent wellbutrin cost keywords paxil ortho home defence neuroscience for kids alcohol remeron organon metabolites ranitidine haney carl black marijuana gbi nicotine levels in the blood is marijuana really to blame buy qoclick se viagra reasons why people smoke marijuana norco californai chemistry burning alcohol zoloft child dose hydrocodone 5-50 national clearing house alcohol and drug symptoms alcohol ibuprofen cocaine side effects tamoxifen and von willebrand disease keyword viagra prescription online celebrex prescriptions heroin sale ritalin and headache wellbutrin successful complete ativan antianxiety drug buy provigil online los angeles alcohol imitrex and drugs alcohol and crime hydrocodone tramadol taken together prescription drug assistance for plavix cocaine laced wheat flour from mexico medical study sibutramine compazine dosage celexa taper off celexa and iop xanax no prescroption adhd information buy adderall benefit testosterone ortho evra hair loss tramadol indicat beginners guide outdor marijuana growing glass marijuana pipes cultures that drink alcohol during pregnancy ibuprofen neproxin are there different types of amoxicillin medical side effects of lotrel folic acid and conceiving twins rate of recovery for marijuana 25 mg norvasc discount rebates for ambien lipitor joint pains fake viagra websites basal ganglia and prozac valium and kids buy fda no presciption adderall canine loratadine dosage black death alcohol xanax vs buspar victims of methamphetamine klonopin bipolar lipitor atorvastatin north carolina buy propecia online cheap pharmacy prednisone and bruises filles sexes dur fr contraception yasmin alcohol ads on television oregon marijuana possession cocaine on my brain cool alcohol myspace comments plant essence extraction using isopropyl alcohol coumadin and fever treatment ingredients selsun blue byetta with alcohol isopropyle alcohol saliva alcohol tests alcohol poisoning fatal dose overeating vs drinking alcohol dot drug alcohol training prednisone 10mg dosepack 48ct online prescription viagra phentermine meridia adi soma drug detection adult allegra older alcohol and gaming divison in nm zithromax generic name claritin loratadine virginia is cipro penicillin based phendimetrazine lose weight loss diet pills no prescription overnight diazepam valium driving alcohol north slope borough adipex results hydrochlorothiazide 25 mg overdose ultracet discontinued tadalafil vs viagra side effects metoprolol epinephrine excessive alcohol abuse effects of phenergan iv push zyban and marijuana cephalexin for mastitis in nursing dogs zyprexa causing intolerance of alcohol buy soma pill opium mortgage lyrics to the count song alcohol alcohol liquor or beer first has ritalin proven to be useful sertraline oline prescription zyban vioxx acetaminophen oxycodone tablets 187.5 symptom of alcohol intoxication acetic acid isopropyl alcohol limiting reagent on line pharmacy xanax opium den tool hydrocodone detected urine test california alcohol rehabilitation effects of suddenly stopping prednisone beat a cocaine drug test phentermine 15mg fed ex overnight soma netwroks what makes anabolic steroids different morphine and dilaudid causing pain abuse alcohol among teen pharmaceutical manufacturer for vicodin biaxin and milk what ia a normal testosterone level ortho memory foam mattress nasacort aq retin-a stimula patanol alcohol aldehydes ketones oxidation tojo imitrex lysergic acid diethylamide climara clinical depression and imitrex dui alcohol level ii classes what nascar driver has viagra benedryl and alcohol methamphetamine production recipe prempro first prescribed evaluating self on marijuana use phentermine direct no clubs dreampharmaceuticalscom propecia hydrocodone without precription xanax show up on drug tests fda celebrex warning flomax and ambien no prescription needed true phentermine zyrtec dosage info ciprofloxacin side effects in dogs agonist cocaine where can i buy vicodin medical marijuana in santa barbara county directions for taking viagra cialis 20 mg tablet does alcohol stimulate facial hair growth john sajo marijuana oregon cost of claritin when does effexor peak phentermine without prescription september j 5post softtabs zenegra soma pain and muscle relief what drugs are in imitrex tadalafil pharmacy food coumadin snorting cocaine effects front line on lipitor phentermine no dr note marijuana drug in males sperm cipro jagged little pill female testosterone production in enopause valium cheap online accepts discover card nasonex voor neus ontsteking buy cheap effects marijuana fioricet 2bwithout 2bprescription 2bsi alcohol de ser diclofenac sodium ta discount online phentermine fda approved medications what enhances the effects of adderall ortho sleep support systems regecy alcohol 1 9 5 alcohol counseling st louis missouri ovulatio using clomid phenergan syrup codeine folic acid overdose during pregnancy 80 mg depo medrol valium with out prescription adderall xr deaths buy norco pills com tramadol habit forming sublingual nicotine psychological treatments for alcohol abuse pravachol online no prescription worldwi stages of alcohol abuse tiamin mononitrate compare fosamax to boniva cost of sumatriptan actonel fosamax evista comparrisons fever alternate tylenol ibuprofen carisoprodol href compare actonel boniva and fosamax alcohol battery biofuel cell muscles in eye alcohol poisoning pepcid ac monograph captian cocaine prevacid versus nexium ramipril reactions altace side high estradiol after menopause mdma vs methamphetamine robb celeb christina ricci prozac nation side effects cialis coumadin allegra alcohol lowers your hearing acuity what is tramadol uses for rx 773 lorazepam paxil pregnant defects clonidine drug interactions alcohol fuel handbook before and after steroids pictures hydrocodone apap ecstasy ingrediants cipro 500mg rite aid drug store wellbrutin paxil ambien serotonin syndrome hydrocodone interaction with flomax ativan for sedation for mri cialis london clonazepam interaction with diazepam tramadol headache conceal marijuana coffee grinds flexeril and hair loss mixing paxil and alcohol hydrocodin extract tylenol natural alternatives to ditropan hydrocodone recipe cocaine diarrhea marijuana use coughing alcohol rectol fentanol versus oxycodone anabolic steroids synthroid pravachol aciphex phentermine mark mcgwire picture steroids hair cut finasteride side effects of morphine during sugery what is valtrex used for lab thermometers alcohol medicine neurontin flowering phase of female marijuana effects alcohol effexor xr nicotine patch safety cialis generic name spironolactone to leave your system tamsulosin for dogs coreg tabs love on ecstasy nicotine patch and pregnancy effexor pain management ecstacy ghb rophynol premarin causing leg pain addictive cyclesof marijuana when stop taking actonel side effects diltiazem nicotine found in alcohol wordpress com difference between zyrtec and clarinex coreg .625 alcohol tolerance liver marijuana nanaimo market for afghanistan opium history timeline of alcohol morphine generation jugend vintage crew burnout death alcohol poisoning mao inhibitor zoloft natural ecstasy carisoprodol sales discount sildenafil generic viagra alcohol 120 windows me megalis tadalafil marijuana test what happens if you snort valium glucophage mg treatment for heroin users drug alcohol abuse ministries orlando florida buy vicodine hydrocodone and tramadol online kidneys and the effect of alcohol fosamax oral solution bioequivalence symbols of ecstasy didrex online cod does tetracycline treat tuberculosis buy steroids over seas oxycodone pain cialis cialis viagra viagra cocaine test remedies fear of buying marijuana seeds flomax prostate cancer lorazepam vs ativan side effects of prednisone drug does klonopin cause vivid dreams legal limits of alcohol tricor direct cialis faq celexa citalopram and depression talking back to prozac description of lsd experience smoke pcp eat people medication help cost programs for propranolol when does marijuana bud sumatriptan information alcohol 120 1.9.6 4719 download foil and crack cocaine can dogs take anipryl with cephalexin hyperactivity and marijuana alcohol and bad breath methamphetamines treatment cipro picture lortab without prescription vicodin buspar side affect ranitidine no prescription frahm dodge norco alcohol use during pregnancy herbal alternatives to paxil synthesis amphetamine from p-2-p sneaking in alcohol john boobas and steroids card discount meridia zoloft online polyvinyl alcohol eyes alcohol induced liver disease vitamins infant motrin phentermine definition and much more alcohol and domestic violence statistics vardenafil sale didrex without prescription drinking alcohol with zoloft stories alcohol coronary heart disease what are protonix tablets for buy phentermine or xenical without prescription ritalin buy online no prescription injectable amoxicillin in canada alcohol and toxicology paxil and alcohol and panic attacks viagra prescriptions online lower lip numb alcohol soma bright eyes show elavil hypertension pravachol bontril aciphex denavir is ordering viagra online safe high life alcohol soma the strokes lyrics b hse onkelz heroin tamiflu shelf life colchicine and uric acid beta lactam penicillin marijuana prices in canada buy consultation doctor hydrocodone no online sideffects of cocaine alcohol lower extremity problems z pack zithromax alcohol cause spider veins most efficient effective cocaine take quiz about alcohol and drup abuse d amphetamine side effects my friend drinks alcohol on xanax lose prednisone sarcoidosis weight g134 oxycontin 80 mg alcohol blood function level diovan prescription drug soma highs buy metformin without a prescription potential side effects of norvasc acetaminophen guaifenesin phenylephrine hcl alcohol and drug use composition of alcohol cocaines effects of the body alcohol in morayshire cocaine and peripheral neuropathy cocaine and west africa soma by alcohol prevention facts lipitor tablets atorvastatin side effects of pepcid pending ortho lawsuits glutamine and alcohol zoloft withdrawal support oxycontin medicine buy online child effects in side zyrtec toxicidad celecoxib en perros buy imitrex charlie durs by clonazepam suicide glipizide how to administer clonazepam drug information medication prednisone for government flores tadalafil generic ciales unbearable alcohol withdrawal general anxiety disorder wellbutrin serzone working phentermine pharmacy non prescription phentermine ionamin marijuana soup baycol class action canada prevacid mlt tab huch punch recepies with alcohol when was ritalin first made paroxetine hcl tab 20mg pass a marijuana drug test immediately price for tramadol what is alcohol drug nicotine counseling loratadine ambien lung marijuana oxycontin hcl er 40mg bubble gum marijuana seeds phentermine angina over the counter off valium phentermine hydrochloride us licensed pharmacies indication for lipitor vicoprofen effects soma fm k-rakos potent marijuana prescription drug to reduce alcohol cravings side effects fo levaquin viagra side affects clomid tender nipples bayside alcohol and alter boys effexor depression anxiety research women buy vicodin now polarity of isopropyl alcohol tobacco vs marijuana commercial alcohols inc mircette tablet clopidogrel credo timing 15 hrs loratadine claritin dosage side effects singulair and dangers and pregnancy ibuprofen prescription strength candida diet lamisil online rx for phentermine dietary restrictions with lasix decongestant allegra d advair asthma years patients omeprazole contraindications nexium celiac disease alcohol stearyl overuse albuterol inhaler clonazepam patient advice including side effects cats and valium is buspar tested in drug screen hydrochlorothiazide side effect order softtabs medicine side affects of amoxicillin in dogs mexico cocaine seizure buy marijuana vaporizer mixing clonazepam and diflucan cialis penis pictures flush tramadol from system medical reasons alcohol and native american suicides related to oxycodone weight gain advair singulair isopropyl alcohol cas mdma and antibiotic heroin treatment therapy augmentin beta indication alcohol calories comparison flomax drug interaction alcohol metabolism diagram marijuana and semen analysis taking zyrtec with a steroid what drug company makes celexa diet and lowering testosterone overdose of zestril european alcohol age atenolol tablets 50mg do steroids work immediately ultram purchase treatment programs alcohol drug addiction zanaflex tizanidine pupils enlarged alcohol viagra buy do nu growing marijuana smell lortab drug info clomiphene citrate first available 5generic sildenafil effexor xr and cause weight gain fall out boy ativan phentermine registered air mail nicotine effect motility ambien long-term side effects ecstasy cartoons wellbutrin side effects memory phentermine snort vicodin percocet stronger conjugated linoleic acid paxil drug interaction xalatan order effects alcohol has on unborn baby on line prescriptions cialis pills cocaine sellers long-term effects of smoking marijuana infants tylenol alcohol treatment centers adolescents ohio zoloft and bipolar tadalafil cailis cialis tadalafil tablets rohypnol buy uk hydrocodone apap pics methamphetamine rockafella laws zoloft vs celexa diffrence in medication ambien cr and vicodin aids marijuana canada generic prozac paypal methamphetamine books listing editors not authors norco 10.325 no prescription performance anxiety viagra medical marijuana timeline opium quotes what are allergic reactions for amoxicillin alcohol drinking law cocaine vs methamphetamine effects of alcohol on effexor xr lisinopril sildenafil calcium synthroid info miralax fines for heroin wellbutrin is it an ssri manufacturing of heroin arcata marijuana reactions to phentermine body causing hot in sensation valium folic acid eye drops alcohol brain bubbles clean nicotine stained teeth environmental hazards in cocaine cheap zenegra softtabs online cost a ounce of cocaine online pharmacies for propecia finasteride wolfsheim heroin she said fosamax symptoms morphine and xanax zocor medication triamterene hc get diflucan actos journal ambien 3 norco medical group penicillin buy claritin prescription marijuana potency florida tobacco nicotine content variety literotica valium marijuana laws for calvert county maryland buy offshore medications adderall buy phentermine online about us heroin long-term effects intervals acemataphine ibuprofen remeron weaning schedule smoking marijuana in vegetable cellulose prescription imitrex side effects miralax generic atb ecstasy singer softtabs 270 tablet cocaine in blood stream by touching 800 acid folic mcg dj youri fuck on cocaine biaxin for dogs pharmacy prescription us without xanax alcohol and tongue ring common side effects zocor natual alternative for coumadin cocaine city dvd ic paroxetine ghb drug use diovan angioedema metformin and diareha atorvastatin pravastatin cost misusing oxycodone hcl opponents medical marijuana use new mexico complete phentermine information from drugs com free shipping cialis cheap paxil bruxism elevated heart and alcohol alcohol 52 jowood xprot growing cocaine plants effects lexapro quitting side ibuprofen dysrhythmias marijuana exchange buy klonopin from overseas depakote and lexapro flexaril valium lyrics lil wayne call rice cocaine women takes viagra buy discount price sale viagra viagra is oxycontin available in generic drug and alcohol abuse in wa zoloft teenagers does cipro treat alpha-hemolytic strep nicotine withdrawal syndrome alcohol drug treatment skagit information on depo medrol discovery of nicotine indica marijuana photos dosages valium legalizeing anabolic steroids clomid aspirin prilosec and depressive symptoms flovent 110 oklahoma marijuana alcohol center christian treatment heroin back in hollywood manufacturer of zyrtec d xenical for sale in the us oxycodone compared to heroin ortho ontario cressini montgomery al drug and alcohol specialists carisoprodol without lsd spiral program canada free nicotine patch paxil and thyroid vegetative lighting marijuana online pharmacy phentermine sales risperdal home page festers manufacturing of methamphetamines lipitor class action suits attack heart lawsuit vioxx zoloft sertraline contra i urinary tract infection and ciprofloxacin cocaine integration risk marijuana t-shirts hydrocodone pill description alcohol sugar in dietetic candy depakote uses phentermine 37.5 fed ex overnight drug rep for cozaar nj dep ortho photos legal marijuana country canada interactions of neurotin hydrocodone age you can serve alcohol free maine nicotine patch oral testosterone france alcohol actos warning side effects drug interaction nexium phentermine no perscription average cost of steroids oxycontin overdose case study pictures if girlfriend on steroids pregnancy coumadin emedicine ddavp and ditropan performance enhancing steroids info cyanocobalamin brand name variations of zoloft verapamil wihtdrawal difference between percocet and vicodin cipro cancer ibuprofen sore throat no prescription adipex sale anabolic body building effects of ghb health risks of amphetamine salts abuse direct marketing for alcohol claritin during breastfeeding topical steroids for eczema cheap generic phendimetrazine 180 count lancet medical journal vioxx penicillin pk penicillin skin rash tramadol pill identification 93 58 morphine conversion calculator erica durance ecstasy ritalin options fentanyl clonidine laryngoscopy and intubation skin test amoxycillin allergy apper alcohol supplier buy cheap diazepam online dossage for tylenol adipex p weight loss sea witch opium alcohol drug new rehab western york phentermine zoloft bratz costume party yasmin doll alcohol related deaths in 2007 methamphetamine addiction researchers valtrex information on cocaine slang terms wbr vioxx lawyer wead bush marijuana pepare tramadol for injection folic acid and sickle cell anaemia alcohol starts with j ortho dipel caterpillar spray leagalization of marijuana for medical purposes ethyl alcohol in germination taking altace with zoloft buy online renova dutch marijuana law soma club houston tx abuse alcohol diego san does clonazepam cause constipation nasacort aq aldara retin-a nasonex imitrex causes severe musle pain folic acid 1000mcg tablet avandia fda warnings fioricet fioracet prednisone psoriatic arthritis methylphenidate and d2 receptors cocaine has no effect cardura with flomax action cl law neurontin suit alcohol copy software which countries is morphine legal in eye redness and alcohol car accidents involving alcohol loratadine and black licorice zocor and erectile disfunction what is bupropion hydrochloride zoloft side effects teens aspirin plavix warning compare prilosec nexium purchase meridia pills online wellbutrin generic side effects wellbutrin side effects cocaine euphoria accolate interactions caffeine alcohol caused diseases kansas city mo lawyer prozac adderall and symptoms of allergic reaction cheapest in uk viagra physical effects of phencyclidine is there tylenol in oxycontin dilantin off weaning ortho evra 3 alcohol evaluation test permanent damage from methamphetamines agent alcohol based effectiveness hand washing viagra houston adderall snort does constipation from effexor go away diflucan and side effects phentermine no shipping to kentucky advair law suit xanax overdose amount long carisoprodol soma stay system k dur dosage combivent mbi metformin and periods negative stories lsd los jovenes y el alcohol long term effects after cocaine use trazodone and phentermine psilocybin therapy oxycontin withdrawal timeframe omeprazole magnesium boiling alcohol sertraline hcl info ortho try cycline low albuterol ipratropium doxazosin mesylate ranitidine how long before it works cocaine cardiovascular effects fatal crashes alcohol cocaine girl boy pastire drug for alcohol withdrawl generic prozac color soma cube solutions free inpatient alcohol phoenix marijuana lables vicodin 5-500 mg can low testosterone affect prostate growth motrin ib acetaminophen ibuprofen interactions methylphenidate melting point does alcohol and drugs effect sperm alabama alcohol possesion of a minor best didrex place result search help with withdrawal symptons from marijuana peter allegra esq keppra xr estradiol increase of cervical mucuc tie down marijuana flowering solu medrol inhaler sibutramine dosage somebody else ashes of soma zithromax crush morphine drip 37 online prescription ultram viagra aed and keppra wilson north carolina alcohol treatment program viagra on dogs purchase tenuate dospan ortho tri cyclen lo tablet ambien otc john harding alcohol ecstasy side effects erection modified release oral morphine dosage forms generic pravachol identification delivery hydrocodone online overnight pharmacy celebrex vaniqa flonase allegra weaning off oxycontin safely affect of alcohol on a fetus yasmin lebon what drug is alcohol headache alcohol liver failure orbit washing machine and marijuana and soap nicotine reviews heroins in peril ads alcohol screening tool ibuprofen versus naproxen side effects doxycycline zantac alcohol joe alcohol love me informatin about heroin growing marijuana canada cocaine addiction recover alcohol cigarette marijuana collage orlando drug and alcohol facilities punishment for athletes with steroids zyprexa hair loss wieght gain faster viagra working 90 day alcohol treatment centers 200 proof alcohol federal alcohol law alcohol and nerve damage alcohol free lotions or creams buy ultram online dream pharmaceutical online consults hydrocodone range in alcohol content in wines 618 vioxx and heart failure 890 medications false positive for cocaine zanaflex abuse diovan hct weight gain drug sildenafil marijuana removal from body taking avena sativa with steroids opium vs marijuana differences between xanax or zoloft alcohol tobacco and firearms in pa alcohol effects to the body 1 onz of marijuana alcohol freedom hypnosis program used cival war morphine ibuprofen cardiovascular effects generic propecia advise is lsd bad for you valium versus klonopin cheapest ionamin with no prescription disque and dur and toshiba alcohol whip cream shots pictures of psilocybin what is the drug relafen pics of evista depakote receptors drugs and facts about steroids alcohol sales sevier county face diovan hct yasmin amy hasan advice paroxetine withdrawl symptons illinois vioxx lawsuit 37 effects phentermine side nicotine patchs success rate order phentermine no prescription needed is ultracet a narcotic drug oklahoma drug and alcohol treatment yasmin boland moon ads on alcohol or tobacco nexium tingling rebound headache ibuprofen can you drink alcohol on acyclovir morphine hair heroin addicts marigo diazepam online usa pharmacy hippies lsd thc zyban without a prescription hydrocodone and drug screening marijuana cookies recipe alcohol crash facts and statistics metformin in cirrhosis patanol eye by carisoprodol online diflucan ketamine tapered prednisone dosing smoking prozac klonopin interaction pepcid famotidine zovirax side effects marijuana stremel names 2 amp p protonix cephalexin definition 2007 marijuana legal in what state best price for lexapro hyzaar reaction marijuana founding fathers naproxen 500 mg side effects morphine symptoms joint ache loratadine for hyprtension list of alcohol fetal alcohol abuse prevacid refill alcohol media player alcohol sales to minors can you give a dog skelaxin drug tenuate diethylpropion medical doctor buy cheap soma online where is lsd made paxil and alcohol consumption national association drug alcohol best internal marijuana cleanse reduction sibutramine holy spay day wellbutrin approval batman positive steroids bar xanax trazodone dependence what is tretinoin cream used for acid reflux ranitidine take a look at trazodone antidepressant pantyhose ecstasy brandy alcohol after breast augmentation acyclovir tiredness positive effects of ritalin effects of cocaine usage headaches and alcohol withdrawal buy drug satellite tv vicodin online alcohol cleaning pads for manufacturing use generic versus zoloft side effects for xanax far side steroids taking antacids with nexium interstitial cystitis prempro hrt effexor story success furosemide facts for dogs pesticides with acetaminophen omeprazole generic drug bonsai marijuana nexium hair spray smoking cessation zyban tylenol ingredient viagra propecia propecia xenical xenical celebrex celebrex celecoxib myths about pcp interaction between prednisone and tramadol albuterol sulfate information effects of long-term use of marijuana alcohol drink receipt ucla cocaine study psychologically addictive only alcohol rehab naples florida flovent mdi alcohol rehabilitation in hackensack new jersey fourth-degree criminal possession of marijuana ijpc ciprofloxacin cheap overnight ultram cheap bontril pharmacy online clomid kans op tweeling reactive sites methylphenidate jonathan davis steroids sick tamoxifen discontinued ambien us pharmacy consultation get xanax in findlay ohio alabama attorney vioxx prednisone and hair loss umaxppc pain substance p morphine success rates with clomiphene citrate symptoms fosamax sertraline and alcohol interaction effexor at naproxen apap glucophage diovan dangers of infant motrin long use site of action for didrex bupropion tramadol brand cialis name otc amoxicillin actos plue deca steroids side effects bupropion and hydroxycut hashish produzione bontril sr positive drug screen effexor rx compare or viagra cocaine usage during pregnancy cetyl alcohol formula willow enterprises tylenol elavil symptom withdrawal iraq veterans alcohol crimes skelaxin muscle relaxer percentage of alcohol 110 proof puffy nipples on testosterone bodybuilding marijuana locos lyrics cheapest phentermine official store marijuana burger cop cons of alcohol schmoll zoloft medical marijuana paper drug derived from opium poppy lipitor verses zocor medical marijuana con norco evolution photos of generic oxycontin over the counter and xenical kids and alcohol articles lipitor genric lsd artist lisinopril and gout by celexa posted re rosem withdrawl alcohol consumption multiple sclerosis fosamax and jawbones landlord grants meridia legal career center risks of motrin in children drug generic pharmacy prilosec atenolol and grapefruit juice adipex 37.5 canada trichomes and marijuana methadone amphetamine hydrocodone norco fast no doctor neurontin multiple sclerosis florida contributing alcohol to a minor synthroid master card drug abuse marijuana codeine coversion to heroin alcohol and barretts syndrome ultram dosages cheapest generic adipex picaway county ohio marijuana find phenergan hearing voices hervir alcohol opium gruop cocaine affects relationships difference oxycodone oxycontin methamphetamine and paxil migraine treatment natural imitrex tramadol tramadol hci online cheap pharmacy cialis drug generic propecia marijuana matthews nc putting nicotine in drinks natural testosterone pill biochemist sex change fuck cocaine mix ultram about softtabs wellbutrin empty stomache effects of penicillin on the body buy siesta ambien online orgins of folic acid too much testosterone women cipro and metoprolol prednisone thermoregulation l tyrosine with wellbutrin natives alcohol and teenagers doctors comments on tylenol cancer clomid uterine drug prescription protonix effects of alcohol on the kidneys is adderall a class 3 drug risperdal .25mg mdma rectally methods marijuana anonymous nyc zyrtec reactions in children ortho clinical rochester oxycodone and acetaminophen vicodin statistics spinal steroids a workers comp joke artificial sweeteners speed alcohol into blood merck lisinopril patient information morphine pill snorting arnold schwarzenegger smoking marijuana alcohol ads targeting underage drinkers oxford health care fioricet fetal alcohol syndrome videos dllove314 viagra lsd cause hearing loss ionamin loss weight information online information history of marijuana legalization depakote level peutic celecoxib efectos secundarios valium pill identification cheap price softtabs canine vicodin dosing recommedation ghb sex thumbs difference between hydrocodone and naproxen generic rohypnol phentermine order no scripts overnight delivery measure blood alcohol opium addict story is relafen a narcotic hand sanitizer and alcohol poisoning alcohol deprotonation