L&T posts strong set of Q4 numbers. Buy from short to medium term perspective.
Larsen & Toubros(L&T) sales during Q4FY14 increased by 11%YoY to ~Rs.200.8bn while its operating profit jumped 36% YoY to ~Rs 29.1bn. Company's Adjusted PAT jumped 41% YoY to ~Rs.22.4bn (reported Rs.27.2bn). The company's operating margin improved by 269bps YoY to 14.4% on account of stable commodity prices and lower other operating expenses. The company's also plans to raise capital via stake sale in some of its subsidiaries. Overall the company posted strong set of results beating street estimates and the guidance for the next year is strong as well. We recommend investors to "Buy" the stock from short to medium term perspective.
A stronger rupee has paved the way for high-street banks to have a greater play in the currency market, with last year's unnerving choppiness suddenly looking like a thing of the past. RBI recently told several large lenders that they are free to carry out foreign exchange proprietary trades in which bank treasuries bet on the dollar-rupee movement. The move will deepen the currency market and offer finer foreign exchange rates to customers, particularly large corporates with regular exports, imports and dollar borrowings.
Japan's manufacturing output declined for the second consecutive month in May, though at a slower rate. The manufacturing PMI came in at 49.9 in May, following the 49.4 figure in April. A broad stabilization in business conditions in the manufacturing sector was seen in May. The decline in manufacturing output was attributed to a decline in demand due to an increase in sales tax. New orders continued to fall in May, though at a slower rate, moving closer to the no-change mark and new export orders declined marginally.
The International Monetary Fund approved $4.64 billion bailout payment to Greece after the completion of fifth review. Dy. MD of IMF, Naoyuki Shinohara said the Greek authorities have made significant progress in consolidating the fiscal position and rebalancing the economy. The disbursements were delayed for a year amid questions over whether Greece continue its structural reforms. The lender approved the authorities' request for rephasing three disbursements evenly over the remaining reviews in 2014.
Moody's Investors Service lowered the rating outlook on 82 European banks to 'negative' as a new rule to reduce the risk of taxpayers in case of bank failure could make stakeholders more vulnerable to losses. At the same time, the rating agency affirmed long-term ratings of 109 European financial institutions and upgraded one. It downgraded the outlook to 'stable' from 'positive' on two long-term ratings.


Tahir Archive 2:19:02 Question & Answer Session 26 March 1995.
Tahir Archive 1:01:36 Tarjumatul Quran - Sura' Al-Nisa [The Women] 3-11.
Tahir Archive 1:01:49 Liqa Ma Al-Arab, 15 March 1995.
Tahir Archive 1:00:33 Liqa Ma Al-Arab, 14 March 1995.
Tahir Archive 1:00:28 Urdu Mulaqat 10 March 1995.
Tahir Archive 1:00:28 Liqa Ma Al-Arab, 8 March 1995.
Tahir Archive 1:04:25 Liqa Ma Al-Arab, 7 March 1995.
Tahir Archive 1:01:58 Liqa Ma Al-Arab, 29 March 1995.
Tahir Archive 1:04:14 Liqa Ma Al-Arab, 23 March 1995.
Tahir Archive 59:36 Liqa Ma Al-Arab, 22 March 1995.
Tahir Archive 1:00:51 Liqa Ma Al-Arab, 21 March 1995.
Tahir Archive 58:57 Liqa Ma Al-Arab, 18 March 1995.
Tahir Archive 1:03:24 Liqa Ma Al-Arab, 5 April 1995.
Tahir Archive 1:05:31 Liqa Ma Al-Arab, 4 April 1995.
Tahir Archive 1:00:31 Liqa Ma Al-Arab, 30 March 1995.
Tahir Archive 59:36 Liqa Ma Al-Arab, 28 March 1995.
Tahir Archive 1:16:33 Homeopathy Class, 4 April 1995.
Tahir Archive 1:03:36 Homeopathy Class, 3 April 1995.
Tahir Archive 1:03:12 Homeopathy Class, 28 March 1995.
Tahir Archive 1:02:43 Homeopathy Class, 27 March 1995.
Tahir Archive 1:02:28 Homeopathy Class, 21 March 1995.
Tahir Archive 1:03:30 Homeopathy Class, 20 March 1995.
Tahir Archive 1:02:26 Homeopathy Class, 14 March 1995.
Tahir Archive 1:03:17 Homeopathy Class, 13 March 1995.
Tahir Archive 1:03:06 Homeopathy Class, 7 March 1995.
Tahir Archive 1:02:02 Homeopathy Class, 6 March 1995.
Tahir Archive 1:22:00 Question & Answer Session 12 March 1995.


By now I'm pretty sure everyone's heard about the horrible earthquake and tsunami in Japan. When I see the outpouring of support after a tragedy like this, it really warms my heart. All of a sudden, there's less snarkiness and more compassion on all the social networks. It's like suddenly everyone gets how important it is to care about your fellow human beings. What would be fabulous is if everyone could treat each other this way all the time.
Maureen Johnson is sponsoring a Shelterbox drive once again, and if you donate, you can win some fabulous prizes (think signed books).
There's always the American Red Cross, who sends relief all over the world. You can click the link above or text REDCROSS to 90999.
It's tragic and terrifying at the same time. My company is owned by a Japanese parent company, and the emails passing through here at work today have been pretty devastating.
May the Buddha of Compassion hold them in the palm of his hand and relieve them of their suffering.


text:
B. Scott
T'yanna Wallace Is Tired of Being Known as Notorious B.I.G.'s Daughter
March 10, 2020 9:15 PM PST
T'yanna Wallace is sick and tired of being known as the daughter of the Notorious B.I.G., she told Page Six at the launch of her clothing line, Notoriouss.
"I don't like when people say, 'Oh, that's Biggie's daughter,' because that's not my name," Wallace said at her first runway show. "Now everybody knows Notoriouss clothing by T'yanna Wallace. I barely hear 'Biggie's daughter.' I hear T'yanna first, and I like that."
Wallace told Page Six she's "making a name for myself," adding, "I don't want to live off of my dad's money. I want to make my own money. I worked in the cafeteria for a year while I attended Penn State."
Her brother, CJ Wallace, also attended, and rapper Casanova performed. The show coincided with the 23rd anniversary of the beloved Brooklyn rapper's murder.
[via PageSix]
Tags:Notorious B.I.G.T'yanna Wallace

redpajama_set_name: RedPajamaCommonCrawl


