text:
Posts tagged 'steelmakers'
Diana Kinch
Editor-in-Chief, Steel Markets Daily
EU forges ahead with steel sector M&A – but it won't solve overcapacity
European steel's current major M&A activity — driven by market recovery since mid-2017 — aims to achieve synergies and boost cost-effectiveness in a global steel sector still plagued by as much as 657 million mt of overcapacity, according to Organization for Economic Cooperation and Development estimates.
ArcelorMittal, M&A, mergers and acquisitions, overcapacity, steel, steelmakers
Various reporters contributed
China encouraging electric arc furnace capacity expansion?
Monday's release by China's Ministry of Industry and Information Technology of revised steel capacity replacement measures has sparked market debate about MIIT's real intentions regarding electric arc furnaces.
Some pundits Tuesday were adamant the new rules encourage the replacement of converters with EAFs and would result in net EAF steel capacity expanding.
carbon steel, China, crude steel, EAF, electric arc furnace, steel, steel capacity, steel production, steelmakers
Ciaran Roe
Global markets specialist, metals
The iron ore contango: Why now?
November 14, 2017 00:01 UTC
The iron ore forward curve has made history in November by recording the longest period of contango* in its brief existence.
On November 1, Platts assessed The Steel Index 62% Fe CFR China swaps in contango from the December strip out to Q2 2018, which has been sustained until now.
backwardation, benchmarks, China, contango, crude steel, futures, IODEX, iron ore, steel mills, steel prices, steel raw materials, steelmakers, swaps
Tom Balcerek
Will Trump punt in US Section 232 steel investigation?
Football season is in full swing in America, and it looks like political football season is about to kick off for American steelmakers.
The football getting kicked around and passed back and forth, is President Donald Trump's virtual promise to protect domestic steelmakers by sacking unfairly traded imports.
AK Steel, Donald Trump, Section 232, steel, steelmakers
Chinese steelmaking cuts hammer market
September 25, 2017 14:30 UTC
Chinese domestic market strength and reduced export volumes have been a primary driver of the global steel and iron ore rally this year. But there are growing signs that dark clouds are gathering over the world's largest steel market.
China, China steel, ferrous, iron ore, steel, steel demand, steelmakers, steelmaking
Charlotte Rao
Why Indian steelmakers are delaying expansion plans
Steelmakers in the port town of Visakhapatnam on the south eastern coast of India are postponing expansions as they wait for work to begin on publicly-funded infrastructure projects, company officials told S&P Global Platts during a recent visit.
Officials at long steel manufacturers, state-owned Rashtriya Ispat Nigam Limited (RINL) and privately-listed Steel Exchange India Limited (SEIL), both said they had postponed planned expansion due to receding demand from the regional construction sector as it awaited the go-ahead to start public works.
blast furnaces, India, iron ore, steel, steelmakers
Latest US trade restriction beef pits farmers against steelworkers
The National Sunflower Association has spoken.
It was one of 18 American agricultural associations that came out against President Donald Trump's initiative to protect the domestic steel and aluminum industries under the US' Section 232 national defense provision on trade.
agriculture, beer, farmers, farming, grains, imports, Policy, regulation, Section 232, steel, steelmakers, steelmaking, trade, trade flows, Trump, US
The waiting is the hardest part for US steel markets
June 29, 2017 19:09 UTC
The American steel industry is desperately in need of relief, but it's not what you think.
We have heard a lot about the possibility of import restrictions stemming from the government's ongoing Section 232 investigation — that is the big issue. But the smaller, more pressing matter right now is the announcement of that relief, or lack thereof.
Department of Commerce, hot-rolled coil, hrc, imports, markets, mills, Policy, prices, regulations, Section 232, steel, steel mills, steelmakers, steelmaking, tariff, trade, trade flows, Trump, US
US importers challenge the call for more steel trade restrictions
The American Institute for International Steel recently hosted a forum in Washington DC for those likely to be negatively impacted by steel import restrictions that could follow the government's ongoing Section 232 investigation.
They included speakers representing US traders, ports and steel end-users who believe the outcome of the 232 case — aimed at limiting imports on national security grounds — could have negative economic consequences for the US and serve to ultimately weaken US security.
exports, imports, Policy, steel, steel mill, steelmakers, steelmaking, trade, trade cases, trade flows, US
Peter Brennan and Colin Richardson
European mill consolidation concerns independent stockists, distributors
Mergers and acquisitions in European steelmaking could have important consequences downstream, with independent service centers increasingly nervous they will be squeezed out of the market.
Investment bank Jefferies suggests ArcelorMittal will account for 40% of European coil market supply once it completes its acquisition of Italian producer Ilva, while a merged Tata/ThyssenKrupp would have a share of around a quarter.
ArcelorMittal, Brazil, China, Europe, European Commission, hot-rolled coil, hrc, Iran, mergers, production, Russia, Serbia, steel, steel mills, steelmakers, steelmaking, Tata, ThyssenKrupp, Ukraine
‹ Older Entries


Today my friends and I woke up at 5 am, and headed to Big Bear Mountain. I was so excited. First of all, I love the mountains, and second of all, I get to go with a few of my favorite people. What I love about the mountains is that you get to relax and just spend time in nature, soaking in the beauty of God's creation. When we got to the cabin, I didn't feel like writing because I just wanted to unpack, and hang out with my friends, play games, and honestly, just relax. I have been so busy these past few months, and I so desperately wanted a break from it all. I love the things that I am apart of, however, sometimes I just want time to myself, and to chill out.
Can you relate? Do you ever feel like you just need a break? I am learning that it is okay to take time to relax, and take a break from the things that seem to fill all of your time. I wasn't really ever leaving myself time for a break, because the things I had to get done seemed so pressing, that felt I didn't have the time to do anything but the work in front of me. I don't ever want to become so consumed with work, or my list of things that need to get done, that I forget or neglect the people right in front of me. The weeks leading up to my now, spring break, were so busy, and I kept finding myself unsatisfied with the work I was producing. I was easily frustrated with my family, and myself. I realized that I desperately needed a break, but I neglected to take one.
These next few days that I am here, I just want to spend time with my friends, and Jesus and just take a break from the things that are constantly flooding my mind. If you are at all like me, I want to tell you that it is okay to rest and take a break. Even God rested. He knew the importance of rest. After he created the whole earth and then, he rested. He didn't rest because he was tired, or because he needed sleep. He rested, because he knew it was important.
Our souls need rest. There is so much going on in our lives, and in this day and age, our world is currently moving at a speed I can't even keep up with. There are 100 things that want your attention right now. You are constantly bombarded with thoughts, emotions, and things to do, and you are no longer enjoying rest. I want to encourage you, to take a break, and rest. Rest in Jesus. Spend time with him, maybe just in silence, and allow him to give you the rest your soul desperately needs. You may think of rest, as the absence of action, or motion, but I think rest actually does so much more for our bodies, and souls than work sometimes. If you have a busy schedule, make the time to rest in God's presence. It could be just want your soul is crying out for.


