text:
new renewable energy technology
Onshore Wind, Solar Power Costs To Halve by 2020-IRENA wind energy 1
The report was launched during the eighth IRENA Assembly, which welcomes more than 1,100 representatives of governments from 150 countries.
Lawmakers Discuss Policies For Global Energy Transformation irena 1
International Renewable Agencys Director-General Adnan Z. Amin in a statement said legislators have a key role to play in enacting and overseeing the laws that govern the energy sector, and in widening the support for renewables.
Uganda Maintains Nuclear Power Ambitions nuclear weapons 1 1
Muloni said that the Government of Uganda continues to prepare for the introduction of nuclear power as part of the diversification strategy for meeting future electricity needs for social economic development.
Multi-billion Shilling Solar Park Opens in Tororo solar energy 1
Business and finance Environment Science and technology Tororo, Eastern Region, Uganda
The plant with a capacity of 10 MWp, consists of 32,240 photovoltaic panels distributed over a 14-hectare site. The facility is designed to generate around 16-gigawatt hours GWh of energy annually, catering to the energy needs of more than 35,838 people in the area.
Battery Costs in Stationary Energy Could Fall, Says IRENA electric cars 1
Science and technology Kampala, Uganda
The cost of battery storage for stationary applications could fall by up to 66 per cent by 2030, according to a new report published this week by the International Renewable Energy Agency IRENA.
Can Uganda Achieve Universal Electricity Access by 2030? renewable energy 1 4 Top story
Dr Frank Sebbowa, a former Chief Executive Officer, in an interview expressed doubt on Ugandas ability to meet the National Development Plan aspirations. He noted the fact that power generation in the country is likely to double from the current 825 MW to 1757 by 2020.
Western Uganda to Get Ten Mini Hydro Power Stations renewable energy 1 2 Top story
Business and finance Kampala, Uganda
Henry Jumba, an Electric Engineer with the Company says the project feasibility studies were completed in June 2016. The nine mini hydro stations are expected to produce 0.5MW - 1.5MW of electricity for use in the communities as well as supply to the main electricity grid.
Survey: Developing Countries Ask For Clean Energy Financing renewable energy 1 Top story
Countries in Africa, Asia and the Caribbean say they are finding difficulties implementing the recommendations of the Paris Climate Change Agreement in 2015 without financial support from the developed world.
International Renewable Energy Agency Opens Seventh Assembly ministry of energy 1
Over 150 countries gather in global environment of falling renewable energy costs and rising deployment to accelerate global energy transition.
Kenya hosts Off-Grid Renewables Electricity Conference solar 1
3rd International Off-Grid Renewable Energy Conference opens in Nairobi to drive off-grid deployment worldwide
Solar Poised to Boom in Africa Says Report solar panels 1
IRENA estimates that with the right enabling policies, Africa could be home to more than 70 gigawatts of solar PV capacity by 2030. The report discusses challenges in policy making and proposes a co-ordinated effort to collect data on the installed costs of solar PV in Africa, across all market segments. Such information will improve the efficiency of policy support and accelerate deployment.
Global Energy Investments Down by 8% solar energy 1
A new IEA report World Energy Investment 2016 shows the electricity sector leading a broad reorientation of energy investment but warns more is needed to meet climate targets and address energy security concerns.
Solar Powered Bike Invented boda boda 2 1
Science and technology Abu Dhabi - Abu Dhabi - United Arab Emirates
The motor cycle is one of the latest innovations by the Chevy Volt, the manufacturer of electric cars. It is already being piloted in India with the manufactures saying the battery life is about forty five years.
Clean energy attracts more investment, despite price crash in fossil fuel renewable energy 2 2
Business and finance Abu Dhabi - Abu Dhabi - United Arab Emirates
The rise of the global clean energy industry is now irreversible with latest figures showing a four per cent increase 2015 to reach a record high of close to 330 billion dollars.
Renewable Energy Employs 7.7 Million People Worldwide hydropower 1
Renewable Energy: New technology capable of producing 1650 MW being introduced
According to Pandey, the technology is fit for relatively higher power needs like between 10,000 watts to 1 megawatt and above, meaning it is suitable for factories, big institutions and urban areas.


text:
contact@sadgunamasale.com
Powder Spices
Dealer Order
Barcode Policy
About Spices
Jharkhand, a state in eastern India, is known for its diverse culture and rich tradition of spices and masalas. Among the many masala companies in Jharkhand, one stands out as the best: Sadguna. Sadguna is a leading masala company in Jharkhand, known for its high-quality products and commitment to using only the freshest and most authentic ingredients. The company was founded by a group of local farmers who were determined to bring the unique flavors of Jharkhand to the rest of the country. Sadguna's masalas are made from a blend of hand-picked spices, carefully sourced from the best farms all across the country. The company uses SS-304 Low Temperature German Technology Grinding, Roasting and Blending to ensure that each masala retains its natural aroma and flavor.Sadguna's masalas are used in a wide variety of dishes, from traditional Jharkhandi curries to contemporary fusion cuisine. The company's turmeric powder, cumin powder, red chili powder, coriander powder and garam masala are particularly popular among chefs and home cooks alike.In addition to its masalas, Sadguna plans to offer a range of other food products, including pickles, chutneys, and snacks. All of these products will be made with the same care and attention to detail as the company's masalas.Overall, Sadguna is the best masala company in Jharkhand because of its quality products, traditional methods, and commitment to using only the freshest and most authentic ingredients.
Contact Us Read More
Sadguna Masale is founded by Mr. Krishna Kant Dubey, an IITian with a Post Graduate Executive MBA from IIM, is a leading masala company in Jharkhand known for its high-quality products and commitment to using only the freshest and most authentic ingredients. With over 30 years of industrial experience in top multinationals such as Vedanta Group and Aditya Birla Group, Mr. Dubey brings a wealth of knowledge and expertise to the company.
Mr. Dubey's passion for making restaurant-quality food accessible to the average citizen led him to establish Sadguna. Realizing that the secret to delicious restaurant food is the use of superior quality spices, he set out to provide society with high-quality, full of aroma and flavor spices at an affordable price. Using state-of-the-art SS-304 fully automatic German technology with a 5-ton production capacity, Sadguna Masale is able to deliver on this promise.
To create happiness and love in all kitchens with every entry of all variants of Sadguna Masala pouches.
To craft Sadguna Masale as affordable brand with unique spices that people love and recommend to their near and dear friends and family members.
Marketing Strategy and Marketing Mix
The Sadguna Masale has analysed the brand with the marketing mix framework which covers the 4Ps (Product, Price, Place, Promotion). There are several marketing strategies like product innovation, pricing approach, promotion planning etc. These business strategies, based on Sadguna Masale's marketing mix has helped the brand succeed in the market.
Sales & Distribution Channel
The three level distribution channel of Sadguna Masale occurs as Manufacturing -> Super-Stockiest -> Distributor -> Retailer and finally end user. As on date, the company is slowly developing its distribution network in Jharkhand, Bihar, West Bengal, Orissa, North-East, and Maharastra. However, the company is searching sound Channel Partners PAN India, all across the country.
A Registered Trademark of Pure and Tasty Foods Pvt Ltd
SS-304 German Technology Plant.
Sadguna Masale has taken the challenge to provide high quality spices at an affordable price to each and every house of the country with unique taste, aroma and flavor.
Address : Plot No 1/B, Saher-Nagri Industrial Area, Nagri, Ranchi, Jharkhand, Pin-835303
Call : +91-9304157320
Email : contact@sadgunamasale.com
Copyright © 2023 All Rights Are Reserved | Designed & Developed by Law Kumar

redpajama_set_name: RedPajamaCommonCrawl


