Do you want an efficient, clean-burning dab pen with coke-snorting mechanics? There's a vape for that, although that was… a very specific request. The Dipper, a futuristic spin on a dab-head staple, is an electronic nectar collector and dab pen by Dipstick, and a new limited-edition Ocean Blue colorway supports healthy oceans with five percent of all proceeds going to marine conservation charities.
Upon unboxing, the care put into design becomes immediately apparent. Small, easy-to-miss details like the box's pattern, print, yellow UPC and sleek presentation reinforce the feeling that you're purchasing a high-end vape device and not some generic AliBaba import. Included in the box are a charging cord, a dab tool, a cleaning kit, replacement rubber gaskets and the vape itself. The Dipper also includes two replacement atomizers: a direct dabber for nectar collection and an oven for on-the-go consumption.
The Dipper delivers clean, smooth hits without the use of water filtration. Between trim run and high-quality live resin, the Dipper rips through oil like a champ—expect tasty, herby hits and strong clouds. Three temperature settings cater to different smoke styles: that's low temp for taste, medium for something a little stronger, and high temp for a heavy throat hit and huge highs. Likewise, the vape clearly focuses on convenience and portability. In fact, the Dipper nearly eliminates the need for additional dab tools, carb caps and glass when you're traveling—all you need is wax and a good pull! It's small enough to fit comfortably in your pocket, but big enough to be hard to lose, with an inconspicuous form-factor that won't raise eyebrows if you leave it around the house.
Most of the internal parts can be difficult to take apart due to wax residue buildup, but the dab tool provides excellent leverage when taking your device apart to clean. The atomizers are occasionally subject to clogging, but a 30-minute isopropyl bath seems to be the best solution. The cotton swabs are made out of wood, so you'll want to use a generic bending alternative for those hard to reach spots. If you find your atomizer unusable (you probably won't), replacement atomizers are available in packs of five for $29.99. In the event your Dipper goes caput, Dipstick provides a generous one-year warranty.


A recent question about Kol Isha got me thinking: why isn't there a similar "Kol Ish" prohibition against women hearing men sing?
If you've ever seen a teenage girl listening to pop music you'd know there's an attraction to a male voice.
I tried googling it and found nothing (besides an all-male acapella group called Kol Ish).
One must be careful from anything in Shir Hashirim, to not hear a woman's voice, and the same law to a woman to not hear a man's voice, for anything that a man is warned against a woman is [also] warned against.
As you can see in the part that I bolded, the verse cited by Samuel only refers to the voice of a woman, not the voice of a man.
Not the answer you're looking for? Browse other questions tagged halacha kol-isha .
Are girls allowed to touch themselves?


Heather joined CCUR Holdings, Inc. in September 2016 and now leads Concurrent's legal and corporate governance functions. Heather has a decade of legal and organizational management experience. She started at the law firm of Alston & Bird LLP focusing on transactional and litigation matters within the corporate restructuring field and later served as Executive Director of a national non-profit organization. Heather earned her undergraduate degree from Howard University and her J.D. from Harvard Law School.


It's that moment that my awareness suddenly changes.
Tightening my belt, my heart beat fast looking at my own reflection in the mirror.
Is it because I was born in Japan, or because what I'm wearing is a different style from my usual?
Is it knowing it's the first week of the year in Japan? That I'm going to my first shrine visit on New Years?
This year my first shrine visit was to Gōtoku-ji.
at Lashang Tea, a shop that specializes in hot and sour noodles.
In China, it's a very popular kind of thick noodle, but in Japan this is the only shop where you can eat it.
Not glass noodles, but thick like Sanuki udon in Japan, with the best kind of chewiness.
Topped with sour and spicy miso and meat.
Careful not to get addicted to this considerably exciting peculiar taste!
On the way back, I stopped by a Japanese confectionery shop, run by a couple.
"Mahorodou sougetsu" is charming both out front and inside the shop, with pleasant taste.
I rested in the shop and ordered matcha and their best fresh treats.
The coffee they serve here is beans from Cafe Verde in Ebisu.
I heard the name and was excited by the delicious Cafe Verde.
Dressed in a way I never do, wandering to a town I never go to.
I should know it, but even though it's a little new around me, these are streets I'm unfamiliar with.
On this little journey, I think I'm getting into it.


Uganda News; What about receiving the latest news in Uganda as it happens on your phone or computer without delays and misinformation?
Flash Uganda Media for years now has mastered the game of delivering news faster than any other news website in Uganda.
News in different sectors like business, entertainment, politics and sports become more important and useful and important if it reaches its users as soon as it happens.
We do not only deliver news fast but well detailed and factual information about any scandals or accidents that dominate internet in Uganda and Africa as a whole.
Flash Uganda Media is credited for its role during the time when over 30 Ugandans drowned on Lake Victoria, the arrest of Kizza Besigye and singer turned politician Bobi wine.
We also provided detailed stories on the death of police officers Andrew Felix Kaweesi, Muhammad Kirumira and NRM's Member of Parliament for Arua Municipality who was shot dead near his home in Kawanda.
We provide under this section, news as the happen without bias or favoritism but the naked truth.


text:
Q: Why does $x^n = \left[(x-1)\sum\limits_{k=0}^{n-1}x^k\right]+1$? I was curious about the formula for the difference between a number powered by a certain number and the sum of the number powered from 0 to the number - 1. I found this formula but I'm not sure if this is correct, and if it was correct, I couldn't prove it in a "proper" way. Can someone here show me the proof of this formula because I'm really curious about it?
$$x^n = \left[(x-1)\sum\limits_{k=0}^{n-1}x^k\right]+1$$

A: Given a finite series
$$S=\sum_{k=0}^{n-1} x^k=1+x+x^2+\ldots+x^{n-1}$$
We want to find a closed expression for $S$. Note that by multiplying by $x$, we get
$$Sx=x+x^2+x^3+\ldots+x^n$$
Now subtract both eqations and note the massive cancellation,
$$(x-1)S=x^n-1$$
$$(x-1)S+1=x^n$$
$$\left[(x-1)\sum_{k=0}^{n-1} x^k\right]+1=x^n$$

A: Do you know the formula to factor a polynomial in the form of $a^n - b^n$ ?
$x^n - 1^n = x^n - 1 = (x-1)(\sum _{k=0}^{n-1}\:x^k1^{n-1-k}) = (x-1)(\sum _{k=0}^{n-1}\:x^k)$
You take the expression above and you add $+ 1$ to get $x^n$

redpajama_set_name: RedPajamaStackExchange


text:
Firearms Industry Rejects National Park Service Classification of Traditional Ammunition as a Health Threat; Offers to Work with
In response to an announcement today regarding a National Parks Service program encouraging hunters to voluntarily switch to alternative ammunition, the National Shooting Sports Foundation rejected NPS's categorization of traditional ammunition as a health threat. NSSF is offering to work with the National Park Service to develop measures to educate hunters about steps they can take to prevent scavengers from ingesting lead fragments of spent traditional ammunition. The park service is proposing to ban, at a minimum, the use of lead bullets, shot and sinkers in the park system by NPS personnel.
While no scientific evidence supports restricting the use of traditional ammunition containing lead components, the firearms industry believes that establishing voluntary measures is a more reasoned step than banning traditional ammunition, a drastic policy decision unsupported by science. NPS has raised concerns that lead bullet fragments found in game meat could cause lead poisoning in humans, a charge not borne out in scientific studies, including a recent Centers for Disease Control and Prevention report.
"While we're not opposed to voluntary measures, we maintain there is no need for them," said Steve Sanetti, president of NSSF, the trade association for the firearms and ammunition industry. "The firearms industry supports science-based decisions about wildlife management. Under current regulations, there is no scientific evidence showing that the health of wildlife populations and humans is at risk from the use of traditional ammunition."
In a press release, Grand Teton National Park and National Elk Refuge officials encouraged hunters to voluntarily switch to alternative ammunition during the 2009 elk and bison seasons. The voluntary measures are being advocated even though the manager of the elk refuge has told NSSF there have been no population impacts on ravens and eagles connected with the use of traditional ammunition.
NSSF says that educational messages can help inform hunters about options related to voluntary measures, such as how to choose alternative ammunition and how burying game entrails can reduce the chance of scavenger birds ingesting fragments from spent bullets in game carcasses. "Hunters were the first conservationists and are second to none in their support of and concern for wildlife," said Sanetti. "Surveys have shown that hunters are agreeable to taking voluntary measures, and our educational efforts in California to promote the burying of entrails was successful. We would like to work with NPS on this."
... Original News Article

redpajama_set_name: RedPajamaCommonCrawl


text:
Albert Bruce Jackson (Newbury (Berkshire), 14 de fevereiro de 1876 - Kew, 14 de janeiro de 1947) foi um botânico britânico.

Biografia
Foi assistente nos Jardins Botânicos Reais de Kew de 1907 a 1910, posteriormente assistente-técnico do Instituto Imperial de Londres entre 1910 e 1932 e, em seguida, como voluntário e especialista das coníferas, de 1932 a 1947, no Museu Britânico.

Jackson foi assistente de Henry John Elwes (1846-1922) e de Augustine Henry (1857-1930) na preparação da obra Trees of Great Britain and Ireland (de 1906 a 1913). Publicou os estudos sobre as coleções das árvores de Syon House (1910), Yattenden Court (1911), Albury Park (1913) Westonbirg (1927), e de Borde Hill (1935).

Obras
Com William Dallimore (1871-1959), publicou Handbook of Coniferae (1923, sendo impressa uma quarta edição em 1966) e com Henry William Clinton-Baker (1865 - 1935) Illustrations of New Conifers. É também o autor de Identification of Conifers (1946).

Ray Desmond (1994). Dictionary of British and Irish Botanists and Horticulturists includins Plant Collectors, Flower Painters and Garden Designers. Taylor & Francis and The Natural History Museum (Londres).

Botânicos do Reino Unido
Naturais de Newbury (Berkshire)

redpajama_set_name: RedPajamaWikipedia