text:
Previous Speakers
Prof. Alexandra I. Cristea
Durham University, UK
Alexandra I. Cristea is Professor, Head of the Innovative Computing research group at the Computer Science Department, Durham University. Her research includes user modelling and personalisation, web science, learning analytics, semantic web, social web, authoring, with over 250 papers on these subjects (over 3600 citations on Google Scholar, h-index 32). Especially, her work on frameworks for adaptive systems has influenced many researchers and is highly cited (with the top paper with over 230 citations and growing). Similarly influential is her pioneering work on adaptation languages, Prof. Cristea being one of the first to propose them (with the top paper with over 180 citations and growing). Since then, work in these new research areas has spread. She is within the top 50 researchers in the world in the area of educational computer-based research according to Microsoft Research. Prof. Cristea has been highly active and has an influential role in international research projects. She is experienced in running research projects and has led various projects - Newton funded workshop on Higher Education for All ('14-'18), Santander funded Education for disadvantaged pupils ('14-18'), Warwick-funded project APLIC ('11-;12), EU Minerva projects ALS (06-09) and EU Minerva ADAPT ('02-'05); as well as participated as university PI in several EU FP7 projects - BLOGFOREVER ('11-'13), GRAPPLE ('08- '11), PROLEARN ('07) and as co-PI in the Warwick-funded Engaging Young People with Assistance Technologies ('13-'15) also featured by the BBC. She has been organizer of workshops, co-organizer, panelist and program committee member of various conferences in her research field (including, for example, UMAP, ED-MEDIA, Hypertext, Adaptive Hypermedia, ICCE, ICAI). She member of the editorial board of the IEEE Transactions on Learning Technologies, executive peer reviewer of the IEEE LTTF Education Technology and Society Journal and she was co-editor of the Advanced Technologies and Learning Journal. She has given keynote and invited talks in various countries, e.g., Brazil, UK, Netherlands, Spain, Japan, Finland, Romania, etc. She acted as UNESCO expert for adaptive web-based education at a high-level (Ministry of Education and Educational institutes) meeting of East European countries, educational invited expert for the Romanian prime minister, as well as EU expert for H2020, FP7, FP6, eContentPlus. She is a BCS fellow, a HEA fellow, IEEE Senior Member and IEEE CS member, EATEL (European Association of Technology Enhanced Learning) founding member, ACM member.
Prof. Xin-She Yang
Middlesex University, UK
Xin-She Yang obtained his DPhil in Applied Mathematics from the University of Oxford. He then worked at Cambridge University and National Physical Laboratory (UK) as a Senior Research Scientist. Now he is Reader in Modelling and Optimization at Middlesex University, an elected Bye-Fellow at Cambridge University and Adjunct Professor at Reykjavik University (Iceland). He is the Chair of the IEEE CIS Task Force on Business Intelligence and Knowledge Management. He has given many keynote talks at over 20 international conferences such as IEEE Mendel'12 (Czech Republic), BIOMA'12 (Slovenia), EU/ME'14 (Turkey), ICCS'15 (Iceland), SIBGRAPI'15 (Brazil), OIPE'16 (Italy), ISCBI'16 (Switzerland), BDIOT'17 (UK) and HS'17 (Spain). He has published more than 250 articles in peer-reviewed journals and 20 books with over 32000 citations. He has been on the prestigious list of Clarivate Analytics/Web of Science Highly Cited Researchers in 2016, 2017 and 2018.
Prof. Paolo Terenziani
University of Piemonte Orientale, Italy
Since 2000, Paolo Terenziani is Full Professor at the Institute of Computer Science of DISIT, Università del Piemonte Orientale, Alessandria, Italy. The research activity of Paolo Terenziani has begun in 1987 and it concerns mainly the field of Artificial Intelligence, and specifically the areas of knowledge representation and automatic reasoning (with particular attention to representation and reasoning with temporal constraints), the fields of Temporal Databases and of Medical Informatics. Regarding these topics Paolo Terenziani has published more than 150 papers in peer-reviewed international journals, books, conference proceedings and workshops (in particular, he has achieved ten publications on the IEEE Transactions of Knowledge and Data Engineering in the last five years). Since 1997, Paolo Terenziani leads the GLARE project, in collaboration with the hospital San Giovanni Battista in Turin, for developing a prototype of a domain-independent software system for the acquisition, representation and execution of clinical guidelines. Since 2015 Paolo Terenziani is in the board of AIME (Artificial Intelligence in Medicine Europe). As early as in 1998, for his research activity, he won the "Artificial Intelligence Prize" from Italian Association for Artificial Intelligence. He has won "distinguished\best" paper awards in several international conferences, including AMIA 2012, Chicago, USA, November 2012 (more than 1000 submissions).
Prof. John MacIntyre
University of Sunderland, UK
I have worked at the University of Sunderland since 1992, having graduated from the University with a First Class Honours Degree in Combined Science (Computer Science and Physiology). I then went on to complete a PhD in applied artificial intelligence, focussing on the use of neural networks in predictive maintenance, which was awarded in 1996. During the 1990s I established a research centre – the Centre for Adaptive Systems – at the University, which became recognised by the UK government as a Centre of Excellence for applied research in adaptive computing and artificial intelligence. The Centre undertook many projects working with and for external organisations in industry, science and academia, and for three years ran the Smart Software for Decision Makers programme on behalf of the Department of Trade and Industry. I have successfully supervised in PhDs in fields ranging from neural networks, hybrid systems, and bioinformatics through to lean manufacturing, predictive maintenance, and business and maintenance strategies. I went on to become Associate Dean, and then Dean, of the School of Computing and Technology, covering Computer Science and Engineering; in 2008 I became the Dean of the Faculty of Applied Science, and in 2010 Pro Vice Chancellor of the University. I am, and have, been a member of many regional, national and international organisations linked to my own research or professional areas, or on behalf of the University. Since 1996 I have been the Editor-in-Chief of Neural Computing & Applications, an international scientific peer reviewed journal published by Springer Verlag. Prior to entering academia I worked in industry including several years working overseas on major civil and structural engineering projects, developing and implementing new computerised planning systems.

redpajama_set_name: RedPajamaCommonCrawl


There is one summary for S.840. Bill summaries are authored by CRS.
a description of alternative repayment plans.
a statement informing the borrower that paying less than the minimum could result in the loan being charged-off or assigned to collection.
give the borrower at least 30 days to apply for such a plan or benefit.
Requires postsecondary educational lenders in all these situations to notify the borrower that a Servicemember and Veterans Liaison is available to answer inquiries about servicemember and veteran benefits related to such loans.
Provides that if such a borrower notifies a postsecondary educational lender that a long-term alternative repayment plan is not appropriate, the lender may provide the borrower with information about short-term options to address an anticipated short-term difficulty in making payments, such as forbearance or deferment options. Requires lenders to establish a process that enables borrowers to provide such notice.
Requires the Consumer Financial Protection Bureau (CFPB) to develop and issue model forms to allow borrowers to compare their postsecondary education loan repayment plan with alternative repayment plans and forbearance and deferment options.
Establishes a student loan borrower bill of rights under the Truth in Lending Act.
Imposes specified notification and payment transfer and receipt obligations on transferors and transferees of student loans if the transfer of those loans results in a change of the party to whom the borrower must direct communications or send payments.
Prohibits student loan servicers from imposing late payment fees or finance charges on borrowers whose late payment is due to a change in the servicer's mailing address, office, or payment handling procedures.
Requires postsecondary education loan servicers, absent alternative instructions from the borrower, to apply payments first to the interest and fees a borrower owes on the payment due date and then to the principal of the borrower's loan that bears the highest interest rate. Allows borrowers to voluntarily increase their periodic payment amount while maintaining the right to return to their original amortization schedule at any time. Requires servicers to provide borrowers with a simple, online method to do so.
if the borrower fails to make a singular, non-successive regularly-scheduled payment.
Considers a private education loan to be rehabilitated if the borrower: (1) makes 9 payments of amounts owed on the loan within 20 days of the due date for 10 consecutive months, or (2) otherwise brings the loan current after it has been charged-off.
Establishes procedures student loan servicers are to follow in investigating and addressing borrower inquiries concerning perceived inaccuracies in borrower accounts.
Requires student loan servicers to designate a single point of contact for certain borrowers who: (1) are delinquent on their postsecondary education loan; (2) seek information regarding, seek to enter into an agreement for, or seek to resolve an issue under, a repayment option; or (3) seek to modify repayment terms due to hardship.
Requires student loan servicers to: (1) designate an employee who is specially trained on servicemember and veteran benefits to act as the Servicemember and Veterans Liaison responsible for answering inquiries from servicemembers and veterans, and (2) provide servicemembers and veterans with a toll-free number to access that liaison.
Prohibits student loan lenders or servicers from charging-off or reporting a student loan as delinquent, assigned to collection, in default, or charged-off to a credit reporting agency if the borrower is on active duty in a combat zone.
Requires student loan servicers to make available to borrowers: (1) through a secure website or in writing upon request, their loan history; and (2) upon request and at no charge, copies of the original loan documents.
Requires the CFPB to promulgate rules requiring student loan servicers to establish error resolution procedures.
Prohibits any rights and remedies available to student loan borrowers from being waived by any agreement, policy, or form.
Requires the CFPB to issue rules requiring lenders and servicers of loans made, insured, or guaranteed under title IV (Student Assistance) of the Higher Education Act of 1965 (HEA) to contact borrowers who may be eligible to have their student loans discharged by the Secretary of Education and to provide them with information and a streamlined process for obtaining such a discharge.
Requires consumer credit information that is required to be disclosed to borrowers under the Truth in Lending Act to be available at no charge to such borrowers.
Amends the Federal Family Education Loan (FFEL) program, under title IV of the HEA, to require eligible lenders to provide borrowers, before repayment, when they are having difficulty making payments, and when they are delinquent, a statement that: (1) they may be entitled to servicemember and veteran benefits, and (2) a Servicemember and Veterans Liaison is available to answer their inquiries about those benefits.
Amends the Truth in Lending Act to require a lender, before issuing a postsecondary education loan for a student attending an institution of higher education (IHE), to obtain the IHE's certification of: (1) the student's enrollment status, (2) the student's cost of attendance, and (3) the difference between that cost and the student's estimated financial assistance. Eliminates the requirement that such lenders obtain a self-certification form from the loan applicant.
Allows a lender to issue such a loan without a certification if the relevant IHE does not notify the lender, within 15 business days of the creditor's request for such certification, that it refuses to issue the certification or that it needs more time to comply with the request.
Requires postsecondary educational lenders to: (1) send loan statements to borrowers at least once every three months a student is enrolled at an IHE; (2) notify the relevant IHE, in writing, of the loan amount and the student to whom it applies no later than the date funds are issued; and (3) submit an annual report to the CFPB containing information the CFPB requires concerning private student loans.
Amends the HEA to require IHEs, before providing private educational lenders with certifications or notice of their refusal to do so, to determine whether students have exhausted their options for assistance under title IV of the HEA and to notify borrowers of: (1) the availability of such assistance, (2) their ability to choose their own private educational lender, (3) the impact of the proposed private education loan on their eligibility for other financial assistance, and (4) their right to accept or reject a private education loan within 30 days of the lender's approval of their application and to cancel the loan within 3 business days of its consummation.
Prohibits an IHE from providing a private lender with a certification unless: (1) the loan provides the borrower with alternative repayment plans, including loan consolidation or refinancing; and (2) loan liability is cancelled upon the death or disability of the borrower or co-borrower.
Treats lenders that receive a certification from an IHE as being in a preferred lender arrangement with that IHE.
Prohibits a servicer from marketing to the borrower of a title IV student loan that the servicer services a financial product or service using data obtained through the servicing relationship or otherwise during the servicing process.
Directs the Secretary to establish a program that allows borrowers under the William D. Ford Federal Direct Loan program to switch from the assigned servicer of their loan to a new servicer based on a random reassignment by the Secretary.
Directs the Secretary to establish a centralized point of access for all borrowers of title IV loans that are in repayment.