A huge thank you to the wonderful Dr. Emma Kirke aka Medicinal Kitchen for her guest blog on keeping the winter lurgies at bay throughout the festive season!
At this time of year I frequently get asked whether there is anything you can eat to prevent colds and flu and what you can eat to help ease the symptoms. Both the common cold and the flu are viruses which will not be put off by your blood tasting funny or eating a lot of garlic. However, in essence you can optimise your immune system to be as strong as possible to help fight off the little blighters or lessen the blow of the symptoms if you are unfortunate enough to be caught out.
Let's start with one of the fabulous foods that I find are overlooked when it comes to health foods, the versatile mushroom. They have two essential components for the cold and flu season, and they are selenium and beta glucan. Selenium helps your white blood cells to produce cytokines that fight illness, and beta glucan is an antimicrobial fibre which helps activate cells that seek out and destroy infection.
Tuna is also a high source of selenium, but try to have the fresh steaks as opposed to the tinned variety, irrespective of brine, oil or spring water preserved. Brazil nuts are a rich nut which is high in protein, healthy fats and selenium. The body only needs a small amount of selenium, and eating too much may in fact increase your risk of developing other diseases. Just one nut contains more than your RDA so eat these treats very sparingly and be aware of overdoing them.
Beta-glucan is also known for lowering cholesterol levels as well as boosting immunity and whether you are trying to reduce your cholesterol by eating your oats in the form of porridge or in a flapjack, you are consuming the fibre which has been shown to help prevent upper respiratory tract infections and alter the white blood cell activity in a positive way.
Another favourite of mine that is included in many of my dishes is garlic which is also a strong source of the antimicrobial phytochemical Allicin. Experts recommend two cloves a day when cooking with it to reduce your likelihood of infection and recovering quicker if you do succumb. In a British study people taking a supplement of Allicin suffered 46% fewer colds and flu. So you literally can stink out sickness, and maybe your work colleagues too if you're not careful. I would suggest using fresh garlic rather than ground or powdered dried garlic.
If you're not keen on garlic or think you may offend too many work colleagues with the odour you could choose the lowly onion instead. It is a fantastic source of Allicin and Allion which is also an antimicrobial compound. Obviously consumption needs to occur in greater quantities i.e. every few hours you need to consume a portion. If this seems unachievable you could just add extra to your meals. I like to do this as I feel it is easier to achieve and to maintain long term as part of your lifestyle.
We all know how beneficial salmon is in our diets but are you eating enough in the winter months to help your body fight infection? The lower your vitamin D the more likely you are to report a respiratory infection than if your vitamin D level is higher. Salmon is an easy way to ensure you are getting enough vit D in winter and a 3.5 oz. serving contains 360 IU approximately. There are some experts that suggest you need as much as 800 to 1000 IU's per day to protect yourself adequately.
I am not really a tea drinker. I love my green tea and fresh mint tea but I rarely partake in a cup of black tea. After reading recent research from Harvard University I may change my mind for the dark months, as they have found that drinking at least 5 cups a day had a huge effect on the immune system by quadrupling the body's immune defense after 2 weeks. They put this phenomenon down to the presence of theanine and catechins including ECGC which mop up free radicals also. So at least 3 cups of black or green tea a day should go some way to helping you fight off an attack.
I'm cow dairy allergic and so I use coconut yoghurt. If you are a yoghurt fan then try to have a serving a day labeled with live and active cultures which will enhance your immunity. Your digestive tract is hugely long and one of your strongest organs for defense, if you keep disease causing germs out with probiotics and prebiotics which are found in naturally fermenting foods like yoghurt, kefir and sauerkraut you will be constantly giving yourself a boost. I take a daily probiotic as a solution to not being able to eat the yoghurt.
Now unfortunately for myself I have somehow developed a severe allergy to wine, however if you are a fan of the grape based tipple the resveratrol and polyphenols in red wine work in the same way that beneficial bacteria in yoghurt do. When a cold or flu virus enters your system they start to multiply and these chemical compounds in the wine prevent that from happening. If you don't or can't drink this you could eat some grape leaves which are also high in resveratrol.
Most nutritional experts will agree that dark chocolate will feature in most "healthy" diets. I paid a visit to Harvey Nichols this weekend and there was a representative giving out samples of a new chocolate that had reportedly 41 proved health benefits and allegedly being endorsed by Scottish Rugby Union as a performance enhancer. Apparently some of the popular brands of dark chocolate ruin the nutritional complex by roasting the cocoa bean to too high a temperature. I always try to buy organic, high quality sugar free chocolate, if you stick to this you should be taking in enough beneficial components to have the effect of boosting your anti-oxidants and supporting your T-helper cells. In any event I love dark chocolate and am fully in support of including it in my diet!
Who really includes oysters in their diet on a regular basis? Not me that's for sure, but apparently we should be contemplating it to boost our immunity. Although I know they are a strong source of zinc which is critical for the immune system as it boosts white blood cells which attack bacteria and viruses like flu or cold, I may have to find my sources elsewhere. If you do find yourself craving oysters though be happy in the thought that one medium oyster provides almost all of your daily zinc recommendation. 6 oysters will give you over 5 times your daily amount.
If you need a cheaper more useable source pumpkin seeds are a fabulous alternative to include. I have a serving every day, usually sprinkled into my breakfast. I also use sunflower seeds in my mix as they add a crunchy texture and are one of the best natural sources of vitamin E. vitamin E is an antioxidant that protects cell walls fr4om damage, and one single ounce contains 30% of your RDA, try to select dry roasted rather than flavored or roasted in oil. Vitamin E may also be extremely significant in creating greater lung capacity and reducing the production of phlegm. In 2003 there was a study performed in Scotland that found people with diets high in vitamins C and E were able to fight the harmful process of oxidative stress more effectively.
Another strong source of vitamin E is the heart-healthy almond. So combine a daily serving of pumpkin and sunflower seeds with a dose of almonds to reduce your chance of catching colds and especially from developing respiratory infections.
Keeping with our theme you will be thinking of plenty of other strong vitamin C sources. Oranges of course which are very Christmassy but also a favorite when you feel like a cold is starting to take hold. But did you realise that one cup of strawberries provides 160% of your RDA. As with all these things vitamin C has long been the favorite choice when battling a cold or flu and unfortunately its effectiveness is debatable, however, I have read studies that show it can reduce the intensity and duration of colds and flu so it is definitely worth a try, especially if it means I get to eat more strawberries and I may not feel as rough for what can feel like a lifetime.
Oranges, grapefruit, lemons or limes using a citric fruit in your recipes will provide a valuable amount of this possibly essential vitamin. It is also extremely difficult to overdose on this vitamin so don't worry about over doing it with enthusiasm as any that remains unused will just be washed out of your body.
In fact any berries in your diet will increase the concentration of anti-oxidants to help flight of cold and flu viruses. When tested against other foods blueberries were found to have more antioxidants than 40 other fruit and vegetables. ½ a cup of raw berries a day will help you stay healthy, obviously fresh sources are much better, but if you are struggling to find any you can stock up during the summer and keep them in the freezer, or buy the frozen variety from your fruit and veg man. Frozen is not as good as fresh, but its far better as eating them cooked.
The only fruit that is perhaps just as good dried and contains more anti-oxidants than blueberries and is a great source of vitamin C is the goji berry. Try to have a portion of these everyday as well. You need fewer to get the same dose and they are kept dried so are very convenient.
As with your citrus fruits, red peppers are very high in vitamin C. One red pepper has 150 milligrams of the vitamin nutrient, which is twice as much as the RDA for a woman. If you eat a large orange there is only 100 milligrams in comparison. The studies that have shown an effectiveness of vitamin C suggests you need 400-500 milligrams per day, especially when you are actually feeling ill or you are sick with a flu or cold.
Beta-carotene improves your body's defenses as it is invaluable in the growth of immune cells and also helps neutralize harmful toxins within the body. Sweet potatoes, carrots, squash, pumpkin, egg yolks and cantaloupe melon are excellent sources, and I am definitely a fan of sweet potato for more than just this beneficial effect.
Nutritionists like myself will constantly talk about the amazing health benefits of your greens and broccoli, kale and spinach come high up on our list of go to vegetables for improving health. There is absolutely no doubt that leafy greens are higher in nutrients the darker they are. So when you are preparing your meals for improving your defenses choose arugula and kale over iceberg. There is even some evidence that suggests bitter tasting greens such as arugula may even help relieve chest congestion, sniffles and coughs. The modality is not exactly clear as yet but a British study found that mice that were fed green vegetables had a higher count of infection-fighting white blood cells in their intestines than those that didn't.
How many times did your Grandma make you eat chicken soup when you were poorly? I know mine did, I was never sure why but she seemed to like the tradition. Since studying nutrition is seems that she may have been inadvertently been giving my immune system the boost that it needed to help me get better. Researchers have found that soup actually does work to ward off viruses.
One theory suggests that the hot temperature of the soup raises the temperature in the nose and throat which creates an unwelcoming environment for viruses that prefer cool dry places to thrive. It has also been shown that the chicken itself has protein groups that have shown anti-viral activity. This is of a higher efficacy when the soup is homemade, soup from a can as you can imagine will not have the same therapeutic effect. You could batch cook an old fashioned chicken and vegetable soup and keep some in the freezer in case of emergency cold and flu development.
Lean proteins, such as turkey with the skin removed are also valuable not just for building muscles but also to help build ant-bodies and fight infection in the body. So if you aren't a chicken fan you could switch for turkey, pork, and beans, nuts and dairy.
As well as your meals containing these flu and cold fighting foods, the way you flavour your meals could also improve your chances of avoiding falling ill and recovering quicker when you do. I love my herbs and spices and have to admit my cupboard is fit to burst. Some of my go to staples such as turmeric, cloves and cinnamon are packed with anti-oxidants which as we have learned help to improve the function of the immune system. Consuming a teaspoon everyday can help to ward off the flu. If you cannot face taking it from the spoon or just mixed with warm water, you could try sprinkling some onto your breakfast. Obviously cinnamon and nutmeg would probably work better in this circumstance than turmeric!
If you are already feeling ill a traditional Indian system called Ayurvedic medicine recommends using spices to help sweat out a fever. They would use ½ tsp of cinnamon, and coriander with ¼ teaspoon of ginger in boiling water and sipped regularly.
The licorice-flavored Anise seeds has antibacterial properties as well as having shown to ease coughing bouts and clear congestion from the upper respiratory tract. Potters vegetable cough remover contains licorice and mushrooms to help remove the phlegm and reduce bronchial spasms. You can eat the seeds but for a more effective cold-fighting delivery you should consume them as a tea. In conjunction with the recommendation from the American Pharmaceutical Association in their practical guide to natural medicines, a typical recipe is to add one cup of crushed anise seeds to one cup of hot water, and flavour with garlic, cinnamon and honey if desired. Sip the concoction up to 3 times a day.
Like anise seeds, fennel is a natural expectorant and as such is useful to help clear chest congestion and soothe a persistent cough. They have similar flavours in fact and they are often confused but are very different plants. Fennel can be eaten raw or roasted, but again there may be an advantage when fighting colds and flu in consuming in the form of a tea. To make your own take 1 ½ tsps of fennel seeds in one cup of boiling water and leave to stew for at least 15 minutes, strain to remove the bits and sweeten with some honey if you wish.
Honey on its own merit is often touted as a cure for everything from burns to cuts and as an anti-bacterial and anti-microbial. As a result when you take a tsp it coats the throat and soothes the tickles of coughs and relieves sore throats, but also its anti-oxidant and anti-microbial properties help to fight infections from viruses, bacteria and fungi. Children under the age of 1yr should not consume raw honey as their immune systems are not developed sufficiently to combat infantile botulism which is carried in honey spores. Buckwheat honey or Manuka has the highest anti-oxidant levels, whereas the honey in the supermarket tends to resemble honey very little nowadays and as well as basically being sugar water therefore has very little anti-oxidant content. Irrespectively a good quality raw local honey from a farm shop near you will be a fantastic addition to your tools in the winter months.
Ironically black pepper which is perhaps has a great reputation for making you sneeze can actually ward off the sniffles. If you mix black pepper, ground ginger and vinegar, the concoction can help you absorb other herbal or over the counter medications. Black peppercorns are high in piperine which are highly renowned for being anti-fever and pain-relieving.
Sambucus or Black elderberry – take as a syrup 1 to 3 teaspoons 3 times a day.
Echinacea angustifolia root – take as a tincture 5 ml 3 times a day or as 1,000 mg 3 times a day.
Eupatorium perfoliatum – take as a tincture 3 ml 3 times a day.
Andrographis paniculat – take as a tincture 3ml 3 times a day or take a capsule 500mg 3 times a day.
These herbs have note shown to interfere with the Tamiflu which is the common prescriptive drug for a case of flu, however, if you do become sick with flu you should absolutely contact a healthcare professional as it needs to be recorded and managed correctly. Self-treating should also be in consultation with a professional that understands herbal remedies.
Thanks for your advice, Emma!
So in the hope that all of this has been useful and that you stay well during the winter months, perhaps when you experiment with combining some of these ingredients you can share your ideas and recipes with us so we can all help each other improve our health.
Contact myself @DrEKirkeOstm or through my blog www.medicinalkitchen.wordpress.com.
News: I'm one of Wheyhey protein ice cream's Wheyhey Chefs!