"How do you deal with difficult students?"
I operate with the idea that all students come to my classes for a reason. This reason is unknown and there are so many possible reasons. Whatever the reason is can be a learning experience for the student or a learning experience for me, or both. It can be that the student may come one time, have a huge confrontation with his or her ego, only to never come back or it may be that someone is totally ripe to receive what I have to offer and we develop a long relationship over time. The reason doesn't really matter. It doesn't even really matter if this idea is true or not. After all, it could just all be random coincidence that someone decides to show up in any given class.
I've stopped trying to decide if meaningful coincidence is true and real or not. I have just decided that in this example, in my yoga teaching life, the meetings between me and every student that walks into my teaching space has a reason.
I've decided to operate this way because it makes me more centered in my teaching and less apt to be carried this way or that way with my emotions and my own mental detours. It helps me to continue to teach when only 3 people show up to my classes.
My classes are known for a certain energy and harmony that holds the group together. It's not by accident. It's done by sticking to my clear intentions of that kind of experience that I want to create for myself and the people who practice with me. In my teacher training program, especially during the intensive retreat, we will practice holding the energy for the group and what that entails. It's not magic. It's an act of intention.
Yes, I know that there is competition between my students, that there can be gossip in the dressing room. I know all that. But even so, there is a level of acceptance and compassion for each other that I maintain as a standard condition in my classes. If you're competitive, you'd better hide it from me. If you're catty, better hide it (although I see all this anyway).
So what happens when someone comes to my class for the first time, or even the tenth time and the relationship between me and him or her is not flowing? Or when this person's presence disturbs the harmony of the group? What is my point of view and what do I do about it?
1. My first thought is that this person is here for a reason. That's the foundation of everything. What that reason is, may or may not be clear. It may never be clear and that's not important.
2. I take time to really observe and reflect the dynamics of the difficulty or disturbance. More often than not, in fact I can't think of an exception, if there is difficulty between me and one particular student, my other students are also experiencing tension with the same person in some way.
4.You have to let people go. I repeat that everyone comes to your class for a reason. When that reason has been fulfilled, they no longer need to be there. They may start your class and 15 minutes later walk out. If this happens, this should not shake you, either to feel that you've done something wrong, nor the need to defend yourself. The purpose of that person's presence, even for a short time, has been fulfilled. You have to let people go.
You have to let people go even if they've been with you for a long time. The relationship has come to its completion, even if it doesn't feel that way. It may be a temporary separation, or not. We don't know. So, when someone creates disturbance in your class, you must sacrifice this person for the group and accept that he or she may never come back and it's all good like that!
If this sort of disturbance were to continue, we wouldn't want them to come back! I never create a purposeful intention to drive someone away. Of course not. I put in great effort to bring a difficult person into the harmony of the group. Sometimes the harmony happens and sometimes the person leaves. In either case, my basic intention for the ambiance of the group is preserved.
5.Accept that sometimes things just need to be shaken up! If I'm feeling less confident about my work as a teacher, a difficult student just might appear in order to emphasize just how much stronger I need to be in order to do the work that I want to do. Some of my greatest life teaching moments have come as a result of difficult students. They make me stronger. Difficult students can make you weaker, if you let them. If this is happening, know that you are experiencing great resistance to your own personal and professional evolution. Get Strong! Take in and integrate this tension. Deal with it. Allow it to come inside you and let it illuminate your weaknesses. See where you are weak. Then, make yourself stronger.
6. Rarely is there the need for direct confrontation with students. In all of my experience I've only found it necessary a handful of times. Maybe less. There are great teachings available for both parties, teacher and difficult student when there is disharmony. To try and spell it out to someone is too complicated for me. Either they're willing to come my way or not. Being analytical and trying to sift through all of the why this and why that isn't necessary.
I establish the behavior that I expect in my classes and one either accepts and follows my expectations or not. The work that the individual might have to go through in order to change their behavior is not my concern. Direct confrontation has only been necessary when the behavior is just so crazy out of control and that person keeps coming back and coming back and the behavior doesn't change that I have to explicitly express that this behavior can not continue.
I have not yet barred anyone from coming to my class (although I know teachers who have justifiably done so) but I have clearly expressed my expectations and declare that they are welcome to come to continue coming to my class as long as they abide by my rules.
7. It is the teacher's responsibility to provide a time and a place in which students can achieve a state of Yoga. The UNION of whole of themselves—body, mind, energy, spirit. The teacher must hold this space for yoga to happen. If a particular student has intentions other than reaching a true state of yoga, he or she is welcome to go do gymnastics elsewhere. Being a "nice" teacher doesn't cut it. Too many people take avantage of nice teachers and they guilt trip the teacher into believing that yoga is about being nice in order to use the class as a playground for their own egos.
A teacher's responsibility is not about being nice. Operating from the point of view of being nice and not wanting to lose students is operating from a place of fear. We can not teach out of fear. We teach with deep reverence to the practice and we prioritize those students who have the authentic desire to know the practice and experience a state of yoga—even if they don't know it yet (part of the idea of having a reason to practice, but not knowing what that reason is).
It's quite a dense subject and there are many points that I can see developing into further articles, they're so rich with teachings, but these 7 points are my foundation in managing difficult students.
Do you have other points of view or techniques. Even one that oppose mine?
To all yoga teachers, good teaching to you, stay centered and have confidence in what you do.
Commandez votre Calendrier DAYS 2016 Ayurvéda et Énergie.
Frais de livraison offert aux membres de mes programmes Yoga en ligne.
Are you teaching with intention?
If not, you should be. And not just with intention, but with specific intention.
I think that by now, many, if not most of us teach with a certain theme in mind. What I would like you to do, if you're not already doing so, is to make that theme very very very specific.
Teaching with the intention of leading your students to a state of well-being, peace, tranquility, getting centered or more grounded are waaaaaay too general.


2019-03-24T18:25:09-04:00https://images.c-span.org/Files/02a/20190324183108003_hd.jpgAuthor Stephan Kieninger discussed the thawing of Cold War relations between the United States and the Soviet Union from the late 1960s to the late 1970s, and the role played by key diplomats who facilitated arms and security negotiations. Mr. Kieninger is the author of The Diplomacy of Détente: Cooperative Security Policies from Helmut Schmidt to George Shultz. The French word Détente means a release of tensions and is used to describe this period of improved diplomatic relations between the Cold War superpowers.


No, this post isn't some rant about why vendor prefixes are bad for the industry, and it isn't about me declaring a blanket boycott. I'm just done writing them myself because I now have tools that do the task for me.
Tangentially, Prepros now has a pro version, which is only $19 and adds a few handy features, including live refresh for all file types, multi-device testing, remote inspect, etcetera. Really, for that price, it is worth it to upgrade to pro just to support the project, even if the added features aren't something you particularly need.
I haven't found any documentation on how to inlcude the prefixing… I found the option in the project settings, but how do you format the comma separated list for different browsers?
I tried putting ie8, ff, safari, chrome in the input field, restared, reloaded but havent seen any effect so far.
@Rasmus, All you need to do is check the "Auto Prefix CSS" box in the SASS Options tab. Then, when your SASS file compiles, it should automatically spit out prefixes wherever necessary in your CSS. Super easy.
If you are still having problems, I would recommend you ask about it at the Prepros site.


text:
Freethought Today
Posted on February 19, 2020 by PJ Slinger
In the News (March)
Jews, atheists know most about the Holocaust
A new Pew Research Center poll of 10,971 Americans shows that fewer than half of Americans can correctly cite the number of Jews killed in the Holocaust — 6 million — and even fewer correctly answered that Adolf Hitler became chancellor of Germany through a democratic political process.
While nearly half of Americans got at least three of the four questions on anti-Semitism right, some groups did better than others. Jews, agnostics and atheists got most of the questions right. Mainline Protestants, Mormons, Catholics, evangelical Protestants and Americans who describe their religion as "nothing in particular" answered about half of the questions correctly.
Most Americans (69 percent) know the Holocaust took place roughly between 1930 and 1950. And they know the Nazis created ghettos where Jews were forced to live (63 percent).
Database available of credibly accused priests
ProPublica has collected the 178 lists released by U.S. dioceses and religious orders and created a searchable database that allows users to look up clergy members by name, diocese or parish. This represents the first comprehensive picture of the information released publicly by bishops around the country. Some names appear multiple times. In many cases, that accounts for priests who were accused in more than one location. In other instances, dioceses have acknowledged when priests who served in their jurisdiction have been reported for abuse elsewhere.
To see the database, go here: projects.propublica.org/credibly-accused/
Church of England: Sex for married heteros only
The Church of England has stated that sex belongs only within heterosexual marriage, and that sex in gay or straight civil partnerships "falls short of God's purpose for human beings."
Bishops have issued pastoral guidance in response to the recent introduction to mixed-sex civil partnerships, which says: "For Christians, marriage — that is, the lifelong union between a man and a woman, contracted with the making of vows — remains the proper context for sexual activity."
The Church of England doesn't permit same-sex marriage. It allows clergy to be in same-sex civil partnerships as long as they are sexually abstinent.
Minnesota church to usher out older members
The Grove United Methodist Church in Cottage Grove, Minn., will be closing in June, but reopening in November with a much younger parish crowd.
The current members, most of whom are over 60, will be told to worship elsewhere. Officials say the church needs a reset, and reopening the church is the best way to appeal to younger people.
Rev. Dan Wetterstrom said that Methodists' regional Annual Conference is paying $250,000 to restart the church.
The older members will not be physically barred from attending, but the expectation is that they will not.
"We are asking them to let this happen," said Wetterstrom. "For this to be truly new, we can't have the core group of 30 people.
"This whole plan makes me sick. I believe it's evil," said William Gacksetter, one of the current older parishioners.
New York town won't say pledge at meetings
In New York, the Town of Enfield Board will no longer recite the Pledge of Allegiance after it voted to end the practice at its first meeting of the year with two new board members.
Citing the separation of church and state, the idea was floated by new Board Member Stephanie Redmond to remove the words "under God" from the pledge, which is said at the open of public meetings.
The first meeting of the year is often an organizational meeting. As the board considered a procedure for meetings, Redmond questioned if they could remove the specific language from the pledge. Redmond expressed that the language in the pledge contradicted the board's mission of inclusion.
Judge allows lawsuit against Pittsburgh diocese
A Pennsylvania judge ruled Jan. 9 that a lawsuit can move forward against the Catholic Diocese of Pittsburgh.
The suit by parents and survivors of sexual abuse by clergy members claims the diocese became a public nuisance because they didn't fulfill obligations under state law to report abusers.
It was originally filed in September of 2018 against each diocese in the state.
The plaintiffs are not seeking any monetary awards from the suit; instead, they say they want names and information of the alleged abusers to be made public.
Attorney Benjamin Sweet insists there's plenty more that could be revealed, including information about the church's religious order.
Some evangelical groups shift to 'church' status
The Washington Post has reported that several major evangelical organizations have shifted from nonprofit status to "church" status with the IRS, allowing them to keep private exactly how their money is being spent and the salaries of their most highly paid employees.
The IRS status change allows these groups, including Focus on the Family and the Billy Graham Evangelistic Association, to avoid filing a form that makes details of their institution's finances public.
The Post reports that leaders of the groups say they are changing their status to avoid administrative costs; some also believe that this status with the IRS could allow them extra religious freedom protections in potential lawsuits over LGBT rights. The potential cost of applying to be a church is that the organizations cannot campaign on behalf of politicians or devote a substantial part of their work to lobbying on legislation. Critics say the option deprives the public of important information about how the tax-exempt organizations are operating.
Tennessee discriminates against same-sex couples
Tennessee Gov. Bill Lee signed into law a bill that allows private adoption agencies to refuse to place children with a family that conflicts with their religious beliefs.
It states that "no private licensed child-placing agency shall be required to . . . participate in any placement of a child for foster care or adoption when the proposed placement would violate the agency's written religious or moral convictions or policies."
The legislation also prohibits any civil actions being taken against faith-based adoption agencies that refuse on religious grounds to place children in homes they morally disagree with, notably same-sex couples.
Pete Stark dies; was first nonreligious U.S. Rep.
The first openly nonreligious member of Congress, former U.S. Rep. Pete Stark Jr., 88, died Jan. 24 at his home in Harwood, Md., of leukemia.
Stark received FFRF's Emperor Has No Clothes Award, reserved for public figures who make known their dissent from religion, in 2010.
"Our Emperor Award is for those who 'tell it like it is about religion,'" says FFRF Co-President Annie Laurie Gaylor. "Clearly, Pete Stark's philosophy was to 'tell it like it is,' period. We honor his forthrightness and generosity to the freethought movement, and his lifetime accomplishments."
Fortney Hillman "Pete" Stark Jr. was born Nov. 11, 1931, in Milwaukee. He graduated in 1953 from the Massachusetts Institute of Technology, then served in the Air Force before receiving a master's degree of business administration from the University of California at Berkeley in 1960.
After being elected to the House of Representatives in 1972, Stark spent 40 years in Congress, but it was 13 years ago, in 2007, when he announced he was nontheistic (although he called himself a Unitarian).
Stark was known as a staunch backer of health care for all. He helped put together the Affordable Care Act, played a key role in establishing the COBRA program, which became law in 1986, and was an architect of the 1986 Emergency Medical Treatment and Active Labor Act.
CategoriesFree, State-Church News, Vol. 37 No. 02 March 2020
Previous PostPrevious Meet a member: After studying religions, pilot lands as freethinker
Next PostNext FFRF thanks 32 new Life Members
Grad/'older' student essay contest winners
1st place: Grad student essay contest — Miriam Barnicle
2nd place: Grad student essay contest — Kelsey Kane-Ritsch
3rd place: Grad student essay contest — Sydni Ham Myers
4th place: Grad student essay contest — Nicolle Dirksen
Columns / Speeches
FFRF convention
FFRF News
FFRF Victories
Galleries / Photos / Cartoons
State-Church News
Vol. 34 No. 08 October 2017
Vol. 34 No. 09 November 2017
Vol. 34 No. 10 December 2017
Vol. 35 No. 01 Jan/Feb 2018
Vol. 35 No. 02 March 2018
Vol. 35 No. 03 April 2018
Vol. 35 No. 03 April 2018 – 40th anniversary section
Vol. 35 No. 04 May 2018
Vol. 35 No. 05 June/July 2018
Vol. 35 No. 06 August 2018
Vol. 35 No. 07 September 2018