FABULOUS POTENTIAL STREET APPEAL! CHARMING HOME THAT PROVIDED COMFY SHELTER FOR HAPPY FAMILIES FOR DECADES. NOW JUST NEEDS A BUYER THAT RESPECTS ITS LINEAGE AND IS WILLING TO LOVINGLY UPDATE AND REJUVENATE THIS PARK HILL CLASSIC.


text:
Claris launches Claris Connect for Apple School Manager.
Claris Launches Claris Connect for Apple School Manager to Seamlessly Connect Student Data with Apple Education Technology.
CUPERTINO, Calif. - May 4, 2021 – Claris International Inc., an Apple subsidiary, today announced the general availability (GA) of Claris Connect for Apple School Manager. Previously in beta testing, Claris Connect seamlessly integrates student information system (SIS) data into Apple School Manager in minutes. Automatically having SIS data securely flow into Apple School Manager makes it drastically faster and easier for school stakeholders — administrators, teachers, students, and parents — to access a wide range of Apple services, apps, and technology. Claris Connect includes support for Aeries, Follet Aspen®, and Skyward® SIS and is free for schools using Apple School Manager.
Claris Connect is IMS Global Certified for the OneRoster® specification that supports secure sharing of roster, course, enrollment, and grades data with Apple School Manager. Adopting the OneRoster standard means schools can save time, cut costs, and improve system integrations when compared to connecting custom APIs. In addition, low cost and rapid integration gives schools the flexibility and agility to safely add learning tools, digital content, and applications to meet diverse needs across the curriculum.
"Anytime you evaluate new software, the number one question is, 'does this integrate with our SIS, gradebook, Learning Management System (LMS), active directory, or email?' But with Claris Connect and FileMaker, that's never our concern," said Steve Palomo, IT director at Beverly Public Schools. "We have been using Claris Connect to allow integration with Apple School Manager and other software packages, which gives us the flexibility to leverage software that's perfect for us."
Claris Connect for Apple School Manager also makes it easy to automate the creation of Managed Apple IDs at scale, providing access to technology and teaching tools that give students and educators the opportunity to work at school or remotely including:
The Classroom app, a versatile teaching assistant that lets teachers take charge of every iPad and Mac for instruction both in the classroom and remotely, keeping students on track.
The Schoolwork app that allows teachers to easily assign anything from worksheets to activities in educational apps, follow students' progress, and collaborate with each student in real time.
200GB of iCloud storage along with folder sharing through the iCloud Drive that promotes collaboration.
Shared iPad data, which enables schools to securely share devices between students, while still providing a personalized experience.
"Schools across the United States constantly face challenges around getting the most meaningful information out of the volumes of data gathered and processed each day––which we are solving with Claris Connect for Apple School Manager. Schools are also underfunded for tech, compounded by the very tough challenge related to talent recruitment," said Brad Freitag, CEO at Claris. "At Claris, we are passionate about welcoming a new generation of low-code developers with Claris Connect as a starting point, and by supporting their journey through Claris Academy and our community."
Claris has a wealth of experience working with educators and school systems. For more than three decades, Claris has empowered innovators at over 14,000 K-12 schools across the world to work smarter and faster using custom applications developed with Claris FileMaker. Claris Connect is a cloud-based data integration service that helps schools – and businesses – create powerful, automated workflows between applications, while significantly lowering the barrier to sophisticated app development. From attendance, inventory, and visitor tracking to lesson plans, course scheduling, and beyond, Claris powers custom software solutions to fill any technology gap.
Learn more about Claris solutions for K-12 schools.
Watch as Beverly School District shares its on-going success with Claris.
Follow Claris on Twitter and LinkedIn.
Claris International Inc. is the creator of the world's leading low-code development platform, offering a suite of services that drive digital transformation in companies from every business sector. Best known for its FileMaker app development solution, the company has more than one million active users globally across SMBs and the Fortune 500. Claris is an Apple subsidiary with an unmatched record of business success for more than 20 profitable years. Claris is headquartered in California with operations worldwide, including London, Paris, Munich, Tokyo, Beijing, and Sydney.
Clarity PR
kevin@clarity.pr
Claris launches Claris Connect for Apple School Manager


text:
Urban Expositions: Over 20 Years of Regional and National Trade Shows
June 1, 2016 By Meaghan Brophy
By Meaghan Brophy
Urban Expositions was founded in 1995 when partners Doug Miller, President, and Tim von Gal, Chief Operating Officer, launched the semi annual Philadelphia Gift Show. "Urban Expo now boasts over 35 shows a year," says Suzanne Pruitt, Marketing Representative for Urban Expositions. The company's trade shows span a number of different industries including apparel, art, gaming, Halloween, party, pet, souvenir, and gift.
"Many of Urban's shows are regional in nature and focus," continues Pruitt. "As such they offer the region's retailers a cost-effective, convenient, casual, relaxed and fun resource to meet with their sales reps, see national lines, and find a selection that's custom tailored to the tastes and interests of their own local audience." Urban's regional shows include the Philadelphia Gift Show, Windy City Gift Show, LAMKT, Seattle Gift Show, Panama City Beach Gift Show, Ocean City Resort Gift Expo, and Christmas cash and carry shows in Portland, San Mateo, and Los Angeles.
Pruitt explains that Urban "promotes a shop-local and loyalty message to retailers, reminding them that by supporting and shopping their regional show, they're doing more than just saving on travel; they're keeping dollars in their own region and supporting local sales reps. They're contributing to the growth and success of the show itself, which offers benefits to their businesses."
National Reach
In addition to regional shows, Urban Expositions hosts several trade shows that have national reach and profile. "The Las Vegas Souvenir & Resort Gift Show is the largest souvenir show in the nation," says Pruitt. "It offers retailers an unrivaled selection from every major souvenir and resort industry manufacturer, as well as up-and-coming innovators." Urban's Smokey Mountain Gift Show, located at Tennessee's Gatlinburg Convention Center, has a large selection of destination, resort and tourist merchandise, souvenirs, t-shirts, lake, mountain, and lodge goods. "The Grand Strand Gift and Resort Merchandise Show is the largest, longest-running coastal gift and resort show," adds Pruitt. "The event features the nation's top beach, souvenir, and resort lines." Urban's National Halloween and Party Show and Womenswear in Nevada complete the roster of wide-reaching national shows.
Each year, Urban is "always adding new exhibitors, new product spotlights, programs and events to our shows to keep them fresh and inviting," explains Pruitt. This year, the LAMKT, formerly the California Gift Show, will have a new LA Value section. "The new section offers an ideal chance for retailers to be the first to find great opportunity buys. LA Value will showcase fast-selling clearance, surplus, overstock, and other value-priced items from top sellers," says Pruitt.
Hands-on Approach
Partner and Chief Operating Officer Tim von Gal explains, "For us, it's all about the customer. We always focus on building lasting partnerships and friendships with members of the B2B community we serve. With their guidance, we work to shape the best possible event for all parties." All retailers are encouraged to visit Urban Expo's website to find a show that best suits their needs. Each show has a comprehensive website highlighting exhibiting companies, show events, product spotlights, exhibitor show specials, and more. After registering in advance through the website, retailers receive an ExpressPass™ via email that they scan at the show to quickly print out their admission badge.
To browse a complete listing of all Urban Exposition's trade shows, visit www.urban-expo.com.
Urban Expositions
1690 Roberts Blvd., NW Suite 111
Website: www.urban-expo.com
Filed Under: News, Trade Show News Tagged With: general merchandise trade shows, June 2016 Issue, Urban Expositions


Air Walkers are a balloon and weight all in one! These helium shapes with specially weighted parts enable the balloon to float, hover or walk on air.
Note: Price below is without helium gas. Please add additional RM 25.00 for helium gas to be inserted. Price exclude delivery charges.