Where you live while you're in college can change your entire experience. If you've thought about moving out and living in campus housing this fall, consider the 97th Street Residence. It's convenient and comfortable.
The state-of-the-art 97th Street Residences are equipped with everything you would expect plus a concierge, high tech gym, laundry facility that texts you when your clothes are dry, and a lounge to study or relax with your friends. You can also take a break from studying and challenge a friend to a game of pool or foosball. The building is just blocks away from NYC landmarks- Central Park, the Guggenheim Museum, and Metropolitan Museum of Art just to name a few!
The accommodations and amenities offered are top-notch and the ease of commute to Hunter College promises to make living at the 97th Street Residence a fun and memorable college experience.
Rates will be based on room size and type. Students may remain over holidays and college breaks.


text:
"The big takeaway was the overall quality and imagination involved."
– Star Tribune
The singing is remarkably attractive, combining minimal vibrato
with a tonal flexibility and an agility perfect for the text-centred aesthetic
of early-seventeenth-century music. I unreservedly recommend these
beautiful, well-paced and finely fashioned performances.
– International Record Review
"Yet, the concert's most powerful moments came when the choir kicked
in for the composers' most complex and luxuriant lines, interweaving their voices
in thick harmonies.
It was the kind of Lenten experience that could leave you feeling as if you're
gaining so much more than you're giving up."
– Saint Paul Pioneer Press
Season XIII – Consortium Carissimi
This season has come together with Sacred Music and highlights the seasons of the year Christian Year. In addition, we are adding to our roster of performance venues Sacred Heart Church in Owatanna.
November is the time for remembering Souls and celebrating Saints. Collaboration seems to be the key word to Season XIII; we will once again collaborate with guest conductor Kathy Romey whose proposal centers around Totentanz of Hugo Distler (1908-1942). First performed in 1934 in Lübeck Germany, this unusual composition for a cappella chorus and speakers was inspired by the well-known St. Mary's Church Totentanz fresco. Distler was profoundly influenced by the Deutsche Sprüche von Leben und Tod (German Sayings of Life and Death) of Leonhard Lechner (1533-1606).
The structure and text of Distler's work consists of 14 Choral Epigrams or Aphorisms, sung by a cappella choir. Sung in German, each one is followed first by a short recorder solo and then, a dialogue (spoken in English) between an individual, who delivers a farewell speech to life and sometimes a justification for their existence, and Death, who examines them and makes the judgment as to whether their time has come. We conclude the program with motets of Henrich Schütz (1585-1672), including the stunning Selig sind die Toten SWV 391.
Saturday, November 2, 7:30 pm – Reformation Lutheran Church, Saint Paul
Sunday, November 3, 3:00 pm – Sacred Heart Church, Owatonna, MN
January 2020 is the time for our annual Epiphany Concerts and will be another great collaboration with the Twin Cities Chapter of The American Guild of Organists and MPR's Michael Barone. Vespers for Epiphany include Organ Works of Frescobaldi played on the great Noack Organ Co (Opus: 136) and Motets of composers from de Victoria to Carissimi of the Basilica of Sant'Apollinare in Rome. Donald Livingston will guest direct the Ensemble.
Saturday, January 4, 7:30 pm
Sunday January 5, 3:00 pm
Saint Mary's Chapel at the St. Paul Seminary
This season will conclude in April 2020 with an opportunity for yet another collaboration. The early Italian Baroque composer, Bonifazio Graziani (1604/5-1664) has been an important point of reference in the research and performance of forgotten music of this period. His incredible output of Sacred Music and the successful printed publications by his brother Graziano makes it possible to transcribe into modern day notation and bring to the ears in the week it was to be performed.
The four soloists and players of Consortium Carissimi will be joined by the soloists of St. Paul Reformation Lutheran (Saint Paul), St. Luke's Episcopal (Minneapolis) and Sacred Heart (Owatonna) in performing Responsoria: Music for Holy Week. Note special times for these performances.
Palm Sunday, April 5, 7:00 pm – Sacred Heart Catholic Church, Owatonna
Monday, April 6, 7:30 pm – Reformation Lutheran Church, Saint Paul
Tuesday April 7, 7:30 pm – St. Luke's Episcopal Church, Minneapolis
Tickets will be on sale soon. Please check our Facebook page for updates, tidbits, and early music news & events in the Twin Cities.
Consortium Carissimi was conceived of by Garrick Comeaux, Artistic Director, in 1996 while living in Rome, Italy. He founded Consortium Carissimi in 2007 as an official nonprofit, 501 (c)(3). This Minnesota-based performing ensemble has the mission of uncovering and bringing to 21st century audiences the long-forgotten Italian baroque music of the 16th and 17th centuries. It does so through live concerts, master classes, recordings and publications.
Consortium Carissimi bears the name of the famous composer whose music was known for its simple, fresh approach to text, melody and accompaniment. Much of the music that Consortium Carissimi performs has not been heard since it was first created in the 16th or 17th century—and it is only through the transcriptions of these original documents that this music may be heard today. The unique strength that Consortium Carissimi possesses is that it has in its library over 200 transcriptions of these long-forgotten works.
Currently, there are no other organizations in the United States that have transcriptions such as these. As a result of this uniqueness, Consortium Carissimi contributes to the cultural vitality of the Minnesota community in four key and distinct ways:
Performances: the ensemble of mixed voices and instruments performs at least three concerts annually of repertoire from the Italian-Roman sacred and secular music of the 16th and 17th centuries.
Educational programs: Consortium Carissimi conducts master classes with educational institutions located in Minnesota and Tri-State area. Master classes include intense studies of vocal and instrumental practices of 16th and 17th century Rome.
Manuscript transcription and publication: Consortium Carissimi is the only organization in the United States that has in its library transcriptions of over 200 manuscripts of this time period, including the complete works of Giacomo Carissimi.
Recordings: Consortium Carissimi intends to extend public access to and knowledge of this musical tradition through digital recordings.
PayPal Giving Fund
We are pleased to announce that we have been accepted by the PayPal Giving Fund as a way to accept donations without any incurring any fees to either you, the donor or Consortium Carissimi!
Schedule Your Tax Deductible Donation Today


Tall swaying grasses, evocative pink and purple meadow flowers, swooping house martins and hazy views typify an English summer.
The season drifts in almost un-noticed but is unmistakable in feel and look.
Walk with us in this headiest of seasons and you will see ripening fields of crops and perhaps hear the whirl of a combine harvester.
When summer fetes hit our English villages your walks can be followed with a long lingering chilled glass of wine or cider and a delicious feast at your country inn.
Read on for our pick of some of the best ideas for an independent summer walking break. And browse our top tips for summer walking below. Our expert local team are poised to help you explore rural England this summer by walking off the beaten track.
All trips include accommodation en-suite, (in personally chosen country inns and accommodations) country breakfast to start the day, one bottle of wine (or for Devon a goody pack), two or three days or independent walking tailored to suit you and the summer season, tailor and hand made Walk and Explore box with your own local maps with your routes annotated, innovative trail cards with clear word directions (on our special waterproof paper) step by step and local histories and stories, nature guide, our signature travel sweets and more!
Call +44 (0) 1747 820 626 or email enquire@foottrails.co.uk to chat over your plans with our expert Trip Planner David Howell and book your summer walking holiday or hiking vacation.
2) The smells of summer. Cut grass, meadow flowers and the sea.
3) Tastes of summer. Home-made ice creams, a glass of chilled white wine, the freshest of salads and crusty breads.
4) The warm sunshine. Maybe not every day. But when it shines it's wonderful.
5) Picnics. Really eating any food outside. But on our Ancient Gods Myths and Legends guided walking holidays we throw out proper rugs and dine on fine local British fare like pork pies and piccalilly, scones, strawberries and clotted and cream and more besides. Everything tastes better outdoors.
8) Long late evenings and chilled out dusks.
9) The feeling that summer will just go on for ever…..
10) Being able to walk without a fleece.


text:
标签(空格分隔): commons Java

---

> 码农不识Apache,码尽一生也枉然。

## 判断空字符串

### isEmpty(CharSequence cs)

判断是否是空字符串,代码示例:

```java
StringUtils.isEmpty(null)      = true
StringUtils.isEmpty("")        = true
StringUtils.isEmpty(" ")       = false
StringUtils.isEmpty("bob")     = false
StringUtils.isEmpty("  bob  ") = false
```

### isNotEmpty(CharSequence cs)