Discussion in 'Shops' started by Feather Silverstream, Apr 13, 2018.
there you can find, extractors, animal oils, refined wools and leathers, paint cans, blueprints and a few crafted items.
If i'm online i'll be glad to offer direct trades to help you get the specific ammounts of stackables items you need.
Often redecorated and refilled it's always a good idea to keep an eye on the item list (copy the previously writen url in your navigator) or simply visiting the shop.
Easy to find, just get to Celest Harbour Island TP and the shop is just next to it.
The Outback Shop Crafting materials has now an email adress !
Contact us if you have special need or orders.
See you soon in game.
You can now add Outbackshop Craftingmaterials as friend on facebook stay tuned for new informations and great deals!


2015 launched the "Generations" segment of the "Transformers" toy line under the "Combiner Wars" banner. This series focused on integrating the Voyager, Deluxe and Legends Class of figures into combiners old and new. The Leader Class continued as well. Formatting of this page and information was based on the information at TFWiki.net.
Exclusive to chains such as Family Dollar and Dollar General.


text:
2014: "Spark the Imagination"
Moving towards a Paperless School.
Presented by: Philip O'Callaghan
The idea of creating a paperless school is more of a reality than ever today. The cost savings and operational efficiencies, coupled with the environmental impact and the enhanced reputation of the school, the argument to go paperless is compelling for any principal or management board. There are many ways to go paperless: the in-school administrative work that can be done on the computer, ebooks can be utilised, teachers can assign homework, track attendance and behaviour and deliver their lessons online using word processors or presentation applications (Medley, 2012). Every step taken towards a paperless solution will reduce cost and most importantly improve both teacher and learner motivation and enhance the learning outcomes of all the students (Graeves et al., 2013). Philip O'Callaghan will discuss practical steps teachers and principals can take to make move this from just being a concept to a reality.
Philip has spent his professional career in the education sector both as a teacher and in education services. Philip taught for 10 years in Naas CBS and St. David's CBS, Artane. Since leaving the classroom he has been the managing director of Examcraft, which has operated under a number of brands in the education sector. He is the co-founder and director of Learning Data which provides management information solutions to schools both in Ireland and Internationally. He holds an MSc in computer applications for education from Dublin City University and an MBA from Warwick University.
Twitter: @Learning_Data


RE: The tariff classification of leather footwear from New Zealand.
In your letter dated August 29, 2000, you requested a tariff classification ruling.
This is a shoe with a cuffable, predominately leather upper and leather outer sole. The applicable subheading for #F13 in sizes up to and including American men's size 8 will be 6403.51.90, Harmonized Tariff Schedule of the United States (HTS), which provides for footwear with predominately leather uppers and leather outer soles, covering the ankle, for other persons. The rate of duty will be 10% ad valorem. The applicable subheading for sizes 8.5 and above will be 6403.51.60, HTS, which provides for footwear with predominately leather uppers and leather outer soles, covering the ankle, for men, youths and boys. The rate of duty will be 8.5% ad valorem.
This is an infant shoe with a cuffable leather upper and leather outer sole. The applicable subheading for #C1 will be 6403.51.90, Harmonized Tariff Schedule of the United States (HTS), which provides for footwear with predominately leather uppers and leather outer soles, covering the ankle, for other persons. The rate of duty will be 10% ad valorem.
All five shoes are made up of leather uppers and rubber/plastic outer soles, covering the ankle. The applicable subheading for E4, E6, E8, E9, F4 in sizes up to and including American men's size 8 will be 6403.91.90, Harmonized Tariff Schedule of the United States (HTS), which provides for footwear with predominately leather uppers and plastic and/or rubber soles, covering the ankle, for other persons. The rate of duty will be 10% ad valorem. For sizes 8.5 and above, the applicable subheading will be 6403.91.60, HTS, which provides for footwear with predominately leather uppers and plastic and/or rubber soles, covering the ankle, for men, youths and boys. The rate of duty will be 8.5% ad valorem.
This child's shoe has a leather upper and a rubber/plastic outer sole. The applicable subheading for C5 will be 6403.91.90, Harmonized Tariff Schedule of the United States (HTS), which provides for footwear with predominately leather uppers and rubber/plastic outer soles, covering the ankle, for other persons. The rate of duty will be 10% ad valorem.
These two styles are made up of leather uppers and rubber/plastic outer soles, not covering the ankle. The applicable subheading for A13 and A22 in sizes up to and including American men's size 8 will be 6403.99.90, Harmonized Tariff Schedule of the United States (HTS), which provides for footwear with predominately leather uppers and plastic and/or rubber soles, not covering the ankle, for other persons. For sizes 8.5 and above, the applicable subheading will be 6403.99.60, HTS, which provides for footwear with predominately leather uppers and plastic and/or rubber soles, not covering the ankle, for men, youths and boys. The rate of duty will be 8.5% ad valorem.
For future binding rulings, please note that only up to five items are allowed for each binding ruling request.


We are delighted to hear that the QPR Education trust is using our cards as an ice-breaker in their coach training sessions. We hope this is the beginning of a beautiful relationship with the beautiful game. If there are any other coaching academies out there looking for a fun ice-breaker please do reach out - our conversation cards come highly recommended AND all profits go to charity.


The program for the Master of Science degree in nursing consists of 33 semester hours for Nurse Educator.
NURS 505 Health Policy and Advanced Nursing Practice. Focus on the dynamics of health policy and nursing's role in complex health care systems. Prerequisite: graduate standing.
NURS 518 Advanced Pathophysiology for Nurse Educators. Examine the genetic and developmental influences on pathological processes. Differentiate the pathophysiological processes and manifestations in culturally diverse patients. Analyze current evidence-based knowledge regarding physiological adaptation.
NURS 516 Advanced Pharmacology. Pharmacokinetics, pharmacodynamics, and pharmacotherapeutics of multiple drug categories. Emphasis on drug interactions within the context of pathophysiology processes, age, developmental state, and ethnicity.
NURS 580 Teaching and Learning Theory, Development, and Socialization in Nursing Education. Overview of classic and contemporary teaching and learning philosophies, theories, technologies and research as it relates to the development and socialization of nurse educators.
NURS 581 Curriculum Theory, Design and Program Evaluation. Essential components of nursing curriculum theory, design and program evaluation will be examined. External and Internal influences and barriers on curriculum will be included.
NURS 582 Instructional Design, Assessment and Evaluation. Explores innovative instructional design strategies, outcomes, evidence based assessment and evaluation tools in relation to classroom competence and clinical achievement which includes diverse population needs, the use of standardized examinations and written and oral exams.
NURS 585 Nurse Educator Role Seminar. In this course, the graduate student integrates evidence-based practice into the role of the specialty nurse educator.
NURS 586 Advanced Specialty Health Assessment and Practicum. Integrates evidence-based practice and advanced health assessment knowledge in learner's nursing specialty. Investigates the interrelationship among practice, theory, and research through clinical practicum in specialty area.


text:
Home Op-Eds Elmer Gantry Bennett
Elmer Gantry Bennett
If Rick Santorum were in a gay love triangle, he might be more of a hypocrite than Bill Bennett--but not by much.
Seems the virtue czar has got a big vice of his own: a gambling habit reportedly with $8 million in losses over the last decade.
Now public figures have a right to their private lives, and Bennett apparently wasn't hurting anybody but himself here.
But if you're going to indulge a personal vice, it's probably not a good idea to set yourself up as the king of virtue. And that's what Bennett has done for the last twenty years. He has made a career out of being judgmental of others and preaching against "unrestricted personal liberty."
Few people took so much delight in Bill Clinton's foibles than Bennett.
Few have sneered as nastily as Bennett at libertarians and progressives who support abortion rights and gay rights and the decriminalization of marijuana.
He's made a fortune on his "Book of Virtues," where he writes, in the very first paragraph, about people who fail to control their "tempers, appetites, passions, and impulses." Bennett's last sentence in this paragraph: " 'Oh, if only I had stopped myself' is an all too familiar refrain."
On top of that, the organization he helped found, Empower America, opposes legalized gambling and lists gambling as one of the problems in its Index of Leading Cultural Indicators.
Like Sinclair Lewis's Elmer Gantry, Bill Bennett has been preaching one thing while doing another.
Now he's decided to give up gambling. I'd much prefer it if he gave up preaching.
Opinion Media


"We did the maths — you can have a Dacia Duster for the same price as your daily coffee. The fact Sun readers can own a new family car for less than £10,000 in today's world is downright amazing. Using well proven Renault parts, build quality is high, and its spec-sheet far exceeds its price tag. Surprisingly good off road, too. Without doubt the best car ten grand can buy": commented Nick Francis, Motoring Editor, The Sun on Sunday.
Taking place for the first time, The Motor Awards, organised by the publishers of The Sun, The Times, The Sunday Times and talkSPORT, gave the chance for readers and listeners to vote for their favourite new cars alongside experts in the motoring industry.
All-New Duster went on sale in the UK earlier this year, starting at £9,995, with a host of improvements over the previous model. Available in four trim levels, Access, Essential, Comfort and top-of-the-range Prestige, every single body panel on the car is new, with a fully revised interior for better quality and comfort, as well as featuring many new technologies and safety features never before available on the Dacia range.