text:
The 30 Day Challenge
What if, for 30 days, you filled your ears and your heart with nothing but the positive and uplifting message of Christ's love contained in the music and programming of Spirit FM? Take the challenge today!
The Spirit FM Morning Show hosts priests from across the diocese on "Father Fridays". Got a question you'd like them to answer?
Live Streaming Catholic Masses
With public masses limited in the Tampa Bay area, many are turning to video streams both locally and nationally. Click to find a stream that fits your needs.
Catholic Leaders Respond to Administration's Halt to Immigration with a Call for Unity in the Effort to Overcome COVID-19
WASHINGTON - Responding to the proclamation signed by President Trump announcing a temporary reviewable immigration halt, Archbishop José H. Gomez of Los Angeles, president of the U.S. Conference of Catholic Bishops (USCCB), Bishop Mario E. Dorsonville, auxiliary bishop of Washington and chairman of the USCCB's Committee on Migration, and Bishop Jaime Soto of Sacramento and chair of the Board of Directors of the Catholic Legal Immigration Network, Inc. (CLINIC), issued the following response:"In this moment, our common humanity is apparent more now than ever. The virus is merciless in its preying upon human life; it knows no borders or nationality. Pope Francis teaches us that to live through these times we need to employ and embody the 'creativity of love.' The President's action threatens instead to fuel polarization and animosity. While we welcome efforts to ensure that all Americans are recognized for the dignity of their work, the global crisis caused by COVID-19 demands unity ...
Pope Francis Accepts Resignation of Bishop Robert J. Baker of Birmingham; Names Bishop Steven J. Raica as Successor
WASHINGTON—Pope Francis has accepted the resignation of Bishop Robert J. Baker, 75, from the pastoral governance of the Diocese of Birmingham and has named Bishop Steven J. Raica of Gaylord to succeed him.The appointment was publicized in Washington, D.C. on March 25, 2020 by Archbishop Christophe Pierre, apostolic nuncio to the United States.Bishop Raica was born on November 8, 1952 and ordained to the priesthood on October 14, 1978. He was named Bishop of Gaylord in 2014.The Diocese of Birmingham is comprised of 28,091 square miles in the State of Alabama and has a total population of 3,073,473 of which 104,837 are Catholic.---Keywords: U.S. Conference of Catholic Bishops, USCCB, Pope Francis, Archbishop Christophe Pierre, apostolic nuncio, Bishop Robert J. Baker, Bishop Steven J. Raica, Diocese of Birmingham, Diocese of Gaylord.###Media Contacts:Chieko Noguchi or Miguel Guilarte202-541-3200
U.S. Bishops' Pro-Life Activities Chairman on 25th Anniversary of The Gospel of Life
WASHINGTON- Archbishop Joseph F. Naumann of Kansas City in Kansas and chairman of the U.S. Conference of Catholic Bishops' Committee on Pro-Life Activities has issued the following announcement on the 25th anniversary of The Gospel of Life (Evangelium vitae).Archbishop Naumann's full statement follows:As we celebrate the Solemnity of the Annunciation of the Lord on March 25, we also mark the 25th anniversary of Pope St. John Paul II's prophetic encyclical, The Gospel of Life (Evangelium vitae). Here, this saint provides a clear challenge to us: "With great openness and courage, we need to question how widespread is the culture of life today among individual Christians, families, groups and communities in our Dioceses. With equal clarity and determination we must identify the steps we are called to take in order to serve life in all its truth" (EV 95).With this, Pope St. John Paul II invites each of us to ask ourselves how we are assisting women in need who are pregnant or have young...
Pope Francis Names Bishop Gregory J. Hartmayer as Archbishop of Atlanta
WASHINGTON—Pope Francis has named Bishop Gregory J. Hartmayer, O.F.M., Conv. of Savannah, as Archbishop of Atlanta. The appointment was publicized in Washington, D.C. on March 5, 2020 by Archbishop Christophe Pierre, apostolic nuncio to the United States.Archbishop-designate Hartmayer was ordained to the priesthood on May 5, 1979 as a member of the Order of Friars Minor Conventual (Conventual Franciscans). He was named bishop of Savannah in 2011. His full biography may be accessed here.The Archdiocese of Atlanta has been a vacant see since April 2019. The archdiocese is comprised of 21,445 square miles in the State of Georgia and has a total population of 7,480,000 of which 1,170,000 are Catholic.---Keywords: U.S. Conference of Catholic Bishops, USCCB, Pope Francis, Archbishop Christophe Pierre, apostolic nuncio, Bishop Gregory J. Hartmayer, O.F.M., Conv., Archdiocese of Atlanta.###Media Contacts:Chieko Noguchi or Miguel Guilarte202-541-3200
Pope Francis Accepts Resignation of Auxiliary Bishop Edward Grosz of Buffalo
WASHINGTON—Pope Francis has accepted the resignation of the Most Reverend Edward M. Grosz as Auxiliary Bishop of Buffalo. Bishop Grosz has reached the retirement age for bishops of 75.The resignation was publicized in Washington on March 2, 2020 by Archbishop Christophe Pierre, apostolic nuncio to the United States.---Keywords: U.S. Conference of Catholic Bishops, USCCB, Pope Francis, Archbishop Christophe Pierre, apostolic nuncio, Bishop Edward M. Grosz, auxiliary bishop, Diocese of Buffalo.###Media Contacts:Chieko Noguchi or Miguel Guilarte202-541-3200
Education Committee Chairman for U.S. Bishops Applauds Administration's Efforts to Expand Parental Choice in Education Inner City Philadelphia Cath...
WASHINGTON - Today, Bishop Michael C. Barber, SJ of Oakland, chairman of the Committee on Catholic Education for the U.S. Conference of Catholic Bishops, and Bishop Michael J. Fitzgerald, auxiliary bishop of Philadelphia, expressed appreciation for the Administration's commitment to parental choice in education following a visit by Vice President Mike Pence and Secretary of Education, Betsy DeVos, to Saint Francis de Sales Catholic School in Philadelphia. The officials highlighted the success of parental choice programs across the Commonwealth of Pennsylvania and the Administration's parental choice proposal, Education Freedom Scholarships. The two bishops issued the following joint statement:"The right of parents to exercise freedom of choice in education is firmly rooted in the teachings of our Catholic faith. As our brother bishops wrote fifteen years ago in Renewing our Commitment to Catholic Elementary and Secondary Schools in the Third Millennium, 'Advocacy is not just the res...
Many gathered together so that there was no longer room for them, not even around the door, and he preached the word to them. They came bringing to him a paralytic carried by four men. Unable to get near Jesus because of the crowd, they opened up the roof above him. After they had broken through, they let down the mat on which the paralytic was lying. When Jesus saw their faith, he said to him, "Child, your sins are forgiven."
Mark 2:2-5
Public Inspection File | EEO
© 2015 - 2019 Spirit FM 90.5 - All Rights Reserved.


Residents living along the Point Defiance Bypass train tracks between Tacoma and DuPont should be prepared for testing of tracks and signals that will involve trains traveling at 50 mph starting Saturday, July 15 continuing throughout the weekend.
The tracks that parallel I-5 will go into full-time use by Amtrak Cascades passenger trains in the fall. In preparation, tracks and signals have been undergoing testing at various speeds. Sound Transit, which owns the tracks and is managing the Point Defiance Bypass construction project for the Washington State Department of Transportation, conducted most of the testing in January and February.
Starting this fall, the Point Defiance Bypass will be used by Amtrak Cascades and Amtrak long-distance trains, including a stop at the new Tacoma station at Freighthouse Square. The bypass is one of 20 passenger rail improvement projects overseen by WSDOT, paid for with nearly $800 million in federal funds. Once complete, the 20 projects will add two additional daily Amtrak Cascades roundtrips between Seattle and Portland, cut travel time between the cities by 10 minutes and improve on-time reliability.
Residents should be prepared for the test trains, which will come from either direction, at varying times of the day. Drivers and pedestrians alike are urged to always follow good rail safety.


