I am 💯 and you can too.

100% test coverage! Catch all the bugs!

I’ve been working on a Ruby on Rails app for more than three years, and Ruby coverage for its rspec test suite has been at 100% for most of the last year. 😀

People with more experience may try to tell you this is a bad idea. Test what you need to test. 90% is a good rule of thumb. If you’re doing TDD right, you’ll be testing based on needs, and coverage will take care of itself.

No! Do it!

Why?

  • You’ll learn a lot about Rails, your gem dependencies, and your test tools.
  • It’ll help you write better tests and more testable code.
  • You will find bugs you didn’t know about!
  • It’s fun! Getting those tricky bits tested is a good puzzle.
  • Once you get there, it’s easy to maintain.

Okay, but how?

Lies!

You may have heard people say that code coverage is a lie. It’s true. For example, there are some tricksy ways to add specs for rake tasks to your test suite, but because rake tasks start from a different environment, they don’t integrate cleanly with simplecov. That’s why we exclude rake tasks from the coverage metrics in my app, even though we do test them.

Sadly, even once you reach 💯, it may be tough to keep it in the long run. Ruby 2.5 introduced a big change in the code coverage API. With that change, it has become possible for code coverage tools to report Branch Coverage rather than just line coverage, so the tricks with conditional modifiers and ternary operator may still not get you to 100% in the future. (The deep-cover gem also does this, without requiring Ruby 2.5.) But don’t fret; you’ll probably be able to do something like pin your coverage gem to the last version that just uses line coverage. A small price to pay for the peace of mind of knowing your app is 100% bug free. Or maybe it’s just a number to brag about. Either way, worth it!

 

Obviously this is not the case. But I still recommend trying to get to 100% coverage, for the reasons listed above.