TERMS AND CONDITIONS - The following terms and conditions are part of the sponsorship exhibitor's contract and each sponsor and exhibitor shall be bound by such rules and regulations set forth herein and by any such amendments or additional rules and regulations which may be established by Awake and Empowered Expo LLC.
EXHIBITS - The Show Management reserves the right to determine the eligibility of any company or product for inclusion in exhibition space and may reject its inclusion at its sole discretion. Lotteries, drawings, guessing games or prize contests of any kind sponsored by individual Exhibitors are subject to Show Management approval and scheduling. Display material must be confined to the individual Exhibitors own booth area. No placard, stickers, or other signs relating to non-paid exhibiting firms will be allowed in individual exhibits or anywhere else in the show. No horns, bells, alarms, or flashing lights will be permitted to be operated. No amplifiers, television receivers or loudspeakers may be operated in the individual exhibits except with the signed approval of Show Management. No advertising or printed material, which in the Show Management's opinion is undignified or otherwise objectionable, shall be distributed. Exhibitors have the right to distribute brochures and other printed matter approved by Show Management, only from the space occupied by them and no other way. The Exhibitor agrees that its exhibit shall be admitted and shall remain from day to day solely on strict compliance with these "Terms and Conditions" and any other rules communicated by the Show Management to the Exhibitor. The Show Management reserves the right to reject, eject or prohibit any exhibit in whole or part, or the Exhibitor or his representative, with or without giving cause. If the Exhibitor is ejected by the Show Management, there shall be no return of any amount paid by the Exhibitor.
PAYMENT OF SPACE OR SPONSORSHIP- No exhibit will be permitted to be placed in the exhibition space until full payment has been made. Full payment must also be received before receiving any benefits listed in sponsorship packages or advertising placement.
SUBLETTING OF SPACE - No exhibitor shall assign or sublet the whole or part of the space allotted, or exhibit therein, any programs or services other than those specified in the contract for exhibit space unless such is preapproved in writing by the Show Management.
SALE OF MERCHANDISE - Merchandise sales must comply with all local, state, federal laws and regulations. In addition you must be in compliance with all alcohol laws as they apply and the rules and regulations of the facility itself.
LIMITATION OF LIABILITY - The Exhibitor agrees to hold the Facility, Awake and Empowered Expo LLC, Show Management harmless and blameless and will make no claim for any reason whatsoever, including negligence, against Show Management, its officers, agents, employees, or the lessors or owners of the Facility for loss, theft, damage or destruction of property, nor for any injury to it or its employees, agents, or invitees while in the Facility. Each Exhibitor shall purchase its own insurance coverage sufficient to insure against any possible liability. This insurance shall name Awake and Empowered Expo LLC as an additional insured.
CARE AND STAFFING OF EXHIBITS - All coverings of exhibits must be removed and exhibitor staff must be on duty not later than one-half (1/2) hour PRIOR to the published opening hours of the show. Conversely, exhibitor staff MUST remain at the booth until closing. Actual full-time occupancy or staffing of exhibit space by exhibitor personnel is mandatory. Exhibitors failing to comply with this requirement shall forfeit their rights to said space as well as any and all monies paid. In addition, Show Management may use said space in such manner as it may deem in the best interest of the show. Management may also, at the direct expense of any negligent exhibitor, employ persons to staff any unstaffed exhibit. A show fine of $50 per hour will be imposed or levied upon any exhibitor, for each and every hour, or part thereof, that any exhibit is left without staff (We recommend that two people be available to staff booths for meals, breaks, etc.) No more than four representatives per booth may occupy a single booth at a time.
DEFAULT IN OCCUPANCY - Any exhibitor failing to occupy space contracted for is not relieved of the obligation of paying the full rental of such space as provided for in the signed contract. If not occupied, such space may be possessed by Show Management for such purposes as it may see fit, in which case, the Exhibitor shall pay full rental for such space. Failure of enforcement of any provision hereof by Show Management shall not be deemed as a waiver with respect to such provision after demand by Show Management for strict performance of this agreement.
COMPLIANCE WITH LAWS - Exhibitors shall not engage in any display, publication, performance, or other activity which is in conflict with any applicable law, regulation, rule or ordinance, nor shall exhibitor, or its representatives or employees, engage in any lewd display, publication or performance. Exhibitor will be responsible for obtaining all necessary governmental permits and licenses. Exhibitor shall comply with any rules promulgated by the owners or manager of the Trade Show premises.
NO GUARANTEE OF ATTENDANCE - Show Management does not guarantee specific volumes or levels of attendance at the Event. Exhibitor shall not be entitled to any refund, in full or in part, of any amounts paid based on actual attendance level.
FIRE AND SAFETY LAWS - Exhibitors are responsible for complying with all Federal, State and City laws. Wiring must comply with fire department and underwriter's rules. Smoking in exhibits is forbidden. Crowding will be restricted. No exhibitor shall bring into the facility any combustibles. All decorations must be flame proof, and an affidavit including such flame-proofing must be available for inspection by Fire Department Representatives.
FOOD AND BEVERAGE - Exhibitor may not serve or provide food or beverages in its exhibit space without the prior written consent of the Hotel and Awake and Empowered Expo LLC. Exhibitor may serve other food and beverage products provided that Exhibitor arranges for such food and beverage through the Hotel in accordance with its requirements. This provision is not intended to restrict the free distribution of small quantities of product samples or the sale of pre-packaged food or beverage products from exhibitors whose business is consistent with products being offered for sale; such pre-packaged products are not to be sold for immediate consumption. Exhibitor may not sell alcoholic beverages in its exhibit space without prior written consent of the Hotel and Awake and Empowered Expo LLC. Exhibitor shall, at its own expense, obtain a policy or policies of insurance issued by a responsible insurance company with a minimum of one million dollars liability coverage and in a form acceptable to the Awake and Empowered Expo LLC saving harmless and protecting the Awake and Empowered Expo LLC and the Hotel against any and all damages, claims, liens, judgments, expenses and costs, including actual attorney fees, arising under any present or future law, statute, or ordinance of the State of Michigan or any other governmental authority having jurisdiction of the Premises, by reason of any storage, sale, use or giving away of alcoholic beverages on or from the Premises. Proof of such policy must be submitted with this Contract for Exhibitor application to be considered for inclusion in the Awake and Empowered Expo.
TEAR DOWN - NO DISPLAYS ARE TO BE DISMANTLED PRIOR TO THE END OF THE SHOW. Any exhibitor dismantling prior to the end of the show without written authorization from Awake and Empowered Expo LLC will be fined $200.
LABOR - The Exhibitor must comply with union work rules where applicable and provide workmen's compensation coverage where applicable, all at its sole expense.
INSURANCE - Fire, loss theft, and personal liability insurance, must be procured by the Exhibitor at its own expense and Awake and Empowered Expo LLC must be named as an additional insured.
ATTENDANCE - The Show Management shall have sole control over attendance policies at all times.
RESCHEDULING OF EVENT POLICY - Certain events can pre-empt a show. Show management may reschedule an event. If an event is rescheduled all contracts and payments are binding to the rescheduled date. If the Exhibit is not held within one year of the original dates all Exhibit fees will be returned subject to Section 18 below.
CANCELLATION OF EXHIBIT SPACE - In the event of cancellation by the Exhibitor, no show or other fees will be refundable.
ACTS OF GOD, FIRE, STRIKES, TERRORISM, ETC. - In the event that any outside cause such as war, in or outside the United States of America, fires, strike, terrorism or Act of God such as: earthquakes, or other emergency prevents the Exhibit from being held, Show Management may retain such part of Exhibitor's rental as shall be required to compensate management or the Facility for expenses incurred up to the time such contingency shall have occurred.
20. AMENDMENT TO RULES - Any and all matters or questions not specifically covered by the preceding Rules and Regulations shall be decided solely by the Show Management. These Standards may be amended at any time by the Show Management without notice and all amendments so made shall be binding on the Exhibitor.
ATTORNEY'S FEES AND COSTS - In the event of the use of an attorney by Show Management to enforce any part of the Contract, all costs, including reasonable attorney's fees will be paid by the Exhibitor.
USE OF EXHIBIT - The Show Management may, at its discretion at any time, use photographs, videos, logos and testimonials of any exhibitor for its own publicity use.
PRIZES AND GIVEAWAYS - All prizes and giveaways that have not been picked up at Awake and Empowered Expo LLC main office within two weeks after the show become the property of show management.
ENTIRE CONTRACT - This instrument contains the entire Contract between the parties relating to the subject matter hereof. The parties have made no contracts, representations or warranties, relating to the subject matter hereof which are not set forth herein. No modification of this Contract shall be valid unless made in writing and signed by the parties hereto.
CHOICE OF LAW - This contract shall be governed by and construed in accordance with the laws of the State of Michigan.
MUTUAL NON-DISPARAGEMENT - The parties agree that they will represent each other's business in a positive light and not disparage or in any way communicate to any person (including, but not limited to, any customer, vendor, sponsor or news media) any negative information or opinion concerning the business of the other party or the Event. In the event of the violation of this provision, the other party shall be entitled to injunctive relief (including a cease and desist order) and equitable relief (including damages for defamation and/or tortious interference with business relationship).
ASSIGNMENT - The parties' rights and obligations under this Contract shall not assignable without permission of the other party.
The arbitrators shall not be empowered to award attorney's fees, costs and expenses of arbitration to any party. Arbitration shall commence by the written demand of any party, served upon the other party as notice is required to be served under this Contract.
NO THIRD PARTY RIGHTS - These Exhibitors Regulations govern the conduct of exhibitors at the Event and are not to be construed as conferring any right or benefit upon any third party.
SAMPLING - All exhibitors must comply with sampling and alcohol policies of the facility at exhibitor's expense.
ACCEPTANCE-This document shall not constitute a contract between the parties until acceptance by Show Management.
By selecting the accept option, I am agreeing to the TERMS AND CONDITIONS stated above.


Grand Prix Minneapolis 2014 finalist Andrew Huska is playing his first Grand Prix in years and is off to a scorching hot start with Izzet Phoenix.
Where have you been since finishing 2nd at a GP?
I went to the Pro Tour, flew to Seattle for a GP, didn't do well, missed Day 2 and then didn't go to any GPs for about 3 years.
You're coming for this one because it's local?
I'm coming because it's local. I've been vending at a couple of GPs for the last year or so. Really wanted to play the hometown GP and kind of just started to make my preparation. It's my favourite format: Modern. And I have the fire again because we're degens. Magic is great. Arena is awesome.
And I'm hearing you think you're playing the best version of the best deck?
It is not close the best deck in Modern. It's what you should be playing. If you want to win and you think you are good enough to learn all the interactions and you know the format, you should be playing this deck because it is the best deck. You have game against everything. Even your "bad matchups" are not that bad if you know how to navigate them properly. You see more cards than your opponent which means you make more decisions. The deck is awesome and also there's these busted draws where you put 2 Phoenixes in play on turn 3 and they're just dead in 3 turns cause… Modern.
So what makes your version the best version?
I'm doing something kind of controversial though GerryT wrote about it on Friday and Todd Anderson has been kind of an advocate for this. I'm playing 0 Crackling Drakes in my deck. I'm playing 3 Pyromancer Ascensions in my deck with an Echoing Truth main and a Snapcaster Mage. Pyromancer Ascension is the best card in the mirror and it lets you snowball against the randomness that is in Modern. I played against Merfolk today. I just played an Ascension, took a hit, went down to about 6, played my 4th land and all of a sudden I was able to wrath their board cause I had an active Ascension.
It also gives you a lot of play in matchups that aren't about Phoenix or Thing in the Ice. It gives you an alternate win condition game 1. It makes the deck more susceptible to Rest in Peace and Leyline of the Void post-board, however most people just aren't playing those cards. There's not a lot of decks that can play it outside of UW.
This means you're more resilient to Surgical Exctration right?
Yes. Once you cast a Faithless Looting and you put an Opt and a Serum Visions in your graveyard with an Ascension, your opponent doesn't have a really good target with Surgical Extraction. You're so diverse with your cantrips. Surgical is still good against the Phoenix plan.
What do you think of the Whir matchup?
I think the Whir matchup is better than Lantern one. Lantern gets to see Shatterstorm coming. Whir usually doesn't, so I'm playing Shatterstorm, Abrades and Ceremonious Rejections with a Snapcaster. Pyromancer Ascension is another really important card in that matchup because it gets around Chalice at 1. I think I'm pretty confident in the Whir matchup because I've played it a lot. I know where I am at. It is not favourable by any means. I would say I am a dog in the matchup, especially G1 if I don't hit their Bridge with a Thought Scour. It's not as bad as people say it is. It's not doom and gloom. And even Burn, I feel confident playing against Burn too. No sideboard cards for Burn. Just Spell Pierces and Abrades. The bad matchups are less bad than they are told in the hivemind.
Shutouts to Daniel Fournier. Without his 2 articles on how to play the deck, I wouldn't be doing as well as I am today.