判断是否不是空字符串,与`isEmpty(CharSequence cs)`相反。

### isAnyEmpty(CharSequence... css)

判断是否含有空字符串,代码示例:

```java
StringUtils.isAnyEmpty(null)             = true
StringUtils.isAnyEmpty(null, "foo")      = true
StringUtils.isAnyEmpty("", "bar")        = true
StringUtils.isAnyEmpty("bob", "")        = true
StringUtils.isAnyEmpty("  bob  ", null)  = true
StringUtils.isAnyEmpty(" ", "bar")       = false
StringUtils.isAnyEmpty("foo", "bar")     = false
```

### isNoneEmpty(CharSequence... css)

判断是否都不是空字符串,与`isAnyEmpty(CharSequence... css)`相反。

### isAllEmpty(CharSequence... css)

判断是否都是空字符串,代码示例:

```java
StringUtils.isAllEmpty(null)             = true
StringUtils.isAllEmpty(null, "")         = true
StringUtils.isAllEmpty(new String[] {})  = true
StringUtils.isAllEmpty(null, "foo")      = false
StringUtils.isAllEmpty("", "bar")        = false
StringUtils.isAllEmpty("bob", "")        = false
StringUtils.isAllEmpty("  bob  ", null)  = false
StringUtils.isAllEmpty(" ", "bar")       = false
StringUtils.isAllEmpty("foo", "bar")     = false
```

### isBlank(CharSequence cs)

判断是否是"大空字符串",代码示例:

```java
StringUtils.isBlank(null)      = true
StringUtils.isBlank("")        = true
StringUtils.isBlank(" ")       = true
StringUtils.isBlank("bob")     = false
StringUtils.isBlank("  bob  ") = false
```

### isNotBlank(CharSequence cs)

判断是否不是"大空字符串",与`isBlank(CharSequence cs)`相反,与`isNotEmpty(CharSequence cs)`相似。

### isAnyBlank(CharSequence... css)

判断是否有"大空字符串",与`isAnyEmpty(CharSequence... css)`相似。

### isNoneBlank(CharSequence... css)

判断是否都不是"大空字符串",与`isAnyBlank(CharSequence... css)`相反,与`isNoneEmpty(CharSequence... css)`相似。

### isAllBlank(CharSequence... css)

判断是否都是"大空字符串",与`isAllEmpty(CharSequence... css)`相似。

## 截取字符串

### trim(String str)

去除字符串前后的控制符,代码示例:

```java
StringUtils.trim(null)          = null
StringUtils.trim("")            = ""
StringUtils.trim("     ")       = ""
StringUtils.trim("abc")         = "abc"
StringUtils.trim("    abc    ") = "abc"
```

### trimToNull(String str)

去除字符串前后的控制符,如何是空字符串则转为`null`,代码示例:

```java
StringUtils.trimToNull(null)          = null
StringUtils.trimToNull("")            = null
StringUtils.trimToNull("     ")       = null
StringUtils.trimToNull("abc")         = "abc"
StringUtils.trimToNull("    abc    ") = "abc"
```

### trimToEmpty(String str)

去除字符串前后的控制符,如何是`null`则转为空字符串,代码示例:

```java
StringUtils.trimToEmpty(null)          = ""
StringUtils.trimToEmpty("")            = ""
StringUtils.trimToEmpty("     ")       = ""
StringUtils.trimToEmpty("abc")         = "abc"
StringUtils.trimToEmpty("    abc    ") = "abc"
```

### truncate(String str, int maxWidth)

截断字符串,具有以下特点:

- 如果str字符串的长度小于maxWidth,则直接返回str。
- 不满足第一条时,则为`substring(str, 0, maxWidth)`。
- 如果maxWidth小于0,则抛出IllegalArgumentException。
- 在任何情况下都不会返回长度大于maxWidth的字符串。

代码示例:

```java
StringUtils.truncate(null, 0)       = null
StringUtils.truncate(null, 2)       = null
StringUtils.truncate("", 4)         = ""
StringUtils.truncate("abcdefg", 4)  = "abcd"
StringUtils.truncate("abcdefg", 6)  = "abcdef"
StringUtils.truncate("abcdefg", 7)  = "abcdefg"
StringUtils.truncate("abcdefg", 8)  = "abcdefg"
StringUtils.truncate("abcdefg", -1) = throws an IllegalArgumentException
```

### truncate(String str, int offset, int maxWidth)

截断字符串,具有以下特点:

- 如果str字符串的长度小于maxWidth,则直接返回str。
- 不满足第一条时,则为`substring(str, offset, maxWidth)`。
- 如果maxWidth或者offset小于0,则抛出IllegalArgumentException。
- 在任何情况下都不会返回长度大于maxWidth的字符串。

代码示例:

```java
StringUtils.truncate(null, 0, 0) = null
StringUtils.truncate(null, 2, 4) = null
StringUtils.truncate("", 0, 10) = ""
StringUtils.truncate("", 2, 10) = ""
StringUtils.truncate("abcdefghij", 0, 3) = "abc"
StringUtils.truncate("abcdefghij", 5, 6) = "fghij"
StringUtils.truncate("raspberry peach", 10, 15) = "peach"
StringUtils.truncate("abcdefghijklmno", 0, 10) = "abcdefghij"
StringUtils.truncate("abcdefghijklmno", -1, 10) = throws an IllegalArgumentException
StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, 10) = "abcdefghij"
StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, Integer.MAX_VALUE) = "abcdefghijklmno"
StringUtils.truncate("abcdefghijklmno", 0, Integer.MAX_VALUE) = "abcdefghijklmno"
StringUtils.truncate("abcdefghijklmno", 1, 10) = "bcdefghijk"
StringUtils.truncate("abcdefghijklmno", 2, 10) = "cdefghijkl"
StringUtils.truncate("abcdefghijklmno", 3, 10) = "defghijklm"
StringUtils.truncate("abcdefghijklmno", 4, 10) = "efghijklmn"
StringUtils.truncate("abcdefghijklmno", 5, 10) = "fghijklmno"
StringUtils.truncate("abcdefghijklmno", 5, 5) = "fghij"
StringUtils.truncate("abcdefghijklmno", 5, 3) = "fgh"
StringUtils.truncate("abcdefghijklmno", 10, 3) = "klm"
StringUtils.truncate("abcdefghijklmno", 10, Integer.MAX_VALUE) = "klmno"
StringUtils.truncate("abcdefghijklmno", 13, 1) = "n"
StringUtils.truncate("abcdefghijklmno", 13, Integer.MAX_VALUE) = "no"
StringUtils.truncate("abcdefghijklmno", 14, 1) = "o"
StringUtils.truncate("abcdefghijklmno", 14, Integer.MAX_VALUE) = "o"
StringUtils.truncate("abcdefghijklmno", 15, 1) = ""
StringUtils.truncate("abcdefghijklmno", 15, Integer.MAX_VALUE) = ""
StringUtils.truncate("abcdefghijklmno", Integer.MAX_VALUE, Integer.MAX_VALUE) = ""
StringUtils.truncate("abcdefghij", 3, -1) = throws an IllegalArgumentException
StringUtils.truncate("abcdefghij", -2, 4) = throws an IllegalArgumentException
```

### left(String str, int len)

得到一个字符串最左边的len个字符

```java
StringUtils.left("abc", 0)   = ""
StringUtils.left("abc", 2)   = "ab"
StringUtils.left("abc", 4)   = "abc"
```

### right(String str, int len)

同`left(String str, int len)`相反,从右边截取len个字符。

### mid(String str, int pos, int len)

得到一个字符串中间的len个字符。

```java
StringUtils.mid("abc", 0, 2)   = "ab"
StringUtils.mid("abc", 0, 4)   = "abc"
StringUtils.mid("abc", 2, 4)   = "c"
StringUtils.mid("abc", 4, 2)   = ""
StringUtils.mid("abc", -2, 2)  = "ab"
```

### substringBefore(String str, String separator)

得到一个字符串第一个分隔符字符串之前的字符串。

```java
StringUtils.substringBefore("abc", "a")   = ""
StringUtils.substringBefore("abcba", "b") = "a"
StringUtils.substringBefore("abc", "c")   = "ab"
StringUtils.substringBefore("abc", "d")   = "abc"
StringUtils.substringBefore("abc", "")    = ""
StringUtils.substringBefore("abc", null)  = "abc"
```

### substringAfter(String str, String separator)

同`substringBefore(String str, String separator)`相反。得到一个字符串第一个分隔符字符串之后的字符串。

### substringBetween(String str, String open, String close)

得到一个字符串两个字符串之间字符串。

```java
StringUtils.substringBetween("", "", "")          = ""
StringUtils.substringBetween("", "", "]")         = null
StringUtils.substringBetween("", "[", "]")        = null
StringUtils.substringBetween("yabcz", "", "")     = ""
StringUtils.substringBetween("yabcz", "y", "z")   = "abc"
StringUtils.substringBetween("yabczyabcz", "y", "z")   = "abc"
```

### substringBetween(String str, String tag)

是`substringBetween(String str, String open, String close)`的特殊情形。得到一个字符串中同一个字符串之间的字符串。

## 比较字符串

### equals(CharSequence cs1, CharSequence cs2)

判断两字符串相等,代码示例:

```java
StringUtils.equals(null, null)   = true
StringUtils.equals(null, "abc")  = false
StringUtils.equals("abc", null)  = false
StringUtils.equals("abc", "abc") = true
StringUtils.equals("abc", "ABC") = false
```

### equalsIgnoreCase(CharSequence str1, CharSequence str2)

判断两字符串相等,忽略大小写,代码示例:

```java
StringUtils.equalsIgnoreCase(null, null)   = true
StringUtils.equalsIgnoreCase(null, "abc")  = false
StringUtils.equalsIgnoreCase("abc", null)  = false
StringUtils.equalsIgnoreCase("abc", "abc") = true
StringUtils.equalsIgnoreCase("abc", "ABC") = true
```