293 thoughts on “I am 💯 and you can too.”

    1. The case of raised uric acid level, creatinine level, bilirubin level, urea level, and high levels of alkaline phosphate can be managed by using Punarnava cialis 40 mg Apply a thin film of Cleocin twice daily to affected area

    1. The nodules and resultant fibrosis from deep endometriosis can attach to and invade the uterosacral ligaments, anterior rectosigmoid colon, urinary bladder, or round ligaments 26 cialis coupons Figure 1 shows that whereas LOX was almost absent in the myocardium of a control subject, it was highly expressed in fibroblasts, areas of interstitial and perivascular fibrosis, and cardiomyocytes in the myocardium of an HF patient

    1. Disorders in which the body does not absorb nutrients from food well Disorders in which the kidney handles calcium abnormally Parathyroid glands in the neck do not produce enough PTH hypoparathyroidism Use of a thiazide diuretic Very low level of vitamin D soft tab cialis

    1. buy cialis generic online cheap com But major refurbishment works at the palace likely won t be finished until at least a month or two after the infant is born Гў meaning that William and Kate will most likely have to make do with their current temporary home in London, a two bedroom property at the palace

  1. Почти всяко онлайн казино предлага безплатни слот игри, тъй като много хора искат ротативки безплатни игри. Някои казина могат да ги предлагат слот игри безплатни само в демо версия. Не всяко казино може да предложи справедлив геймплей, бонуси и изплащане. За това трябва да изберете правилното, легално казино. Независимо дали ще играете безплатна игра на ротативки или обикновени игри казино ротативки с пари, или игрални автомати ротативки. https://griffintmbr653198.digiblogbox.com/39281160/безплатно-казино-игри-лас-вегас За съжаление онлайн казината имат и редица недостатъци: ограничен избор от игри на маса, наличието на демо версия само за оторизирани потребители, минимум бонуси и комуникация с операторите на поддръжка само на английски език. Ако тези недостатъци са критични за вас, тогава трябва да помислите за избор на друго онлайн казино. Колкото и сведения да има за появата на ротативките, едно е ясно — те са изобретени през 19-ти век. Някои данни сочат, че стандартните слот машини са представени за пръв път в Ню Йорк, като първоначално добре известната слот машина е била прототип на покера. Във всички слот машини игри участвали по 50 карти и колкото по-голям бил залогът на играча, толкова по-голяма печалба взимал той.

  2. The positive control group was given, by IG oral gavage, a single daily dose of KTZ 75 mg kg; dissolved in DMSO, for three consecutive days to ensure the reported CYP3A inhibition as described by Li et al cialis buy online usa Reprinted with permission, Cleveland Clinic Center for Medical Art Photography 2020

  3. Some trends of drugs. Prescription Drug Information, Interactions & Side.
    ivermectin 50
    Everything information about medication. Some are medicines that help people when doctors prescribe.

  4. Spores on the first sheet of paper have a higher chance of being contaminated, making the second spore print more sterile. This time you will have to wait around 24 hours for all the spores to fall off. spore, spore art, mycology, mycologist, mushroom, magic mushroom, psilocybe cubensis, fungi, champignon, psilocybin spores, psilocybin mushroom In the Selva Pascuala mural, in Cuenca, Spain, dating from the Upper Paleolithic (6000 BCE) to the Middle Neolithic (4000 BCE) eras, one can find representations of mushrooms, which have been identified as Psilocybe hispanica and Psilocybe semilanceata. In these murals figures of bulls are represented, so some authors correlate the relationship of fungal growth with the habitat, since these species grow in bovine feces. Taxonomy Name: Psilocybe cubensis
    http://madeardana.zeta.co.id/community/profile/gladysjacobsen6/
    This complex set of findings is not what’s typically reported in media stories and online discussions of microdosing. There are promising indications of possible benefits of microdosing here, but also indications of some potential negative impacts, which should be taken seriously. Psychedelic mushrooms can technically be taken by a healthy individual on a daily basis, without causing any readily apparent hazards to your physical health. Should large doses of psilocybin be taken every day for prolonged periods of time? Almost definitely, no. While the mushroom itself is a natural substance without any inherent constituents posing a danger to our health, taking any large dose of psychedelic medicines daily or even weekly, could be detrimental to your mental health. In general, it takes about a week for a drug to show up in hair growth. And substances are detectable in hair follicles for up to 90 days. Only small amounts of psilocybin typically enter the system. So, in order to find traces of the substance, more hair is required for testing than for other drugs.

  5. I’ve been searching for hours on this topic and finally found your post. casino online, I have read your post and I am very impressed. We prefer your opinion and will visit this site frequently to refer to your opinion. When would you like to visit my site?

  6. Dennoch kannst du selbstverstГ¤ndlich in allen seriГ¶sen und guten Online-Casinos Гјber dein Handy eine Einzahlung vornehmen. Dabei spielt es eine untergeordnete Rolle, ob du dich fГјr ein EPS Casino oder eines der zahlreichen Visa Online Casinos entscheidest. Unser Fazit in Bezug auf die beste mobile Echtgeld-Casino-Spiele ist, dass unabhГ¤ngig von Ihrem mobilen GerГ¤t (Tablet, iPad, iPhone, etc.) – die Spiele fГјr Г¶sterreichische Spieler in Top-QualitГ¤t 24 Stunden am Tag geГ¶ffnet sind. Zahlungsoptionen wie Skrill und Neteller werden im Mobile Casino Konto weitgehend akzeptiert. Das Spielen in einem mobilen Casino liegt heutzutage offensichtlich im Trend. Lange vorbei sind die Zeiten, in denen Spieler in Schale werfen und in die nГ¤chste landbasierte Spielbank fahren mussten, um SpaГџ mit beliebten Casinospielen zu haben und einen Gewinn dabei zu machen. Desktop-Spiele gewannen sofort immense PopularitГ¤t, sobald sie im Internet verfГјgbar wurden. Moderne Spieler haben einen noch flexibleren und leichteren Zugang zu den verschiedensten GlГјcksspielaktivitГ¤ten, denn sie kГ¶nnen auf ihren Handys und Tablets spielen.
    https://www.thenaturalnouveau.com/forum/profile/hannabeet242874/
    Faltbare Pokerauflage inkl. praktischer Tragetasche, fГјr bis zu 8 Spieler, achteckig, MaГџe 120×120… …bekommt man hier eine gute Partie Poker fГјr gutes Geld. Wir konnten ganze 10 Spieler Platz nehmen lassen und verstaut war die Auflage auch schnell. Die “Deluxe faltbare Pokerauflage” von Maxstore ist ideal fГјr Hobby-Pokerspieler. Mit der groГџzГјgigen Polsterung macht sie auch etwas her und die Faltkanten sind zu verschmerzen. Man sollte aber kein Profi-GerГ¤t erwarten. Alpsteinstrasse 22 Zudem sind Pokertisch Auflagen Гјberwiegend klappbar, sodass eine platzsparende Unterbringung kein Problem darstellt. Entdecken Sie jeden Tag eine neue Welt…. * You will receive the latest news and updates on your favorite celebrities!

  7. The good news is that there are many no deposit bonuses that Canadian players can claim when they sign up to a new casino. Every player is different. Maybe you want to enjoy no deposit bonuses for entertainment, or perhaps you are looking for the best deal to win real money with. Whatever your preference, here are some key tips you should keep in mind when hunting for casino no deposit bonus codes: Of course, not everything is rosy with a no deposit bonus either; there are pros and cons. I would like to show you the essential pros and cons that they should keep in mind when choosing a gambling website offer without a deposit. Since you don’t have to deposit any real money, you don’t have that much to lose, and in my opinion, the pros outweigh the cons. Nevertheless, there are a few pitfalls that I would like to point out to you.
    https://front-wiki.win/index.php?title=Crypto_casino_hard_rock
    Here is a list of available platforms where you can find these mobile sites available to play. The common form you will find is Android. A free bonus no deposit casino Android offer can be found on the Google Play app store. If you are looking at an iPhone casino no deposit bonus, this will be on the Apple App Store. The same rules apply to other iOS devices. iPad casinos are another example. Some casinos may require you to wager your winnings from no deposit bonus before you can withdraw any funds with both no deposit free spins and bonus cash, there is usually a maximum win condition, which, is usually quite low, same goes for maximum cash out, some casinos limit the amount of winnings from no deposit bonus you can withdraw. Websites that offer this bonus allow you to use a certain amount in the form of a bonus, somewhere between $10 and $25, and play in online casinos for real money without depositing. Online casino sites won’t let you cash this money out, obviously, and have specific rollover requirements. That’s why it’s important not to rush when you see a no deposit required bonus offer since some casinos have a requirement of up to 100 times rollover, which, let’s face it – is very tough and exhausting to meet. Also, some casinos will have a limit on how much they can cash out while using this bonus on their online gambling bets, which usually goes up to $150.

  8. I’m writing on this topic these days, casino online, but I have stopped writing because there is no reference material. Then I accidentally found your article. I can refer to a variety of materials, so I think the work I was preparing will work! Thank you for your efforts.

  9. After I initially commented I clicked the -Notify me when new comments are added- checkbox and now every time a remark is added I get four emails with the same comment. Is there any method you can take away me from that service? Thanks!

  10. Hi there! This post couldn’t be written any better! Reading through this post reminds me of my previous room mate! He always kept talking about this. I will forward this article to him. Pretty sure he will have a good read. Thank you for sharing!

  11. The very root of your writing while appearing reasonable at first, did not really settle well with me after some time. Someplace throughout the sentences you were able to make me a believer unfortunately only for a very short while. I nevertheless have got a problem with your leaps in assumptions and you might do well to fill in all those gaps. If you can accomplish that, I would undoubtedly be impressed.

  12. Гелевая РїРѕРґРІРѕРґРєР° — это РјРѕР№ вариант. РЇ наношу стрелки исключительно гелевой РїРѕРґРІРѕРґРєРѕР№. РњРёРЅСѓСЃРѕРІ практически нет. Убедитесь РІ хорошем СЃСЂРѕРєРµ годности Рё отсутствии РєРѕРјРєРѕРІ РІ текстуре. Для этого можно задать РІРѕРїСЂРѕСЃ нашим менеджерам РЅР° этой странице сайта makeup.com.ua. РћРЅРё РїРѕРјРѕРіСѓС‚ оформить заказ Рё организуют его быструю бесплатную доставку РїРѕ Киеву Рё Украине РІ течение нескольких дней. RBG Russian Beauty Guru Тушь Рё РїРѕРґРІРѕРґРєР° “Черная РњРѕСЃРєРІР°” РІ черном оттенке. Да или нет? — Р’С‹ живете РІ Калининграде. Труднее стало летать РІ центральную Р РѕСЃСЃРёСЋ?
    https://finnqnsq356168.ageeksblog.com/17128192/макияж-для-голубых-глаз-на-день
    Антикуперозный массаж имеет свои особенности. Во-первых, все используемые средства нацелены на борьбу с куперозом. Процедура начинается с очищения лица, затем может быть нанесена специальная сыворотка и затем маска. После 15-20 минут маска смывается, наноситься специальный антикуперозный массажный крем или масло. И косметолог приступает к антикуперозному массажу. Розовые кристаллы Гуаша используются плоской стороной. Двигаться нужно только по массажным линиям: снизу вверх. Начиная от шеи, плавно передвигайте массажер, двигаясь к подбородку. Затем нужно работать от центра лица к перифериям: от носа к скулам и вискам, от подбородка к ушам через челюстную кость. От центра лба вправо и лево к вискам. Не сильно нажимайте на массажер, болезненных ощущений быть не должно.

  13. After I initially commented I clicked the -Notify me when new feedback are added- checkbox and now each time a remark is added I get 4 emails with the same comment. Is there any means you can take away me from that service? Thanks!

  14. you are in point of fact a excellent webmaster. The website loading pace is incredible. It kind of feels that you are doing any distinctive trick. In addition, The contents are masterwork. you have performed a fantastic task in this matter!

  15. When I originally commented I clicked the -Notify me when new comments are added- checkbox and now each time a comment is added I get four emails with the same comment. Is there any way you can remove me from that service? Thanks!

  16. Greetings! I know this is kind of off topic but I was wondering which blog platform are you using for this site? I’m getting tired of WordPress because I’ve had problems with hackers and I’m looking at alternatives for another platform. I would be awesome if you could point me in the direction of a good platform.

  17. Сео остается одним из самых дешевых, а потому и доступных маркетинговых инструментов. Чтобы потратить средства с пользой, рекомендовано заручиться поддержкой опытных специалистов. Именно такие работают в Imaris. Профессионалов выбирают для комплексной работы, которая позволяет сделать проект интереснее и полезнее для пользователей. Такие мануалы и инструкции Вы можете размещать на своем сайте, в соцсетях и даже рекламировать их. Таким образом, Вы можете увеличить посещаемость сайта и узнаваемость бренда. Наглядное сравнение того, что будет если заказать продвижение сайтв в компании Лидер Рынка и если сделать это в другом месте. SEO-параметры сайта и его страниц, в которые вносятся изменения при оптимизации сайта, необходимые для результативного продвижения: Аня, спасибо за ваш вопрос. Все зависит от ваших целей. Tilda — это конструктор с простым и удобным инструментом для создания дизайна сайта, но при этом считается неудобным для SEO. Функционала в целом достаточно для простых сайтов услуг, но он не очень подходит для более крупных проектов.
    https://sergioabyw629630.newbigblog.com/21517086/продвижение-в-интернете-сайтов
    Добрый день! Можете помочь, нужно выгрузить в .csv список всех груп и пользователей в них. Отдельно список груп я получил: Get-ADGroup -filter * | sort name | select name | Export-Csv -Encoding UTF8 C:\ Список пользователей в конкретной группе тоже: Get-ADGroupMember -identity «ИМЯ ГРУППЫ» | select name | Export-Csv -Encoding UTF8 C:\ Но у меня больше 300 групп! Как сделать экспорт сразу по всем? Спасибо For .SU domains – anytime before the domain is deleted from the Registry according to Domain Backorder Service for SU, COM.RU, NET.RU, ORG.RU, PP.RU or Geodomains. По-умолчанию командлет Get-ADUser возвращает только 10 основных атрибутов (из более чем 120 свойств учетных записей пользователей): DistinguishedName, SamAccountName, Name, SID, UserPrincipalName, ObjectClass, статус аккаунта (Enabled: True/False согласно атрибуту UserAccountControl), и т.д.

  18. Simply desire to say your article is as surprising. The clarity on your submit is simply spectacular and i can assume you are a professional in this subject. Well along with your permission let me to clutch your feed to stay updated with forthcoming post. Thanks a million and please carry on the gratifying work.

  19. Howdy! I’m at work browsing your blog from my new iphone 3gs! Just wanted to say I love reading through your blog and look forward to all your posts! Keep up the superb work!

  20. Located in the hotel lobby, this elegant bar is the perfect place to meet, relax, and socialize. Chevy Trailblazer drawing February 24 One of Houston’s best poker clubs, Lone star is an enjoyable and friendly place for meeting people and playing poker. The club also has the option of private parties that people can organize at the poker club. The Lone Star poker club also has a scheme where the members get an hour of free play. Address : 1985 W T C Jester Blvd, Houston Open Hours : 3:00 PM – 4:00 AM H: }° L: }° © Copyright 2023 | Blue Lake Casino. Blue Lake Casino Management reserves the right to cancel or modify promotions at any time. We support responsible gambling; please call 1-800-Gambler or text SUPPORT to 53342 for help. Responsible Gaming | Privacy and Terms & Conditions
    https://marioeday630629.boyblogguide.com/18592257/5-euro-free-casino
    With this offer, players get deposit free spin on specific casino slots or on slot games. A casino will offer free spins to utilise on a specific slot game once you sign up. No deposits are necessary to get the bonus spins. For instance, a casino can give 30 free spins, and you get ten free spins daily for three days. Tired to search every day for casino bonuses? Tired to see the word “expired” under every promotion? Do you are always looking for new online casinos? We have a solution. Subscribe to our newsletter and receive the latest casino bonuses, codes, exclusive deals, news and reviews directly in your mail. It is dependent on the sort of free bonus that is being provided as well as the terms and limitations that are associated with the promotion. A No Deposit Bonus should not be confused with a Free Trial Offer, which is essentially free money that does not enable you to take any of your winnings after you’ve collected enough money. It is possible that winnings from a no deposit bonus may need a deposit before they can be withdrawn. You may choose between two sorts of no deposit bonuses: cashable bonuses and non-cashable bonuses. Cashable bonuses are the most common form of no-deposit bonus.

  21. I was curious if you ever considered changing the structure of your site? Its very well written; I love what youve got to say. But maybe you could a little more in the way of content so people could connect with it better. Youve got an awful lot of text for only having 1 or 2 pictures. Maybe you could space it out better?

  22. Can I just say what a relief to find someone who actually knows what theyre talking about on the internet. You definitely know how to bring an issue to light and make it important. More people need to read this and understand this side of the story. I cant believe youre not more popular because you definitely have the gift.

  23. Great post. I was checking continuously this blog and I’m impressed! Very useful info specially the last part 🙂 I care for such information a lot. I was seeking this certain information for a very long time. Thank you and good luck.

  24. Howdy this is kind of of off topic but I was wondering if blogs use WYSIWYG editors or if you have to manually code with HTML. I’m starting a blog soon but have no coding knowledge so I wanted to get guidance from someone with experience. Any help would be enormously appreciated!

  25. Hi, I think your site might be having browser compatibility issues. When I look at your website in Safari, it looks fine but when opening in Internet Explorer, it has some overlapping. I just wanted to give you a quick heads up! Other then that, fantastic blog!

  26. Do you mind if I quote a couple of your posts as long as I provide credit and sources back to your weblog? My blog site is in the very same area of interest as yours and my users would really benefit from a lot of the information you provide here. Please let me know if this alright with you. Appreciate it!

  27. I haven?¦t checked in here for a while as I thought it was getting boring, but the last several posts are good quality so I guess I will add you back to my daily bloglist. You deserve it my friend 🙂

  28. There are some interesting cut-off dates on this article but I don’t know if I see all of them middle to heart. There’s some validity but I’ll take maintain opinion till I look into it further. Good article , thanks and we wish more! Added to FeedBurner as properly

  29. Excellent items from you, man. I have understand your stuff prior to and you’re just too magnificent. I actually like what you’ve received here, certainly like what you’re saying and the way through which you say it. You’re making it entertaining and you still care for to stay it sensible. I can not wait to read much more from you. That is really a tremendous site.

  30. I have been exploring for a little for any high-quality articles or weblog posts on this kind of area . Exploring in Yahoo I at last stumbled upon this site. Reading this information So i am satisfied to express that I have a very just right uncanny feeling I came upon just what I needed. I most no doubt will make certain to do not omit this site and provides it a look regularly.

  31. you’re truly a good webmaster. The web site loading velocity is incredible. It seems that you’re doing any distinctive trick. Moreover, The contents are masterwork. you’ve done a wonderful process on this matter!

  32. My coder is trying to convince me to move to .net from PHP. I have always disliked the idea because of the expenses. But he’s tryiong none the less. I’ve been using WordPress on a number of websites for about a year and am nervous about switching to another platform. I have heard fantastic things about blogengine.net. Is there a way I can transfer all my wordpress posts into it? Any help would be really appreciated!

  33. Thank you for sharing excellent informations. Your web site is so cool. I’m impressed by the details that you have on this website. It reveals how nicely you perceive this subject. Bookmarked this website page, will come back for extra articles. You, my pal, ROCK! I found simply the information I already searched everywhere and simply could not come across. What an ideal website.

  34. I simply wanted to make a quick note to appreciate you for all the nice advice you are giving out at this website. My time-consuming internet search has at the end of the day been paid with sensible suggestions to exchange with my friends. I would declare that we readers actually are really blessed to dwell in a perfect website with very many outstanding professionals with helpful concepts. I feel truly fortunate to have discovered the web page and look forward to plenty of more amazing minutes reading here. Thanks a lot once more for everything.

  35. Throughout the grand scheme of things you actually secure an A+ with regard to hard work. Where you lost everybody was first on the details. As they say, details make or break the argument.. And it could not be more true at this point. Having said that, permit me tell you what did give good results. The text can be extremely powerful which is possibly the reason why I am taking an effort in order to comment. I do not make it a regular habit of doing that. Next, despite the fact that I can easily see a leaps in logic you come up with, I am not convinced of exactly how you appear to connect the points which inturn make the actual final result. For now I will, no doubt yield to your position however hope in the foreseeable future you link the dots much better.

  36. Howdy I am so excited I found your blog, I really found you by accident, while I was researching on Askjeeve for something else, Nonetheless I am here now and would just like to say thanks a lot for a incredible post and a all round thrilling blog (I also love the theme/design), I don’t have time to read it all at the moment but I have book-marked it and also added in your RSS feeds, so when I have time I will be back to read a lot more, Please do keep up the fantastic work.

  37. Hello there, You have done an excellent job. I’ll definitely digg it and in my view recommend to my friends. I am confident they’ll be benefited from this website.

  38. Hi, i read your blog from time to time and i own a similar one and i was just curious if you get a lot of spam remarks? If so how do you prevent it, any plugin or anything you can advise? I get so much lately it’s driving me crazy so any support is very much appreciated.

  39. Great amazing things here. I am very satisfied to look your post. Thank you so much and i’m taking a look ahead to contact you. Will you kindly drop me a e-mail?

  40. I’ll right away grasp your rss feed as I can not find your email subscription hyperlink or newsletter service. Do you have any? Please let me know in order that I may just subscribe. Thanks.

  41. I?¦ve been exploring for a bit for any high quality articles or blog posts in this kind of area . Exploring in Yahoo I ultimately stumbled upon this web site. Reading this info So i?¦m glad to convey that I’ve an incredibly just right uncanny feeling I found out exactly what I needed. I most for sure will make sure to don?¦t forget this web site and give it a look on a constant basis.

  42. Good post. I learn one thing more challenging on different blogs everyday. It should all the time be stimulating to learn content from other writers and practice slightly something from their store. I’d favor to use some with the content on my weblog whether you don’t mind. Natually I’ll offer you a link in your web blog. Thanks for sharing.

  43. Hi there! This post couldn’t be written any better! Reading through this post reminds me of my previous room mate! He always kept talking about this. I will forward this article to him. Pretty sure he will have a good read. Thank you for sharing!

  44. Oh my goodness! an incredible article dude. Thanks However I am experiencing challenge with ur rss . Don’t know why Unable to subscribe to it. Is there anyone getting similar rss problem? Anyone who knows kindly respond. Thnkx

  45. Thank you for another informative blog. Where else could I get that type of information written in such a perfect way? I’ve a project that I’m just now working on, and I’ve been on the look out for such information.

  46. Today, I went to the beachfront with my children. I found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She placed the shell to her ear and screamed. There was a hermit crab inside and it pinched her ear. She never wants to go back! LoL I know this is totally off topic but I had to tell someone!

  47. Wonderful work! This is the type of information that should be shared around the web. Shame on Google for not positioning this post higher! Come on over and visit my site . Thanks =)

  48. Hi there! This post couldn’t be written any better! Reading this post reminds me of my old room mate! He always kept chatting about this. I will forward this write-up to him. Fairly certain he will have a good read. Thank you for sharing!

Leave a Reply

Your email address will not be published. Required fields are marked *