A unique hotel where Ian Fleming created the character of James Bond.
Located in the quiet village of Oracabessa; Goldeneye is not an ordinary hotel, but a compound of luxurious private villas, each offering extraordinary comforts, amenities and services. Each villa is its own private world, set amid spectacular tropical gardens. Private beaches and secluded coves make for an intimate atmosphere a vacation home away from home. Discret services makes your stay casual, utterly relaxed and effortless.
Private bathroom/ Hairdryer in room/ Iron-ironing board in room/ Safe in room. Baby sitting-child services/ Hotel operated shuttle. Maid service-daily/ Evening turn down service.


text:
Recommend William 's obituary to your friends
William J Lakin Sr.
Obituary of William J Lakin Sr.
Please share a memory of William to include in a keepsake book for family and friends.
William J Lakin Sr.79, of Mt. Pleasant passed away Sunday July 11,2021 at home. Born November 28, 1941 he was the son of the late William and Sophia (Punjock) Lakin. He is preceded in death by his wife Betty (Ober) Lakin. In addition to his wife he is also preceded in death by son Barry Lakin. He is survived by his son William J Jr. and Kimberly (Kernicky) Lakin of Mt Pleasant and daughter Bethann (Brian) Wasmund of Sandborn, New York. He is also survived by 2 grandchildren, Shawn Lakin and LeAnne Taylor and 2 great- grandchildren, Caden Taylor and Isabella Lakin. Bill was a member of the St. Florian Catholic Church of United. He was a member of various social clubs in the area. Family and friends are welcome 2-4 pm and 6-8 pm Thursday in the Jay A. Hoffer Funeral, Norvelt.Vigil prayers will be 7:45 Pm Thursday in the funeral home with Rev John A. Sedlak. Bill's funeral mass will be 10am Friday at St. Florian Church, United with Rev. Nathanael Polinski O.S.B celebrant. Interment to follow in St. Florian Cemetery, Trauger.
To plant a beautiful memorial tree in memory of William Lakin Sr., please visit our Tree Store
A Memorial Tree was planted for William
William Lakin Sr.
Services for William Lakin Sr.
There are no events scheduled. You can still show your support by planting a tree in memory of William Lakin Sr..


If your business is located within one of Vivid Sydney's precincts, we would like to invite you to become involved in this year's Retail Activation Program. This package Vivid Sydney merchandise is free and provides an opportunity for you to dress your retail space in preparation for the festival.
Around three-quarters of businesses (75%) who used the Retail Activation Pack last year found that Vivid Sydney boosted their business during a normally quiet period.
to receive the Vivid Sydney Retail Activation Pack sign up by clicking the button below. You will be contacted with an approximate date and time of delivery and/or installation.
Our crew will deliver the package and install window decals in the weeks prior to 24 May, at no cost to you.


text:
<?php

namespace Alcyon\CoreBundle\Component\ListHelper;

use Alcyon\CoreBundle\Component\ListHelper\Exception\InvalidArgumentException;

/**
 * The registry extension  form the ListHelper component.
 */
interface RegistryExtensionInterface
{
	/**
     * Extend a Element by name.
     *
     * @param string $name The name of the element
     *
     * @return ElementInterface The element
     *
     * @throws Exception\InvalidArgumentException if the element can not be extended
     */
    public function extend($name);
}

redpajama_set_name: RedPajamaGithub


text:
#include "qsqldatabase.h"
#include "qsqlquery.h"

#ifdef Q_OS_WIN32
// Conflicting declarations of LPCBYTE in sqlfront.h and winscard.h
#define _WINSCARD_H_
#endif

#ifdef QT_SQL_PSQL
#include "../drivers/psql/qsql_psql.h"
#endif
#ifdef QT_SQL_MYSQL
#include "../drivers/mysql/qsql_mysql.h"
#endif
#ifdef QT_SQL_ODBC
#include "../drivers/odbc/qsql_odbc.h"
#endif
#ifdef QT_SQL_OCI
#include "../drivers/oci/qsql_oci.h"
#endif
#ifdef QT_SQL_TDS
// conflicting RETCODE typedef between odbc and freetds
#define RETCODE DBRETCODE
#include "../drivers/tds/qsql_tds.h"
#undef RETCODE
#endif
#ifdef QT_SQL_DB2
#include "../drivers/db2/qsql_db2.h"
#endif
#ifdef QT_SQL_SQLITE
#include "../drivers/sqlite/qsql_sqlite.h"
#endif
#ifdef QT_SQL_SQLITE2
#include "../drivers/sqlite2/qsql_sqlite2.h"
#endif
#ifdef QT_SQL_IBASE
#undef SQL_FLOAT  // avoid clash with ODBC
#undef SQL_DOUBLE
#undef SQL_TIMESTAMP
#undef SQL_TYPE_TIME
#undef SQL_TYPE_DATE
#undef SQL_DATE
#define SCHAR IBASE_SCHAR  // avoid clash with ODBC (older versions of ibase.h with Firebird)
#include "../drivers/ibase/qsql_ibase.h"
#undef SCHAR
#endif

#include "qdebug.h"
#include "qcoreapplication.h"
#include "qreadwritelock.h"
#include "qsqlresult.h"
#include "qsqldriver.h"
#include "qsqldriverplugin.h"
#include "qsqlindex.h"
#include "private/qfactoryloader_p.h"
#include "private/qsqlnulldriver_p.h"
#include "qmutex.h"
#include "qhash.h"
#include <stdlib.h>

QT_BEGIN_NAMESPACE

#ifndef QT_NO_LIBRARY
Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader,
                          (QSqlDriverFactoryInterface_iid,
                           QLatin1String("/sqldrivers")))
#endif

QT_STATIC_CONST_IMPL char *QSqlDatabase::defaultConnection = "qt_sql_default_connection";

typedef QHash<QString, QSqlDriverCreatorBase*> DriverDict;

class QConnectionDict: public QHash<QString, QSqlDatabase>
{
public:
    inline bool contains_ts(const QString &key)
    {
        QReadLocker locker(&lock);
        return contains(key);
    }
    inline QStringList keys_ts() const
    {
        QReadLocker locker(&lock);
        return keys();
    }

    mutable QReadWriteLock lock;
};
Q_GLOBAL_STATIC(QConnectionDict, dbDict)

class QSqlDatabasePrivate
{
public:
    QSqlDatabasePrivate(QSqlDatabase *d, QSqlDriver *dr = 0):
        q(d),
        driver(dr),
        port(-1)
    {
        ref = 1;
        precisionPolicy= QSql::LowPrecisionDouble;
    }
    QSqlDatabasePrivate(const QSqlDatabasePrivate &other);
    ~QSqlDatabasePrivate();
    void init(const QString& type);
    void copy(const QSqlDatabasePrivate *other);
    void disable();

    QAtomicInt ref;
    QSqlDatabase *q;
    QSqlDriver* driver;
    QString dbname;
    QString uname;
    QString pword;
    QString hname;
    QString drvName;
    int port;
    QString connOptions;
    QString connName;
    QSql::NumericalPrecisionPolicy precisionPolicy;

    static QSqlDatabasePrivate *shared_null();
    static QSqlDatabase database(const QString& name, bool open);
    static void addDatabase(const QSqlDatabase &db, const QString & name);
    static void removeDatabase(const QString& name);
    static void invalidateDb(const QSqlDatabase &db, const QString &name, bool doWarn = true);
    static DriverDict &driverDict();
    static void cleanConnections();
};

QSqlDatabasePrivate::QSqlDatabasePrivate(const QSqlDatabasePrivate &other)
{
    ref = 1;
    q = other.q;
    dbname = other.dbname;
    uname = other.uname;
    pword = other.pword;
    hname = other.hname;
    drvName = other.drvName;
    port = other.port;
    connOptions = other.connOptions;
    driver = other.driver;
    precisionPolicy = other.precisionPolicy;
}

QSqlDatabasePrivate::~QSqlDatabasePrivate()
{
    if (driver != shared_null()->driver)
        delete driver;
}

void QSqlDatabasePrivate::cleanConnections()
{
    QConnectionDict *dict = dbDict();
    Q_ASSERT(dict);
    QWriteLocker locker(&dict->lock);

    QConnectionDict::iterator it = dict->begin();
    while (it != dict->end()) {
        invalidateDb(it.value(), it.key(), false);
        ++it;
    }
    dict->clear();
}

static bool qDriverDictInit = false;
static void cleanDriverDict()
{
    qDeleteAll(QSqlDatabasePrivate::driverDict());
    QSqlDatabasePrivate::driverDict().clear();
    QSqlDatabasePrivate::cleanConnections();
    qDriverDictInit = false;
}

DriverDict &QSqlDatabasePrivate::driverDict()
{
    static DriverDict dict;
    if (!qDriverDictInit) {
        qDriverDictInit = true;
        qAddPostRoutine(cleanDriverDict);
    }
    return dict;
}

QSqlDatabasePrivate *QSqlDatabasePrivate::shared_null()
{
    static QSqlNullDriver dr;
    static QSqlDatabasePrivate n(NULL, &dr);
    return &n;
}

void QSqlDatabasePrivate::invalidateDb(const QSqlDatabase &db, const QString &name, bool doWarn)
{
    if (db.d->ref != 1 && doWarn) {
        qWarning("QSqlDatabasePrivate::removeDatabase: connection '%s' is still in use, "
                 "all queries will cease to work.", name.toLocal8Bit().constData());
        db.d->disable();
        db.d->connName.clear();
    }
}

void QSqlDatabasePrivate::removeDatabase(const QString &name)
{
    QConnectionDict *dict = dbDict();
    Q_ASSERT(dict);
    QWriteLocker locker(&dict->lock);

    if (!dict->contains(name))
        return;

    invalidateDb(dict->take(name), name);
}

void QSqlDatabasePrivate::addDatabase(const QSqlDatabase &db, const QString &name)
{
    QConnectionDict *dict = dbDict();
    Q_ASSERT(dict);
    QWriteLocker locker(&dict->lock);

    if (dict->contains(name)) {
        invalidateDb(dict->take(name), name);
        qWarning("QSqlDatabasePrivate::addDatabase: duplicate connection name '%s', old "
                 "connection removed.", name.toLocal8Bit().data());
    }
    dict->insert(name, db);
    db.d->connName = name;
}

/*! \internal
*/
QSqlDatabase QSqlDatabasePrivate::database(const QString& name, bool open)
{
    const QConnectionDict *dict = dbDict();
    Q_ASSERT(dict);

    dict->lock.lockForRead();
    QSqlDatabase db = dict->value(name);
    dict->lock.unlock();
    if (db.isValid() && !db.isOpen() && open) {
        if (!db.open())
            qWarning() << "QSqlDatabasePrivate::database: unable to open database:" << db.lastError().text();

    }
    return db;
}

/*! \internal
    Copies the connection data from \a other.
*/
void QSqlDatabasePrivate::copy(const QSqlDatabasePrivate *other)
{
    q = other->q;
    dbname = other->dbname;
    uname = other->uname;
    pword = other->pword;
    hname = other->hname;
    drvName = other->drvName;
    port = other->port;
    connOptions = other->connOptions;
    precisionPolicy = other->precisionPolicy;
}