### equalsAny(CharSequence string, CharSequence... searchStrings)

比较一个字符串是否与其后的某个字符串相等,代码示例:

```java
StringUtils.equalsAny(null, (CharSequence[]) null) = false
StringUtils.equalsAny(null, null, null)    = true
StringUtils.equalsAny(null, "abc", "def")  = false
StringUtils.equalsAny("abc", null, "def")  = false
StringUtils.equalsAny("abc", "abc", "def") = true
StringUtils.equalsAny("abc", "ABC", "DEF") = false
```

### equalsAnyIgnoreCase(CharSequence string, CharSequence...searchStrings)

比较一个字符串是否与其后的某个字符串相等,忽略大小写,代码示例:

```java
StringUtils.equalsAnyIgnoreCase(null, (CharSequence[]) null) = false
StringUtils.equalsAnyIgnoreCase(null, null, null)    = true
StringUtils.equalsAnyIgnoreCase(null, "abc", "def")  = false
StringUtils.equalsAnyIgnoreCase("abc", null, "def")  = false
StringUtils.equalsAnyIgnoreCase("abc", "abc", "def") = true
StringUtils.equalsAnyIgnoreCase("abc", "ABC", "DEF") = true
```

### compare(String str1, String str2)

比较两字符串的大小,代码示例:

```java
StringUtils.compare(null, null)   = 0
StringUtils.compare(null , "a")   < 0
StringUtils.compare("a", null)    > 0
StringUtils.compare("abc", "abc") = 0
StringUtils.compare("a", "b")     < 0
StringUtils.compare("b", "a")     > 0
StringUtils.compare("a", "B")     > 0
StringUtils.compare("ab", "abc")  < 0
```

### compareIgnoreCase(String str1, String str2)

比较两字符串的大小,忽略大小写,代码示例:

```java
StringUtils.compareIgnoreCase(null, null)   = 0
StringUtils.compareIgnoreCase(null , "a")   < 0
StringUtils.compareIgnoreCase("a", null)    > 0
StringUtils.compareIgnoreCase("abc", "abc") = 0
StringUtils.compareIgnoreCase("abc", "ABC") = 0
StringUtils.compareIgnoreCase("a", "b")     < 0
StringUtils.compareIgnoreCase("b", "a")     > 0
StringUtils.compareIgnoreCase("a", "B")     < 0
StringUtils.compareIgnoreCase("A", "b")     < 0
StringUtils.compareIgnoreCase("ab", "ABC")  < 0
```

## 查找元素

### indexOf(CharSequence seq, int searchChar)

查找某个字符在字符串中第一次出现时的索引位置,代码示例:

```java
StringUtils.indexOf("aabaabaa", 'a') = 0
StringUtils.indexOf("aabaabaa", 'b') = 2
```

### indexOf(CharSequence seq, CharSequence searchSeq)

同`indexOf(CharSequence seq, int searchChar)`相似。

```java
StringUtils.indexOf("aabaabaa", "c")  = -1
StringUtils.indexOf("aabaabaa", "a")  = 0
StringUtils.indexOf("aabaabaa", "b")  = 2
StringUtils.indexOf("aabaabaa", "ab") = 1
StringUtils.indexOf("aabaabaa", "")   = 0
```

### indexOf(final CharSequence seq, final CharSequence searchSeq, final int startPos)

同`indexOf(CharSequence seq, int searchChar)`相似。

```java
StringUtils.indexOf("aabaabaa", "a", 0)  = 0
StringUtils.indexOf("aabaabaa", "b", 0)  = 2
StringUtils.indexOf("aabaabaa", "ab", 0) = 1
StringUtils.indexOf("aabaabaa", "b", 3)  = 5
StringUtils.indexOf("aabaabaa", "b", 9)  = -1
StringUtils.indexOf("aabaabaa", "b", -1) = 2
StringUtils.indexOf("aabaabaa", "", 2)   = 2
StringUtils.indexOf("abc", "", 9)        = 3
```

### indexOfIgnoreCase(CharSequence str, CharSequence searchStr)

同`indexOf(CharSequence seq, int searchChar)`相似,忽略大小写。

### lastIndexOf(CharSequence seq, int searchChar)

同`indexOf(CharSequence seq, int searchChar)`相似,从后面开始查找。

### contains(CharSequence seq, CharSequence searchSeq)

判断某字符串是否包含某子字符串。

```java
StringUtils.contains("", "")      = true
StringUtils.contains("abc", "")   = true
StringUtils.contains("abc", "a")  = true
StringUtils.contains("abc", "z")  = false
```

### containsIgnoreCase(CharSequence str, CharSequence searchStr)

同`contains(CharSequence seq, CharSequence searchSeq)`相似,忽略大小写。

### containsWhitespace(final CharSequence seq)

是`contains(CharSequence seq, CharSequence searchSeq)`的特殊情形,判断是否包含空白字符。

### containsAny(CharSequence cs, CharSequence... searchCharSequences)

判断某字符串是否包含其后的任意一个字符串。

```java
StringUtils.containsAny("abcd", "ab", null) = true
StringUtils.containsAny("abcd", "ab", "cd") = true
StringUtils.containsAny("abc", "d", "abc")  = true
```

### containsNone(CharSequence cs, String invalidChars)

判断某字符串是否不含其后字符串的任意一个字符。

```java
StringUtils.containsNone("ab", "")      = true
StringUtils.containsNone("abab", "xyz") = true
StringUtils.containsNone("ab1", "xyz")  = true
StringUtils.containsNone("abz", "xyz")  = false
```

## 分割字符串

### split(String str, String separatorChars)

将某字符串按字符分割成数组,默认按空格分组。

```java
StringUtils.split("abc def", null) = ["abc", "def"]
StringUtils.split("abc def", " ")  = ["abc", "def"]
StringUtils.split("abc  def", " ") = ["abc", "def"]
StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"]
```

### split(String str, String separatorChars, int max)

将某字符串按字符分割成最大max长度的数组,默认按空格分组。

```java
StringUtils.split("ab cd ef", null, 0)   = ["ab", "cd", "ef"]
StringUtils.split("ab   cd ef", null, 0) = ["ab", "cd", "ef"]
StringUtils.split("ab:cd:ef", ":", 0)    = ["ab", "cd", "ef"]
StringUtils.split("ab:cd:ef", ":", 2)    = ["ab", "cd:ef"]
```

### splitByCharacterType(final String str)

按字符串类型划分字符串为数组。

```java
StringUtils.splitByCharacterType(null)         = null
StringUtils.splitByCharacterType("")           = []
StringUtils.splitByCharacterType("ab de fg")   = ["ab", " ", "de", " ", "fg"]
StringUtils.splitByCharacterType("ab   de fg") = ["ab", "   ", "de", " ", "fg"]
StringUtils.splitByCharacterType("ab:cd:ef")   = ["ab", ":", "cd", ":", "ef"]
StringUtils.splitByCharacterType("number5")    = ["number", "5"]
StringUtils.splitByCharacterType("fooBar")     = ["foo", "B", "ar"]
StringUtils.splitByCharacterType("foo200Bar")  = ["foo", "200", "B", "ar"]
StringUtils.splitByCharacterType("ASFRules")   = ["ASFR", "ules"]
```

## 连接字符串

### join(T... elements)

无连接符连接字符串。

```java
StringUtils.join(null)            = null
StringUtils.join([])              = ""
StringUtils.join([null])          = ""
StringUtils.join(["a", "b", "c"]) = "abc"
StringUtils.join([null, "", "a"]) = "a"
```

### join(Object[] array, String separator)

将提供的数组按连接符连成字符串。

```java
StringUtils.join(null, *)               = null
StringUtils.join([], *)                 = ""
StringUtils.join([null], *)             = ""
StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
StringUtils.join(["a", "b", "c"], null) = "abc"
StringUtils.join([null, "", "a"], ';')  = ";;a"
```

## 删除字符串

### deleteWhitespace(String str)

删除空白字符。

```java
StringUtils.deleteWhitespace(null)         = null
StringUtils.deleteWhitespace("")           = ""
StringUtils.deleteWhitespace("abc")        = "abc"
StringUtils.deleteWhitespace("   ab  c  ") = "abc"
```

### removeStart(String str, String remove)

删除指定字符串前缀的字符串。

```java
StringUtils.removeStart("www.domain.com", "www.")   = "domain.com"
StringUtils.removeStart("domain.com", "www.")       = "domain.com"
StringUtils.removeStart("www.domain.com", "domain") = "www.domain.com"
StringUtils.removeStart("abc", "")    = "abc"
```

### removeStartIgnoreCase(String str, String remove)

同`removeStart(String str, String remove)`相似,忽略大小写。

### removeEnd(String str, String remove)

同`removeStart(String str, String remove)`相反。

### removeEndIgnoreCase(String str, String remove)

同`removeEnd(String str, String remove)`相似,忽略大小写。

### remove(String str, String remove)

移除字符串中指定的字符串。

```java
StringUtils.remove("queued", "ue") = "qd"
StringUtils.remove("queued", "zz") = "queued"
```

### removeIgnoreCase(String str, String remove)

同`remove(String str, String remove)`相似,忽略大小写。

## 替换字符串

### replace(String text, String searchString, String replacement)

替换某字符串为另一个字符串。

```java
StringUtils.replace("aba", "a", null)  = "aba"
StringUtils.replace("aba", "a", "")    = "b"
StringUtils.replace("aba", "a", "z")   = "zbz"
```

### replaceIgnoreCase(String text, String searchString, String replacement)

同`replace(String text, String searchString, String replacement)`相似,忽略大小写。

### replace(String text, String searchString, String replacement, int max)

替换某字符串为另一个字符串,从左到右替换最大max次。