Back in July, I told you all about a special opportunity to give back, and boy did you take it and run with it. Jasper House is a program in Haiti that provides resources and healing for women who have been abused and traumatized. Until Jasper House was founded in 2015, there were virtually no resources for women facing assault or abuse. That was a major issue, considering 1 in 3 women in Haiti ages 15-49 have experienced sexual and/or physical violence.
The Healing Centre at Jasper House was founded in 2015, and here women are provided with therapies such as counseling, art, yoga, and self defense so they can heal, restore their self worth and be empowered to transform their lives. They weren't merely a safe home, the Healing Centre was a place where hope is restored and new life begins to take root.
Since 2015, Jasper House has grown! The majority of the women at Jasper House were over the age of eighteen and had reached an average academic level of second grade. There were no adult alternative education options in Haiti so Jasper House created one. The Women's Academy for Learning provides basic education and literacy in addition to 3 vocational tracks so that the women are able to support themselves and have professional careers.
Their most recent program is Rise and Empower, a type of non-profit business that employs people and earns income in order to help address perceived social or environmental issues. With the creation of handcrafted clothing and accessories, made primarily with locally sources materials, R&E is a business that will not only provide cutting edge fashion pieces that will long outlast the trends, but will also provide our women long-term sustainable income, empowering them to take back the keys of autonomy and independence for their lives.
Jasper House recently expressed the need for a Tap-tap. What's a Tap-Tap you might ask? A Tap-Tap is a painted bus that is used to transport people around Haiti.
Jasper House currently has no form of consistent, reliable and safe transportation for their students to and from school. Having a Tap-Tap would increase educational performance by decreasing the amount of class time missed due to the lack of safe transport.
They began raising money for a Tap-Tap in June and were about 25% of the way to their goal.
We wanted to pitch in so that they could be closer to their goal by the start of the new school year. I announced my plan for the Tap-Tap minis, and you guys responded! Through all of our lovely mini sessions, we were able to donate $1800 to the Jasper House Tap-Tap fund! That was only possible through YOU wonderful people! We can't thank you enough for your willingness to give back.
If you missed out on the mini sessions, don't fret! Jasper House is still accepting donations for their Tap-Tap fund, and you can find that by clicking the button below. Just click on the drop down menu and choose the Tap-Tap fund.
Another great way to help out is to purchase a t-shirt from Jasper House! They recently launched the release of their 'Tomorrow is for Women' t-shirt, and all the proceeds from the t-shirt sales will go directly to the Tap-Tap fund. Go get you one! Just click below to check it out.