text:
Meet Your Professors/Instructors
Our professors/instructors have a vested interested in your education and growth throughout your degree program studies. Their goal is to succeed by helping you to succeed. Rather than basic instructors, they are more like mentors who are as interested in seeing you evolve throughout your studies as you are. Therefore, they are accessible and available via email and by phone or Skype to help you along the way as necessary. Progress calls are also available as necessary during your studies to make sure you get the most from your IMHS education.
In the spirit of legendary coaches such as Vince Lombardy, our professors will challenge you to reach deep inside and draw the Greatness you have within to the surface. You will emerge from the Degree Program a different person than when you started in many positive ways!
Douglas R. Kelley, PhD, CH, CSL
Dr. Kelley is the Founder and President of IMHS and personally instructs Degree Program students. He has spent nearly four decades learning, developing, and teaching metaphysical concepts that can be applied to one's life whether secular or spiritual. He has trained thousands of managers, ministers, and leaders as well as helped hundreds via life-coaching and spiritual counseling. He has blended his own metaphysical concepts with practical life and business skills to create the IMHS Metaphysics Degree Program as well as compelling certificate courses. In addition to a PhD in Metaphysical Science, he is a Certified Hypnotist (CH), Certified Seminar Leader (CSL), and an accomplished professional speaker, trainer, life coach, minister, and author of many published books and courses in the fields of human development, metaphysics, leadership, relationships, and anomalous research.
Vicki L. Hunter, PhD, CH
Dr. Hunter has worked as a clairvoyant for 40 years and is an accomplished spiritual counselor and educator. She is a former TV host and the author of several books and programs including her flagship work, Principles for Natural Laws and Learning. Dr. Hunter holds a PhD in Metaphysical Humanistic Science specializing in Spiritual Counseling and received IMHS' highest honor, the Akasha Scholars Award. She resides in British Columbia, Canada. Dr. Vicki's Website
Ingrid C. Irwin, Msc.D, M.A., CPI
Dr. Irwin has a Doctoral Degree in Metaphysical Science (Msc.D) and a Masters of Arts (M.A.) in Parapsychology and Consciousness Studies with distinctions. She has studied and gained certifications in areas such as Advanced Meridian Psychotherapy, Advanced Pranic Healing, Certified Paranormal Investigator (CPI) and is a Founder Life Fellow of the World Guild of Metaphysical & Spiritual Counsellors (W.G.M.S.C). She has served on the Advisory Panel for the American Association of Electronic Voice Phenomena, a Board Member of ParaNexus Anomalous Research Association and Administrator of The Australasian EVP Research Forum. With a deep interest in the fields of paranormal and anomalous phenomena all her life, she became most interested in EVP voice captures. She began specializing in the recording and research of Electronic Voice Phenomena over a decade ago. Her research focus incorporates the acoustic nature of speech, segmentation of articulation and spectrographic analysis of speech. She explores the possible differences between anomalous and human speech, focusing on a capture's articulation oddities and deviations. She is constantly developing various recording trials and studies as a means of gaining further knowledge and insights into Electronic Voice Phenomena.
Angela Kittle, PhD, RMT
Dr. Kittle has a passion for animals and a natural ability to communicate with them. She has utilized her abilities in the field of animal rescue, rehabilitation, and rehoming for over thirty years. In addition to teaching at IMHS, Dr. Kittle is Director of Paws for a Moment Animal Rescue, specializing in terminal animal rehabilitation, and was co-executive producer for the television show Paws for a Moment, which aired in 2010 on UCTV. She has worked privately as a rehabilitation specialist for over thirty years and served on several local animal rescue committees. Dr. Kittle holds a PhD in Metaphysical Humanistic Science, graduating summa cum laude (highest honors) from the Institute of Metaphysical Humanistic Science (IMHS). In addition to her PhD, she received a Bachelor of Applied Science in Business Management from Bryan College, an Associates of Applied Science in Business Management from Dalton State College, is a Reiki Master/Teacher specializing in Animal Reiki, and an ordained minister for the International Church of Metaphysical Humanism. When she is not working with animals, she can usually be found in nature interacting with wildlife, or enjoying time with her family. She currently resides in the state of Georgia, USA with her husband, five dogs, four cats and various animals in need or who wander in for a visit.
Olga Norstrom, PhD, CSC, RMT
Dr. Norstrom earned a Master of Science in Neuroscience, and a Master of Arts in Science and Medical Journalism, and has worked for several years as a health, nutrition, and medical writer and editor. She also earned her PhD in Metaphysical Humanistic Science from IMHS summa cum laude and was presented with the Akasha Scholars Award, IMHS' highest honor. A strong interest in holistic healing led her to pursue certification as an Ayurvedic Wellness Practitioner (AWP) with specialties in Ayurvedic nutrition, herbology, Vedic astrology, crystal therapy, chakra therapy, aromatherapy, acupressure point therapy, meditation for health, and pranic healing. She is a Master/Teacher of Usui Reiki and Chios, and is a practitioner and teacher of healing modalities based in Latin American and Caribbean Shamanism, including the Rites of the Munay-Ki, Ama Deus, and Deep Release Point Therapy. She is also certified in Health and Medical Astrology, Medical Intuition, Health Numerology, and Vastu (Indian holistic design for home and business). She enjoys teaching, and has been teaching Reiki, meditation, and holistic health and nutrition for two years in live workshops and online.


A good music venue is essential to the concert experience. Is the space standing room only? How are the sight lines? Are lots of views blocked by a pole? Is everyone crowded together in one intimate room or are you in a stadium where you can barely make out the people across from you? All of these factors can make the difference between a great and a mediocre show. You're paying to hear a particular musician, but your money is also going toward the experience—and the space you walk into dictates that.
But, being able to make out who's on stage is a lot different than the semantics the person on stage has to deal with. There are a lot of logistics that we, as the onlookers, don't even think about—because we don't have to. Like, making sure you have enough space, correct lighting, the ability to see the crowd, good acoustics. Every artist has their preferences, and every artist has a favorite venue.
And just so we could see if our favorite venues line up with those of our favorite artists, we thought we'd ask some performers what the best venue or concert they've played has been and why. See what they had to say ahead.