```java
StringUtils.replace("abaa", "a", null, -1) = "abaa"
StringUtils.replace("abaa", "a", "", -1)   = "b"
StringUtils.replace("abaa", "a", "z", 0)   = "abaa"
StringUtils.replace("abaa", "a", "z", 1)   = "zbaa"
StringUtils.replace("abaa", "a", "z", 2)   = "zbza"
StringUtils.replace("abaa", "a", "z", -1)  = "zbzz"
```

### replaceEach(String text, String[] searchList, String[] replacementList)

替换某些字符串为另一些字符串。

```java
StringUtils.replaceEach("aba", null, null) = "aba"
StringUtils.replaceEach("aba", new String[0], null) = "aba"
StringUtils.replaceEach("aba", null, new String[0]) = "aba"
StringUtils.replaceEach("aba", new String[]{"a"}, null)  = "aba"
StringUtils.replaceEach("aba", new String[]{"a"}, new String[]{""})  = "b"
StringUtils.replaceEach("aba", new String[]{null}, new String[]{"a"})  = "aba"
StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"})  = "wcte"
StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"})  = "dcte"
```

## 填充字符串

### repeat(final String str, final int repeat)

生成重复的字符串,repeat代表生成次数。

```java
StringUtils.repeat(null, 2) = null
StringUtils.repeat("", 0)   = ""
StringUtils.repeat("", 2)   = ""
StringUtils.repeat("a", 3)  = "aaa"
StringUtils.repeat("ab", 2) = "abab"
StringUtils.repeat("a", -2) = ""
```

### repeat(String str, String separator, int repeat)

生成重复的字符串,repeat代表生成次数。

```java
StringUtils.repeat(null, null, 2) = null
StringUtils.repeat(null, "x", 2)  = null
StringUtils.repeat("", null, 0)   = ""
StringUtils.repeat("", "", 2)     = ""
StringUtils.repeat("", "x", 3)    = "xxx"
StringUtils.repeat("?", ", ", 3)  = "?, ?, ?"
```

## 字符串计数

### countMatches(CharSequence str, CharSequence sub)

计算某字符串在字符串中的出现次数。

```java
StringUtils.countMatches("abba", null)  = 0
StringUtils.countMatches("abba", "")    = 0
StringUtils.countMatches("abba", "a")   = 2
StringUtils.countMatches("abba", "ab")  = 1
StringUtils.countMatches("abba", "xxx") = 0
```

## 字符测试

### isAlpha(CharSequence cs)

判断字符串是否是Unicode字母。

```java
StringUtils.isAlpha(null)   = false
StringUtils.isAlpha("")     = false
StringUtils.isAlpha("  ")   = false
StringUtils.isAlpha("abc")  = true
StringUtils.isAlpha("ab2c") = false
StringUtils.isAlpha("ab-c") = false
```

### isAlphaSpace(CharSequence cs)

同`isAlpha(CharSequence cs)`相似。判断字符串是否是Unicode字母或空格。

```java
StringUtils.isAlphaSpace(null)   = false
StringUtils.isAlphaSpace("")     = true
StringUtils.isAlphaSpace("  ")   = true
StringUtils.isAlphaSpace("abc")  = true
StringUtils.isAlphaSpace("ab c") = true
StringUtils.isAlphaSpace("ab2c") = false
StringUtils.isAlphaSpace("ab-c") = false
```

### isAlphanumeric(CharSequence cs)

同`isAlpha(CharSequence cs)`相似。判断字符串是否是Unicode字母或数字。

### isAlphanumericSpace(CharSequence cs)

同`isAlpha(CharSequence cs)`相似。判断字符串是否是Unicode字母、空格或数字。

### isNumeric(CharSequence cs)

判断字符串是否是数字。

```java
StringUtils.isNumeric("123")  = true
StringUtils.isNumeric("12 3") = false
StringUtils.isNumeric("ab2c") = false
StringUtils.isNumeric("12-3") = false
StringUtils.isNumeric("12.3") = false
StringUtils.isNumeric("-123") = false
StringUtils.isNumeric("+123") = false
```

### isNumericSpace(CharSequence cs)

同`isNumeric(CharSequence cs)`相似。判断字符串是否是空格或数字。

### getDigits(String str)

从字符串中提取出数字为字符串。

```java
StringUtils.getDigits(null)  = null
StringUtils.getDigits("")    = ""
StringUtils.getDigits("abc") = ""
StringUtils.getDigits("1000$") = "1000"
StringUtils.getDigits("1123~45") = "12345"
StringUtils.getDigits("(541) 754-3010") = "5417543010"
```

### isWhitespace(CharSequence cs)

判断是否是空格。

```java
StringUtils.isWhitespace(null)   = false
StringUtils.isWhitespace("")     = true
StringUtils.isWhitespace("  ")   = true
StringUtils.isWhitespace("abc")  = false
StringUtils.isWhitespace("ab2c") = false
StringUtils.isWhitespace("ab-c") = false
```

### isAllLowerCase(CharSequence cs)

判断字符串是否都是小写。

```java
StringUtils.isAllLowerCase(null)   = false
StringUtils.isAllLowerCase("")     = false
StringUtils.isAllLowerCase("  ")   = false
StringUtils.isAllLowerCase("abc")  = true
StringUtils.isAllLowerCase("abC")  = false
StringUtils.isAllLowerCase("ab c") = false
StringUtils.isAllLowerCase("ab1c") = false
StringUtils.isAllLowerCase("ab/c") = false
```

### isAllUpperCase(CharSequence cs)

同`isAllLowerCase`相反。判断字符串是否都是大写。

### isMixedCase(CharSequence cs)

同`isAllLowerCase`相似。判断字符串是否大小写都有。

## 默认字符串

### defaultString(String str)

得到默认字符串,默认空字符串。

```java
StringUtils.defaultString(null)  = ""
StringUtils.defaultString("")    = ""
StringUtils.defaultString("bat") = "bat"
```

### defaultString(String str, String defaultStr)

如果是null,则得到默认字符串。

```java
StringUtils.defaultString(null, "NULL")  = "NULL"
StringUtils.defaultString("", "NULL")    = ""
StringUtils.defaultString("bat", "NULL") = "bat"
```

### defaultIfEmpty(T str, T defaultStr)

同`defaultString(String str, String defaultStr)`相似。如果是空字符串,则得到默认字符串。

## 反转字符串

### reverse(final String str)

反转字符串。

```java
StringUtils.reverse(null)  = null
StringUtils.reverse("")    = ""
StringUtils.reverse("bat") = "tab"
```

## 缩写字符串

### abbreviate(String str, int maxWidth)

缩写字符串为最大maxWidth长度的字符串,使用`...`作为缩写的后缀,maxWidth不能小于等于3。

```java
StringUtils.abbreviate("", 4)        = ""
StringUtils.abbreviate("abcdefg", 6) = "abc..."
StringUtils.abbreviate("abcdefg", 7) = "abcdefg"
StringUtils.abbreviate("abcdefg", 8) = "abcdefg"
StringUtils.abbreviate("abcdefg", 4) = "a..."
StringUtils.abbreviate("abcdefg", 3) = IllegalArgumentException
```

### abbreviate(String str, String abbrevMarker, int maxWidth)

缩写字符串为最大maxWidth长度的字符串,使用`abbrevMarker`作为缩写的后缀,maxWidth不能小于等于`abbrevMarker`的长度。

```java
StringUtils.abbreviate("", "...", 4)        = ""
StringUtils.abbreviate("abcdefg", ".", 5)   = "abcd."
StringUtils.abbreviate("abcdefg", ".", 7)   = "abcdefg"
StringUtils.abbreviate("abcdefg", ".", 8)   = "abcdefg"
StringUtils.abbreviate("abcdefg", "..", 4)  = "ab.."
StringUtils.abbreviate("abcdefg", "..", 3)  = "a.."
StringUtils.abbreviate("abcdefg", "..", 2)  = IllegalArgumentException
StringUtils.abbreviate("abcdefg", "...", 3) = IllegalArgumentException
```

## 字符串钱后缀

### startsWith(CharSequence str, CharSequence prefix)

判断某字符串是否包含有指定前缀的字符串。

```java
StringUtils.startsWith(null, null)      = true
StringUtils.startsWith(null, "abc")     = false
StringUtils.startsWith("abcdef", null)  = false
StringUtils.startsWith("abcdef", "abc") = true
StringUtils.startsWith("ABCDEF", "abc") = false
```

### startsWithIgnoreCase(CharSequence str, CharSequence prefix)

同`startsWith(CharSequence str, CharSequence prefix)`相似。忽略大小写。

### startsWithAny(CharSequence sequence, CharSequence... searchStrings)

判断某字符串是否包含有其后任意一个指定前缀的字符串。

```java
StringUtils.startsWithAny(null, null)      = false
StringUtils.startsWithAny(null, new String[] {"abc"})  = false
StringUtils.startsWithAny("abcxyz", null)     = false
StringUtils.startsWithAny("abcxyz", new String[] {""}) = true
StringUtils.startsWithAny("abcxyz", new String[] {"abc"}) = true
StringUtils.startsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = true
StringUtils.startsWithAny("abcxyz", null, "xyz", "ABCX") = false
StringUtils.startsWithAny("ABCXYZ", null, "xyz", "abc") = false
```

### endsWith(CharSequence str, CharSequence suffix)

同`startsWith(CharSequence str, CharSequence prefix)`相反。

### endsWithIgnoreCase(CharSequence str, CharSequence suffix)

同`startsWithIgnoreCase(CharSequence str, CharSequence prefix)`相反。

### endsWithAny(CharSequence sequence, CharSequence... searchStrings)

同`startsWithAny(CharSequence sequence, CharSequence... searchStrings)`相反。

redpajama_set_name: RedPajamaGithub


text:
package processing.command;

import data.DataManager;
import processing.CommandBase;