In it's simplest form: honestly admitting, to ourselves, first of all, what we feel, think & have done - or - not. (Review T.E.A. - Thoughts, Emotions, Actions, pg 54 ) "I cannot tell a lie - I chopped down the apple tree". Abe Lincoln. And if possible, acknowledge these without judgment, without shame, without guilt. MOST of ALL - without self-hate.
✶ it makes us more reliable, trustworthy & likable!
✶ it allows us to get more of what we want in the world. NOT BAD, huh?
✶ Comment on Step 10: This is often misused by ACoAs in the service of perpetuating our self-hate -- seeing everything we do as wrong (sorry, sorry, sorry!), which is NOT what it says. Rather: "...and, when we were wrong..." which is not all of the time.
ACoAs think that telling everyone they meet ALL their flaws, trauma & problems, in great detail, is being honest & responsible. NOT.
✶ Comment on Step 9: A much neglected part is at the end: ''...except when to do so..." Sometimes telling an aggrieved person what we've done or said is not a responsible action & will only do everyone harm.
EXP: A husband loves his wife & kids, & doesn't want to lose them, but is nevertheless unfaithful. He's filled with guilt, & tries to stop, but doesn't; he wants to tell his wife, but knows if he does, she'll leave.
ACoAs were trained from birth to only focus on others instead of ourselves. We never learned to 'keep the focus on yourself" which is another way to say - be responsible for our own T-thoughts, E-emotions & A-actions.
For the 'full monty' on this, see the posts on 'Rescuing', and 'Healthy Helping'.
▼ Being respectful & kind - which comes from the Healthy Adult, is NOT co-dependence, which comes from the wounded IC.
➼ Consider how you'd like to be treated & then do likewise to others, whenever possible, without hurting yourself!
Q: How do you act responsibly in your life?
specializing in ACoA RECOVERY (adult-children of alcoholics & other narcissists).
For Testimonials, go to www.acoarecovery.com ("About Me"


Trigger Finger is another common condition. It can occur at any age. It is most common, however, in diabetics and mature individuals with arthritis.
The cause is the formation of a small nodule or lump on the flexor tendon in the palm of the hand at the base of the finger. As the lump grows, it begins to catch on a pulley system that holds the tendons in the finger in position. This produces tenderness or soreness, and, soon enough, becomes a catching or triggering sensation when the finger is straightened. It may cause a complete locking of the finger in the palm so that the finger must be manually straightened.
In about 75% of the cases, however, patients quickly recover with one or two cortisone injections. When surgery is required, it is done under local anesthesia.
Our physicians treat Trigger Finger more than any other condition. They have long experience in providing injections in the right location or surgical release as quickly as possible.


Designed to remove oxidation growth and stains and restore a lustrous appearance to bare aluminum. A..
Designed to remove black streaks. This product is safe or use on fiberglass, metal and painted surfa..
A quick and easy, "spray on/wipe off" product that recaptures that "just waxed" look and feel. Excel..
Easy to use, quick acting, non-streaking aerosol glass cleaner that is also effective on chrome, pla..
Designed to remove LIGHT to MEDIUM oxidation, clean, polish, and protect fiberglass/gelcoat and mari..
Designed to restore and polish stainless steel, brass, bronze, copper, chrome, aluminum and other ma..
Designed to clean hard to reach ground dirt and stains on non-skid decks. Safe for use on fiberglass..
Designed to clean, condition, and protect marine vinyl and rubber components. Gel formula gives you ..
Cream type and offers superior performance in removal of marine bottom and topside paints, primers, ..
Easy-to-apply cleaner and polish, ideally suited for stainless steel, chrome, laminated plastics and..
Cleans, shines, conditions and protects vinyl, rubber and plastic surfaces. Deep cleans dirt and gri..
Eliminates odors by completely neutralizing the smell, not masking over it. Simply spray on and the ..
Cleans vinyl, plastic and leather surfaces. Specifically formulated to lift dirt, scum (even suntan ..
100% UV Protection for vinyl, leather and rubber surfaces. Moisturizes these surfaces and reduces cr..
Pure Wax - easy to use: spray on - rub in - wipe off application. Provides superior protection from ..
95% cleaner, 5% protectant. Cleans vinyl, leather and carpet surfaces and excels as a de-waxing agen..
Patented. One-step aqueous oil-water soluble bilge cleaner that breaks down oil, grease and grime in..
Designed for outboard marine shops. Absorbs oil, water, grease into suspension. Removes oil slick fr..
The professionals' choice for protecting and maintaining isinglass, plexiglas and vinyl. Anti-static..
A one-step formula to remove deep scratches in lexan, plexiglas & lucite, is an extremely mild abras..
Contains UV and mildew resistant agents and will last a year even in the most harsh conditions. Wate..
Super concentrated, professional strength formula dissolves and eliminates grease, oil, fuel, scum, ..
Industrial strength, biodegradable, multi-purpose remover that safely and effectively removes black ..
One step. A proprietary high-tech cleaner wax designed for the toughest jobs! Removes medium oxidati..
Remove ugly spider and bird droppings with Armada Spider Fighter. The concentrated citrus power elim..
Leather/vinyl wax pint Size: Pint..
Collinite liquid metal wax pt. Size: Pint..
Aluminum, Stainless & ChromeMakes all metals shine better than new. One application cleans, waxes, p..
One step cleaner wax with Carnauba. Protects against UV light. Removes oxidation. Recognized as a pr..
Aluminex bottom cleaner - qt. Size: Quart..
Aluminex clean & shine Size: Quart..
Big bully bilge cleaner - gl. Size: Gallon..
Big bully bilge cleaner - qt. Size: Quart..
Black streak remover - quarts Size: Quart..
Cleaner rubber vinyl etc qt Size: 32 oz. Spray..
Cleaner wax 16 oz. Size: 16 oz. Tub..
Cleaning detail qt. Size: Quart..


text:
package ds.framework.v4.common;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.RandomAccessFile;
import java.text.Collator;
import java.text.NumberFormat;
import java.util.Calendar;
import java.util.Currency;
import java.util.Locale;
import java.util.TimeZone;

import android.app.Activity;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.content.res.AssetManager;
import android.database.Cursor;
import android.graphics.Shader;
import android.graphics.Typeface;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.os.Handler;
import android.text.Html;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.View.OnTouchListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;
import ds.framework.v4.Global;
import ds.framework.v4.Settings;
import ds.framework.v4.widget.MiniListView;

public class Common {

    final static public int SEND_EMAIL_ACTION_CODE = 50445;

	/**
	 *
	 * @param context
	 * @param url
	 */
	public static void openInBrowser(Context context, String url) {
		try {
			if (url.contains("mailto:")){
			    Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
			  	context.startActivity(intent);
			  	return;
			}
		} catch(Throwable e) {
			Debug.logException(e);
		}
		Uri uri = createHttpUri(url);
		Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        context.startActivity(intent);
	}

	/**
	 *
	 * @param activity
	 * @param url
	 * @param requestCode
	 */
	public static void openInBrowser(Activity activity, String url, int requestCode) {
		Uri uri = createHttpUri(url);
		Intent intent = new Intent(Intent.ACTION_VIEW, uri);
		activity.startActivityForResult(intent, requestCode);
	}

    /**
     *
     * @param url
     * @return
     */
	public static boolean isDocument(String url) {
		try {
			if (!url.contains("docs.google.com")) {
				url = url.split("\\?")[0];
		    	if (url.endsWith(".pdf") || url.endsWith(".PDF") || url.endsWith(".doc") || url.endsWith(".DOC") ||
		    			url.endsWith(".xls") || url.endsWith(".XLS")) {
		    		return true;
		    	}
			}
		} catch(Throwable e) {
			;
		}
		return false;
	}

	/**
	 *
	 * @param url
	 * @return
	 */
	public static Uri createHttpUri(String url) {
		if (url.length() < 8 || !"http://".equals(url.substring(0, 7)) && !"https://".equals(url.substring(0, 8))) {
			url = "http://" + url;
        }
        return Uri.parse(url);
	}

	/**
	 *
	 * @param context
	 * @param packageName
	 * @return
	 */
	public static Intent getAppOpenIntent(Context context, String packageName) {
		return getAppOpenIntent(context, packageName, -1);
	}

	/**
	 *
	 * @param context
	 * @param packageName
	 * @param minVersionCode
	 * @return
	 */
	public static Intent getAppOpenIntent(Context context, String packageName, int minVersionCode) {
		PackageManager pm = context.getPackageManager();

		Intent intent = new Intent("android.intent.action.MAIN");
        intent.addCategory("android.intent.category.LAUNCHER");
		for(ResolveInfo ri : pm.queryIntentActivities(intent, 0)) {
			if (ri.activityInfo.packageName.equals(packageName)) {
				try {
					if (minVersionCode != -1 && pm.getPackageInfo(packageName, 0).versionCode < minVersionCode) {
						return null;
					}
				} catch (NameNotFoundException e) {
					// wont happen but still;
					return null;
				}

					// create intent
				intent = new Intent("android.intent.action.MAIN");
				intent.setComponent(new ComponentName(packageName, ri.activityInfo.name));
				intent.addCategory("android.intent.category.LAUNCHER");
				return intent;
			}
		}
		return null;
	}

	/**
	 * open market at app's details screen
	 *
	 * @param context
	 * @param packageName
	 */
	public static void openMarket(Context context, String packageName) {
		Intent intent = new Intent(Intent.ACTION_VIEW);
		intent.setData(Uri.parse("market://details?id=" + packageName));
		context.startActivity(intent);
	}

	/**
	 * open market at app's details screen
	 *
	 * @param context
	 * @param marketUrl
	 * @param dummy
	 */
	public static void openMarket(Context context, String marketUrl, boolean dummy) {
		Intent intent = new Intent(Intent.ACTION_VIEW);

		intent.setData(Uri.parse(marketUrl));
		context.startActivity(intent);
	}

	/**
	 * open app or market at app's details screen if app not installed
	 *
	 * @param context
	 * @param packageName
	 * @param minVersion
	 */
	public static void openAppOrMarket(Context context, String packageName, int minVersion) {
		Intent i = getAppOpenIntent(context, packageName, minVersion);
		if (i != null) {
			context.startActivity(i);
		} else {
			openMarket(context, packageName);
		}
	}

	/**
	 * open app or market at app's details screen if app not installed
	 *
	 * @param context
	 * @param packageName
	 * @param minVersion
	 */
	public static void openAppOrMarket(Context context, Intent i, String packageName, int minVersion) {
		if (i != null) {
			context.startActivity(i);
		} else {
			openMarket(context, packageName);
		}
	}

	abstract public static class AppResultCallback implements Runnable {

		protected Object mResult;

		public void setResult(int result) {
			mResult = result;
		}

	}

	/**
	 * start phone
	 *
	 * @param context
	 * @param phoneNumber
	 */
	public static void startPhoneCallingDialog(Context context, String phoneNumber) {
		try {
			context.startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phoneNumber)));
		} catch(Throwable e) {
			Debug.logException(e);
		}
	}

	/**
	 * start email - context must be an activity if you want to add attachments
	 *
	 * @param context
	 * @param emails
	 * @param subject
	 * @param defaultMessage
	 */
	public static void startSendingEmail(Context context, String[] emails,
			String subject, String defaultMessage, Uri... attachments) {
		final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

		emailIntent.setType("plain/text");
		emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, emails);
		emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, Html.fromHtml(subject).toString());
		emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(defaultMessage));

		if (attachments != null && attachments.length > 0) {
            for(Uri attachment : attachments) {
                emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, attachment);
            }
            emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            ((Activity) context).startActivityForResult(Intent.createChooser(emailIntent, "Send mail..."), SEND_EMAIL_ACTION_CODE);
        } else {
			context.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
		}
	}

	/**
	 * to fix tile mode bug
	 *
	 * @param view
	 */
	public static void fixTiledBackground(View view) {
		try {
			fixTiledDrawable((BitmapDrawable) view.getBackground());
		} catch(ClassCastException e) {
			;
		}
	}

	/**
	 * to fix tile mode bug
	 *
	 * @param tiled
	 */
	public static void fixTiledDrawable(BitmapDrawable tiled) {
		if (tiled == null) {
			return;
		}
		tiled.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
	}

	/**
	 * validate email
	 *
	 * @param string
	 * @return
	 */
	public static boolean checkEmail(String string) {
		return string.matches("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$");
	}

	/**
	 * copy from assets
	 *
	 * @param context
	 * @param assetDirOrFile
	 * @param targetPath
	 * @throws IOException
	 */
	public static void copyFromAssets(Context context, String assetDirOrFile,
			String targetPath) throws IOException {

	    AssetManager assetManager = context.getAssets();
	    String assets[] = null;

        assets = assetManager.list(assetDirOrFile);
        if (assets.length == 0) {
            copyFileFromAsset(context, assetManager, assetDirOrFile, targetPath);
        } else {
        	if (targetPath != null && targetPath.length() > 0) {
	        	File fTargetPath = new File(targetPath);
	            if (!fTargetPath.exists()) {
	            	fTargetPath.mkdir();
	            }
        	}
            for (int i = 0; i < assets.length; ++i) {
                copyFromAssets(context, assetDirOrFile + "/" + assets[i],
                		targetPath + "/" + assets[i]);
            }
        }
	}

	public static void createDirStructureFromAssets(Context context, String assetDir,
			String targetPath) throws IOException {

	    AssetManager assetManager = context.getAssets();
	    String assets[] = null;

        assets = assetManager.list(assetDir);
        if (assets.length != 0) {
        	if (targetPath != null && targetPath.length() > 0) {
	        	File fTargetPath = new File(targetPath);
	            if (!fTargetPath.exists()) {
	            	fTargetPath.mkdir();
	            }
        	}
            for (int i = 0; i < assets.length; ++i) {
            	createDirStructureFromAssets(context, assetDir + "/" + assets[i],
                		targetPath + "/" + assets[i]);
            }
        }
	}

	public static void copyFileFromAsset(Context context, AssetManager assetManager, String assetFile,
			String targetFilePath) throws IOException {

	    InputStream in = null;
	    OutputStream out = null;

        in = assetManager.open(assetFile);
        out = new FileOutputStream(targetFilePath);

        byte[] buffer = new byte[1024];
        int read;
        while ((read = in.read(buffer)) != -1) {
            out.write(buffer, 0, read);
        }
        in.close();
        in = null;
        out.flush();
        out.close();
        out = null;
	}

	public static void deleteDirRec(String dirPath) {
		File fDirPath = new File(dirPath);
        if (!fDirPath.exists()) {
        	return;
        }
        String[] fileOrDirs = fDirPath.list();
        if (fileOrDirs.length > 0) {
        	for(int i = 0; i < fileOrDirs.length; ++i) {
        		deleteDirRec(dirPath + "/" + fileOrDirs[i]);
        	}
        }
        fDirPath.delete();
	}

	/**
	 * remove every view from a viewgroup
	 *
	 * @param vg
	 */
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public static void removeAllViewsRec(ViewGroup vg) {
		final int cnt = vg.getChildCount();
		for(int i = 0; i < cnt; ++i) {
			final View child = vg.getChildAt(i);
			child.setBackgroundDrawable(null);
			if (child instanceof ViewGroup) {
				removeAllViewsRec((ViewGroup) child);
			} else if (child instanceof ImageView) {
				((ImageView) child).setImageDrawable(null);
			}
			if (child instanceof MiniListView) {
				((MiniListView) child).setAdapter(null);
			}
			if (child instanceof AdapterView) {
				((AdapterView) child).setAdapter(null);
			}
		}
		vg.removeAllViewsInLayout();
	}

    /**
     *
     * @param a
     * @param editResource
     */
	public static void showKeyboard(Activity a, int editResource) {
		View edit = a.findViewById(editResource);
		InputMethodManager mgr = (InputMethodManager) ((Context) a).getSystemService(Context.INPUT_METHOD_SERVICE);
		mgr.showSoftInput(edit, InputMethodManager.SHOW_IMPLICIT);
	}

    /**
     *
     * @param a
     * @param editResource
     */
	public static void hideKeyboard(Activity a, int editResource) {
		hideKeyboard(a, a.findViewById(editResource));
	}

    /**
     *
     * @param context
     * @param v
     */
	public static void hideKeyboard(Context context, View v) {
		try {
			InputMethodManager mgr = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
			mgr.hideSoftInputFromWindow(v.getWindowToken(), 0);
		} catch(Exception e) {
			;
		}
	}

	/**
	 *
	 * @param a
	 */
	public static void hideKeyboard(Activity a) {
		InputMethodManager im = (InputMethodManager) a.getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
		im.hideSoftInputFromWindow(a.getWindow().getDecorView().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
	}

	public static void postFromThread(final Runnable runnable) {
		final Handler handler = new Handler();

		new Thread() {

			@Override
			public void run() {
				handler.post(runnable);
			}
		}.start();
	}

	/**
	 * post message from thread
	 *
	 * @param context
	 * @param handler
	 * @param messageRes
	 */
	public static void postMessageFromThread(final Context context, Handler handler, int messageRes) {
		postMessageFromThread(context, handler, context.getString(messageRes));
	}

	/**
	 * post message from thread
	 *
	 * @param context
	 * @param handler
	 * @param message
	 */
	public static void postMessageFromThread(final Context context, Handler handler, final String message) {
		handler.post(new Runnable() {
			@Override
			public void run() {
				try {
					toastMessage(context, message);
				} catch(Exception e) {

					// just closed app?
					;
				}
			}
		});
	}

	/**
	 * open soft keyboard
	 *
	 * @param context
	 * @param view
	 */
	public static void openKeyboard(Context context, View view) {
		InputMethodManager mgr = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
		mgr.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
	}

	/**
	 * close soft keyboard
	 *
	 * @param context
	 * @param view
	 */
	public static void closeKeyboard(Context context, View view) {
		InputMethodManager mgr = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
		mgr.hideSoftInputFromWindow(view.getWindowToken(), 0);
	}

	/**
	 *
	 * @param number
	 * @param currency
	 * @return
	 */
	public static String formatByCurrency(float number, String currency) {
		try {
			Currency cur = Currency.getInstance(currency);
			NumberFormat format = NumberFormat.getCurrencyInstance(Settings.getLocale());
			format.setCurrency(cur);
			final int digits = cur.getDefaultFractionDigits();
			format.setMinimumFractionDigits(digits);
			format.setMaximumFractionDigits(digits);

			final String ret = format.format(number);

			return ret;
		} catch(Throwable e) {
			return String.valueOf(number) + currency;
		}
	}

	/**
	 * format number by currency
	 *
	 * @param number
	 * @param currency
	 * @return
	 */
	public static String formatNumberByCurrency(Object number, String currency) {
		try {
			return formatNumberByCurrency(number, Currency.getInstance(currency));
		} catch(Exception e) {
			return number.toString();
		}
	}

	/**
	 *
	 * @param number
	 * @param currency
	 * @param fractionDigits
	 * @return
	 */
	public static String formatNumberByCurrency(Object number, String currency, int fractionDigits) {
		try {
			return formatNumberByCurrency(number, Currency.getInstance(currency), fractionDigits);
		} catch(Exception e) {
			return number.toString();
		}
	}

	/**
	 * format number by currency
	 *
	 * @param number
	 * @param currency
	 * @return
	 */
	public static String formatNumberByCurrency(Object number, Currency currency) {
		return formatNumberByCurrency(number, currency, currency.getDefaultFractionDigits());
	}

	/**
	 *
	 * @param number
	 * @param currency
	 * @param fractionDigits
	 * @return
	 */
	public static String formatNumberByCurrency(Object number, Currency currency, int fractionDigits) {
		NumberFormat nf;
		nf = NumberFormat.getInstance();
		try {
			nf.setCurrency(currency);
			nf.setMinimumFractionDigits(fractionDigits);
			nf.setMaximumFractionDigits(fractionDigits);
			return nf.format(number);
		} catch(Exception e) {
			return number.toString();
		}
	}

	/**
	 *
	 * @param number
	 * @param fractionDigits
	 * @return
	 */
	public static String formatNumber(Object number, int fractionDigits) {
		NumberFormat nf;
		nf = NumberFormat.getNumberInstance();
		nf.setMinimumFractionDigits(fractionDigits);
		nf.setMaximumFractionDigits(fractionDigits);
		return nf.format(number);
	}

	/**
	 *
	 * @param left
	 * @param right
	 * @param locale
	 * @param caseSensitive
	 * @return
	 */
	public static int compareLettersAccentSame(String left, String right, Locale locale, boolean caseSensitive) {
		Collator collator = Collator.getInstance(locale);
		if (!caseSensitive) {
			left = left.toUpperCase(locale);
			right = right.toUpperCase(locale);
		}
		collator.setStrength(Collator.PRIMARY);
		return collator.compare(left, right);
	}

	/**
	 *
	 * @param context
	 * @param msg
	 */
	public static void toastMessage(Context context, String msg) {
		try {
			Toast t = Toast.makeText(context, msg, Toast.LENGTH_LONG);
			((TextView) ((ViewGroup) t.getView()).getChildAt(0)).setGravity(Gravity.CENTER);
			t.show();
		} catch (Exception e) {
			Debug.logException(e);	// closed app just before this
		}
	}

	/**
	 *
	 * @param context
	 * @param msgResId
	 */
	public static void toastMessage(Context context, int msgResId) {
		try {
			Toast t = Toast.makeText(context, msgResId, Toast.LENGTH_LONG);
			((TextView) ((ViewGroup) t.getView()).getChildAt(0)).setGravity(Gravity.CENTER);
			t.show();
		} catch (Exception e) {
			Debug.logException(e);	// closed app just before this
		}
	}

	/**
	 *
	 * @param root
	 * @param font
	 */
	public static void setTypefaceRec(View root, Typeface font) {
		if (root instanceof ViewGroup) {
			for(int i = 0; i < ((ViewGroup) root).getChildCount(); ++i) {
				setTypefaceRec(((ViewGroup) root).getChildAt(i), font);
			}
		} else if (root instanceof TextView) {
			((TextView) root).setTypeface(font);
		}
	}

	/**
	 * serialize object
	 *
	 * @param o
	 * @return
	 */
	public static byte[] serializeObject(Object o) {
	    ByteArrayOutputStream bos = new ByteArrayOutputStream();

	    try {
	      ObjectOutput out = new ObjectOutputStream(bos);
	      out.writeObject(o);
	      out.close();

	      // Get the bytes of the serialized object
	      byte[] buf = bos.toByteArray();

	      return buf;
	    } catch(IOException e) {
	      e.printStackTrace();
	      return null;
	    }
	}

	/**
	 * deserialize object
	 *
	 * @param b
	 * @return
	 */
	public static Object deserializeObject(byte[] b) {
	    try {
	      ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(b));
	      Object object = in.readObject();
	      in.close();

	      return object;
	    } catch(ClassNotFoundException e) {
	      e.printStackTrace();
	      return null;
	    } catch(IOException e) {
	      e.printStackTrace();
	      return null;
	    }
	}

	public static boolean hasExternalStorage() {
		String state = Environment.getExternalStorageState();
		return (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state));
	}

	/**
	 * read a file
	 *
	 * @param file
	 * @return
	 * @throws IOException
	 */
	public static byte[] readFile(String file) throws IOException {
        // Open file
		RandomAccessFile f = null;
		byte[] data = null;
		try {
        	f = new RandomAccessFile(new File(file), "r");

            // Get and check length
            long longlength = f.length();
            int length = (int) longlength;
            if (length != longlength) throw new IOException("File too big");

            // Read file and return data
            data = new byte[length];
            f.readFully(data);
            return data;
        } catch(Exception e) {
        	e.printStackTrace();
        }

    	if (f != null) {
    		f.close();
    	}

		return data;
    }

	/**
	 * for locations
	 *
	 * @return
	 */
	public static long getCalendarTimeInMillisUTC() {
		Calendar calendar = Calendar.getInstance();
		calendar.setTimeZone(TimeZone.getTimeZone("UTC"));
		return calendar.getTimeInMillis();
	}

	/**
	 * calendar base uri - different from among phones
	 *
	 * @return
	 */
	public static String getCalendarUriBase() {
		final Activity activity = Global.getCurrentActivity();

		String calendarUriBase = null;
		Uri calendars = Uri.parse("content://calendar/calendars");
		Cursor managedCursor = null;
		try {
			managedCursor = activity.managedQuery(calendars, null, null, null, null);
		} catch (Exception e) {
			try {
				calendars = Uri.parse("content://calendarEx/calendars");
				managedCursor = activity.managedQuery(calendars, null, null, null, null);
			} catch (Exception ex) {}
		}
		if (managedCursor != null) {
			calendarUriBase = calendars.toString().replace("/calendars", "");
		} else {
			calendars = Uri.parse("content://com.android.calendar/calendars");
			try {
				managedCursor = activity.managedQuery(calendars, null, null, null, null);
			} catch (Exception e) {}
			if (managedCursor != null) {
				calendarUriBase = "content://com.android.calendar/";
			}
		}

		return calendarUriBase;
	}

    /**
     * put event to default calendar
     *
     * @param context
     * @param title
     * @param description
     * @param startInMillis
     * @param endInMillis
     * @return
     */
	public static Long putIntoDefaultCalendar(Context context, String title, String description,
			long startInMillis, long endInMillis) {
		ContentValues event = new ContentValues();

		try {
			final String cBase = getCalendarUriBase();

			ContentResolver cr = context.getContentResolver();
			Cursor cursor = cr.query(Uri.parse(cBase + "calendars"),
					(new String[] { "_id" }), null, null, null);
			cursor.moveToLast();
			final int cid = Integer.parseInt(cursor.getString(0));

			event.put("calendar_id", cid);
			event.put("title", title);
			event.put("description", description);
			event.put("dtstart", String.valueOf(startInMillis));
			event.put("dtend", String.valueOf(endInMillis));
			event.put("eventTimezone", IDate.getDefaultTimeZone().getID());

			Uri eventUri = cr.insert(Uri.parse(cBase + "events"), event);
			return Long.parseLong(eventUri.getLastPathSegment());
		} catch(Throwable e) {
			return null;
		}
	}

	/**
	 * remove from calendar by id
	 *
	 * @param context
	 * @param calId
	 * @return
	 */
	public static Integer removeFromDefaultCalendar(Context context, Long calId) {
		try {
			final String cBase = getCalendarUriBase();
			ContentResolver cr = context.getContentResolver();

			int iNumRowsDeleted = 0;

			try {
				Uri eventUri = ContentUris.withAppendedId(Uri.parse(cBase + "events"), calId);
				iNumRowsDeleted = cr.delete(eventUri, null, null);
			} catch(Throwable e) {
				;
			}

	        if (iNumRowsDeleted == 0) {

	        	// maybe another method?
	        	final Cursor cursor = cr.query(Uri.parse(cBase + "events"), new String[]{ "_id" },     "calendar_id=" + calId, null, null);
	            do {
	                long eventId = cursor.getLong(cursor.getColumnIndex("_id"));
	                cr.delete(ContentUris.withAppendedId(Uri.parse(cBase + "events"), eventId), null, null);
	                ++iNumRowsDeleted;
	            } while(cursor.moveToNext());
	            cursor.close();
	        }

	        return iNumRowsDeleted;
		} catch(Throwable e) {
			return null;
		}
	}

	/**
	 *
	 * @param v
	 * @return
	 */
	public static void enableListViewInScrollView(View v) {
		final ScrollView parent = findScrollViewParent(v);
		if (parent == null) {
			return;
		}
		v.setOnTouchListener(new OnTouchListener() {

		    @Override
		    public boolean onTouch(View v, MotionEvent event) {
		    	parent.requestDisallowInterceptTouchEvent(true);
		    	return false;
		    }
		});
	}

	/**
	 *
	 * @param v
	 * @return
	 */
	public static ScrollView findScrollViewParent(View v) {
		final ViewParent parent = v.getParent();
		if (parent == null || !(parent instanceof View)) {
			return null;
		}
		if (parent instanceof ScrollView) {
			return (ScrollView) parent;
		}

		return findScrollViewParent((View) parent);
	}

	/**
	 *
	 * @return
	 */
	public static int getActionBarHeight(Context context) {
		int actionBarHeight = 0;
		TypedValue tv = new TypedValue();
		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
			if (context.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv,
					true))
				actionBarHeight = TypedValue.complexToDimensionPixelSize(
						tv.data, context.getResources().getDisplayMetrics());
		} else {
			actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,
					context.getResources().getDisplayMetrics());
		}
		return actionBarHeight;
	}
}