text:
English Grammar at a Glance
Useful terminology for teachers and learners
Parts of Speech The Tenses
Syntax Pronunciation
The Moods Style
Article Adjective
Noun Preposition
Pronoun Conjunction
Verb Interjection
Adverb Number (Numeral)
Indefinite article There's a pen on the table.
Definite article The pen is mine.
Zero article Planning is important.
Singular noun boy, box, baby, child, antenna, phenomenon
Plural noun boys, boxes, babies, children, antennae, phenomena
Countable noun one apple, two apples
Uncountable noun some rice, some mayonnaise
Collective noun furniture, cutlery, equipment
Concrete noun apple, computer
Abstract noun honesty, love, fear, happiness
Compound noun bookshelf, word-processor, post office
Common noun apple, computer
Proper noun Linda has a house in London.
Eponym Parkinson's (named after James Parkinson)
sandwich (named after the 4th Earl of Sandwich)
Partitives, units and quantity Partitives express a part of a whole. They also enable us to quantify uncountable nouns: two rices two bags of rice.
None of the adults, some of the boys, all of the girls, both of the brothers, neither of the sisters, etc. (See also quantifiers)
A box of chocolates, a carton of milk, a can of soda, a bottle of Scotch, a jar of peanut butter, a tub of ice cream, a cup of coffee, a piece of cheesecake, a bag of peanuts, a packet of chewing gum, a tube of toothpaste, a roll of film, a tin of paint, a pack of cards, a bunch of grapes, a whole bunch of paparazzi, a company of girl guides, a gang of thieves, a flock of sheep, a herd of cows, a pack of hounds, a school or shoal of fish, a set of rules, a bouquet of flowers, a swarm of mosquitoes, etc.
Demonstrative pronoun This was fun. That was boring.
Indefinite pronoun Some were good. Nobody is there. Is there any left?
Interrogative pronoun What? Which? Who? Whom?
Personal pronoun (subjective) I, you, he, she, it, we, you (pl.), they
Personal pronoun (objective) me, you, him, her, it, us, you (pl.), them
Possessive pronoun The car is mine / yours / his / hers / ours / theirs
Reflexive pronoun Bill burned himself on the hot iron.
Emphasizing pronoun The Queen herself visited the disaster victims.
Relative pronoun The man who / that won is here.
The prize which / that he won is also here.
Finite verb A verb form the use of which which is limited by subject and tense, e.g. I go, he goes, she went, they have gone.
Infinite verb A verb form the use of which is unrestricted by subject or tense. In English this means the infinitive, the gerund and the participles.
Infinitive The infinitive is the basic form of a verb you'll find listed in a dictionary.
Bare infinitive: She can drink coffee.
to-infinitive: She stopped to drink coffee.
Gerund She stopped drinking coffee.
Present participle Charlie is playing golf now.
Past participle Emmy has played already.
3rd person singular He likes cooking. She watches TV.
Regular verb She walks, she walked, she has walked
Irregular verb I swim, I swam, I have swum
Auxiliary verb I have won! He is eating. Do you smoke?
Modal auxiliary verb (+ bare infinitive) You must (had to) go. We can (could) drive. He may (might) come. They will (would) win. I shall (should) write to the manager. You ought to complain.
Verb of perception (+ adjective) She seems reliable, appears confident and sounds interesting. The food looks good, smells superb and tastes delicious.
Action verb Action verbs are used in both the simple and continuous tenses: Jane plays chess. She is playing chess now.
State (or stative) verb State verbs are generally not used in the continuous tenses: Jane belongs to the chess club. Membership costs just $20 a year. Some people dislike playing chess, while others love it.
Performative verb Performative verbs are utterances that constitute an action: He admits he made a mistake and promises not to do it again.
Transitive verb The company raised its prices.
Intransitive verb Prices rose.
Passive voice Prices were raised.
Phrasal verb His marriage broke up when his car broke down.
Positive adverb Jenny works hard and carefully.
Comparative adverb Kate works even harder and more carefully than Jenny.
Superlative adverb Pam works (the) hardest and most carefully.
Adverb of degree Jack is quite short but rather chubby.
Adverb of frequency I never smoke but I sometimes drink alcohol.
Adverb of manner Anne drives slowly but safely.
Adverb of place He ran away.
She lives abroad.
Adverb of time Today he is still unwell.
Interrogative adverb Why / when / where / how did he go?
Relative adverb The town where I was born.
Sentence adverb Hopefully she'll come. She definitely ought to.
Correct order of adjectives Opinion size shape age shade color
pattern origin material
I have a lovely large round new bright
red and white striped Spanish cotton tablecloth.
Attributive adjective The late train (= scheduled later than others)
A heavy drinker (= he drank a lot of alcohol)
Predicative adjective The train was late (= delayed).
The drinker was heavy (= he weighed a lot).
Positive adjective Dick is kind and generous.
Comparative adjective Dan is even kinder and more generous than Dick.
Superlative adjective Dave is (the) kindest and most generous.
Interrogative adjective Whose party?
Which restaurant?
Demonstrative adjective This / that book.
These / those pens.
Distributive adjective Each / every / either / neither girl.
All / both boys.
Possessive adjective My / your / his / her / its / our / their eyes.
Determiner Word used to narrow the scope of a noun, such as a numeral, an article, or the demonstrative, distributive and possessive adjectives above.
Quantifier A quantifier is either a distributive adjective or some other single word or phrase used to define quantity, e.g. "The old man had some CDs, a few DVDs, a lot of video cassettes, one hundred audio cassettes and half a ton of LP records!" (See also partitives.)
Simile As strong as a lion, as blind as a bat, as dead as a doornail, as good as gold, as cool as a cucumber, as light as a feather, as heavy as lead, as daft as a brush, etc.
Although his wife has eyes like a hawk, he ate like a horse, drank like a fish, and then slept like a log.
Synonym big and large
Antonym big vs. small
Definition A preposition governs (and usually precedes) a noun or pronoun in order to define its relationship to other words. Here below some categories and examples:
Preposition of time For two years, since 2019, I've worked from nine to five. I've always arrived in time for work and finished by 5 o'clock. I used to work until / till midnight, but now I can relax before going to bed, at weekends after 12 noon on Saturdays, and during my long summer holiday in July.
Preposition of location I work in an office on the 5th floor of the port authority building near the River Thames. I sit at the back by the window with a panoramic view over this important shipping lane. My boss, the oldest among us, sits in front of me. His secretary works opposite him, there's a junior clerk behind her and my colleague Dan sits next to / beside me. There's a filing cabinet between the photocopier and the coffee machine, a clock above the door and a wastepaper bin under each desk. The lunchroom is on the floor below ours.
Preposition of movement I got into my car and drove from Wall Street through Midtown Manhattan and then along the expressway to Long Island. I got out of my car at Montvale Race Track, where I got on / onto a horse. I didn't have to get off the horse because I was thrown from the saddle!
Preposition of means You can go to the Chinese restaurant by bus or on foot, but you'll have to eat with chopsticks!
Coordinating conjunction Links two main clauses or ideas of equal value:
He's big and strong but not so intelligent. She's both clever and reliable. The weather is either too wet or too windy. Frank is neither very rich nor very poor.
Subordinating conjunction Introduces a subordinate clause, i.e. one that cannot stand alone without the support of a main clause.
of time: when, whenever, while, as soon as, until, before, after, since
of reason: because, as, since, so
of result: so...that, such...that
of purpose: so that
of condition: if, in case, unless, as long as
of contrast or concession: although, even though
Interjection
Examples Oh dear! She's late again. Ah, here she is.
Ouch, that hurt!
Number (Numeral)
Cardinal number or numeral one, two, three, four, five, six...
Ordinal number or numeral first, second, third, fourth, fifth, sixth...
Small (lower case) abc...xyz
Large (upper case) ABC...XYZ
Morpheme The smallest element of language that can convey meaning. For example, the word bricklayer is made up of three morphemes: brick, lay and -er.
Affix An element added to the beginning of a word (prefix) or end of a word (suffix) to modify its meaning.
Prefix An unusual day. A disobedient child
Suffix The violinist played with the trumpeter.
Word The smallest meaningful element of language. When written it stands alone with a space on either side of it.
(19 words)
Phrase A group of words forming a concept but not a sentence:
in a hurry; by himself; day by day.
Binomial phrase There are restaurants here and there where ladies and gentlemen can wine and dine their friends and pick and choose from this and that on the menu.
Clause Part of a sentence including a subject and a predicate.
Main clause A clause that could stand independently and still make sense on its own:
He apologized because he was late.
Subordinate clause A clause that wouldn't make much sense without an accompanying main clause:
Relative clause
Defining relative clause: The hotel (that / which) I stayed in was rather old.
Non-defining relative clause: The hotel, which is quite famous, is going to close.
Antecedent: The hotel (that / which) you stayed in was more modern.
Sentence A sentence consists of at least one clause, i.e. a subject (which is sometimes only implied) and a predicate:
I walk.
Go! (= You go!)
Paragraph A paragraph is a section in a piece of writing, usually highlighting a particular point or topic. It always begins on a new line, either after skipping a line or, as in this example, with an indentation. It consists of at least one sentence.
(This piece of text constitutes a single paragraph.)
Subject He likes her.
Going on vacation is fun.
Pamela paints landscapes.
John lives in a house by the river.
Predicate He likes her.
Object She likes him although she thinks that he's crazy.
Direct object They gave Tommy a present on his birthday.
Indirect object They gave Tommy a present on his birthday.
Complement He is a scientist.
She seems amused.
We became tired.
Direct speech "My job is tough," she said.
Reported speech She said (that) her job was tough.
Direct question What's your name?
Indirect question Ask him what his name is!
Tag question "You keep fit, don't you?"
"You don't smoke, do you?"
Rhetorical question This kind of question is used to make a statement rather than get an answer:
"Who cares?" (= Nobody cares.)
"Why bother?" (= It's a waste of time.)
The Moods
Indicative mood The earth is round (a simple statement of fact).
Imperative mood Save $200 a year on haircuts. Shave your head!
Old phrases and clichés still in common use Come what may...
Be that as it may...
God forbid!
Woe betide...
Jussive subjunctive In British English, the optional inclusion of should helps to clarify the jussive subjunctive:
I suggested that she go early.
She insisted that something be done about his snoring.
I suggested that she (should) go early.
She insisted that something (should) be done about his snoring.
Hypothetical subjunctive
If I were you, I would see a doctor.
(See type 2 conditional below!)
as if / as though + past subjunctive He acts as if he owned the company.
She speaks as though she knew everything.
it is time + past subjunctive (unreal past) It is time we were leaving.
Type 1: probable (real) conditional If I'm late I'll call you.
Type 2: improbable (unreal) conditional If I had the time, I'd write a novel.
Type 3: hypothetical conditional If I hadn't stayed in Las Vegas, I wouldn't have lost a fortune.
Type 4: zero conditional If she has a cold she goes to bed.
The Tenses
Future simple She will sleep soon.
Future continuous She will be sleeping at 11 PM.
Future perfect At 7 AM she will have slept for 8 hours.
Future perfect continuous By 5 AM she will have been sleeping for 6 hours.
Present simple She sleeps well.
Present continuous She is sleeping right now.
Present perfect She has slept well since she was a child.
Present perfect continuous Tonight she has been sleeping soundly for two hours.
Past simple She slept for ten hours last night.
Past continuous She was sleeping when her husband came home.
Past perfect This morning he said she had slept all night long.
Past perfect continuous She had been sleeping when the alarm clock rang.
Received pronunciation (RP) The clearly articulated standard of British English that is prevalent among educated speakers in southern England.
General American (GA) The standard, non-regional form of U.S. English
Phonetics The written classification of spoken sounds.
Phonetic symbol A symbol representing one particular sound.
Phoneme The smallest phonetic element of language that can convey a distinction in meaning, e.g. the 'l' in late, the 'd' in date and the 'g' in gate.
Vowel a e i o u
Consonant b c d f g h j k l m n p q r s t v w x y z
Syllable Canada has three syllables.
Monophthong For example, the single vowel sound /æ/ in "hat".
Diphthong For example, the double vowel sound /eɪ/ in "hate".
Homonym A word with the same sound (a homophone) or spelling (a homograph) as another but with a different meaning.
Homophone: I'll check if the Czech paid by cheque.
Homograph: Everyone at the fair had fair hair. It's not fair!
Intonation The rising and falling of your voice as you speak,
especially when this conveys added meaning.
Stress The accentuation of one particular word or syllable.
Word stress: She's an English English teacher.
Syllable stress: He's a photographer.
Formal style Your children must be collected from school.
Informal style You have to pick your kids up from school.
Idiom The taxi driver took me for a ride (= tricked me).
Slang The cops are coming! (= police officers)
Dialect The language variant spoken in a particular area, e.g. Cockney in London's East End or Geordie on Tyneside.
Vernacular A widely-spoken, non-formal regional language variant, such as the Estuary English of South-East England.
Jargon I had to reboot my computer after it crashed.
Terminology He held her software on his hard drive.
Simile He was as emotionless as a robot.
She worked like a robot.
Metaphor He is a puppet of the regime.
Her writing was rubbish.


text:
package org.mifos.accounts.loan.schedule.calculation;

import org.junit.Before;
import org.junit.Test;
import org.mifos.accounts.loan.schedule.domain.Installment;
import org.mifos.accounts.loan.schedule.domain.Schedule;

import java.math.BigDecimal;
import java.util.Date;

import static java.util.Arrays.asList;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
import static org.mifos.framework.TestUtils.getDate;

public class ScheduleCalculatorTest {
    private ScheduleCalculator scheduleCalculator;
    private Schedule schedule;

    @Before
    public void setup() {
        scheduleCalculator = new ScheduleCalculator();
    }

    @Test
    public void withOneInstallmentAdjusted() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(280d), getDate(25, 9, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 0, 242.24);
        assertInstallmentPrincipals(installment2, 247.67, 230.31, 17.36);
        assertInstallmentPrincipals(installment3, 252.22, 252.22, 0);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 20.40, 0, 20.40);
        assertInstallmentInterests(installment2, 14.62, 14.62, 0);
        assertInstallmentInterests(installment3, 10.40, 10.40, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);
    }

    @Test
    public void withExactPaymentOnTime() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(262.64d), getDate(25, 9, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 0, 242.24);
        assertInstallmentPrincipals(installment2, 247.67, 247.67, 0);
        assertInstallmentPrincipals(installment3, 252.22, 252.22, 0);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 20.40, 0, 20.40);
        assertInstallmentInterests(installment2, 14.96, 14.96, 0);
        assertInstallmentInterests(installment3, 10.40, 10.40, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);
    }

    @Test
    public void exactPaymentOnTimeWithFeesAndPenalty() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0, 1, 2, 3, 4);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(272.64d), getDate(25, 9, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 0, 242.24);
        assertInstallmentPrincipals(installment2, 247.67, 247.67, 0);
        assertInstallmentPrincipals(installment3, 252.22, 252.22, 0);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 20.40, 0, 20.40);
        assertInstallmentInterests(installment2, 14.96, 14.96, 0);
        assertInstallmentInterests(installment3, 10.40, 10.40, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);
    }

    @Test
    public void withShortPaymentOnTime() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(240d), getDate(25, 9, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 22.64, 219.6);
        assertInstallmentPrincipals(installment2, 247.67, 247.67, 0);
        assertInstallmentPrincipals(installment3, 252.22, 252.22, 0);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 20.40, 0, 20.40);
        assertInstallmentInterests(installment2, 14.96, 14.96, 0);
        assertInstallmentInterests(installment3, 10.40, 10.40, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);
    }

    @Test
    public void withTwoInstallmentsAdjusted() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(550d), getDate(25, 9, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 0, 242.24);
        assertInstallmentPrincipals(installment2, 247.67, 0, 247.67);
        assertInstallmentPrincipals(installment3, 252.22, 212.53, 39.69);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 20.40, 0, 20.40);
        assertInstallmentInterests(installment2, 9.29, 9.29, 0);
        assertInstallmentInterests(installment3, 9.6, 9.6, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);
    }

    @Test
    public void withOverDueInterests() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(550d), getDate(30, 9, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 0, 242.24);
        assertInstallmentPrincipals(installment2, 247.67, 0, 247.67);
        assertInstallmentPrincipals(installment3, 252.22, 215.82, 36.4);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 20.40, 0, 20.40);
        assertInstallmentInterests(installment2, 7.79, 7.79, 2.49);
        assertInstallmentInterests(installment3, 9.66, 9.66, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);
    }

    @Test
    public void withOverDueInterestsAndFeesAndPenalty() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0, 1, 2, 3, 4);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0, 1, 2, 3, 4);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(560d), getDate(30, 9, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 0, 242.24);
        assertInstallmentPrincipals(installment2, 247.67, 0, 247.67);
        assertInstallmentPrincipals(installment3, 252.22, 215.82, 36.4);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 20.40, 0, 20.40);
        assertInstallmentInterests(installment2, 7.79, 7.79, 2.49);
        assertInstallmentInterests(installment3, 9.66, 9.66, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);
    }

    @Test
    public void withShortPaymentBeforeDueDate() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(240d), getDate(23, 9, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 21.32, 220.92);
        assertInstallmentPrincipals(installment2, 247.67, 247.67, 0);
        assertInstallmentPrincipals(installment3, 252.22, 252.22, 0);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 1.03, 1.03, 19.08);
        assertInstallmentInterests(installment2, 14.96, 14.96, 0);
        assertInstallmentInterests(installment3, 10.40, 10.40, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);
    }

    @Test
    public void shortPaymentBeforeDueDateWithFeesAndPenalty() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0, 1, 2, 3, 4);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(240d), getDate(23, 9, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 21.32, 220.92);
        assertInstallmentPrincipals(installment2, 247.67, 247.67, 0);
        assertInstallmentPrincipals(installment3, 252.22, 252.22, 0);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 1.03, 1.03, 19.08);
        assertInstallmentInterests(installment2, 14.96, 14.96, 0);
        assertInstallmentInterests(installment3, 10.40, 10.40, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);
    }

    @Test
    public void withShortPaymentAfterDueDate() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(240d), getDate(29, 9, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 22.64, 219.6);
        assertInstallmentPrincipals(installment2, 247.67, 247.67, 0);
        assertInstallmentPrincipals(installment3, 252.22, 252.22, 0);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 20.40, 0, 20.40);
        assertInstallmentInterests(installment2, 14.96, 14.96, 0);
        assertInstallmentInterests(installment3, 10.40, 10.40, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);

        assertInstallmentForExtraInterests(installment1, 0, 0, 0);
        assertInstallmentForExtraInterests(installment2, 0.64, 0.64, 0);
        assertInstallmentForExtraInterests(installment3, 0, 0, 0);
        assertInstallmentForExtraInterests(installment4, 0, 0, 0);
    }

    @Test
    public void withExcessPaymentAfterDueDate() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(280d), getDate(29, 9, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 0, 242.24);
        assertInstallmentPrincipals(installment2, 247.67, 232.94, 14.73);
        assertInstallmentPrincipals(installment3, 252.22, 252.22, 0);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 20.40, 0, 20.40);
        assertInstallmentInterests(installment2, 12.71, 12.71, 1.99);
        assertInstallmentInterests(installment3, 10.40, 10.40, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);

        assertInstallmentForExtraInterests(installment1, 0, 0, 0);
        assertInstallmentForExtraInterests(installment2, 0.64, 0, 0.64);
        assertInstallmentForExtraInterests(installment3, 0, 0, 0);
        assertInstallmentForExtraInterests(installment4, 0, 0, 0);
    }

    @Test
    public void withExactPaymentAfterDueDate() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(262.64d), getDate(29, 9, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 0, 242.24);
        assertInstallmentPrincipals(installment2, 247.67, 247.67, 0);
        assertInstallmentPrincipals(installment3, 252.22, 252.22, 0);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 20.40, 0, 20.40);
        assertInstallmentInterests(installment2, 14.96, 14.96, 0);
        assertInstallmentInterests(installment3, 10.40, 10.40, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);

        assertInstallmentForExtraInterests(installment1, 0, 0, 0);
        assertInstallmentForExtraInterests(installment2, 0.64, 0.64, 0);
        assertInstallmentForExtraInterests(installment3, 0, 0, 0);
        assertInstallmentForExtraInterests(installment4, 0, 0, 0);
    }

    @Test
    public void withNoPaymentPaymentAfterDueDate() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.computeExtraInterest(schedule, getDate(26, 12, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 242.24, 0);
        assertInstallmentPrincipals(installment2, 247.67, 247.67, 0);
        assertInstallmentPrincipals(installment3, 252.22, 252.22, 0);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 20.40, 20.40, 0);
        assertInstallmentInterests(installment2, 14.96, 14.96, 0);
        assertInstallmentInterests(installment3, 10.40, 10.40, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);

        assertInstallmentForExtraInterests(installment1, 0, 0, 0);
        assertInstallmentForExtraInterests(installment2, 14.66, 14.66, 0);
        assertInstallmentForExtraInterests(installment3, 10.1, 10.1, 0);
        assertInstallmentForExtraInterests(installment4, 5.31, 5.31, 0);
    }

    @Test
    public void withExcessPaymentBeforeDueDate() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(280d), getDate(23, 9, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 0, 242.24);
        assertInstallmentPrincipals(installment2, 247.67, 228.99, 18.68);
        assertInstallmentPrincipals(installment3, 252.22, 252.22, 0);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 0.97, 0.97, 19.08);
        assertInstallmentInterests(installment2, 14.59, 14.59, 0);
        assertInstallmentInterests(installment3, 10.40, 10.40, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);
    }

    @Test
    public void withExactPaymentBeforeDueDate() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(261.32d), getDate(23, 9, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 0, 242.24);
        assertInstallmentPrincipals(installment2, 247.67, 247.67, 0);
        assertInstallmentPrincipals(installment3, 252.22, 252.22, 0);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 1, 1, 19.08);
        assertInstallmentInterests(installment2, 14.96, 14.96, 0);
        assertInstallmentInterests(installment3, 10.40, 10.40, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);
    }

    @Test
    public void withInitialInstallmentAmountBeforeDueDate() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        Installment installment3 = getInstallment(3, getDate(25, 11, 2010), 252.22, 10.40, 0);
        Installment installment4 = getInstallment(4, getDate(25, 12, 2010), 257.87, 5.09, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3, installment4));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(262.64d), getDate(23, 9, 2010));

        assertInstallmentPrincipals(installment1, 242.24, 0, 242.24);
        assertInstallmentPrincipals(installment2, 247.67, 246.35, 1.32);
        assertInstallmentPrincipals(installment3, 252.22, 252.22, 0);
        assertInstallmentPrincipals(installment4, 257.87, 257.87, 0);

        assertInstallmentInterests(installment1, 1, 1, 19.08);
        assertInstallmentInterests(installment2, 14.93, 14.93, 0);
        assertInstallmentInterests(installment3, 10.40, 10.40, 0);
        assertInstallmentInterests(installment4, 5.09, 5.09, 0);
    }

    @Test
    public void multiplePaymentsOnDisbursementDate() {
        Installment installment1 = getInstallment(1, getDate(18, 10, 2010), 332.2, 3.8, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 333.4, 2.6, 0);
        Installment installment3 = getInstallment(3, getDate(1, 11, 2010), 334.4, 1.3, 0);
        schedule = new Schedule(getDate(11, 10, 2010), 0.000548, BigDecimal.valueOf(1000d),
                asList(installment1, installment2, installment3));
        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(337d), getDate(11, 10, 2010));

        assertInstallmentPrincipals(installment1, 332.2, 0, 332.2);
        assertInstallmentPrincipals(installment2, 333.4, 328.6, 4.8);
        assertInstallmentPrincipals(installment3, 334.4, 334.4, 0);

        assertInstallmentInterests(installment1, 2.54, 2.54, 0);
        assertInstallmentInterests(installment2, 2.54, 2.54, 0);
        assertInstallmentInterests(installment3, 1.3, 1.3, 0);

        scheduleCalculator.applyPayment(schedule, BigDecimal.valueOf(10d), getDate(11, 10, 2010));
        assertInstallmentPrincipals(installment1, 332.2, 0, 332.2);
        assertInstallmentPrincipals(installment2, 333.4, 318.6, 14.8);
        assertInstallmentPrincipals(installment3, 334.4, 334.4, 0);

        assertInstallmentInterests(installment1, 2.54, 2.54, 0);
        assertInstallmentInterests(installment2, 2.5, 2.5, 0);
        assertInstallmentInterests(installment3, 1.3, 1.3, 0);
    }

    @Test
    public void shouldComputeExtraInterestBeforeDisbursement() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2));
        scheduleCalculator.computeExtraInterest(schedule, getDate(20, 8, 2010));
        assertThat(installment1.getExtraInterest().doubleValue(), is(0.0));
        assertThat(installment2.getExtraInterest().doubleValue(), is(0.0));
    }

    @Test
    public void shouldComputeExtraInterestOnDisbursement() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2));
        scheduleCalculator.computeExtraInterest(schedule, getDate(25, 8, 2010));
        assertThat(installment1.getExtraInterest().doubleValue(), is(0.0));
        assertThat(installment2.getExtraInterest().doubleValue(), is(0.0));
    }

    @Test
    public void shouldComputeExtraInterestOnDueDate() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2));
        scheduleCalculator.computeExtraInterest(schedule, getDate(25, 9, 2010));
        assertThat(installment1.getExtraInterest().doubleValue(), is(0.0));
        assertThat(installment2.getExtraInterest().doubleValue(), is(0.0));
    }

    @Test
    public void shouldComputeOneDayExtraInterest() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2));
        scheduleCalculator.computeExtraInterest(schedule, getDate(26, 9, 2010));
        assertThat(installment1.getExtraInterest().doubleValue(), is(0.0));
        assertThat(installment2.getExtraInterest().doubleValue(), is(0.16));
    }

    @Test
    public void shouldComputeTwoDayExtraInterest() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2));
        scheduleCalculator.computeExtraInterest(schedule, getDate(27, 9, 2010));
        assertThat(installment1.getExtraInterest().doubleValue(), is(0.0));
        assertThat(installment2.getExtraInterest().doubleValue(), is(0.32));
    }

    @Test
    public void shouldComputeExtraInterestAfterPartPay() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2));
        scheduleCalculator.computeExtraInterest(schedule, getDate(27, 9, 2010));
        assertThat(installment1.getExtraInterest().doubleValue(), is(0.0));
        assertThat(installment2.getExtraInterest().doubleValue(), is(0.32));
        installment1.pay(BigDecimal.valueOf(100), getDate(27, 9, 2010));
        scheduleCalculator.computeExtraInterest(schedule, getDate(28, 9, 2010));
        assertThat(installment1.getExtraInterest().doubleValue(), is(0.0));
        assertThat(installment2.getExtraInterest().doubleValue(), is(0.43));
    }

    @Test
    public void shouldComputeExtraInterestAfterMultiplePaymentsOnSameDay() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2));

        scheduleCalculator.applyPayment(schedule, new BigDecimal(100), getDate(27, 9, 2010));
        assertThat(installment2.getExtraInterestPaid().doubleValue(), is(0.0));
        assertThat(installment1.getExtraInterest().doubleValue(), is(0.0));
        assertThat(installment1.getInterest().doubleValue(), is(20.40));
        assertThat(installment1.getApplicableInterest().doubleValue(), is(20.40));
        assertThat(installment2.getExtraInterest().doubleValue(), is(0.32));

        scheduleCalculator.applyPayment(schedule, new BigDecimal(200), getDate(27, 9, 2010));
        assertThat(installment2.getExtraInterestPaid().doubleValue(), is(0.32));
        assertThat(installment2.getExtraInterest().doubleValue(), is(0.32));
        assertThat(installment2.getInterestPaid().doubleValue(), is(1.00));
        assertThat(installment2.getPrincipalDue().doubleValue(), is(211.63));
        assertThat(installment2.getInterest().doubleValue(), is(14.96));
        assertThat(installment2.getApplicableInterest().doubleValue(), is(13.30));
    }

    @Test
    public void shouldComputeExtraFullPayment() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2));
        scheduleCalculator.applyPayment(schedule, new BigDecimal(262.64), getDate(25, 9, 2010));
        scheduleCalculator.applyPayment(schedule, new BigDecimal(262.63), getDate(25, 10, 2010));

        scheduleCalculator.computeExtraInterest(schedule, getDate(30, 12, 2010));
        assertThat(installment1.getExtraInterest().doubleValue(), is(0.0));
        assertThat(installment2.getExtraInterest().doubleValue(), is(0.0));
    }

    @Test
    public void overdueOnLastInstallmentIsRecoveredInLastInstallment() {
        Installment installment1 = getInstallment(1, getDate(25, 9, 2010), 242.24, 20.40, 0);
        Installment installment2 = getInstallment(2, getDate(25, 10, 2010), 247.67, 14.96, 0);
        schedule = new Schedule(getDate(25, 8, 2010), 0.000658, BigDecimal.valueOf(1000d),
                asList(installment1, installment2));
        scheduleCalculator.computeExtraInterest(schedule, getDate(20, 11, 2010));
        assertThat(installment1.getExtraInterest().doubleValue(), is(0.0));
        assertThat(installment2.getExtraInterest().doubleValue(), is(13.17));
    }

    private void assertInstallmentPrincipals(Installment installment, double principal, double principalDue, double principalPaid) {
        assertThat(installment.getPrincipal().doubleValue(), is(principal));
        assertThat(installment.getPrincipalDue().doubleValue(), is(principalDue));
        assertThat(installment.getPrincipalPaid().doubleValue(), is(principalPaid));
    }

    private void assertInstallmentInterests(Installment installment, double interest, double interestDue, double interestPaid) {
        assertThat(installment.getApplicableInterest().doubleValue(), is(interest));
        assertThat(installment.getInterestDue().doubleValue(), is(interestDue));
        assertThat(installment.getInterestPaid().doubleValue(), is(interestPaid));
    }

    private void assertInstallmentForExtraInterests(Installment installment, double ExtraInterest, double ExtraInterestDue, double ExtraInterestPaid) {
        assertThat(installment.getExtraInterest().doubleValue(), is(ExtraInterest));
        assertThat(installment.getExtraInterestDue().doubleValue(), is(ExtraInterestDue));
        assertThat(installment.getExtraInterestPaid().doubleValue(), is(ExtraInterestPaid));
    }

    private Installment getInstallment(int id, Date dueDate, double principal, double interest, double extraInterest) {
        Installment installment = new Installment(id, dueDate, BigDecimal.valueOf(principal), BigDecimal.valueOf(interest), BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO);
        installment.setExtraInterest(BigDecimal.valueOf(extraInterest));
        return installment;
    }

    private Installment getInstallment(int id, Date dueDate, double principal, double interest, double extraInterest, double fees, double miscFees, double penalty, double miscPenalty) {
        Installment installment = new Installment(id, dueDate, BigDecimal.valueOf(principal), BigDecimal.valueOf(interest), BigDecimal.valueOf(extraInterest), BigDecimal.valueOf(fees), BigDecimal.valueOf(miscFees), BigDecimal.valueOf(penalty), BigDecimal.valueOf(miscPenalty));
        return installment;
    }
}

redpajama_set_name: RedPajamaGithub


TCP server as a Windows service using Python?
Previous message (by thread): TCP server as a Windows service using Python?
Next message (by thread): TCP server as a Windows service using Python?
message thread, which the framework will turn into the method call.
the select and then it can shut down.


Happy Tuesday!!!!!! How's the new week going? Good I hope!!!!!! Yesterday I was reviewing Allen Carr's book some.
Good day to you Mike! I kinda wish I still had my Carr book, thats a good idea to review it no matter how long our quit is. I gave my book away but perhaps now I will go buy another one Happy Tuesday to you!
Thanks for the reminder Mike!!
Yup, cigarettes are Nicotine Syringes as far as I am concerned....that gross's me out!!