public class CommandAdd extends CommandBase {

	@Override
	public void execute() {

		DataManager.addCommand(parent.channel, getToken("@alias"), getToken("+"));
		sendChatReply(getUser() + ", global response \"" + getToken("@alias") + "\" added");

	}

	@Override public String getPermissionString() 			{ return "command.add"; }
	@Override public String getFormatTokens() 				{ return "command add @alias +"; }
	@Override public String getHelpString() 				{ return "This command adds a response \"...\" when you type :alias"; }

}


Your privacy is very important to us and we will always act to protect your information. Sun Protection Australia takes this responsibility seriously and is very careful about how your information is kept. Information provided by customers of SunProtection Australia are kept in the strictest confidence and are used only for the purpose of processing your orders or enquiries, and to communicate with customers about special offers, new products and services and promotions if requested.
We will NEVER share this information with any other business or individual.
We will always make sure that we handle your personal information securely and carefully and will only use your personal information when it is necessary for us to deliver you a service or perform other necessary business functions and activities. We will not use your information for purposes unrelated to the services we provide.
Your privacy is paramount and respected and your information is kept confidential!


text:
package org.apache.hadoop.test;

import org.junit.Assert;
import org.junit.Test;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.concurrent.Callable;
import java.util.concurrent.TimeoutException;

import static org.apache.hadoop.test.LambdaTestUtils.*;
import static org.apache.hadoop.test.GenericTestUtils.*;

/**
 * Test the logic in {@link LambdaTestUtils}.
 * This test suite includes Java 8 and Java 7 code; the Java 8 code exists
 * to verify that the API is easily used with Lambda expressions.
 */
public class TestLambdaTestUtils extends Assert {

  public static final int INTERVAL = 10;
  public static final int TIMEOUT = 50;
  private FixedRetryInterval retry = new FixedRetryInterval(INTERVAL);
  // counter for lambda expressions to use
  private int count;

  /**
   * Always evaluates to true.
   */
  public static final Callable<Boolean> ALWAYS_TRUE =
      new Callable<Boolean>() {
        @Override
        public Boolean call() throws Exception {
          return true;
        }
      };

  /**
   * Always evaluates to false.
   */
  public static final Callable<Boolean> ALWAYS_FALSE =
      new Callable<Boolean>() {
        @Override
        public Boolean call() throws Exception {
          return false;
        }
      };

  /**
   * Text in the raised FNFE.
   */
  public static final String MISSING = "not found";

  /**
   * A predicate that always throws a FileNotFoundException.
   */
  public static final Callable<Boolean> ALWAYS_FNFE =
      new Callable<Boolean>() {
        @Override
        public Boolean call() throws Exception {
          throw new FileNotFoundException(MISSING);
        }
      };

  /**
   * reusable timeout handler.
   */
  public static final GenerateTimeout
      TIMEOUT_FAILURE_HANDLER = new GenerateTimeout();

  /**
   * Always evaluates to 3L.
   */
  public static final Callable<Long> EVAL_3L = new Callable<Long>() {
    @Override
    public Long call() throws Exception {
      return 3L;
    }
  };

  /**
   * Always raises a {@code FileNotFoundException}.
   */
  public static final Callable<Long> EVAL_FNFE = new Callable<Long>() {
    @Override
    public Long call() throws Exception {
      throw new FileNotFoundException(MISSING);
    }
  };

  /**
   * Assert the retry count is as expected.
   * @param expected expected value
   */
  protected void assertRetryCount(int expected) {
    assertEquals(retry.toString(), expected, retry.getInvocationCount());
  }

  /**
   * Assert the retry count is as expected.
   * @param minCount minimum value
   */
  protected void assertMinRetryCount(int minCount) {
    assertTrue("retry count of " + retry + " is not >= " + minCount,
        minCount <= retry.getInvocationCount());
  }

  @Test
  public void testAwaitAlwaysTrue() throws Throwable {
    await(TIMEOUT,
        ALWAYS_TRUE,
        new FixedRetryInterval(INTERVAL),
        TIMEOUT_FAILURE_HANDLER);
  }

  @Test
  public void testAwaitAlwaysFalse() throws Throwable {
    try {
      await(TIMEOUT,
          ALWAYS_FALSE,
          retry,
          TIMEOUT_FAILURE_HANDLER);
      fail("should not have got here");
    } catch (TimeoutException e) {
      assertTrue(retry.getInvocationCount() > 4);
    }
  }

  @Test
  public void testAwaitLinearRetry() throws Throwable {
    ProportionalRetryInterval linearRetry =
        new ProportionalRetryInterval(INTERVAL * 2, TIMEOUT * 2);
    try {
      await(TIMEOUT,
          ALWAYS_FALSE,
          linearRetry,
          TIMEOUT_FAILURE_HANDLER);
      fail("should not have got here");
    } catch (TimeoutException e) {
      assertEquals(linearRetry.toString(),
          2, linearRetry.getInvocationCount());
    }
  }

  @Test
  public void testAwaitFNFE() throws Throwable {
    try {
      await(TIMEOUT,
          ALWAYS_FNFE,
          retry,
          TIMEOUT_FAILURE_HANDLER);
      fail("should not have got here");
    } catch (TimeoutException e) {
      // inner clause is included
      assertTrue(retry.getInvocationCount() > 0);
      assertTrue(e.getCause() instanceof FileNotFoundException);
      assertExceptionContains(MISSING, e);
    }
  }

  @Test
  public void testRetryInterval() throws Throwable {
    ProportionalRetryInterval interval =
        new ProportionalRetryInterval(200, 1000);
    assertEquals(200, (int) interval.call());
    assertEquals(400, (int) interval.call());
    assertEquals(600, (int) interval.call());
    assertEquals(800, (int) interval.call());
    assertEquals(1000, (int) interval.call());
    assertEquals(1000, (int) interval.call());
    assertEquals(1000, (int) interval.call());
  }

  @Test
  public void testInterceptSuccess() throws Throwable {
    IOException ioe = intercept(IOException.class, ALWAYS_FNFE);
    assertExceptionContains(MISSING, ioe);
  }

  @Test
  public void testInterceptContains() throws Throwable {
    intercept(IOException.class, MISSING, ALWAYS_FNFE);
  }

  @Test
  public void testInterceptContainsWrongString() throws Throwable {
    try {
      FileNotFoundException e =
          intercept(FileNotFoundException.class, "404", ALWAYS_FNFE);
      assertNotNull(e);
      throw e;
    } catch (AssertionError expected) {
      assertExceptionContains(MISSING, expected);
    }
  }

  @Test
  public void testInterceptVoidCallable() throws Throwable {
    intercept(AssertionError.class,
        NULL_RESULT,
        new Callable<IOException>() {
          @Override
          public IOException call() throws Exception {
            return intercept(IOException.class,
                new Callable<Void>() {
                  @Override
                  public Void call() throws Exception {
                    return null;
                  }
                });
          }
        });
  }

  @Test
  public void testEventually() throws Throwable {
    long result = eventually(TIMEOUT, EVAL_3L, retry);
    assertEquals(3, result);
    assertEquals(0, retry.getInvocationCount());
  }

  @Test
  public void testEventuallyFailuresRetry() throws Throwable {
    try {
      eventually(TIMEOUT, EVAL_FNFE, retry);
      fail("should not have got here");
    } catch (IOException expected) {
      // expected
      assertMinRetryCount(1);
    }
  }

  /*
   * Java 8 Examples go below this line.
   */

  @Test
  public void testInterceptFailure() throws Throwable {
    try {
      IOException ioe = intercept(IOException.class, () -> "hello");
      assertNotNull(ioe);
      throw ioe;
    } catch (AssertionError expected) {
      assertExceptionContains("hello", expected);
    }
  }

  @Test
  public void testInterceptInterceptLambda() throws Throwable {
    // here we use intercept() to test itself.
    intercept(AssertionError.class,
        MISSING,
        () -> intercept(FileNotFoundException.class, "404", ALWAYS_FNFE));
  }

  @Test
  public void testInterceptInterceptVoidResultLambda() throws Throwable {
    // see what happens when a null is returned; type inference -> Void
    intercept(AssertionError.class,
        NULL_RESULT,
        () -> intercept(IOException.class, () -> null));
  }

  @Test
  public void testInterceptInterceptStringResultLambda() throws Throwable {
    // see what happens when a string is returned; it should be used
    // in the message
    intercept(AssertionError.class,
        "hello, world",
        () -> intercept(IOException.class,
            () -> "hello, world"));
  }

  @Test
  public void testAwaitNoTimeoutLambda() throws Throwable {
    await(0,
        () -> true,
        retry,
        (timeout, ex) -> ex != null ? ex : new Exception("timeout"));
    assertRetryCount(0);
  }

  @Test
  public void testAwaitLambdaRepetitions() throws Throwable {
    count = 0;

    // lambda expression which will succeed after exactly 4 probes
    int reps = await(TIMEOUT,
        () -> ++count == 4,
        () -> 10,
        (timeout, ex) -> ex != null ? ex : new Exception("timeout"));
    assertEquals(4, reps);
  }

  @Test
  public void testInterceptAwaitLambdaException() throws Throwable {
    count = 0;
    IOException ioe = intercept(IOException.class,
        () -> await(
            TIMEOUT,
            () -> {
              throw new IOException("inner " + ++count);
            },
            retry,
            (timeout, ex) -> ex));
    assertRetryCount(count - 1);
    // verify that the exception returned was the last one raised
    assertExceptionContains(Integer.toString(count), ioe);
  }

  @Test
  public void testInterceptAwaitLambdaDiagnostics() throws Throwable {
    intercept(IOException.class, "generated",
        () -> await(5,
            () -> false,
            () -> -1,  // force checks -1 timeout probes
            (timeout, ex) -> new IOException("generated")));
  }