void QSqlDatabasePrivate::disable()
{
    if (driver != shared_null()->driver) {
        delete driver;
        driver = shared_null()->driver;
    }
}

/*!
    \class QSqlDriverCreatorBase
    \brief The QSqlDriverCreatorBase class is the base class for
    SQL driver factories.

    \ingroup database
    \inmodule QtSql

    Reimplement createObject() to return an instance of the specific
    QSqlDriver subclass that you want to provide.

    See QSqlDatabase::registerSqlDriver() for details.

    \sa QSqlDriverCreator
*/

/*!
    \fn QSqlDriverCreatorBase::~QSqlDriverCreatorBase()

    Destroys the SQL driver creator object.
*/

/*!
    \fn QSqlDriver *QSqlDriverCreatorBase::createObject() const

    Reimplement this function to returns a new instance of a
    QSqlDriver subclass.
*/

/*!
    \class QSqlDriverCreator
    \brief The QSqlDriverCreator class is a template class that
    provides a SQL driver factory for a specific driver type.

    \ingroup database
    \inmodule QtSql

    QSqlDriverCreator<T> instantiates objects of type T, where T is a
    QSqlDriver subclass.

    See QSqlDatabase::registerSqlDriver() for details.
*/

/*!
    \fn QSqlDriver *QSqlDriverCreator::createObject() const
    \reimp
*/

/*!
    \class QSqlDatabase
    \brief The QSqlDatabase class represents a connection to
    a database.

    \ingroup database

    \inmodule QtSql

    The QSqlDatabase class provides an interface for accessing a
    database through a connection. An instance of QSqlDatabase
    represents the connection. The connection provides access to the
    database via one of the \l{SQL Database Drivers#Supported
    Databases} {supported database drivers}, which are derived from
    QSqlDriver.  Alternatively, you can subclass your own database
    driver from QSqlDriver. See \l{How to Write Your Own Database
    Driver} for more information.

    Create a connection (i.e., an instance of QSqlDatabase) by calling
    one of the static addDatabase() functions, where you specify
    \l{SQL Database Drivers#Supported Databases} {the driver or type
    of driver} to use (i.e., what kind of database will you access?)
    and a connection name. A connection is known by its own name,
    \e{not} by the name of the database it connects to. You can have
    multiple connections to one database. QSqlDatabase also supports
    the concept of a \e{default} connection, which is the unnamed
    connection. To create the default connection, don't pass the
    connection name argument when you call addDatabase().
    Subsequently, when you call any static member function that takes
    the connection name argument, if you don't pass the connection
    name argument, the default connection is assumed. The following
    snippet shows how to create and open a default connection to a
    PostgreSQL database:

    \snippet doc/src/snippets/sqldatabase/sqldatabase.cpp 0

    Once the QSqlDatabase object has been created, set the connection
    parameters with setDatabaseName(), setUserName(), setPassword(),
    setHostName(), setPort(), and setConnectOptions(). Then call
    open() to activate the physical connection to the database. The
    connection is not usable until you open it.

    The connection defined above will be the \e{default} connection,
    because we didn't give a connection name to \l{QSqlDatabase::}
    {addDatabase()}. Subsequently, you can get the default connection
    by calling database() without the connection name argument:

    \snippet doc/src/snippets/sqldatabase/sqldatabase.cpp 1

    QSqlDatabase is a value class. Changes made to a database
    connection via one instance of QSqlDatabase will affect other
    instances of QSqlDatabase that represent the same connection. Use
    cloneDatabase() to create an independent database connection based
    on an existing one.

    If you create multiple database connections, specify a unique
    connection name for each one, when you call addDatabase(). Use
    database() with a connection name to get that connection. Use
    removeDatabase() with a connection name to remove a connection.
    QSqlDatabase outputs a warning if you try to remove a connection
    referenced by other QSqlDatabase objects. Use contains() to see if
    a given connection name is in the list of connections.

    Once a connection is established, you can call tables() to get the
    list of tables in the database, call primaryIndex() to get a
    table's primary index, and call record() to get meta-information
    about a table's fields (e.g., field names).

    \note QSqlDatabase::exec() is deprecated. Use QSqlQuery::exec()
    instead.

    If the driver supports transactions, use transaction() to start a
    transaction, and commit() or rollback() to complete it. Use
    \l{QSqlDriver::} {hasFeature()} to ask if the driver supports
    transactions. \note When using transactions, you must start the
    transaction before you create your query.

    If an error occurrs, lastError() will return information about it.

    Get the names of the available SQL drivers with drivers().  Check
    for the presence of a particular driver with isDriverAvailable().
    If you have created your own custom driver, you must register it
    with registerSqlDriver().

    \sa QSqlDriver, QSqlQuery, {QtSql Module}, {Threads and the SQL Module}
*/

/*! \fn QSqlDatabase QSqlDatabase::addDatabase(const QString &type, const QString &connectionName)
    \threadsafe

    Adds a database to the list of database connections using the
    driver \a type and the connection name \a connectionName. If
    there already exists a database connection called \a
    connectionName, that connection is removed.

    The database connection is referred to by \a connectionName. The
    newly added database connection is returned.

    If \a type is not available or could not be loaded, isValid() returns false.

    If \a connectionName is not specified, the new connection becomes
    the default connection for the application, and subsequent calls
    to database() without the connection name argument will return the
    default connection. If a \a connectionName is provided here, use
    database(\a connectionName) to retrieve the connection.

    \warning If you add a connection with the same name as an existing
    connection, the new connection replaces the old one.  If you call
    this function more than once without specifying \a connectionName,
    the default connection will be the one replaced.

    Before using the connection, it must be initialized. e.g., call
    some or all of setDatabaseName(), setUserName(), setPassword(),
    setHostName(), setPort(), and setConnectOptions(), and, finally,
    open().

    \sa database() removeDatabase() {Threads and the SQL Module}
*/
QSqlDatabase QSqlDatabase::addDatabase(const QString &type, const QString &connectionName)
{
    QSqlDatabase db(type);
    QSqlDatabasePrivate::addDatabase(db, connectionName);
    return db;
}

/*!
    \threadsafe

    Returns the database connection called \a connectionName. The
    database connection must have been previously added with
    addDatabase(). If \a open is true (the default) and the database
    connection is not already open it is opened now. If no \a
    connectionName is specified the default connection is used. If \a
    connectionName does not exist in the list of databases, an invalid
    connection is returned.

    \sa isOpen() {Threads and the SQL Module}
*/

QSqlDatabase QSqlDatabase::database(const QString& connectionName, bool open)
{
    return QSqlDatabasePrivate::database(connectionName, open);
}

/*!
    \threadsafe

    Removes the database connection \a connectionName from the list of
    database connections.

    \warning There should be no open queries on the database
    connection when this function is called, otherwise a resource leak
    will occur.

    Example:

    \snippet doc/src/snippets/code/src_sql_kernel_qsqldatabase.cpp 0

    The correct way to do it:

    \snippet doc/src/snippets/code/src_sql_kernel_qsqldatabase.cpp 1

    To remove the default connection, which may have been created with a
    call to addDatabase() not specifying a connection name, you can
    retrieve the default connection name by calling connectionName() on
    the database returned by database(). Note that if a default database
    hasn't been created an invalid database will be returned.

    \sa database() connectionName() {Threads and the SQL Module}
*/

void QSqlDatabase::removeDatabase(const QString& connectionName)
{
    QSqlDatabasePrivate::removeDatabase(connectionName);
}

/*!
    Returns a list of all the available database drivers.

    \sa registerSqlDriver()
*/

QStringList QSqlDatabase::drivers()
{
    QStringList list;

#ifdef QT_SQL_PSQL
    list << QLatin1String("QPSQL7");
    list << QLatin1String("QPSQL");
#endif
#ifdef QT_SQL_MYSQL
    list << QLatin1String("QMYSQL3");
    list << QLatin1String("QMYSQL");
#endif
#ifdef QT_SQL_ODBC
    list << QLatin1String("QODBC3");
    list << QLatin1String("QODBC");
#endif
#ifdef QT_SQL_OCI
    list << QLatin1String("QOCI8");
    list << QLatin1String("QOCI");
#endif
#ifdef QT_SQL_TDS
    list << QLatin1String("QTDS7");
    list << QLatin1String("QTDS");
#endif
#ifdef QT_SQL_DB2
    list << QLatin1String("QDB2");
#endif
#ifdef QT_SQL_SQLITE
    list << QLatin1String("QSQLITE");
#endif
#ifdef QT_SQL_SQLITE2
    list << QLatin1String("QSQLITE2");
#endif
#ifdef QT_SQL_IBASE
    list << QLatin1String("QIBASE");
#endif

#ifndef QT_NO_LIBRARY
    if (QFactoryLoader *fl = loader()) {
        QStringList keys = fl->keys();
        for (QStringList::const_iterator i = keys.constBegin(); i != keys.constEnd(); ++i) {
            if (!list.contains(*i))
                list << *i;
        }
    }
#endif

    DriverDict dict = QSqlDatabasePrivate::driverDict();
    for (DriverDict::const_iterator i = dict.constBegin(); i != dict.constEnd(); ++i) {
        if (!list.contains(i.key()))
            list << i.key();
    }

    return list;
}

/*!
    This function registers a new SQL driver called \a name, within
    the SQL framework. This is useful if you have a custom SQL driver
    and don't want to compile it as a plugin.

    Example:
    \snippet doc/src/snippets/code/src_sql_kernel_qsqldatabase.cpp 2

    QSqlDatabase takes ownership of the \a creator pointer, so you
    mustn't delete it yourself.

    \sa drivers()
*/
void QSqlDatabase::registerSqlDriver(const QString& name, QSqlDriverCreatorBase *creator)
{
    delete QSqlDatabasePrivate::driverDict().take(name);
    if (creator)
        QSqlDatabasePrivate::driverDict().insert(name, creator);
}

/*!
    \threadsafe

    Returns true if the list of database connections contains \a
    connectionName; otherwise returns false.

    \sa connectionNames(), database(), {Threads and the SQL Module}
*/

bool QSqlDatabase::contains(const QString& connectionName)
{
    return dbDict()->contains_ts(connectionName);
}

/*!
    \threadsafe

    Returns a list containing the names of all connections.

    \sa contains(), database(), {Threads and the SQL Module}
*/
QStringList QSqlDatabase::connectionNames()
{
    return dbDict()->keys_ts();
}

/*!
    \overload

    Creates a QSqlDatabase connection that uses the driver referred
    to by \a type. If the \a type is not recognized, the database
    connection will have no functionality.

    The currently available driver types are:

    \table
    \header \i Driver Type \i Description
    \row \i QDB2     \i IBM DB2
    \row \i QIBASE   \i Borland InterBase Driver
    \row \i QMYSQL   \i MySQL Driver
    \row \i QOCI     \i Oracle Call Interface Driver
    \row \i QODBC    \i ODBC Driver (includes Microsoft SQL Server)
    \row \i QPSQL    \i PostgreSQL Driver
    \row \i QSQLITE  \i SQLite version 3 or above
    \row \i QSQLITE2 \i SQLite version 2
    \row \i QTDS     \i Sybase Adaptive Server
    \endtable

    Additional third party drivers, including your own custom
    drivers, can be loaded dynamically.

    \sa {SQL Database Drivers}, registerSqlDriver(), drivers()
*/