redpajama_set_name: RedPajamaGithub


text:
Bidvest Wits F.C.
Bidvest Wits Football Club, not to be confused with Wits University Football Club, is a South African football club based in the Braamfontein suburb of the city of Johannesburg that currently plays in the Premier Soccer League. It is nicknamed "The Clever Boys" or "The Students" because of the close affiliation with the University of the Witwatersrand.
The club has its roots at Wits University in Johannesburg, where it was formed in 1921 by the university's Students Representatives Council. The club competed in a variety of tournaments and leagues before eventually winning promotion to the National Football League in 1975 - then South Africa's top domestic league.
During the 1970s the club produced some of South Africa's finest players - amongst them goalkeeper Gary Bailey, who went on to play for Manchester United and England and defender Richard Gough, who later played for Rangers, Everton and Scotland.
The club won their first major title in 1978 - winning the Mainstay Cup after beating Kaizer Chiefs in the final of the competition. Six years later they picked up the BP Top 8, and a year later in 1985 they again beat Chiefs, this time in the final of the JPS Knockout Cup. The club finished 6th in the inaugural NSL season in 1985 while Scottish striker Frank McGrellis was crowned the league's top scorer with a total of 29 league and cup goals.
This page contains text from Wikipedia, the Free Encyclopedia -	https://wn.com/Bidvest_Wits_F.C.
TCOS: Gavin Hunt's Future & Bidvest Wits Sale To TTM
source: The Controversy On Sport:
Bidvest Wits coach and 3-time PSL winner Gavin Hunt opens up about money
source: Other Peoples Money
BIDVEST IN HUNT OF PSL AS GAVIN LOOKS ON
source: Diski Vibes
Bidvest ups dividend, on the lookout for new acquisitions
source: SAfm Market Update with Moneyweb
source: Scary Story Podcast
source: DEFROST
source: Short Cuts
source: Don't Let It Go
source: Terrible, Thanks For Asking
source: Simple Music, Simple Enjoyment
source: Kaleo Church
BE a witness
source: You&GOD
source: WithPurpose
source: River Vale Community Church
source: SMLU of Canton Sermons
source: CPBC Weekly Sermons
No Witnesses
source: Loudpack Jax's show
source: All In My Head
source: MyNewLifeChurch.com
source: Good Shepherd Presbyterian Sermons (Charlotte, NC)