  @Test
  public void testInterceptAwaitFailFastLambda() throws Throwable {
    intercept(FailFastException.class,
        () -> await(TIMEOUT,
            () -> {
              throw new FailFastException("ffe");
            },
            retry,
            (timeout, ex) -> ex));
    assertRetryCount(0);
  }

  @Test
  public void testEventuallyOnceLambda() throws Throwable {
    String result = eventually(0, () -> "hello", retry);
    assertEquals("hello", result);
    assertEquals(0, retry.getInvocationCount());
  }

  @Test
  public void testEventuallyLambda() throws Throwable {
    long result = eventually(TIMEOUT, () -> 3, retry);
    assertEquals(3, result);
    assertRetryCount(0);
  }

  @Test
  public void testInterceptEventuallyLambdaFailures() throws Throwable {
    intercept(IOException.class,
        "oops",
        () -> eventually(TIMEOUT,
            () -> {
              throw new IOException("oops");
            },
            retry));
    assertMinRetryCount(1);
  }

  @Test
  public void testInterceptEventuallyambdaFailuresNegativeRetry()
      throws Throwable {
    intercept(FileNotFoundException.class,
        () -> eventually(TIMEOUT, EVAL_FNFE, () -> -1));
  }

  @Test
  public void testInterceptEventuallyLambdaFailFast() throws Throwable {
    intercept(FailFastException.class, "oops",
        () -> eventually(
            TIMEOUT,
            () -> {
              throw new FailFastException("oops");
            },
            retry));
    assertRetryCount(0);
  }

}


The case against future branch growth is well documented. But are branches dead? Data from a comprehensive credit union industry study suggests the complete opposite: those who have added branches in the last five years significantly outperformed those who didn't and along every metric that matters.
If pundits and banking industry prognosticators are right, branches have been sitting on death row for a long time — "Just a matter of time," they keep telling us. But decades have passed and the debate over the fate of branches still rages. Now with mobile banking renewing doubts in the brick-and-mortar channel, branch proponents have felt like there was little they could do but pray for the proverbial pardon.
Exoneration for banking's venerated channel may have just arrived and in the form of a new study. The study, developed in partnership with The Financial Brand, compares performance metrics for credit unions that added branches against those that didn't across a five-year period (2007-2012).


Continue reading "I pray to God."
Continue reading "Waiting on God"
Continue reading "I Can Handle It."
Continue reading "Things that seem wrong"
Mind your own bees wax.
Continue reading "Mind your own bees wax."
Continue reading "Another four letter word."
Continue reading "Don't stop praying."


Ok, Pinterest does it again! I painted my nails on my lunch break today & added some Sharpie Manicure stylee!
Essie nail polish has the best colors, but unfortunately for me, doesn't stay out very long on my nails. So, I did no base coat, then 2 coats of Essie Tart Deco, 1 coat of Essie Good to Go top coat, then took a pointed Gold Metallic Sharpie Permanent Marker and painted some French tips & ring fingers on! Another light quick top coat to protect the marker - but I also read on another blog that you could spray hairspray over the marker ink, then apply your top coat, to prevent the Sharpie from smearing.
I am a lefty, so applying to my left hand was much harder to draw neatly, but I sat in a chair with my knees to my chest, and propped my left hand on my knee for stability.
There you go! A new fun mani trick! Let me know if you try it!
Happy to be a new follower as well!!
Yay! Ooh I will find you on instagram too!
Such an amazing one! I can't wait to get mine next week!
Thanks! Would love to see it!
Great mani! Love the colours you've used.
I will check it out! Thanks for visiting!!
That a great idea and it looks amazing!
Thanks lady! I will check out your site as well.
Beautiful! would you like to follow each other with GFC and Bloglovin?


text:
Cork's McCarthy emerges from darkness to make belated big-time debut
Fri 21st Apr
by Daragh Ó Conchúir
THERE was a time, even as she had barely entered her teens, when it seemed inevitable that the Niamh McCarthy would play for Cork.
There was a time too, when it appeared certain that the prodigy would never pick up a hurley again. Never bend the sliotar to her will in competitive action. Never experience the split-second euphoria of rippling the opposition net.
That McCarthy is lining out for the Leesiders in tomorrow's Littlewoods Ireland Camogie Leagues Division 1 Final is a testament to her bravery and character, to her love of playing and of scoring goals.
More than anything though, it provides evidence of an intangible that probably has the most value in her estimation, given that she has spent the best part of five years in the solitary pursuit of regaining her fitness: sharing a collective purpose with like-minded people, with friends, who swap gossip and make each other laugh and then do all they can for one another on the pitch, going through happy and sad times, together.
She almost walked away but McCarthy just missed all that too much. Had she given in to the anxiety about what further torture might lay ahead and hung up the boots for good, she knew she would be haunted by the question that torments us all at one time or another.
IT WAS late February in 2011. McCarthy was 14 but blitzing teams at her own grade wasn't what marked her out. It was that the tyro had brought her goal-scoring to the highest level, playing a key role as Inniscarra reached the All-Ireland Senior Club Final.
She had always played basketball too. It was her mother's sporting passion and the she enjoyed it as much as Camogie. It was during a game on court that she suffered her first cruciate knee ligament injury, a fortnight before she was scheduled to be let loose on the wide spaces of Croke Park.
The thought of missing an All-Ireland was dreadful but it wasn't one game itself that stood out in the ensuing months, and indeed years.
"All I did was play sport. Every evening would be either two trainings or one training. Every single day. I loved it. So it was terrible but I thought I'd get my knee right and be out a year. But it wasn't like that at all."
The healing process was torturously slow. The following year, it was thought that she might have torn the cruciate again but another operation revealed this not to be the case. She was out for more than two years before she finally got going again.
After two months, McCarthy was starting to feel good about her game again. She was just turning 17 when disaster struck and the cruciate went in her other knee. The rehab went smoothly this time but the psychological scars would prove more problematic.
"I knew if I didn't try to come back that I would always wonder what could have happened" says McCarthy. "I was an up-and-coming player when I was 14 but I never got the chance to see what might happen.
"When you're sporty, and you're 15 or 16 and can't play on the team with all your friends, it's hard. When you're on a team, you're all in it together. The recovery is something you have to do alone. No-one else is going to do it for you.
"But the hardest was just not playing. You're on Facebook and people are talking about games…"
Fear gripped her though. She had her last operation mid-way through fifth year and by the time she had completed her Leaving Cert, she still wasn't sure if she could put herself back in the mixer.
Her recollection of the first day back is vivid.
"I was terrified to be honest. I wanted to play and I wanted to be part of the team but I just didn't want to have to go through any of that again. I hadn't played since I was 14, apart from when I was back for two months before my other knee went.
"I'm delighted now. De-lighted to be back playing Camogie with my club, with UCC and with Cork.
"I never played underage for Cork. I never got the chance apart from U14. It was something I always wanted to do. When I was brought into the panel, there were a lot of girls my age but I didn't know any of them because I had never played underage with Cork."
They only knew her as "that poor girl" she laughs. It was her form with UCC in the Ashbourne Cup last year and then as Inniscarra ended the Milford monopoly in the county championship that convinced Paudie Murray she was worthy of the step up, and she has carried that through the League.
Having clubmate Rena Buckley around proved a tremendous comfort and still does.
"It's been easier for me to transition in with girls I didn't know, knowing that Rena is there. When I was playing with Inniscarra first, I was the baby and she wouldn't have been one of the older girls then but she'd have been good like that, talking to you.
"And she looks after my knee as well, she's a physio and she understands that there are times when maybe I can't train. She's also good to speak to you before a match. It's just nice to know she's there."
She has done well, scoring goals as she had always done. But sometimes her expectations get the better of her.
"I put pressure on myself. I expect to be like when I was playing U14 and U16, to be able to win every ball but you're not because you're playing against the top players. I also feel like I want to make up for the time I missed.
"But I'm still learning. I missed out five years; I'm only back playing a year and a half of Camogie. Even through the League, I have learned so much from playing against top players and playing alongside top players."
Given that she lost out on such two or three complete phases of development, it is quite remarkable that McCarthy is flourishing so quickly. It is only reasonable to assume that she will improve further but the learning curve is steep.
Cork beat Kilkenny by a point at the beginning of the month but it was an illuminating experience. Meanwhile, the culture within the squad cultivated by the likes of Buckley, Gemma O'Connor, Aoife Murray, Ashling Thompson other long-serving members is one that appeals.
"They want to win so much. Everyone has bought into the way we're playing. Training is going good, there are new players there and everyone is pushing each other forward. When the Championship comes, even after the League Final, there'll be some fight for places. You have to perform in training. Anyone could start. That makes training very good.
"The physicality that Kilkenny brought, I don't think any other team that we had played against had brought it. It was way more physical than any game I had played before.
"So I'm looking forward to (tomorrow). It's exciting. The fact it's on before the hurling final, that it's televised. It's a big game. Everyone is looking forward to it. Training is going well and we'll give it our best shot."
THE 20-year-old pharmacy student prepares to return to the library. She hesitates, thinking about the conversation that has unfolded.
"I don't want it to sound like a sob story. It's over, I got through it."
She would hate, she adds, to come across as soft.
She is anything but.
Sunday's Final takes place in the Gaelic Grounds Limerick as part of a double-header with the Allianz Hurling League Division 1 Final between Galway and Tipperary.
Sunday April 23rd
Littlewoods Ireland Camogie Leagues Division 1 Final
Cork v Kilkenny
The Gaelic Grounds, Limerick
Throw-in: 1.30pm
Live on TG4 (Double-Header with Allianz Hurling League Division 1 Final)
Adult Matchday: €30
Adult Pre-Purchase: €25
Student/OAP: €25
Juvenile: €5
Tickets can purchased in advance from www.tickets.ie or from selected Centra & SuperValu outlets nationwide.
#StyleOfPlay