QSqlDatabase::QSqlDatabase(const QString &type)
{
    d = new QSqlDatabasePrivate(this);
    d->init(type);
}

/*!
    \overload

    Creates a database connection using the given \a driver.
*/

QSqlDatabase::QSqlDatabase(QSqlDriver *driver)
{
    d = new QSqlDatabasePrivate(this, driver);
}

/*!
    Creates an empty, invalid QSqlDatabase object. Use addDatabase(),
    removeDatabase(), and database() to get valid QSqlDatabase
    objects.
*/
QSqlDatabase::QSqlDatabase()
{
    d = QSqlDatabasePrivate::shared_null();
    d->ref.ref();
}

/*!
    Creates a copy of \a other.
*/
QSqlDatabase::QSqlDatabase(const QSqlDatabase &other)
{
    d = other.d;
    d->ref.ref();
}

/*!
    Assigns \a other to this object.
*/
QSqlDatabase &QSqlDatabase::operator=(const QSqlDatabase &other)
{
    qAtomicAssign(d, other.d);
    return *this;
}

/*!
    \internal

    Create the actual driver instance \a type.
*/

void QSqlDatabasePrivate::init(const QString &type)
{
    drvName = type;

    if (!driver) {
#ifdef QT_SQL_PSQL
        if (type == QLatin1String("QPSQL") || type == QLatin1String("QPSQL7"))
            driver = new QPSQLDriver();
#endif
#ifdef QT_SQL_MYSQL
        if (type == QLatin1String("QMYSQL") || type == QLatin1String("QMYSQL3"))
            driver = new QMYSQLDriver();
#endif
#ifdef QT_SQL_ODBC
        if (type == QLatin1String("QODBC") || type == QLatin1String("QODBC3"))
            driver = new QODBCDriver();
#endif
#ifdef QT_SQL_OCI
        if (type == QLatin1String("QOCI") || type == QLatin1String("QOCI8"))
            driver = new QOCIDriver();
#endif
#ifdef QT_SQL_TDS
        if (type == QLatin1String("QTDS") || type == QLatin1String("QTDS7"))
            driver = new QTDSDriver();
#endif
#ifdef QT_SQL_DB2
        if (type == QLatin1String("QDB2"))
            driver = new QDB2Driver();
#endif
#ifdef QT_SQL_SQLITE
        if (type == QLatin1String("QSQLITE"))
            driver = new QSQLiteDriver();
#endif
#ifdef QT_SQL_SQLITE2
        if (type == QLatin1String("QSQLITE2"))
            driver = new QSQLite2Driver();
#endif
#ifdef QT_SQL_IBASE
        if (type == QLatin1String("QIBASE"))
            driver = new QIBaseDriver();
#endif
    }

    if (!driver) {
        DriverDict dict = QSqlDatabasePrivate::driverDict();
        for (DriverDict::const_iterator it = dict.constBegin();
             it != dict.constEnd() && !driver; ++it) {
            if (type == it.key()) {
                driver = ((QSqlDriverCreatorBase*)(*it))->createObject();
            }
        }
    }

#ifndef QT_NO_LIBRARY
    if (!driver && loader()) {
        if (QSqlDriverFactoryInterface *factory = qobject_cast<QSqlDriverFactoryInterface*>(loader()->instance(type)))
            driver = factory->create(type);
    }
#endif // QT_NO_LIBRARY

    if (!driver) {
        qWarning("QSqlDatabase: %s driver not loaded", type.toLatin1().data());
        qWarning("QSqlDatabase: available drivers: %s",
                        QSqlDatabase::drivers().join(QLatin1String(" ")).toLatin1().data());
        if (QCoreApplication::instance() == 0)
            qWarning("QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins");
        driver = shared_null()->driver;
    }
}

/*!
    Destroys the object and frees any allocated resources.

    If this is the last QSqlDatabase object that uses a certain
    database connection, the database connection is automatically closed.

    \sa close()
*/

QSqlDatabase::~QSqlDatabase()
{
    if (!d->ref.deref()) {
        close();
        delete d;
    }
}

/*!
    Executes a SQL statement on the database and returns a QSqlQuery
    object. Use lastError() to retrieve error information. If \a
    query is empty, an empty, invalid query is returned and
    lastError() is not affected.

    \sa QSqlQuery, lastError()
*/

QSqlQuery QSqlDatabase::exec(const QString & query) const
{
    QSqlQuery r(d->driver->createResult());
    if (!query.isEmpty()) {
        r.exec(query);
        d->driver->setLastError(r.lastError());
    }
    return r;
}

/*!
    Opens the database connection using the current connection
    values. Returns true on success; otherwise returns false. Error
    information can be retrieved using lastError().

    \sa lastError() setDatabaseName() setUserName() setPassword()
    \sa setHostName() setPort() setConnectOptions()
*/

bool QSqlDatabase::open()
{
    return d->driver->open(d->dbname, d->uname, d->pword, d->hname,
                            d->port, d->connOptions);
}

/*!
    \overload

    Opens the database connection using the given \a user name and \a
    password. Returns true on success; otherwise returns false. Error
    information can be retrieved using the lastError() function.

    This function does not store the password it is given. Instead,
    the password is passed directly to the driver for opening the
    connection and it is then discarded.

    \sa lastError()
*/

bool QSqlDatabase::open(const QString& user, const QString& password)
{
    setUserName(user);
    return d->driver->open(d->dbname, user, password, d->hname,
                            d->port, d->connOptions);
}

/*!
    Closes the database connection, freeing any resources acquired, and
    invalidating any existing QSqlQuery objects that are used with the
    database.

    This will also affect copies of this QSqlDatabase object.

    \sa removeDatabase()
*/

void QSqlDatabase::close()
{
    d->driver->close();
}

/*!
    Returns true if the database connection is currently open;
    otherwise returns false.
*/

bool QSqlDatabase::isOpen() const
{
    return d->driver->isOpen();
}

/*!
    Returns true if there was an error opening the database
    connection; otherwise returns false. Error information can be
    retrieved using the lastError() function.
*/

bool QSqlDatabase::isOpenError() const
{
    return d->driver->isOpenError();
}

/*!
  Begins a transaction on the database if the driver supports
  transactions. Returns \c{true} if the operation succeeded.
  Otherwise it returns \c{false}.

  \sa QSqlDriver::hasFeature(), commit(), rollback()
*/
bool QSqlDatabase::transaction()
{
    if (!d->driver->hasFeature(QSqlDriver::Transactions))
        return false;
    return d->driver->beginTransaction();
}

/*!
  Commits a transaction to the database if the driver supports
  transactions and a transaction() has been started. Returns \c{true}
  if the operation succeeded. Otherwise it returns \c{false}.

  \note For some databases, the commit will fail and return \c{false}
  if there is an \l{QSqlQuery::isActive()} {active query} using the
  database for a \c{SELECT}. Make the query \l{QSqlQuery::isActive()}
  {inactive} before doing the commit.

  Call lastError() to get information about errors.

  \sa QSqlQuery::isActive() QSqlDriver::hasFeature() rollback()
*/
bool QSqlDatabase::commit()
{
    if (!d->driver->hasFeature(QSqlDriver::Transactions))
        return false;
    return d->driver->commitTransaction();
}

/*!
  Rolls back a transaction on the database, if the driver supports
  transactions and a transaction() has been started. Returns \c{true}
  if the operation succeeded. Otherwise it returns \c{false}.

  \note For some databases, the rollback will fail and return
  \c{false} if there is an \l{QSqlQuery::isActive()} {active query}
  using the database for a \c{SELECT}. Make the query
  \l{QSqlQuery::isActive()} {inactive} before doing the rollback.

  Call lastError() to get information about errors.

  \sa QSqlQuery::isActive() QSqlDriver::hasFeature() commit()
*/
bool QSqlDatabase::rollback()
{
    if (!d->driver->hasFeature(QSqlDriver::Transactions))
        return false;
    return d->driver->rollbackTransaction();
}

/*!
    Sets the connection's database name to \a name. To have effect,
    the database name must be set \e{before} the connection is
    \l{open()} {opened}.  Alternatively, you can close() the
    connection, set the database name, and call open() again.  \note
    The \e{database name} is not the \e{connection name}. The
    connection name must be passed to addDatabase() at connection
    object create time.

    For the QOCI (Oracle) driver, the database name is the TNS
    Service Name.

    For the QODBC driver, the \a name can either be a DSN, a DSN
    filename (in which case the file must have a \c .dsn extension),
    or a connection string.

    For example, Microsoft Access users can use the following
    connection string to open an \c .mdb file directly, instead of
    having to create a DSN entry in the ODBC manager:

    \snippet doc/src/snippets/code/src_sql_kernel_qsqldatabase.cpp 3

    There is no default value.

    \sa databaseName() setUserName() setPassword() setHostName()
    \sa setPort() setConnectOptions() open()
*/

void QSqlDatabase::setDatabaseName(const QString& name)
{
    if (isValid())
        d->dbname = name;
}

/*!
    Sets the connection's user name to \a name. To have effect, the
    user name must be set \e{before} the connection is \l{open()}
    {opened}.  Alternatively, you can close() the connection, set the
    user name, and call open() again.

    There is no default value.

    \sa userName() setDatabaseName() setPassword() setHostName()
    \sa setPort() setConnectOptions() open()
*/

void QSqlDatabase::setUserName(const QString& name)
{
    if (isValid())
        d->uname = name;
}

/*!
    Sets the connection's password to \a password. To have effect, the
    password must be set \e{before} the connection is \l{open()}
    {opened}.  Alternatively, you can close() the connection, set the
    password, and call open() again.

    There is no default value.

    \warning This function stores the password in plain text within
    Qt. Use the open() call that takes a password as parameter to
    avoid this behavior.

    \sa password() setUserName() setDatabaseName() setHostName()
    \sa setPort() setConnectOptions() open()
*/

void QSqlDatabase::setPassword(const QString& password)
{
    if (isValid())
        d->pword = password;
}

/*!
    Sets the connection's host name to \a host. To have effect, the
    host name must be set \e{before} the connection is \l{open()}
    {opened}.  Alternatively, you can close() the connection, set the
    host name, and call open() again.

    There is no default value.

    \sa hostName() setUserName() setPassword() setDatabaseName()
    \sa setPort() setConnectOptions() open()
*/

void QSqlDatabase::setHostName(const QString& host)
{
    if (isValid())
        d->hname = host;
}

/*!
    Sets the connection's port number to \a port. To have effect, the
    port number must be set \e{before} the connection is \l{open()}
    {opened}.  Alternatively, you can close() the connection, set the
    port number, and call open() again..

    There is no default value.

    \sa port() setUserName() setPassword() setHostName()
    \sa setDatabaseName() setConnectOptions() open()
*/

void QSqlDatabase::setPort(int port)
{
    if (isValid())
        d->port = port;
}

/*!
    Returns the connection's database name, which may be empty.
    \note The database name is not the connection name.

    \sa setDatabaseName()
*/
QString QSqlDatabase::databaseName() const
{
    return d->dbname;
}