In an online satisfaction survey, each question must be useful and to the point, especially on channels where respondents want things simple and fast. Creating an online satisfaction survey requires ample preparation as well as a good working knowledge of the different types of questions that can be posed. In this article, we'll cover in detail the practice of asking the right questions at the right time.
Your survey will be carried out on the internet. You're surely aware by now that internet users are short on time and expect things to be made as simple for them as possible. Your survey must, therefore, adapt to the demands of these users by minimizing the effort that is required of them.
Always keep in mind that your survey respondents are doing you a tremendous service and that your role is to make whatever it is you're asking of them as effortless as possible.
To achieve this, avoid technical vocabulary (shop talk, marketing jargon) as well as words that carry ambiguous meaning (e.g. "good" or "nice"). Your customer certainly does not have the same product knowledge as you, the product owner, does. It is also best to avoid long-winded questions (a question should not exceed one line or, at most, a line and a half). To simplify the job of reading for the reader, consider also highlighting important keywords using a specific font. Words relating to time, such as adverbs of frequency, are very subjective (e.g. occasionally, etc.) so you need to use them with caution. To avoid the risk of subjectivity, don't hesitate to provide context for the responses. Another thing to stay away from are negations, and especially stay away from double negatives. And lastly, we advise you to be careful with polysemy (when one question can have two meanings); keep in mind, that the goal is to collect one distinct data point per question.
The fewer questions you ask, the better your response rate. It is therefore essential to prioritize your questions, as not all of them are necessarily useful. At Critizr, we believe that respondents should not have to fill out more than 10 questions. However, this does not necessarily mean that your survey should not exceed 10 questions. Have you thought about including questions that are based off of the answers to previous questions' answers? This could help you to avoid asking unnecessary or inappropriate questions in certain cases! This is an important point if you take into account the respondent and their limited online attention span. You may also ask the respondent to skip a question if it is not important or if it does not apply to all cases. If your question allows for it, don't hesitate to pre-fill the answer, thus setting it up so that the respondent merely needs to validate the response and perhaps add a personal touch via a testimonial/verbatim.
Questions can take different forms, each of which can measure results in different ways. It is therefore important to think carefully about the format of the questions you include.
Dichotomous choice questions: fixed-alternative question that can only be answered in one of the two indicated ways (e.g. yes or no; agree or disagree, etc.). This form has the advantage of being simple and at the same time allowing for less nuanced responses. It is therefore not advised to use it for questions involving judgement.
Multiple choice/single answer questions (example: marital status): This type of question is prevalent in surveys and quite handy for collecting data pertaining to market segmentation.
Multiple-dichotomous choice questions: The respondent may select several responses from the proposed choices. This method should be reserved for certain questions for which several possible choices can be made from the given answers.
Open questions: The individual is free to answer as they wish in however many words they wish. The advantage is to receive a thorough view of the respondent's perspective. Open questions allow you to receive verbatim customer feedback, which is extremely useful for customer knowledge. The one drawback is that verbatim information is more complicated to structure and to take advantage of in your relationship marketing campaigns. It is also more time-consuming for the respondent, so open questions must therefore be used sparingly and also be made optional. We recommend placing a single open question at the end of the survey.
Bipolar Likert scale: This is a variation on the Likert scale. Here, it is no longer agreement being measured, rather frequencies, evaluations, etc. For example: Very typical; 1; 2; 3; 4; 5; 6;7; Not at all typical.
Measurement scales are particularly suitable if the objective of your survey is to manage your collaborators. They are much more reliable and nuanced!
Semantic differential scale: Respondents are asked to describe themselves by choosing between two adjectives of opposite meaning.
Graphic rating scale: a graphic representation of choices, using icons such as a happy face and a sad face.
Your online satisfaction survey should be like a funnel, starting from the simplest and most generic, while working toward the most complicated and detailed types of questions. This is a fairly standard and efficient structure, both for online and more traditional mediums. Of course, the structure is flexible depending on the needs of each company. That said, at Critizr, we recommend limiting the number of questions in your survey to 5. Beyond that, you risk losing your reader!
Survey presentation: You should always try to administer your survey to as many people as possible. If your online satisfaction survey is distributed by email, both the subject and the body content should be catchy and reader-friendly. Make sure your customers have a reason to be interested in taking the survey.
Introductory and lead-in questions: These are the generic questions that cover the topic of the study. They should be formulated in such a way that the respondent can answer positively. Your goal here is to commit your customer to filling out the survey. These types of questions should be easy and not require any effort or reflection. In other words, the respondent should be able to answer very quickly.
A tip from Critizr: A simple introduction question such as "Are you satisfied with ________?", with five modalities represented by stars, should serve to engage your customers in the survey. This sort of introductory question typically earns us a high conversion rate among our customers.
Specific questions: Getting into the meaty part of the survey, it's time to start asking the questions that have a bit more detail and complexity. Be careful: on the web, questions should be limited—your customers are short on time and you risk losing them if they deem the survey overly long or complicated. When it comes to surveys administered via push channels (e.g. post-purchase emails), most of our customers complete this phase of the survey with a question about recommendation. For example: "Would you recommend _______ to your friends and family." This is the ultimate question which determines the Net Promoter Score. Placing this question at the end of the survey allows respondents to position themselves more easily because he or she has in the mind the previously mentioned satisfaction criteria (introductory, choice, etc.). Conversely, other companies opt to place the Net Promoter Score recommendation question at the beginning of their surveys in order to maximize their chances of receiving a good rating. In this case, the respondent does not have the chance to spontaneously rethink all the criteria that might have hampered his or her experience, and thus he or she generally gives a better score. Again, this depends on the purpose behind your study: customer knowledge, communication, marketing, etc.
Demographic questions: With these, we are looking to identify our respondents according to various descriptions (gender, age, etc.). You can also use this type of customer information to benefit your relationship marketing campaigns.
Critizr Tip: When a customer's review is attached to their customer record (CRM), the information becomes much more useful and reliable.
At Critizr, our belief is that a online satisfaction survey must be simple, fast, and suited to the needs of each company. To accomplish this, it is important to equip yourself with a flexible tool that can be smoothly integrated into your current structure. This way, you can solicit the customer's feedback through a multitude of channels (email, SMS, website, mobile, etc.) with simplicity and efficiency. Don't hesitate to download our checklist called "Cheat Sheet" for a comprehensive view of the key elements to remember !


Business insurance is, in some cases, compulsory (whilst others are optional) and comes in many forms but examples could be public liability, employers liability, buildings and contents, vehicle, goods in transit or professional indemnity.
Take advice from a good commercial insurance broker who can guide you on the specific requirements for your business. The costs tend not to be too prohibitive, dependent on associated risks and type of activity, but shop around for the best deal.
Using specialist providers for different areas of insurance might be more cost effective and many will offer payment plans to make it easier. Being well insured is essential and, if not, any claim where you aren't covered could spell the end for your business.
All employers must have employers' liability insurance to protect the business from claims from staff that may have had an accident or become ill as a result of work. You can face fines if you are found to be inadequately insured.
You must have vehicle / fleet insurance for any vehicle which is either registered to the business or used for commercial activity associated with the business. As with private vehicles, this is compulsory and legal action will result from not having the necessary cover.
Professional indemnity business insurance is needed to protect businesses where they might be subject to legal action from people who believe they have been given bad advice. Within certain areas of business such as accountants, financial services and legal for example, it is compulsory to have this type of insurance and costs can be more substantial.
Buildings and contents business insurance, whilst not compulsory, it would be wise to insure your business premises and everything in it such as stock, equipment and fixture and fittings. Protection against the usual perils such as theft, fire or flood are commonly covered as routine but you might want to consider other things that might be particularly relevant to your business.
If there is any potential harm (no matter how small) to the public from products or services you supply, you would be wise to consider public liability business insurance (which can incorporate product liability). This can cover damages, compensation and legal costs and protects your business against action taken should a member of the public suffer injury, death or damage to property as a result of the products or services you supply.
Business interruption insurance – cover that help you keep trading in the event of a catastrophic or serious problem.
Key person insurance – specific cover for an individual (or key individuals) who is critical to the business and their absence through illness, injury or death could cause commercial loss. Often this can support the cost of interim personal until a suitable replacement is found.
Intellectual Property insurance – this is worth considering if the business will hold significant IP such as patents, design, trademarks and copyright. It can assist with legal expenses to fight infringements of any of the company's IP. The legal costs are notoriously expensive with this kind of dispute.
You can find much more about business insurance on the Association of Business Insurers website and information and help to find a suitable broker, visit the British Insurance Brokers Association website.
Read the small print. Not all insurance is created equal, assess what you need and get the right cover.


text:
SQ Attorneys
Senate Passes Bill to Oberhaul Medical Marijuana I...
Senate Passes Bill Allowing Industrial Hemp
State Looks To Share Marijuana Taxes
Senate Passes Bill to Oberhaul Medical Marijuana Industry
A measure seeking to reconcile Washington state's medical marijuana industry with its heavily taxed recreational sector passed the Washington state Senate on Friday.
Senate Bill 5052 passed on a bipartisan 36-11 vote and now heads to the House for consideration. It is one of several measures brought forth by lawmakers this year after efforts to address the dual markets died in the House last session.
The passage of Initiative 502 in 2012 allowed the sale of marijuana to adults for recreational use at licensed stores, which started opening last summer. Recreational businesses have complained that they're being squeezed by medical dispensaries that have proliferated in many parts of the state, providing lesser- or untaxed alternatives to licensed recreational stores.
Among its many provisions, the bill passed Friday would create a database of patients, who would be allowed to possess three times as much marijuana as is allowed under the recreational law: 3 ounces dry, 48 ounces of marijuana-infused solids, 216 ounces liquid, and 21 grams of concentrates. They could also grow up to six plants at home, unless authorized to receive more by a health professional. It would also exempt patients from paying sales tax on medical products.
The measure would crack down on collective gardens, eliminating the current collective garden structure starting July 1, 2016, but allowing four-patient "cooperatives." The cooperatives would be limited to a maximum of 60 plants, and the location of the collective would have to be registered with the state, and couldn't be within 15 miles of a licensed pot retailer.
But it would also provide an avenue for existing collective gardens to stay in business, by requiring the state Liquor Control Board - which would be renamed the Liquor and Cannabis Board under the bill - to adopt a merit-based system for granting marijuana licenses. Among the factors that could be considered are whether the applicant previously operated a collective garden, had a business license or paid business taxes.
The board would also raise its previously stated limit on marijuana retailers - 334 statewide - to accommodate the medical industry.
Several amendments failed, including one by Democratic Sen. Jeanne Kohl-Welles of Seattle that would have allowed all adults 21 or older to grow up to six marijuana plants at home. Another amendment by Kohl-Welles - who has a separate bill addressing the two marijuana markets - that would have removed the registry aspect of the bill also failed. She called the registry an infringement of patients' privacy.
"What I am most concerned about is that patients have an adequate, a safe, a secure supply of the medicine that works for them without government intrusion and without a new bureaucracy being developed," she said.
If you or a loved one is in a bind as a result of a DUI, immediately contact a Seattle DUI attorney. A DUI lawyer is not going to judge you, and understands that everyone makes mistakes. Hiring a Seattle DUI lawyer to help can – at a minimum – reduce those penalties, and can help direct people on how to best deal with their DUI charge. So it should go without saying that someone cited for DUI should hire a qualified Seattle DUI lawyer as soon as possible. Driving Under the Influence charges can cause havoc on a person's personal and professional life. Anyone charged with DUI in Washington State should immediately seek the assistance of a seasoned Seattle DUI lawyer.
Posted by Sq Attorneys at 8:24 PM