/*!
    Returns the connection's user name; it may be empty.

    \sa setUserName()
*/
QString QSqlDatabase::userName() const
{
    return d->uname;
}

/*!
    Returns the connection's password. If the password was not set
    with setPassword(), and if the password was given in the open()
    call, or if no password was used, an empty string is returned.
*/
QString QSqlDatabase::password() const
{
    return d->pword;
}

/*!
    Returns the connection's host name; it may be empty.

    \sa setHostName()
*/
QString QSqlDatabase::hostName() const
{
    return d->hname;
}

/*!
    Returns the connection's driver name.

    \sa addDatabase(), driver()
*/
QString QSqlDatabase::driverName() const
{
    return d->drvName;
}

/*!
    Returns the connection's port number. The value is undefined if
    the port number has not been set.

    \sa setPort()
*/
int QSqlDatabase::port() const
{
    return d->port;
}

/*!
    Returns the database driver used to access the database
    connection.

    \sa addDatabase() drivers()
*/

QSqlDriver* QSqlDatabase::driver() const
{
    return d->driver;
}

/*!
    Returns information about the last error that occurred on the
    database.

    Failures that occur in conjunction with an individual query are
    reported by QSqlQuery::lastError().

    \sa QSqlError, QSqlQuery::lastError()
*/

QSqlError QSqlDatabase::lastError() const
{
    return d->driver->lastError();
}

/*!
    Returns a list of the database's tables, system tables and views,
    as specified by the parameter \a type.

    \sa primaryIndex(), record()
*/

QStringList QSqlDatabase::tables(QSql::TableType type) const
{
    return d->driver->tables(type);
}

/*!
    Returns the primary index for table \a tablename. If no primary
    index exists an empty QSqlIndex is returned.

    \sa tables(), record()
*/

QSqlIndex QSqlDatabase::primaryIndex(const QString& tablename) const
{
    return d->driver->primaryIndex(tablename);
}

/*!
    Returns a QSqlRecord populated with the names of all the fields in
    the table (or view) called \a tablename. The order in which the
    fields appear in the record is undefined. If no such table (or
    view) exists, an empty record is returned.
*/

QSqlRecord QSqlDatabase::record(const QString& tablename) const
{
    return d->driver->record(tablename);
}

/*!
    Sets database-specific \a options. This must be done before the
    connection is opened or it has no effect (or you can close() the
    connection, call this function and open() the connection again).

    The format of the \a options string is a semicolon separated list
    of option names or option=value pairs. The options depend on the
    database client used:

    \table
    \header \i ODBC \i MySQL \i PostgreSQL
    \row

    \i
    \list
    \i SQL_ATTR_ACCESS_MODE
    \i SQL_ATTR_LOGIN_TIMEOUT
    \i SQL_ATTR_CONNECTION_TIMEOUT
    \i SQL_ATTR_CURRENT_CATALOG
    \i SQL_ATTR_METADATA_ID
    \i SQL_ATTR_PACKET_SIZE
    \i SQL_ATTR_TRACEFILE
    \i SQL_ATTR_TRACE
    \i SQL_ATTR_CONNECTION_POOLING
    \i SQL_ATTR_ODBC_VERSION
    \endlist

    \i
    \list
    \i CLIENT_COMPRESS
    \i CLIENT_FOUND_ROWS
    \i CLIENT_IGNORE_SPACE
    \i CLIENT_SSL
    \i CLIENT_ODBC
    \i CLIENT_NO_SCHEMA
    \i CLIENT_INTERACTIVE
    \i UNIX_SOCKET
    \i MYSQL_OPT_RECONNECT
    \endlist

    \i
    \list
    \i connect_timeout
    \i options
    \i tty
    \i requiressl
    \i service
    \endlist

    \header \i DB2 \i OCI \i TDS
    \row

    \i
    \list
    \i SQL_ATTR_ACCESS_MODE
    \i SQL_ATTR_LOGIN_TIMEOUT
    \endlist

    \i
    \list
    \i OCI_ATTR_PREFETCH_ROWS
    \i OCI_ATTR_PREFETCH_MEMORY
    \endlist

    \i
    \e none

    \header \i SQLite \i Interbase
    \row

    \i
    \list
    \i QSQLITE_BUSY_TIMEOUT
    \i QSQLITE_OPEN_READONLY
    \i QSQLITE_ENABLE_SHARED_CACHE
    \endlist

    \i
    \list
    \i ISC_DPB_LC_CTYPE
    \i ISC_DPB_SQL_ROLE_NAME
    \endlist

    \endtable

    Examples:
    \snippet doc/src/snippets/code/src_sql_kernel_qsqldatabase.cpp 4

    Refer to the client library documentation for more information
    about the different options.

    \sa connectOptions()
*/

void QSqlDatabase::setConnectOptions(const QString &options)
{
    if (isValid())
        d->connOptions = options;
}

/*!
    Returns the connection options string used for this connection.
    The string may be empty.

    \sa setConnectOptions()
 */
QString QSqlDatabase::connectOptions() const
{
    return d->connOptions;
}

/*!
    Returns true if a driver called \a name is available; otherwise
    returns false.

    \sa drivers()
*/

bool QSqlDatabase::isDriverAvailable(const QString& name)
{
    return drivers().contains(name);
}

/*! \fn QSqlDatabase QSqlDatabase::addDatabase(QSqlDriver* driver, const QString& connectionName)

    This overload is useful when you want to create a database
    connection with a \l{QSqlDriver} {driver} you instantiated
    yourself. It might be your own database driver, or you might just
    need to instantiate one of the Qt drivers yourself. If you do
    this, it is recommended that you include the driver code in your
    application. For example, you can create a PostgreSQL connection
    with your own QPSQL driver like this:

    \snippet doc/src/snippets/code/src_sql_kernel_qsqldatabase.cpp 5
    \codeline
    \snippet doc/src/snippets/code/src_sql_kernel_qsqldatabase.cpp 6

    The above code sets up a PostgreSQL connection and instantiates a
    QPSQLDriver object. Next, addDatabase() is called to add the
    connection to the known connections so that it can be used by the
    Qt SQL classes. When a driver is instantiated with a connection
    handle (or set of handles), Qt assumes that you have already
    opened the database connection.

    \note We assume that \c qtdir is the directory where Qt is
    installed. This will pull in the code that is needed to use the
    PostgreSQL client library and to instantiate a QPSQLDriver object,
    assuming that you have the PostgreSQL headers somewhere in your
    include search path.

    Remember that you must link your application against the database
    client library. Make sure the client library is in your linker's
    search path, and add lines like these to your \c{.pro} file:

    \snippet doc/src/snippets/code/src_sql_kernel_qsqldatabase.cpp 7

    The method described works for all the supplied drivers.  The only
    difference will be in the driver constructor arguments.  Here is a
    table of the drivers included with Qt, their source code files,
    and their constructor arguments:

    \table
    \header \i Driver \i Class name \i Constructor arguments \i File to include
    \row
    \i QPSQL
    \i QPSQLDriver
    \i PGconn *connection
    \i \c qsql_psql.cpp
    \row
    \i QMYSQL
    \i QMYSQLDriver
    \i MYSQL *connection
    \i \c qsql_mysql.cpp
    \row
    \i QOCI
    \i QOCIDriver
    \i OCIEnv *environment, OCISvcCtx *serviceContext
    \i \c qsql_oci.cpp
    \row
    \i QODBC
    \i QODBCDriver
    \i SQLHANDLE environment, SQLHANDLE connection
    \i \c qsql_odbc.cpp
    \row
    \i QDB2
    \i QDB2
    \i SQLHANDLE environment, SQLHANDLE connection
    \i \c qsql_db2.cpp
    \row
    \i QTDS
    \i QTDSDriver
    \i LOGINREC *loginRecord, DBPROCESS *dbProcess, const QString &hostName
    \i \c qsql_tds.cpp
    \row
    \i QSQLITE
    \i QSQLiteDriver
    \i sqlite *connection
    \i \c qsql_sqlite.cpp
    \row
    \i QIBASE
    \i QIBaseDriver
    \i isc_db_handle connection
    \i \c qsql_ibase.cpp
    \endtable

    The host name (or service name) is needed when constructing the
    QTDSDriver for creating new connections for internal queries. This
    is to prevent blocking when several QSqlQuery objects are used
    simultaneously.

    \warning Adding a database connection with the same connection
    name as an existing connection, causes the existing connection to
    be replaced by the new one.

    \warning The SQL framework takes ownership of the \a driver. It
    must not be deleted. To remove the connection, use
    removeDatabase().

    \sa drivers()
*/
QSqlDatabase QSqlDatabase::addDatabase(QSqlDriver* driver, const QString& connectionName)
{
    QSqlDatabase db(driver);
    QSqlDatabasePrivate::addDatabase(db, connectionName);
    return db;
}

/*!
    Returns true if the QSqlDatabase has a valid driver.

    Example:
    \snippet doc/src/snippets/code/src_sql_kernel_qsqldatabase.cpp 8
*/
bool QSqlDatabase::isValid() const
{
    return d->driver && d->driver != d->shared_null()->driver;
}

#ifdef QT3_SUPPORT
/*!
    Use query.record() instead.
*/
QSqlRecord QSqlDatabase::record(const QSqlQuery& query) const
{ return query.record(); }

/*!
    Use query.record() instead.
*/
QSqlRecord QSqlDatabase::recordInfo(const QSqlQuery& query) const
{ return query.record(); }

/*!
    \fn QSqlRecord QSqlDatabase::recordInfo(const QString& tablename) const

    Use record() instead.
*/
#endif

/*!
    Clones the database connection \a other and and stores it as \a
    connectionName. All the settings from the original database, e.g.
    databaseName(), hostName(), etc., are copied across. Does nothing
    if \a other is an invalid database. Returns the newly created
    database connection.

    \note The new connection has not been opened. Before using the new
    connection, you must call open().
*/
QSqlDatabase QSqlDatabase::cloneDatabase(const QSqlDatabase &other, const QString &connectionName)
{
    if (!other.isValid())
        return QSqlDatabase();

    QSqlDatabase db(other.driverName());
    db.d->copy(other.d);
    QSqlDatabasePrivate::addDatabase(db, connectionName);
    return db;
}

/*!
    \since 4.4

    Returns the connection name, which may be empty.  \note The
    connection name is not the \l{databaseName()} {database name}.

    \sa addDatabase()
*/
QString QSqlDatabase::connectionName() const
{
    return d->connName;
}

/*!
    \since 4.6

    Sets the default numerical precision policy used by queries created
    on this database connection to \a precisionPolicy.

    Note: Drivers that don't support fetching numerical values with low
    precision will ignore the precision policy. You can use
    QSqlDriver::hasFeature() to find out whether a driver supports this
    feature.

    Note: Setting the default precision policy to \a precisionPolicy
    doesn't affect any currently active queries.

    \sa QSql::NumericalPrecisionPolicy, numericalPrecisionPolicy(),
    QSqlQuery::setNumericalPrecisionPolicy(), QSqlQuery::numericalPrecisionPolicy()
*/
void QSqlDatabase::setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy)
{
    if(driver())
        driver()->setNumericalPrecisionPolicy(precisionPolicy);
    d->precisionPolicy = precisionPolicy;
}

/*!
    \since 4.6

    Returns the current default precision policy for the database connection.

    \sa QSql::NumericalPrecisionPolicy, setNumericalPrecisionPolicy(),
    QSqlQuery::numericalPrecisionPolicy(), QSqlQuery::setNumericalPrecisionPolicy()
*/
QSql::NumericalPrecisionPolicy QSqlDatabase::numericalPrecisionPolicy() const
{
    if(driver())
        return driver()->numericalPrecisionPolicy();
    else
        return d->precisionPolicy;
}

#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug dbg, const QSqlDatabase &d)
{
    if (!d.isValid()) {
        dbg.nospace() << "QSqlDatabase(invalid)";
        return dbg.space();
    }

    dbg.nospace() << "QSqlDatabase(driver=\"" << d.driverName() << "\", database=\""
                  << d.databaseName() << "\", host=\"" << d.hostName() << "\", port=" << d.port()
                  << ", user=\"" << d.userName() << "\", open=" << d.isOpen() << ")";
    return dbg.space();
}
#endif

QT_END_NAMESPACE


The arrival of a baby can throw a wrench into your relationship, but it's important to talk about it with someone. Here's why—and expert tips on how to do it.
Truth: In the midst of parenthood, it's easy to feel "stuck" in your relationship, and it's tough to talk about it with others. After all, it's not easy to be vulnerable inside your relationship, much less be vulnerable outside your relationship with others. Even with close friends, discussing issues with your love life can feel uncomfortable. You might not want to burden your friends by sharing something heavy, or you might be afraid of looking like your marriage is in trouble. The whole process is filled with anxiety—and that's normal.
Spoiler alert: As daunting as it may initially seem, sharing your feelings with others lowers your anxiety and makes you twice as more likely to make progress on whatever relationship issue you and your partner are struggling with.
If your anxiety isn't dealt with, it's easy to bottle it up and feel resentful and isolated. You may even tell yourself, "No one would understand this, so why share?" and find yourself unable to move forward.
In fact, according to a couples survey of 5,398 couples by Lasting, the leading couples counseling app, 48 percent of people don't feel comfortable asking their partners for what they need—and that jumps to 52 percent for those who are parents!
But science confirms that it's possible to get unstuck if you can manage to face your anxiety and then share what you're feeling with others—which, as it turns out, is a necessary skill for thriving as a new parent.
So how can you acknowledge your anxiety and move forward? Read on for expert advice from Liz Colizza, MAC, LPC, NCC, a seasoned couples and family psychotherapist and head of marriage research at Lasting.
In order to engage in healthy self-reflection, you'll first need to quiet your mind. Feel free to do whatever it takes to calm yourself—deep breathing, visualization, meditation, prayer or exercise.
1. "What is making me feel anxious?" You can't rush this part; you need to wait and listen to yourself. If it helps, psychiatrist Dan Siegel, MD, recommends a framework called SIFT, which entails "sifting" through your mind for Sensations, Images, Feelings and Thoughts related to the issue. All of these matter and can inform you.
2. "What's the hardest part about this?" To help you figure this out, you can also frame the question as, "What's the worst case scenario here?" Again, you have to SIFT through your inner world and listen for the answers.
The final part is naming (out loud or in your head) what your anxiety is all about. Then you can move on to the next step.
There are really only two choices here—to be or not to be. And if you want lasting love, then vulnerability is a requirement.
Sharing with others has enormous sway in your life. Multiple studies show the act of verbalizing your anxious feelings to others actually helps lessen your negative physiological experience of anxiety—meaning it deadens the power of the emotions so you don't feel as bad. So really, sharing is self-caring.
Plus, sharing a goal with someone else makes you two times more likely to make progress on that goal, and your friends and support system can play a big role in helping you shape your relationship. Why? For the same reason exercise buddies and personal trainers can help you follow through on your workout goals, accountability when goal-setting is one of the most crucial elements in your success.
Opening up about your relationship takes self-reflection, vulnerability and courage, but the accountability and support that comes with it adds tremendous value to your life.
Interestingly, in a 1,112-person survey conducted by Lasting, 49 percent of couples say they don't have a healthy support network of friends and family in their relationship. That moves up to 55 percent for parents, who are more likely to struggle with loneliness and isolation.
Need an easy way to build support around the work you're doing in your relationship? Download the Lasting app and dive into the Emotional Connection series for some guided help.
The next time you want to share something vulnerable, know that it's important to do so—and that it'll be okay.


Attending: Key Community Leaders will be in attendance!
"Parents Matter" is a multi-faceted campaign designed to curb underage drinking and underage drinking and driving in South Dakota. All media attending will be receiving a PRESS KIT with pertinent local information and resources.
In the spring of 2006, following a rash of teenage drinking and driving deaths, the South Dakota Department of Public Safety, the South Dakota Department of Human Services, and the South Dakota Attorney General's Office launched "Parents Matter." Since that time, teenage drinking and driving deaths in South Dakota have decreased nearly 70%.
Details of the 2010 "Parents Matter" Underage Drinking campaign and the new video, "Life Changes in Seconds", will be released.
For more information, contact Linda Colhoff-Glover @ 605-394-6915 X230.
RAPID CITY, SD - ASAP (Adolescent Substance Abuse Prevention, Inc) will be recognizing several individuals and community groups at its "PARTNERS IN PREVENTION" Luncheon on March 25, 2010 at 11:30 AM at the Rushmore Plaza Holiday Inn.
At this special event, ASAP will present special awards to community members who have made a difference in reducing substance abuse. Local businesses, organizations and coalitions were asked to nominate someone who works hard to diminish substance abuse in their organization and/or in the community. Individuals and organizations that have been nominated and will be recognized at the luncheon include local law enforcement, professionals in the fields of prevention and treatment of addiction, community advocates and more.


text:
Help support Voice for Liberty
Become a supporter. Click here.
Don't miss a single article! Click here to receive email updates two or three times weekly.
Century II resource center
Wichita water plant resource center
If you aren't getting email from Voice for Liberty
Wichita and Kansas economic dashboards
Illustrative videos
Wichita campaign finance reform
Open government in Kansas
Kansas needs pay-to-play laws
Downtown Wichita revitalization
Wichita city government
Kansas state government
Wichita and Kansas schools
Wichita economic dashboard
Charts of economic indicators for Wichita, compared to Kansas and the United States.
Newsletter for January 17, 2021
Here is your fresh edition of the newsletter from Voice For Liberty. This edition is dated January 17, 2021.
Trump-supporting QAnon seen as public security threat
QAnon, a conspiracy theory group mentioned favorably by President Donald J. Trump and embraced by other Republican leaders, represents a public security threat, according to the Combating Terrorism Center at West Point.
Wichita property tax rate: Up
The City of Wichita property tax mill levy rose slightly for 2020.
Zip code business patterns
Employment, establishment count, and annual payroll presented in an interactive visualization.
American economy is more competitive and carbon-efficient, says economist
Stephen Moore. Credit: Willis Bretz/Heritage Foundation
The oil and gas boom in America boosts our competitiveness in the world economy while at the same time reducing carbon emissions, says economist Stephen Moore.
Moore recently left the Wall Street Journal to accept a position at Heritage Foundation as chief economist. He presented to an audience at a conference titled "The Tax & Regulatory Impact on Industry, Jobs & The Economy, and Consumers" produced by the Franklin Center for Government and Public Integrity.
A large portion of his presentation was on energy and its important role in the economy, and how radical environmentalists — the "green" movement — are harming our economy and people. An irony, he said, is that while President Barack Obama is in the "hip pocket" of radical environmentalists, he is presiding over the greatest oil and gas boom in American history. This boom is proceeding in spite of government, not because of it.
Moore emphasized the importance of energy costs to low-income people. Rising energy costs are like taxes on them, he said, while the wealthy can more easily absorb higher energy costs. "To be green is to be against capitalism, against progress, against poor people, against jobs."
The boom in oil and gas production in America, made possible by horizontal drilling and fracking, is ahead of the rest of the world. While European countries have in the past embraced green energy technologies, these policies have failed, and the countries are retreating from them. Now, European countries want to use American drilling technologies, he said.
The lower electricity prices in America are a competitive advantage over Europe and China. German auto manufacturers are shutting plants in Europe and moving them to the United States, he said.
Of radical environmentalist groups. Moore said: "They don't even care about global warming. If they really cared about global warming, they would be cheerleading fracking. Because fracking is making natural gas the new fuel for America. And guess what? Natural gas emits less carbon. It's a great antidote to global warming."
(According to the U.S. Energy information Administration, when generating electricity, coal emits from 2.08 to 2.18 pounds of carbon dioxide per kilowatt-hour electricity generated. Natural gas emits 1.22 pounds, or about 43 percent less carbon dioxide.)
Moore went on to tell the attendees that it is the United States that has reduced its carbon emissions the greatest amount in the last five years. He said this is remarkable in light of the fact that the U.S. didn't sign the Kyoto Treaty, the U.S. didn't implement cap-and-trade, and didn't implement a carbon tax. "You would think these environmental groups would be applauding natural gas. Now these environmentalist groups have a new campaign called 'beyond natural gas,'" he said.
Moore explained that at first, environmentalists said they could accept natural gas as a "bridge fuel" to solar power and wind. They were in favor of natural gas, he said, up until the time it became cheap and plentiful. Now, they are against gas. "My point is, the left and environmentalists are against any energy source that works."
Over the past six years the U.S. has spent $100 billion promoting wind and solar power, but these two sources together account for just 2.2 percent of electricity generation. Even if the country were to quadruple the portion of electricity generated by these two renewable sources over the next 10 to 20 years, the nation would still need to get 90 percent of its electricity from other sources. Moore was doubtful that the country could quadruple the output from wind and solar.
Trends in carbon emissions
To further investigate the topics Moore raised, I gathered data from Global Carbon Atlas and prepared interactive visualizations using Tableau Public. You may access and use the visualizations by clicking here. Following are static excerpts from the visualizations. Click on each image for a larger version.
Click image for larger version.
Looking at the amount of total carbon emissions, we see two important facts. First, after rising slowly, carbon emissions by the United States have declined in recent years. Second, carbon emissions by China are soaring. China surpassed the U.S. around 2005, and the gap between the two countries is increasing.
Note also that carbon emissions in India are rising. Emissions in most advanced economies are steady or falling. These trends are emphasized in the chart that shows carbon emissions for each country indexed from a common starting point. Emissions from China and India are rapidly rising, while emissions from countries with advanced economies have risen slowly or have declined.
A chart that shows the carbon emissions efficiency of countries, that is, the carbon emitted per unit of GDP, shows that in general, countries are becoming more efficient. Advanced economies such as the U.S., Japan, and Germany have an advantage in this metric. These countries emit about one-fourth as much carbon per unit GDP as does China.
The chart of carbon emissions per person in each country show that the United States leads in this measure. In 2011, the U.S. emitted about 17 tons of carbon dioxide per person. China was at 6.6, and India at 1.7. But, the trend in the U.S. is downward, that is, less carbon emitted per person. In China and India, the trend is up, and rising rapidly in China.
Global warming alarmism
More from EconomicsMore posts in Economics »
National employment, December 2020
Wichita jobs and employment, November 2020
Updated: Kansas hotel guest tax collections