text:
Fourteenth Annual JAT Contest: Translation of Award Winners and Finalists
Japanese-to-English Contest:Translation of award-winners and finalists
(the original format is not retained)
1st place:Stephen Christenson(E36)
2nd place:Jessica Yoshihiro Martinez (E27)
Finalists: John Ball(E13) Brandi Jones (E21) Emily Thurston (E25)
The source text is here
Finalist John Ball (E13)
・Aircraft Visibility Improvement
Sighting drones from an aircraft can be difficult due to factors such as aircraft speed and drone size. For these reasons, we conducted an investigation on drone operation and drone airframe structure in regard to developing strategies for improving drone visibility.
First, regarding operation, to prevent issues related to aircraft visibility due to the influence of weather such as clouds and fog, individuals piloting drones should acquire a weather report of the surrounding airspace prior to flying the drone. In addition, drones should not be flown in areas where sufficient visibility cannot be achieved as a result of clouds, fog or other impediments.
Furthermore, we examined strobe lights and highly visible paint colors, but it is necessary to fully verify their effects. In addition, there is concern about battery consumption with high-brightness strobe lights. Moreover, it is required that for flights over 150 meters and during nighttime aviation, the utilization of lights and other such matters are taken as key considerations for examinations. However, since no standard criteria has been set for the placement of lights, from fiscal year 2017 onward, we will conduct an investigation on technology and policies for enhancing the visibility of aircraft, and take action based on these results.
・Tightening Regulations on Areas Surrounding Airports
Regarding the tightening of regulations on areas surrounding airports and other relevant areas: we will conduct an investigation into stricter rules as well as education and training in order to prevent drones from approaching or colliding with aircraft, including the utilization of a geo-fence that prevents physical flight into no-fly zones by using an advanced satellite positioning system.
・Awareness of the Significance and Role of Aviation Information
Aviation information is provided by the Minister of Land, Infrastructure, Transportation and Tourism to flight crews in accordance with the legal provisions of Article 99. When flying a drone above the Obstacle Limitation Surface of an airport or in airspace 150 meters or more from the surface of sea or land, one must obtain a flying permit and undergo the procedure for the issuance of aviation information. Moreover, a procedure, which is essential for the safe operation of the aircraft has been established, in which the flight crew, dispatchers, and other staff review the aviation information at the time of aircraft operation.
On the other hand, it has been pointed out that, among those who fly drones, there are those who misunderstand current policy and believe that when they have acquired a flight permit and have had aviation information issued, their drone takes priority over manned aircraft. Due to this, we will work to educate drone pilots about the meaning of aviation information and its role using our website and other forms of media.
7.Future Course of Action
Regarding the fundamental rules compiled here: we will integrate them into guidelines and review the examination procedures, which are based on aviation law, and use them to establish the conditions for permits and approval; we will then perform operation evaluations and re-examine them based on new technology developments and the trends of other countries.
Furthermore, we will perform an investigation on these rules, including their legal positioning, based on the results of the aforementioned operations evaluations. In addition, we will investigate the aviation information sharing system, so we will continue to make use of the investigative commission's offices, and, cooperating with civilians, work toward preventing collisions between drones and airplanes, as well as between drones and other drones.
Finalist Brandi Jones(E21)
- Enhancing Drone Visibility
Visual recognition of drones from traditional aircraft remains a difficult task due in large part to the speed of the aircraft coupled with the size of the drone. The panel conducted an investigation on measures to improve drone visibility from the aspects of operation and airframe.
Regarding operation, drone operators should obtain pre-flight weather information for both the intended airspace and the peripheral airspace in order to prevent reduced visibility in cloudy/foggy conditions, and should not fly the drone when adequate visibility cannot be secured.
For the drone airframe, although the panel reviewed installation of strobe lighting and use of high-visibility color coatings, the effectiveness of such methods is still in need of thorough verification. Installation of high-luminance stroboscopic lights raises concern over consumption of battery life, and while outfitting drones with lighting equipment for flights at night or at altitudes greater than 150 meters is recommended in the assessment summary, a standardized position for lighting equipment on the airframe has yet to be established. Consequently, the panel has decided to conduct further inquiry beginning in 2017 into technology and measures that can enhance drone visibility during flight.
- Tightening Regulations Surrounding Aerodromes
The panel will consider tighter regulations around aerodromes, including, but not limited to, the use of geo-fences that render flight inside a non-fly zone physically impossible by means of high-precision satellite positioning. The panel will also consider more stringent rules to prevent collisions with or flying in proximity to regular aircraft, as well as increased awareness and education among those involved in drone operation.
- Raising Awareness of the Significance and Role of Aeronautical Information
Aeronautical information refers here to information offered to flight crew members by the Minister of Land, Infrastructure, Transport and Tourism pursuant to the provision of Article 99 of the Civil Aeronautics Act. If a drone is to be flown above an aerodrome's obstacle limitation surfaces, or in airspace 150 meters or more above ground or sea, it is necessary to obtain both permission to fly and issuance of aeronautical information. Furthermore, it is an established practice during aircraft navigation for flight crew members and flight dispatchers to confirm aeronautical information, which is crucial for the safety of the flight.
However, it has been noted that some drone operators confuse permission to fly and issuance of aeronautical information for the bestowal of flight priority over traditional aircraft. In light of this factor, the panel seeks to raise awareness of the meaning and role of aeronautical information among drone operators through sharing knowledge via websites and other appropriate outlets.
7. Further Action
The panel will incorporate the basic rules compiled during this investigation into the guidelines and revise the assessment summary based on the Civil Aeronautics Act, and with the requirements of permission and approval, will continue to operate and evaluate as well as exercise flexibility in re-examining its approach based on technological development and the general trend of the international community. In addition, the panel will conduct an investigation to consider the legal aspects of the rules compiled based on the results gained through operation and evaluation.
Furthermore, to conduct another investigation on the state of the flight information sharing system, the panel will utilize ongoing review meetings and engage in government-private cooperation to promote actions that prevent collisions between traditional aircraft and drones as well as between individual drones.
Finalist Emily Thurston(E25)
• Improving the visibility of drones
The following is a discussion of the visibility of unmanned aerial vehicles, or drones, from aircraft. A drone is very difficult to see from an aircraft due to factors such as the speed of the aircraft and size of the drone. We therefore examined two aspects of a procedure to improve the visibility of drones: that is, drone operation and the drone frame visibility.
First, with regards to operation, the operator of the drone should be responsible for obtaining meteorological information about the airspace of the flight path as well as the surrounding airspace. This minimizes the deterioration of the drone's visibility due to weather conditions such as clouds or fog. In the event of such weather conditions, the drone would not be permitted to fly.
Second, we have examined methods to improve the visibility of a drone's frame. These methods include the installation of stroboscopic lights or highly visible body paint, but verification of these findings is necessary. In the case of high luminance stroboscopic lights, battery consumption is also a concern. Additionally, although it has been determined that a light must be installed when flying above 150 meters (approx. 492 feet) or at night, standards for the light's positioning have not been established. Due to this, in 2017, we launched an investigation into techniques and policies to improve drone visibility and intend to use these results to develop a comprehensive plan.
• Increased regulation of airports and the surrounding vicinity
Due to the sophisticated geolocation capabilities of satellites, it is possible to use geofencing to physically delineate areas in which drone flight is prohibited. This is an inflexible policy meant to prevent drones from approaching or colliding with aircraft. Currently, we are conducting a study which will allow us to make informed decisions about strengthening this policy.
• The role and significance of the accessibility of flight information
Article 99 of the Civil Aeronautics Act details the Minister of Land, Infrastructure, and Transport's duty to provide necessary flight information to an aircraft crew. It is necessary to establish a procedure for the issuance of vital data such as flight permission and flight information when operating drones in an airport's restricted grounds or airspace or when operating at altitudes above 150 meters (approx. 492 feet). Also, it is well-established that individuals such as the aircraft crew and operating staff must confirm flight information when operating an aircraft. This is a vital step that may not be omitted under any circumstance.
Meanwhile, it has been identified that there is a misunderstanding among drone operators that privately-operated drones take priority when obtaining flight information and flight approval. Due to this, we are working to publish the role and significance of flight information with respect to drone operation on our homepage in order to make this information more accessible.
7. Future course of action
Basic policies compiled for this panel include guidelines and a revision of the inspection procedures based on the Civil Aeronautics Law. These policies seek to provide the requirements for the authorization and approval of flight. These laws must remain flexible and open to re-examination based on data from actual drone operation and further assessment of these policies. Review of technological developments and trends in foreign nations must also be taken into consideration. Furthermore, a study of the legality of these policies should be carried out, making use of the conclusions drawn from the aforementioned data.
Also, in order to review the system for sharing flight information, a meeting should be convened between the government and private sector. This meeting should also advance efforts to prevent collisions between drones and planes as well as between drones.
Second Place Jessica Yoshihiro Martinez (E27)
・Improvement of UAV Visibility
The high velocity of aircrafts and small size of unmanned aerial vehicles (UAVs) make it difficult to see UAVs from aircrafts. To resolve this issue, methods of improving the visibility of UAVs have been reviewed from two perspectives: UAV operation and specifications.
First, regarding the operation of UAVs, to prevent loss of visibility caused by weather phenomena such as clouds or fog, it was decided that UAV operators must obtain meteorological information pertaining to the airspace where the UAV is to be operated and surrounding areas. Furthermore, UAVs are not to be operated in conditions where their visibility cannot be ensured.
Next, regarding the method of changing UAV specifications to increase visibility, a study of strobe lights and high visibility paint was conducted, but adequate testing of the results is necessary. The rate of battery consumption by high-intensity strobe lights is also a point of concern. While the installation of lights on UAV operating at night or at altitudes above 150 m is required for flight approval, as standards for light placement have not yet been established, a survey on technologies and methods of increasing UAV visibility is to be conducted during or after FY2017. Measures are to be designed based on these survey results.
・Strengthened Regulations for Areas near Airports
Measures to strengthen the regulation of areas around airports are currently under consideration and include the use of geofencing (which utilizes advanced GNSS in order to physically stop UAVs from entering no-fly zones), stricter rules to prevent UAV operation in close proximity to aircrafts and collisions between UAVs and aircrafts, and enhancing public awareness.
・Public Awareness of Purpose and Role of Aeronautical Information
According to Article 99 of the Civil Aeronautics Act, the Minister of Land, Infrastructure, Transport and Tourism is to provide aeronautical information to aircrews. This aeronautical information is invaluable for safe navigation and it is an established practice that aircrews and aircrafts utilize it to confirm information necessary for the operation of aircrafts. For the operation of UAVs in airspaces above obstacle limitation surfaces such as airports or in airspaces 150 m or higher above the land or water, it is also necessary to apply to receive aeronautical information as well as flight approval.
As it has been pointed out that there are UAV operators who mistaken believe that obtaining flight permission and aeronautical information gives their UAV the right-of-way over manned aircrafts, the purpose and role of the aeronautical information is to be clarified through a public awareness campaign including the provision of information for UAV operators on the website.
7. Future Plans
The basic rules that have been compiled this time are to be incorporated into the guidelines and applied and evaluated by making them a requirement for flight permission and approval, the process of which is also to be revised based on the Civil Aeronautics Act. These rules will also be revised as necessary in accordance with technology development and trends in other countries. Additionally, consideration will be made regarding the legal positioning of the rules based on the results of this application and evaluation.
These panel meetings will continue to be used to study the potential format of an Aeronautical Information Sharing System, and efforts to prevent collisions between aircrafts and UAVs and between UAVs will continue through the collaboration between the public and private sector.
First Place Stephen Christenson (E36)
6. Other Considerations
- Improving Airframe Visibility
From inside an aircraft, it is difficult to visually confirm the presence of a nearby unmanned aircraft system (UAS) due to the speed at which aircraft travel and the size of UASs. Accordingly, the panel investigated policies for increasing the visibility of UASs from the two perspectives of operation and airframe design.
First, in regard to operation, to prevent airframe visibility reduction due to the effects of clouds, fog, and other weather conditions, anyone who operates a UAS should, before flying the UAS in question, obtain weather information, both for the airspace in which the UAS is to be operated and for adjacent airspaces. In addition, an operator should refrain from flying in cloudy or foggy conditions in which sufficient visibility cannot be maintained.
Next, in regard to airframe design, the panel investigated measures such as the installation of strobe lights and similar equipment, as well as the use of high-visibility paint. However, it determined that the effectiveness of such measures still needs to be thoroughly verified. Concerns exist regarding the effect of high-intensity strobe lights on battery consumption, and despite operating procedures dictating that lights must be installed on airframes operated at night or at altitudes at or above 150 meters, there is currently no standard regarding the positioning of lights on UAS airframes. To address these issues, from 2017 onward, the panel shall conduct surveys of policies and techniques for improving visibility of airframes, with responses to be formulated based upon their results.
- Tighter Regulations Near Airports
In regard to the need to tighten regulations in areas around airports, the panel will evaluate geo-fencing, or the use of high-precision satellite navigation systems to physically restrict UAS operation in no-fly zones. It will also evaluate the establishment of more rigorous rules, as well as efforts to improve awareness of those rules, with the goals of preventing UASs from being operated in close proximity to aircraft and, consequently, preventing collisions between aircraft and UASs.
- Promoting Awareness of the Roles and Significance of Aeronautical Information
Article 99 of the Civil Aeronautics Act stipulates that aeronautical information is to be provided to aircrews by the Minister of Land, Infrastructure, Transport and Tourism. In cases where UASs are to be flown within areas defined as obstacle limitation surfaces or at altitudes at or exceeding 150 meters above ground or sea level, it is necessary for operators to obtain permission to fly and to file aeronautical information regarding flight plans. Confirmation of aeronautical information when an aircraft is to be operated is an established practice, and it serves as an indispensable component for safe operation by aircrews and dispatchers.
The panel was informed that even when permission to fly has been obtained and aeronautical information filed, there are cases in which the UAS operator mistakenly believes that flight of the UAS has been granted precedence over aircraft. Consequently, an awareness campaign shall be implemented using channels such as the Ministry's homepage, targeting those who operate UASs and informing them of the role and significance of aeronautical information.
7. Future Actions
The basic rules compiled on this occasion shall be incorporated into the Ministry's guidelines, and the operating procedures as based on the Civil Aeronautics Act shall be revised; the rules will be applied and evaluated as conditions for permission and approval of UAS operation, and they shall be adjusted flexibly based on technological developments and trends observed among other nations. Consideration will also be made regarding the establishment of these rules as law, based on the results of this application and evaluation.
Furthermore, the investigation panel shall continue to be utilized to evaluate appropriate design of the Ministry's "Flight Information Sharing System," and governmental bodies shall continue to work closely with the public to see that collisions between aircraft and UASs or between UASs themselves are prevented.


San Francisco, CA – April 16, 2018 – Llew Claasen, Executive Director of the Bitcoin Foundation, the world's oldest and largest Bitcoin advocacy organization, expressed his opposition to statements made by New York State Department of Financial Services ("NYDFS") Superintendent Maria T. Vullo regarding the Virtual Currency Regulation called "the BitLicense" at this year's Conference of State Bank Supervisors on April 10, 2018. These statements were quoted in an article published by Coindesk on April 12, 2018 (available at https://www.coindesk.com/ny-regulator-argues-bitlicense-regulation-boosted-businesses/).
In 2015, NYDFS promulgated its controversial Virtual Currency Regulation (Part 200 of Chapter 1 of Title 23 of the New York Codes, Rules and Regulations), also known as "the BitLicense," aimed at regulating Bitcoin and other crypto-currency businesses in New York. Following its promulgation, it has been widely reported that most of the crypto-currency and blockchain startups left New York or closed down their New York activities as a direct consequence of this regulation.
Finally, following the 2015 promulgation of its controversial "Virtual Currency" regulation (Part 200 of Chapter 1 of Title 23 of the New York Codes, Rules and Regulations), also known as "the BitLicense", aimed at regulating Bitcoin and other cryptocurrency businesses in New York, a small business owner, Theo Chino, filed an action in New York State Supreme Court against NYDFS arguing that the agency exceeded its regulatory mandate, and that regulating Bitcoin lies with the legislature, not NYDFS. The case is Chino vs. NY Dept. Financial Services ("NYDFS") (Index No. 0101880-2015).