summaryWOW! Editing Group is a peer editing group where college-age women mentor high school-age women in the creation and maintenance of wikipedia pages.
Since women represent less than 10% of Wikipedia editors, efforts need to be made to teach authorship, research skills, and community building with college and high school women so that they can become regular contributors to Wikipedia. Furthermore, in order to sustain and support these emerging contributors, the community must be maintained and have a formalized plan for continued support.
We propose to research and create a guide for forming and maintaining an Editing Group that partners college-age women with high school-age women. By setting up monthly socials, teach-ins, and edit-a-thons, we will form our first group while simultaneously writing a guide that can be dispersed, edited and shared with other institutions and community groups.
Our culture needs to get the next generation excited about authorship and leadership in the Wikipedia space. In order to get more women involved in the editing process, we need to foster personal connections with Wikipedia editing. As a university professor and a recent college graduate, we are uniquely positioned to act as role models and help facilitate relationships between young women in high school and higher education.
Many universities including UC Berkeley are focusing on digital humanities, and there are new initiatives that provide funding to bridge the divide between technology and writing. This is a testament to the longevity of this project, particularly the likelihood of securing future funds through initiatives at the university level.
- To create a blog/wiki to record the experiences of participants and document our process.
It's important to have nuanced and diverse sources for knowledge creation.
We will divide our tasks into Research, Act, and Document.
- Document and create archives of research and events.
By hosting our project at UC Berkeley, we will easily access college-age women and existing community groups. We will connect with local high schools to form our first editing group. Berkeley is an active, diverse community with a rich history in activism, which makes it an ideal site for this project.
This project is a pilot program that will serve as a learning tool. We will document our process for the formation of future editing groups all over the US and beyond.
The pilot editing group allows us to shift and change our practices based on participant feedback. Through documentation and publishing our guidelines, we will share our experiences with the larger community.
Our goal is to create a minimum of 10 editing pairs (or trios) during this pilot.
Another goal is to identify at least one college-age participant and one high school-age participant to act as hosts at their school site.
We hope to improve or add 100 articles by the end of our pilot program.
We plan to track retention of active editors, and we can set a numerical goal for this if necessary.
Jill Miller is an artist who creates collaborative, socially-engaged projects with diverse communities. She is faculty at UC Berkeley, the San Francisco Art Institute, and Stanford University. She and her former student Anna Carey co-hosted the first Art+Feminism Wikipedia Edit-a-thon at UC Berkeley. Their Edit-A-Thon is mentioned in the East Bay Express and the Daily Californian publications. Anna made a guest appearance on KQED's Forum show on NPR in San Francisco.
This page was last edited on 14 January 2016, at 21:54.


text:
Q: Left join on dates all dates I have several tables with dates that I'm trying to join to to make a large table where the data is grouped by date.
I'm accomplishing this right now by LEFT JOIN'ing to subselect's generated from the tables that I need to join to ( a lot of them are the same table with different where queries and involve SUM and COUNT so I think I have to use subselects ). The problem that I'm having is that if one of the dates doesn't existing in the first table then it doesn't show up in the table even if there are rows in subsequent tables that it's joined to with that date. I'm joining based upon DATE(datetime_column).
So it's like
SELECT date, col 1
FROM a
   LEFT JOIN (SELECT date, col2 FROM a1) a2 ON DATE(a.date)=DATE(a2.date)
   LEFT JOIN (SELECT date, col3 FROM a3) a4 ON DATE(a3.date)=DATE(a4.date)

Make sense? Probably not..

A: There are basically two ways to do so:
You can use a FULL OUTER JOIN

Full outer join
Conceptually, a full outer join combines the effect of applying both
  left and right outer joins. Where records in the FULL OUTER JOINed
  tables do not match, the result set will have NULL values for every
  column of the table that lacks a matching row. For those records that
  do match, a single row will be produced in the result set (containing
  fields populated from both tables).

...

Some database systems do not support the full outer join functionality
  directly, but they can emulate it through the use of an inner join and
  UNION ALL selects of the "single table rows" from left and right
  tables respectively. The same example can appear as follows:
SELECT employee.LastName, employee.DepartmentID, department.DepartmentName, department.DepartmentID
FROM employee
INNER JOIN department ON employee.DepartmentID = department.DepartmentID

UNION ALL

SELECT employee.LastName, employee.DepartmentID, CAST(NULL AS VARCHAR(20)), CAST(NULL AS INTEGER)
FROM employee
WHERE NOT EXISTS (SELECT * FROM department WHERE employee.DepartmentID = department.DepartmentID)

UNION ALL

SELECT CAST(NULL AS VARCHAR(20)), CAST(NULL AS INTEGER),
department.DepartmentName, department.DepartmentID
FROM department
WHERE NOT EXISTS (SELECT * FROM employee WHERE employee.DepartmentID = department.DepartmentID)

Other-ways you can make a master view, witch contains all the distinct keys of all the tables, to LEFT JOIN with all the tables.
select *
from (
        SELECT date
        FROM a
        union
        SELECT date
        FROM a1
        union
        SELECT date
        FROM a3
    )
    LEFT JOIN a using (date)
    LEFT JOIN a1 using (date)
    LEFT JOIN a3 using (date)

Sometime I prefer the second way to the FULL OUTER JOIN because FULL OUTER JOIN is not supported on many RDBMS and because there many of those who support it that do not optimize it well, Oracle's current version for example just threats a full outer join as the equivalent query showed in the citation, witch is very lossy for performances.

A: Try using the OUTER JOIN to fetch all the records from main table and only matching records from the sub/child table.
SELECT a.Col1, b.Col1 FROM a LEFT OUTER JOIN b ON a.Col2=b.Col2

Refer Join (SQL) for details on Joins.

A: You have another option for this, which is not using a join at all.  You can bring the results together using unions and aggregations:
SELECT date, max(col1) as col1, max(col2) as col2, max(col3) as col3
FROM ((select date, col1, NULL as col2, NULL as col3 from a1) union all
      (SELECT date, NULL, col2, NULL FROM a2) union all
      (SELECT date, NULL, NULL, col3 FROM a3)
     ) t
group by date

Often the solution is the second one given by Alessandro (the first version is very cumbersome).  One caveat.  His solution pulls the dates from the data.  Sometimes you want to generate the master list, perhaps from a calendar table or perhaps by generating the list of dates (the specifics for that depend entirely on the database).

redpajama_set_name: RedPajamaStackExchange


text:
Bone and Joint
Brain and Spine
Mission to Medicine
Men s Health
Women s Health
Home » Learn » Digestive » Helping patients access lifesaving medications
Helping patients access lifesaving medications
Share this story now
A look at the important work of the Medication Therapy Management Clinics at Methodist Dallas
If a few pills could save your life, would you take them? For most, the answer is a resounding "Yes." Yet a surprising 50 percent of patients with chronic diseases don't take their medications as prescribed, according to a review in Annals of Internal Medicine. Fear of side effects, high costs, and misunderstanding, are among the reasons patients don't take their medicine — and the results can be tragic. Nonadherence causes approximately 125,000 deaths and 10 percent of hospitalizations each year — not to mention up to $289 billion in annual costs to the U.S. healthcare system.
The new Medication Therapy Management (MTM) clinics at Methodist Dallas Medical Center are working to make it easier for patients with chronic diseases to access the life-changing medications they need. Working with patients, insurance providers, and physicians, the clinics help patients avoid potential medication conflicts, manage side effects and other health issues, and ensure patients take medications correctly to get the best outcomes possible.
"I believe in the treatment, the donors, the cures, and everything about it. I want to shout it from the mountaintop. Every day one of my great-grandchildren walks through the door, and I get to see that, and watch their legacy unfold before my eyes, it is a blessing. It is more than you can imagine. I am so grateful." — Josephine Miree-Dumas
Curing hepatitis C since 2015
Five million Americans have hepatitis C. Left untreated, the virus leads to kidney damage, liver cancer, and (without a liver transplant) death. Until recently, there was no cure. Early treatments were only effective about half the time, and many patients were excluded due to coexisting conditions or side effects. However, in 2013, everything changed. Newer, more effective treatments became available for all patient groups, including people with HIV, cardiovascular disease, and transplants, with fewer side effects and cure rates of about 95 percent.
In June 2015, Methodist Dallas created the first MTM Clinic to help patients with hepatitis C access this lifesaving care. The clinic has treated about 800 patients since, with a cure rate of 97 percent — two points higher than the national average. Parvez Mantry, MD, transplant hepatologist on the medical staff at The Liver Institute at Methodist Dallas, helped spearhead the program.
"We have critical therapies. We have a large population," Dr. Mantry says. "We felt that if we had a dedicated platform for integrated delivery of care, we could have a tremendous impact on the health of the community. Our biggest success is that we have not had any patients for whom we have not been able to provide drug therapy for viral hepatitis. In terms of coverage, there are no patients left behind."
Removing barriers to life-changing care
Patients with chronic conditions like hepatitis C require therapy that is complex, expensive, and not easily accessible. The drugs aren't sold at retail pharmacies, and require preauthorization from third-party payers. Successful treatment also requires dedicated pharmacists who can help patients navigate drug interactions and ensure compliance. MTM pharmacists work with patients, insurance providers, and physicians from the very beginning.
"We spend a lot of time talking with insurance companies; if a patient is denied access, we appeal it on their behalf to ensure they get the medication they need," says Melanie Proffitt, PharmD, BCACP, clinical pharmacist for the MTM Clinic. "We also follow up with pharmacies if patients run out of medications, because it's not something you can start and stop. Our pharmacists have pagers and are on call 24/7. We want to make sure patients know they always have someone to talk to."
Also helping to make these medications more accessible is participation in the federal 340B Drug Therapy Program, which provides drugs at a discount to patients. Patients at the MTM Clinic also have access to a hepatitis C navigator, who helps facilitate care and connect patients to drug discount programs.
"I am so thankful to have been given another chance at life. How often does that happen? You are on your way out the door, and someone says, 'Hey, wait a minute. It's not time for you to go yet.' You can't beat it with a stick."— Josephine Miree-Dumas
Improving outcomes for patients with complex treatment issues
Patients with multiple health conditions are often denied medication coverage because of interactions with other medications. The MTM Clinic specializes in helping patients like these get the care they need.
For example, one patient with a seizure disorder had been denied coverage for hepatitis C medications because of drug interactions listed in the package insert. MTM pharmacists sat down with the patient, primary care provider, and The Liver Institute team to put together a plan and worked with the insurance company, who agreed to provide coverage if the pharmacy provided monitoring. The patient was cured of hepatitis C without a single seizure.
Another patient was in need of a heart transplant but could not be placed on a list because of his hepatitis C status. The MTM clinic successfully cured the patient while monitoring potential interactions with cardiac medications, with no incidents.
A second chance at life
Josephine Miree-Dumas knows the value of the program firsthand. She was diagnosed with hepatitis C in 2001, but had previously discontinued treatment because of anemia. Fortunately, she resumed treatment at The Liver Institute in 2015 — and was cured in just one month. Today she is doing well and grateful for what she considers a second chance at life.
"I have 16 grandchildren and 10 great-grandchildren, whom I now get to play with, go to the park with, and do things that I would not be able to do had I not been cured," Josephine says. "I am so thankful. God bless the donors who support this program — they are saving lives."
"I am so proud to know that Methodist has a program that can benefit thousands of people in the city who are in need of help. More people need to know that this exists, so you can receive the help you need—so you can live." — Josephine Miree-Dumas
Expanding the program more patients
Following the success of the first MTM Clinic at The Liver Institute, Methodist Dallas opened a second MTM Clinic for cardiology, which has treated between 200 and 300 patients. In June, Methodist opened a third MTM Clinic to treat patients with HIV. Jon Albrecht, vice president of operations at Methodist Dallas, would like to see the program expand even more.
"It's important for patients with chronic conditions to be able to access the therapies they need," Albrecht says. "Right now, we are focusing on high-cost, high-complexity drug therapies. If we had more support, we could expand clinics to better treat patients with other chronic conditions, like diabetes and asthma."
Donors make it possible
The MTM Clinics help patients get better, live longer, and fully recover from chronic diseases. With support from the Foundation, the program could open more facilities, see more patients, and make healthcare affordable for even more people.
Want to help? Be a part of bringing this lifesaving service to people with chronic illness.
Other stories you might like:
Labor of love in the NICU
When a high-risk pregnancy delivers the highest reward
Satisfy that Italian food craving without ditching your diet
Arlington cop toughs out 5K, unaware he had appendicitis
How a nonsurgical solution can relieve severe emphysema
Feeling drunk without alcohol was just the start
Surprising heart attack signs, from a toothache to shoulder pain
VIDEO: Olympian gets back on track after procedure to freeze heart
5 ways to put a lid on high blood pressure
methodisthealthdfw
This patient from the Austin area has had a scary
Shine Online | Your Healthy Living Resource – Methodist Health System
© 2020 True North Custom
Sign up to receive the best of Shine Online in your email box every other week.

redpajama_set_name: RedPajamaCommonCrawl


text:
110th Congress (2007-2008) (223)
270 - Energy (14)
300 - Natural Resources/Environ (493)
370 - Commerce/Housing Credit (2)
400 - Transportation (1)
450 - Community/Regional Development (77)
550 - Health (9)
950 - Undistributed offset Receipts (2)
House Committee on Energy and Commerce (94)
House Committee on Financial Services (72)
House Committee on Foreign Affairs (55)
House Committee on House Administration (22)
(-) House Committee on Natural Resources (282)
House Committee on the Judiciary (159)
House Committee on Veterans Affairs (49)
House Committee on Ways and Means (50)
House Permanent Select Committee on Intelligence (6)
Senate Committee on Agriculture, Nutrition, and Forestry (6)
(-) Senate Committee on Energy and Natural Resources (279)
Senate Committee on Finance (31)
Senate Committee on Foreign Relations (37)
Senate Committee on Health, Education, Labor, and Pensions (36)
(-) Senate Committee on Indian Affairs (59)
(-) Senate Committee on Small Business and Entrepreneurship (2)
Senate Committee on the Budget (38)
Senate Committee on Veterans Affairs (27)
Senate Select Committee on Intelligence (6)
(-) 2008 (223)
S. 1193, A bill to direct the Secretary of the Interior to take into trust two parcels of federal land for the benefit of certain Indian Pueblos in the state of New Mexico
Cost Estimate November 12, 2008
Cost estimate for the bill as passed by the House of Representatives on September 29, 2008, with a proposed Senate amendment dated October 1, 2008
S. 2974, Arkansas Valley Conduit Act of 2008
Cost Estimate November 5, 2008
Cost estimate for the bill as reported by the Senate Committee on Energy and Natural Resources on September 16, 2008
S. 2842, Aging Water Infrastructure and Maintenance Act
S. 3179, Lovelace Respiratory Research Institute Land Conveyance Act
S. 2448, Surface Mining Control and Reclamation Act of 1977
S. 1193, An act to direct the Secretary of the Interior to take into trust two parcels of federal land for the benefit of certain Indian Pueblos in the state of New Mexico, and for other purposes
Cost estimate for the bill as passed by the House of Representatives on September 29, 2008
H.R. 5680, An act to amend certain laws relating to Native Americans, and for other purposes
Cost estimate for the bill as reported by the Senate Committee on Indian Affairs on September 25, 2008
S. 3189, Endangered Fish Recovery Programs Improvement Act of 2008
Cost estimate for the bill as reported by the Seante Committee on Energy and Natural Resources on September 16, 2008
S. 1756, Republic of the Marshall Islands Supplemental Nuclear Compensation Act of 2007
S. 1080, Crow Tribe Land Restoration Act
Cost estimate for the bill as ordered reported by the Senate Committee on Indian Affairs on June 19, 2008


Great news for animals! This month marked significant milestones in the ways law enforcement is tackling animal crimes, spearheaded by the extraordinary leadership of National Sheriffs' Association (NSA) Deputy Executive Director John W. Thompson.
NSA represents thousands of sheriffs and other law enforcement professionals throughout the country. The organization provides police education and training, and creates networks of communication between local, state, and federal criminal justice officials. The Animal Legal Defense Fund regularly collaborates with NSA, and is an official partner of NSA's National Law Enforcement Center on Animal Abuse; our Senior Attorney Diane Balkin, a former prosecutor, also serves on the NSA's Dog Encounters Advisory Board.
Last week, NSA announced the creation of its first-ever Animal Cruelty Committee. According to NSA President John Layton, this committee will "look into the needs and concerns of our sheriffs across the country in handling this issue," and will create a "unified voice" for law enforcement to address animal cruelty. The announcement came just days after the Department of Homeland Security, the National Counterterrorism Center and the FBI published the First Responder's Toolbox, advising that animal cruelty, particularly when premeditated, may be a warning behavior for terrorism and other violent acts. This is an important step in addressing community safety, and one that NSA has been advocating for behind the scenes.
For years, NSA has been working to improve the availability of information regarding animal cruelty crimes, knowing firsthand the impact of disseminating the right information to officers in the field. In a landmark move, the organization successfully lobbied the FBI to begin tracking animal cruelty crimes in 2016, citing the link between animal cruelty and other violent crimes. The FBI now has a separate category for animal cruelty crimes in its annual Unified Crime Report, allowing officials to track and analyze national animal cruelty data for the first time.
The Animal Legal Defense Fund applauds the National Sheriffs' Association, and in particular John Thompson, for their longtime dedication to animal protection, and for continuing to push the boundaries on how law enforcement views and responds to crimes against animals.


Driving traffic to your job post begins with writing job descriptions that even the most passive sales candidates can't resist.
Mistake #1 is assuming that you can just post a job and have applications start pouring in.
Mistake #2 is thinking that the number of applications is equal to the quality of applicants.
To write a strong and compelling job description, start with putting yourself in the shoes of the job seeker. By understanding who you are trying to hire and how to get candidates interested in the opportunity, start by asking yourself the question "Why should I apply to this job?" or "Would I apply to this job?" Once you understand this you can start to map out what the job entails, the qualifications and the type or person you are looking to fill this role. Remember you want to drive qualified sales candidates to apply to your job.
All job descriptions begin with a title. This is the first thing job seekers see so make sure yours is relevant. Even though you may be looking for a "Sales Superstar" that is not a common job title and one that most likely won't rank high in search results.
But it is okay to make it unique too. For instance, is the role for a west coast territory?
Try this: Strategic Account Manager, West Coast. This way, at a first glance, a candidate can understand the job.
Before you can sell a candidate on your job, you need to introduce them to your company and why they would want to work there. You should be able to tell them who you are what you do. Explain why you are looking to hire.
Do you have an engaged leadership team?
Great benefits like unlimited vacation time that you can actually use?
Do you have frequent company outings to celebrate success?
Does each role provide the opportunity to grow with the company?
All companies are looking for talented sales professionals so how are you going to them to click apply?
This is the part where you tell them about the role. This is where you want to talk about the day-to-day activities. You should be able to effectively state why this job is important and what it entails.
Is there cold calling, or travel, or account management?
What companies they will be selling into?
What tools will they be provided with to accomplish their goals?
You want to create excitement around the opportunity. Make it personal. Replace the words "ideal candidate" with "you".
This is where you list what experience is required to fulfill the demands of the role. You should be able to clearly articulate what requirements are needed to effectively perform the daily activities.
How many years of sales experience are you looking for?
Is a college degree required?
Does the role require a specific skill like the ability to use salesforce.com?
Do they need to have experience selling into a specific audience?
Remember, job requirements are important but do not let that be the determining factor in who you hire. You want to look for the tangible and intangible skills that enable a sales professional to be successful.
Your goal for writing compelling job descriptions is to drive traffic. Once you get the traffic you need then you can gage the level of experience you need.
Your job description may be your first introduction of your company to a prospective sales candidate so make sure it is a good one. Don't let your job description turn off qualified sales applicants.
Download this free E-Book on How To Drive Traffic To Your Job Post.


Here we have two fantastic Buzz Aldrin autographs.
Buzz Aldrin was an Apollo 11 crew member during the first mission to land on the moon, and walked on the moon with Neil Armstrong during this historical event.
One Buzz Aldrin signature is on the Moon plaque (lower right), which is a VERY limited edition replica of the original which went to the moon.
The second Buzz Aldrin signature is on an awesome signed photograph of Buzz Aldrin on the Moon. Has added the immortal words,"We Came in Peace for all Mankind".
A beautiful and very rare collection.
A guaranteed investment piece, as the autographs will get more and more sought after in the years ahead.
Both items have the immortal words : "We Came in Peace for all Mankind" !!!
Notify me of updates to Apollo 11 Buzz Aldrin Signed Plaque & Photo "We Came in Peace"


This directory contains the list of certified members of the Disciplined Agile Consortium.
Can't find your name? We won't provide your information without your permission. Please update your profile to ensure List me in the online membership directory = "Yes"


Talk given in the Space in the City series "Pie in the Sky? Life, Death, Heaven and Hell" at the United Church, Winchester, England on 2 February 2011. Introduced by Revd Amanda Goulding. Questions chaired by Debbie Thrower.
Note: There is a break in the recording during the question time, after about 42 minutes (when the tape was turned over).


All members of the research team are appropriately qualified and supervised and all of our research is approved by the University Ethics Committee. Once a school has agreed to host our research, we then invite parents to consider whether they would like their child to participate.
We do this by sending a Participant Information Sheet, usually via your child's school. It gives all the details about what the research is, why we are doing it and what it will involve. Sometimes you will be asked to return a form if you would rather your child didn't participate. You do not have to give a reason and your child's education will not suffer in anyway if they do not take part. Sometimes we ask that you return a form to indicate that you would like your child to take part. You are very welcome to get in touch to discuss any aspect of the research at anytime.
Once we're ready to make a start, we liaise closely with your child's class teacher to make sure we fit around classroom activities. We usually work in a quiet corner or a separate room, if one is available. The children usually take part individually. First of all we explain a little bit about who we are and what we are researching. We assign the child a unique ID number: no confidential or personal information is stored that can be connected to your child.
Depending on the experiment, they might either take part in a word decision game, where words flash up on a laptop screen and they have to press a button as quickly as possible if it is a word they recognise. Or they might read some stories which have new words embedded in them. Sometimes we use an eye tracker which is a camera, attached to a computer, which measures a child's eye movements as they read. The child rests their chin on a comfortable chin rest to keep their head still and then reads normally from the computer screen, as described here. A session usually lasts for no longer than 20-30 minutes. Sometimes we ask to see your child more than once so we can see how many words they can remember after a day or two. We might ask them to read some words on flashcards, or ask a child to spell some new words, or ask them to tell us what they think a new word might mean. The sessions are very relaxed. Our research is designed to be child-friendly and fun, not a strict assessment or formal text. The children get lots of opportunities to take breaks and chat. At the end we usually give some stickers or a certificate to say thank you. We also give an explanation of what our research was all about.
When we have finished seeing all of the children at a school, its back to ReadOxford where we can discover what we have found. We prepare a summary of the key findings and share this with your child's school - and results will be posted here in due course. We never share the results for individual children and all data are stored anonymously.


If you are taking into consideration acquiring a new or substitute garage door, then there are several choices readily available to you.
The different kinds of garage door systems vary from common side pivoted as well as "up as well as over" overhead garage doors, to roller, sectional and moving doors Each door kind will certainly have various functions and various functionality benefits, so it is a good idea to familiarize yourself with the different choices that are offered.
What is offered and also just what are the fitting needs?
Since different garage door mechanisms run in different means they have various installations as well as differing internal (as well as outside) area needs. These needs can limit just what will or will certainly not fit right into or throughout your garage door opening.
Right here is a short guide to aid you determine which door opening mechanisms will fit in your garage.
Side pivoted doors are one of the most flexible of all opening up systems as well as provided that: first of all, a structure (casement) can be fitted and second of all, there is room to open the door outwards, they will fit all openings. These doors are normally fitted in 2 areas which could be of equivalent size, or of a one third to 2 thirds door size proportion.
These doors need both room over the opening and room for installations on the side wall surfaces beside the opening. In the case of a requirement up and also over door, the door will additionally project by about one third of its size at the head of the entryway when open. A retractable up and also over does not job in an outward direction.
Doors adopting a roller system shop by wrapping around a drum (or roller) that is fitted over as well as somewhat behind the opening. They take up hardly any room (less than other door type) and could also be left partially open. Provided that there suffices space above the opening, this sort of door is extremely efficient in its use of space.
Gliding doors need a track at the top and bottom of the opening. This track reaches one side of the available to the placement where the door is stored when the garage is open. The advantage of fitting this sort of door is 2 fold. To start with, it calls for restricted space over the opening and also secondly the tracks could be fitted inside or beyond the garage walls. This makes it very functional if area within a garage is limited.
A garage door with a sectional structure works like a sliding door, only it moves upwards into the roofing system area above the garage entrance. This means that the garage requires substantial room over as well as behind the door's opening, however that the locations to the sides of the opening are free from any fittings.
Guaranteeing that your recommended garage door system will fit is an evident priority, however just as essential is verifying that the roofing building and construction and also wall surfaces are structurally efficient in taking the weight and also stresses of the brand-new garage door.
That claimed, garage doors are created particularly to fit the dimension and structural limitations of barns as well as structural honesty is hardly ever an issue.
Doors run by electrical motor and also push-button control tend to have a smooth influence cost-free movement which decreases working stress and anxieties, however the motor will certainly include an extra weight.


text:
Q: Nginx different location same directory I want to use 2 different htpasswd files depending on the URI used pointing to the same index.html file
Example:
http://localhost/foo use htpasswd-foo
and
http://localhost/foo2 use htpasswd-foo2
Thank you in advance for your feedback.


This document will detail how to prepare a system for the installation of Lisk Core. It will guide you through the installation of important dependencies, as well as user creation.
To complete the installation there are prerequisites that need to be fulfilled. If you have already performed these, please proceed to the Installation chapter. Please follow the instructions below to load the required software to your system.
These are the default ports for connecting with the network, they can be altered later in config.json.
The lisk user itself does not need any sudo rights to run Lisk Core.
This section details how to install Lisk Core using pre-built binary packages. Once completed, you will have a functioning node on the Lisk Network. If you are looking to upgrade your current Lisk Core installation, please see the Upgrade Binary section.
The user was created in the Binary - Prerequisites Section. If you are already logged in to this user, please skip this step.
This will configure the environment, download and install Lisk Core.
Before proceeding, determine whether you wish to connect your node to the Testnet (Test Network) or the Mainnet (Main Network).
You will be prompted for your installation directory, pressing enter will choose the default.
the node will download a recent snapshot of the database. This will be much faster than synching from the genesis block.
The installation may take a few minutes. Check the scripts output to verify that the installation was successful.
If you recognise an error, try to resolve it by analysing the error output, otherwise you can have a look at our Troubleshooting Section.
When the installation script has finished, navigate inside of the newly created folder lisk-main(for Mainnet) or lisk-test(for Testnet).
For further information and how to administer your Lisk node, please have a look at our Administration Section.
If you are not running Lisk locally, you will need to follow the Configuration - API document to enable access.
With all of the above steps complete you are ready to move on to the configuration documentation if you wish to enable forging or SSL, please see General Configuration.
It is recommended to setup a log rotation for the logfile of Lisk Core.
Ubuntu systems provide a service called logrotate for this purpose.
Inside of this file, define the parameters for the log rotation.


This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. Please let me know if the document helps. This conversation is currently closed to new comments. You should be able to install this one and still retain the one you are working with now. The added width needed to accommodate the large display enabled HP to add a number pad next to the keyboard. To see if you have it already for the boradcom module look in this directory. I understand there are drivers available however, I have yet to find one that is very easy to install.
The wirelesw button does not light up when pressed but triggers a quick flash of the hour glass icon with no further activity. View All 9 Photos in Gallery. This book contains many real life examples derived from the author's experience as a Linux system and network hp dv8000 wireless, trainer and consultant.
Open Source Consulting Domain Registration. I hp dv8000 wireless took 6 minutes too long to finish posting. Again, this is another feature which will really shine when the laptop has MCE installed and a TV tuner. I connected the wires as shown in the manual. Message 1 of 4 3, Views. Not a kubuntu user so not sure the way the user files are hp dv8000 wireless. This is what HP has to say about WiFi no longer working.
The dv is the high-end, deluxe laptop in HP's Pavilion line. Hello, Thanks alot for your fast reply.
To see if you have it already for the boradcom module look in this directory. Read the entire thread as there are some other things to know that aren't contained in the document itself.
Are you new to LinuxQuestions. Music and Photo ratings were excellent thanks to the dual hard drives and hp dv8000 wireless card reader. Even Vista wiireless be better more secure:.
Heat doesn't seem to be a hp dv8000 wireless with this system so far, even though I've read that it's a widespread issue. You can download it from other PC or mobile and install it with dpkg.
Hard to find but there is actually a Windows XP driver page still out there for that model and a Vista driver page with hp dv8000 wireless that could be used on Windows 7.
The led board is not sticky from the spillage but has some type of stain on it.
RHEL 5 with Pieces of this wirsless that. Like its dv000 dv hp dv8000 wireless, the HP Pavilion dvthe dv is configured with QuickPlay, which provides quick access hp dv8000 wireless DVDs and music files in a preboot environment. I wasn't aware that after disassembly and reassembling the system that I would have to go into bios setup and reset the enable for the WiFi. If you're asking for technical help, please be sure to include all your system info, including operating system, model number, and any other specifics related to the problem.
How to Tell if You're ev8000 Tech Addict. Message 2 of 4 3, Views. This newsletter may contain advertising, deals, or affiliate links. Having a problem logging in?
When I try to install the driver from the other drivers it just hangs there and never installs the driver.


text:
Riley MacIntosh
NOMENO
Travelr
Groupr
Photography & Fun
a smart toy & app for children that uses digital technology to promote hands on learning through play.
The goal of this project was to create a marketable smart object and accompanying app. Our team was assigned the topic of children toys.
Research, Ideation, Wireframing, Prototyping, UX, Animation.
Leah Wei & Don Daskalo
Increased popularity of video games has lead to disinterest in traditional toys. This has caused a lack of innovation in modern toys that is depriving children of important skills developed through physical play.
I researched a variety of existing smart toys to see what kind of products we would be competing with, and gain a better understanding of current technology. I then wrote a competitive analysis on one of these products, to become more aware of the pain points with other smart toys that we wanted to avoid when created nomeno.
Additionally we worked as a team to create a simple PACT analysis to better understand and define our target market.
PACT Analysis
Brainstorming Process
How can we create a toy that will teach children hands on skills and encourage physical play, but that also embraces modern technology to appeal to kids growing up in a digital world?
Nomeno is a physical toy that uses smart technology to interact with a digital world. This world can only be fully explored by completing gamified educational challenges using the physical nomeno toy.
Through this design we are able to utilize the world building and educational capabilities of a digital game, while still inspiring imagination and real world play.
We chose to use Sofia Pro as our logo type and primary typeface as we were looking for something soft and playful but still readable.
We decided to pair this with Sofia Pro Soft, to highlight the more playful side of our app.
We chose a variety of bright pastel colours because we wanted nomeno to feel fun, but not chaotic and overly bright. We also needed a fairly wide variety of colours to effectively illustrate the different worlds in our app.
Illustration Style
All the illustrations for nomeno were done using ellipses and rectangles with rounded corners to imitate nomeno's rounded shape and create visual consistency.
User Persona 1
Avery is a 7 year old only child living with her parents in Beijing. Although she has a big house and yard to play in, she doesn't have any friends living around her to play with when she's home from boarding school. She's a very clever and energetic child who likes to do crafts and play outside. She also has a small tablet that she uses to watch videos and play games on but when she uses it, she ends up sitting in the same spot with her neck craned over the screen until her parents finally tell her to stop.
PAINT POINTS
- Parents want to limit screen time.
- Needs the app to be easy enough to understand
without constant parental supervision.
- Wants more fun ways to pay when alone.
- A way to connect with boarding school friends while
back home.
User Scenario 1 - on boarding
Jonah is a 10 year boy living in a condo downtown with his 14 year old brother and mom. His favourite toy to play with has always been legos. He loves building littles cars and boats but since the kids around him have started playing digital games he's asked for an iPad and followed suite. Last month he saw a Snapchat ad for Nomeno and begged his mom to buy him one. He's been working his way through the challenges ever since. He'll even invite his friends over to build together or compete with his best friend to see who can get the highest score.
- Doesn't have a ton of space to play in a small condo
- Hasn't play a lot of other digital games so the
nomeno interface must be easily understandable
- Compete and connect with friends
- Use and improve his building skills so he can apply
them to other activities or toys
User Scenario 2 - Gameplay
Invision Prototype
To see nomeno for yourself click here.
One of my responsibilities for this project was to come up with, and create one piece of marketing material. I decided that the most effective way to reach out target audience would be through a snapchat/instagram story ad. The ad encourages the user to interact with it in hope that they will be tempted and click through to discover more about the product. The gif to the right is an example of what one of these instagram ads might look like.
If we were to continue with the nomeno advertising campaign I would like to create a series of posters that would highlight how the nomeno toy and wheels that come in the initial box can be used in combination with household items to build all kinds of different things.
3D Render
The 3D rendering was executed by one of my team members but we came up with the overall design of nomeno as a group. This is an example of what he might look like, along with the wheels included in the basic starter kit.
© Riley MacIntosh
rileymacarini@gmail.com


text:
Category: Fundraising
Community Savings Account
Good Grantmaking
Philanthropy Tips
Philanthropy Works
Boys and Girls Club of the Capital Area Accepts 3:1 Endowment Matching Challenge
Generous donors, Scott and Julia Jones of Pierre, S.D. and Dale Larson of Brookings, S.D. have challenged the Boys and Girls Club of the Capital Area (BGCCA) to raise $500,000 for a $1.5 million match to the BGGCA Fund held with the South Dakota Community Foundation (SDCF).
Parkston Area Foundation Fundraiser
The Parkston Area Foundation (PAF) was established in 2004 and has seen great success since its inception.
Since 2007, the PAF has been giving annual grants and scholarships to worthy applicants in the Parkston area that currently total around $175,000.
"The Parkston Scholarship Fund is very new to the Parkston Area Foundation," says PAF Board Member Audrey Bowar. "It was created within the PAF in 2017 with the purpose to provide a scholarship to EVERY graduating senior in Parkston. It is our intention to let the youth in Parkston know that we believe in them, we are willing to help them reach their goals, and we would like to see them return to our community in the future."
SD Ag Foundation accepts $4M challenge from SD Gov. Daugaard & South Dakota Community Foundation
Sioux Falls, SD; March 20, 2018 — On National Ag Day, the South Dakota Agricultural Foundation accepted a five-year challenge to raise $4 million for future support of South Dakota's agriculture industry. Funds raised by the SD Ag Foundation will be matched by an additional $1 million in funds from the South Dakota Community Foundation (SDCF) and SD Governor Dennis Daugaard.
Board Member Shares Capital Area United Way History
One of our newest board members, Scott Jones of Pierre, was recently keynote speaker at the Capital Area United Way Annual Meeting. He shared early history of the South Dakota Community Foundation (SDCF) and Capital Area United Way.
Mr. Jones was on the first steering committee and served as board chair in 1992 and 1993 for the Capital Area United Way. He continues to generously support the organization and its good work.
2017 was a full year for the South Dakota Community Foundation's (SDCF) community savings accounts (CSA). SDCF was excited to officially begin CSA's with two additional communities, growing to partnerships with 79 communities across South Dakota.
Kimball Area Foundation hosts Keeping it in Kimball event
In September 2016, the Kimball Area Foundation accepted a challenge grant from SDCF to raise $100,000 by September 2018 for $25,000 from SDCF. In efforts to raise awareness regarding the local CSA and reach the challenge grant goal, the Kimball Economic Development board and its Director, Anita Holan, organized "Keeping it in Kimball" with the goal of raising funds and awareness for the Kimball Area Foundation on Saturday, June 24 this year.


This form can take some time. It would be wise to prepare answers to the following questions before you begin and have them in a digital format so you can copy and paste them into the appropriate place. Answering no, none or leaving one blank does not disqualify you from service. These questions are intended to help us know your previous experience and character. Directors will have discretion to ask other questions if you do not answer.
Whom would you consider to be a role model in your church or Christian journey and why?
Why is Nebraska Youth Camp important to you or what do you see as the purpose of NYC?
Please list any experience you have had with children and youth.
If you are over 18 we need to run a background check.
NOTE – Only do this once. If you did this in previous years please don't fill it out again.


Plastic Anniversary sees Matmos recycle the sounds of discarded plastic into exploratory electronic music. It considers the ubiquity in our lives of this most extraordinary material and the environmental consequences looming ahead of us as a result. It's less the dark and dystopian polemic that might suggest than a series of toy shop experiments in the plasticity of sound. This is a central Matmos device, undercutting their intellectual rigour with a playful approach. Their last album, Ultimate Care II, took us on a musical journey through a washing machine. It was both conceptually forbidding and at the same time essentially quite daft. If you're tempted to see all this as just some kind of art school joke they're way ahead of you, pushing right to the point of absurdity on the opening track. 'Breaking Bread' is made from the sounds of broken vinyl records by 70's soft rockers Bread, plucked from their thrift shop afterlife and reborn as an elastic groove that pops and snaps with mischievous glee. Plastic Anniversary also marks a quarter century of Matmos as both a creative and romantic partnership. Is there an avant garde electronic duo you'd rather break bread with? I guess Chris and Cosey have got a lot more cuddly in recent years but, assuming your hosts to be like their music; smart, witty and approachable, dinner chez Matmos would be great. As long as they didn't want to record you chewing or digesting or something.
'Interior With Billiard Balls & Synthetic Fat' is one of several tracks titled directly after their sources, allowing space for a purely formal focus, or a certain blankness perhaps. Beginning with the familiar clicking sound of billiard balls it moves steadily through changing patterns and textures before twisting into an upward stream of liquid bubbling sound. This balancing act continues across the record, holding on to particular recognisable moments and the weird alien timbres of the sources while at the same time relying on the infinite possibility of modern studio techniques to bend and reshape sounds to almost any purpose. Ultimately, despite the source, the sound is Matmos. There are moments and specific sounds that recall their ESP opus The Marriage of True Minds on 'Silicone Gel Implant' while the track is also an obvious a nod to their surgery sampling A Chance to Cut Is a Chance to Cure.
As far as Matmos goes there is nothing new or challenging about the music here, indeed following Ultimate Care II there's an attempt to keep things bright, up tempo and accessible. Much of it could even work as soundtrack music for educational television although there isn't anything as relatively 'pop' as 'Very Large Green Triangles'. On the title track a calm opening section gives way to a triumphant parade and heraldic horns. 'Thermoplastic Riot Shield' is appropriately tough and combative, a clash of abstracted rhythms, alarms, and something that sounds like a straining drill. The sense of a march or parade is there again in 'Fanfare For Polyethylene Waste Containers'. Its bright and repeating melodic line recalls Boards of Canada but the track has an undeniable edge beneath it's pageantry, a darkness that leads us into the album's closing section.
Quieter and more tentative than anything so far 'The Singing Tube' is a creaking loop that hovers anxiously at the edge of a full blooded groove but never really does until sharp whistle blasts announce 'Collapse Of The Fourth Kingdom'. The Fourth Kingdom was a name given to the world of plastics by its early proponents. Grandiose it might appear but it's also now undeniable. A joyful carnival roll that shifts and plays until its final minute when it does indeed collapse into sci-fi dread and insect clicks, the march of progress tripping over its own feet. The ghostly, ambient, closing track 'Plastisphere' confronts the idea of ecological disaster but is not entirely bleak. Plastisphere refers, to a degree, to adaptation, nature finding a way to live around and within all the crap we have dumped into the environment. Still, it's a picture that probably doesn't include us. The track has the texture of field recordings, as if they had mic'd up a plastic forest. Weather and bugs all invoked using the sounds of plastic and the plasticity of sound. Technically impressive, intellectually invigorating, this is the alchemical magic Matmos are able to weave. The sounds they have collected are mostly as blank as plastic fragments washed up by the tide, yet they carefully collage them into colourful and revealing tableau. Many happy returns.


DWAYNE PURVIS, P.E. Offers over 20 years of EXPERIENCe in RESERVOIR ENGINEERING CONSULTING & Reservoir MANAGEMENT.
- How much oil or gas will be produced?
- How much is that worth?
- How can we profitably produce more?
The quality of predictions of the future can be tough to discern since anyone can post an opinion, and we must wait sometimes many years for validation. The best predictions rely on a thorough understanding of the internal architecture and dynamics (what I call the unified theory of the reservoir) which make it possible to predict behaviors which may not be so obvious. Experience and understanding help to see the "black swans."
But understanding the reservoir is only the penultimate objective of a reservoir engineering consultant; the ultimate objective is to manipulate the reservoir to get the best value from it. Trial-and-error is slow, costly, potentially inconclusive and, most importantly, irreversible. Analysis offers the best value when large capital is on the line, especially when commodity prices provide no cushion for error. Brief or poor analysis may be venial when prices are high, but it is potentially mortal today.
If you need reliable answers, please give us a call.
We would be very pleased to talk with you and to see whether there is some way in which we might be able to help with the engineering and strategic challenges you face.


The certified units are capable to handle air volumes of up to 4.17 m³/s (15,000 m³/h).
New Management team at Menerga in Mülheim an der Ruhr, Germany.
A new Menerga sales organization is set-up in Central Germany.


On February 3, 2016, 17-year-old Samantha Tran signed a National Letter of Intent to attend Stanford University on a full athletic scholarship to play for the Stanford Women's Soccer Program in the Fall of 2016. She had verbally committed to Stanford when she was a sophomore in high school.
Sam started playing for Tracy Youth Soccer League when she was 4-years-old. She played for the Tracy Futbol Club, Crush, and Kimball High School Girls Varsity soccer teams. She has been with her current team, De Anza Force, since she was 9-years-old.
In 2013, the De Anza Force won the under 14 girls Elite Clubs National League National Championship and the under 16 Donosti Cup, which is Spain's largest international soccer tournament. Her team took 3rd in both the under 15 girls and under 16 girls Elite Clubs National League National Championships in 2014 and 2015, respectively. Her team has been the reigning Northern California State Cup Champions for the past six consecutive years.
Over the last few years, Sam was invited to attend US Women's National Team Camps and she was also selected to the Elite Club National Club camps in Portland, Oregon. As a high school sophomore, Sam surpassed the Kimball High School (Tracy, California) girls varsity soccer team scoring record with her record breaking 29 goal season.
In 2016, Sam was ranked the #2 player in Northern California by the International Marketing Group.
On November 10, 2015, Darrel Yamamura accepted a Superintendent Nomination to attend the West Point Military Academy and to compete with the gymnastics team in the Fall of 2016.
Darrel started Gymnastics as a four year old. He was inspired by the television show "Power Rangers." When he was 8-years-old, he moved up to the Trampoline and Tumbling Team and, later, began competing on the rings, high bar, and pommel horse.
Darrel has been the Captain of his team the last two years. He has been instrumental in guiding and coaching younger gymnasts.
Darrel's successes in gymnastics include: Level 4 State Champion in vault, pommel, and high bar, Level 4, 5, and 6 State Champion in trampoline and tumbling, Level 9 State Team alternate, Level 9 Regional Select Team, Level 9 Junior National High Bar silver medalist, three time Regional Woodward Camp invitee, eleven time Regional competitor, six time National competitor, and four time National Academic All American.
Darrel is equally as busy in school. He is the Senior Class President and is active in technology and engineering competitions. Darrel is pursuing his National Accreditation to become certified as an Emergency Medical Technician and he is the youngest in his class to pursue this goal.
Darrel was invited to tour all three United States Military Academies campuses and view their Gymnastics Programs. Ultimately, West Point Military Academy, which had pursued him since he was a junior in high school, was Darrel's top choice. Darrel gladly accepted the Nomination from West Point.
The Milpitas Police Department is proud of these two young adults and looks forward to their continued success!
Okay, I will celebrate it too! Do you mind me joining you?


A special New Years treat for you fans! The long awaited Crackerland Theme Song animatic! Theme song sung by the very talented Joel Timothy, and written by Lavalle Lee. Storyboards by Kelsey Wooley. What do you guys think??
Makes me to look forward to this!
Pretty awesome, I love the twang. Feel like in the final there should be a full out jug band.


text:
Sequel.require 'adapters/shared/postgres'

begin
  require 'pg'
  SEQUEL_POSTGRES_USES_PG = true
rescue LoadError => e
  SEQUEL_POSTGRES_USES_PG = false
  begin
    require 'postgres'
    # Attempt to get uniform behavior for the PGconn object no matter
    # if pg, postgres, or postgres-pr is used.
    class PGconn
      unless method_defined?(:escape_string)
        if self.respond_to?(:escape)
          # If there is no escape_string instance method, but there is an
          # escape class method, use that instead.
          def escape_string(str)
            Sequel::Postgres.force_standard_strings ? str.gsub("'", "''") : self.class.escape(str)
          end
        else
          # Raise an error if no valid string escaping method can be found.
          def escape_string(obj)
            if Sequel::Postgres.force_standard_strings
              str.gsub("'", "''")
            else
              raise Sequel::Error, "string escaping not supported with this postgres driver.  Try using ruby-pg, ruby-postgres, or postgres-pr."
            end
          end
        end
      end
      unless method_defined?(:escape_bytea)
        if self.respond_to?(:escape_bytea)
          # If there is no escape_bytea instance method, but there is an
          # escape_bytea class method, use that instead.
          def escape_bytea(obj)
            self.class.escape_bytea(obj)
          end
        else
          begin
            require 'postgres-pr/typeconv/conv'
            require 'postgres-pr/typeconv/bytea'
            extend Postgres::Conversion
            # If we are using postgres-pr, use the encode_bytea method from
            # that.
            def escape_bytea(obj)
              self.class.encode_bytea(obj)
            end
            instance_eval{alias unescape_bytea decode_bytea}
          rescue
            # If no valid bytea escaping method can be found, create one that
            # raises an error
            def escape_bytea(obj)
              raise Sequel::Error, "bytea escaping not supported with this postgres driver.  Try using ruby-pg, ruby-postgres, or postgres-pr."
            end
            # If no valid bytea unescaping method can be found, create one that
            # raises an error
            def self.unescape_bytea(obj)
              raise Sequel::Error, "bytea unescaping not supported with this postgres driver.  Try using ruby-pg, ruby-postgres, or postgres-pr."
            end
          end
        end
      end
      alias_method :finish, :close unless method_defined?(:finish)
      alias_method :async_exec, :exec unless method_defined?(:async_exec)
      unless method_defined?(:block)
        def block(timeout=nil)
        end
      end
      unless defined?(CONNECTION_OK)
        CONNECTION_OK = -1
      end
      unless method_defined?(:status)
        def status
          CONNECTION_OK
        end
      end
    end
    class PGresult
      alias_method :nfields, :num_fields unless method_defined?(:nfields)
      alias_method :ntuples, :num_tuples unless method_defined?(:ntuples)
      alias_method :ftype, :type unless method_defined?(:ftype)
      alias_method :fname, :fieldname unless method_defined?(:fname)
      alias_method :cmd_tuples, :cmdtuples unless method_defined?(:cmd_tuples)
    end
  rescue LoadError
    raise e
  end
end

module Sequel
  Dataset::NON_SQL_OPTIONS << :cursor
  module Postgres
    CONVERTED_EXCEPTIONS << PGError

    PG_TYPES[17] = Class.new do
      def bytea(s) ::Sequel::SQL::Blob.new(Adapter.unescape_bytea(s)) end
    end.new.method(:bytea)

    @use_iso_date_format = true

    class << self
      # As an optimization, Sequel sets the date style to ISO, so that PostgreSQL provides
      # the date in a known format that Sequel can parse faster.  This can be turned off
      # if you require a date style other than ISO.
      attr_accessor :use_iso_date_format
    end

    # PGconn subclass for connection specific methods used with the
    # pg, postgres, or postgres-pr driver.
    class Adapter < ::PGconn
      # The underlying exception classes to reraise as disconnect errors
      # instead of regular database errors.
      DISCONNECT_ERROR_CLASSES = [IOError, Errno::EPIPE, Errno::ECONNRESET]
      if defined?(::PG::ConnectionBad)
        DISCONNECT_ERROR_CLASSES << ::PG::ConnectionBad
      end

      disconnect_errors = [
        'could not receive data from server',
        'no connection to the server',
        'connection not open',
        'terminating connection due to administrator command',
        'PQconsumeInput() '
       ]

      # Since exception class based disconnect checking may not work,
      # also trying parsing the exception message to look for disconnect
      # errors.
      DISCONNECT_ERROR_RE = /\A#{Regexp.union(disconnect_errors)}/

      self.translate_results = false if respond_to?(:translate_results=)

      # Hash of prepared statements for this connection.  Keys are
      # string names of the server side prepared statement, and values
      # are SQL strings.
      attr_reader(:prepared_statements) if SEQUEL_POSTGRES_USES_PG

      # Raise a Sequel::DatabaseDisconnectError if a one of the disconnect
      # error classes is raised, or a PGError is raised and the connection
      # status cannot be determined or it is not OK.
      def check_disconnect_errors
        begin
          yield
        rescue *DISCONNECT_ERROR_CLASSES => e
          disconnect = true
          raise(Sequel.convert_exception_class(e, Sequel::DatabaseDisconnectError))
        rescue PGError => e
          disconnect = false
          begin
            s = status
          rescue PGError
            disconnect = true
          end
          status_ok = (s == Adapter::CONNECTION_OK)
          disconnect ||= !status_ok
          disconnect ||= e.message =~ DISCONNECT_ERROR_RE
          disconnect ? raise(Sequel.convert_exception_class(e, Sequel::DatabaseDisconnectError)) : raise
        ensure
          block if status_ok && !disconnect
        end
      end

      # Execute the given SQL with this connection.  If a block is given,
      # yield the results, otherwise, return the number of changed rows.
      def execute(sql, args=nil)
        args = args.map{|v| @db.bound_variable_arg(v, self)} if args
        q = check_disconnect_errors{execute_query(sql, args)}
        begin
          block_given? ? yield(q) : q.cmd_tuples
        ensure
          q.clear if q && q.respond_to?(:clear)
        end
      end

      private

      # Return the PGResult object that is returned by executing the given
      # sql and args.
      def execute_query(sql, args)
        @db.log_yield(sql, args){args ? async_exec(sql, args) : async_exec(sql)}
      end
    end

    # Database class for PostgreSQL databases used with Sequel and the
    # pg, postgres, or postgres-pr driver.
    class Database < Sequel::Database
      include Sequel::Postgres::DatabaseMethods

      INFINITE_TIMESTAMP_STRINGS = ['infinity'.freeze, '-infinity'.freeze].freeze
      INFINITE_DATETIME_VALUES = ([PLUS_INFINITY, MINUS_INFINITY] + INFINITE_TIMESTAMP_STRINGS).freeze

      set_adapter_scheme :postgresql
      set_adapter_scheme :postgres

      # Whether infinite timestamps/dates should be converted on retrieval.  By default, no
      # conversion is done, so an error is raised if you attempt to retrieve an infinite
      # timestamp/date.  You can set this to :nil to convert to nil, :string to leave
      # as a string, or :float to convert to an infinite float.
      attr_reader :convert_infinite_timestamps

      # Convert given argument so that it can be used directly by pg.  Currently, pg doesn't
      # handle fractional seconds in Time/DateTime or blobs with "\0", and it won't ever
      # handle Sequel::SQLTime values correctly.  Only public for use by the adapter, shouldn't
      # be used by external code.
      def bound_variable_arg(arg, conn)
        case arg
        when Sequel::SQL::Blob
          {:value=>arg, :type=>17, :format=>1}
        when Sequel::SQLTime
          literal(arg)
        when DateTime, Time
          literal(arg)
        else
          arg
        end
      end

      # Connects to the database.  In addition to the standard database
      # options, using the :encoding or :charset option changes the
      # client encoding for the connection, :connect_timeout is a
      # connection timeout in seconds, :sslmode sets whether postgres's
      # sslmode, and :notice_receiver handles server notices in a proc.
      # :connect_timeout, :ssl_mode, and :notice_receiver are only supported
      # if the pg driver is used.
      def connect(server)
        opts = server_opts(server)
        if SEQUEL_POSTGRES_USES_PG
          connection_params = {
            :host => opts[:host],
            :port => opts[:port] || 5432,
            :dbname => opts[:database],
            :user => opts[:user],
            :password => opts[:password],
            :connect_timeout => opts[:connect_timeout] || 20,
            :sslmode => opts[:sslmode]
          }.delete_if { |key, value| blank_object?(value) }
          conn = Adapter.connect(connection_params)

          conn.instance_variable_set(:@prepared_statements, {})

          if receiver = opts[:notice_receiver]
            conn.set_notice_receiver(&receiver)
          end
        else
          conn = Adapter.connect(
            (opts[:host] unless blank_object?(opts[:host])),
            opts[:port] || 5432,
            nil, '',
            opts[:database],
            opts[:user],
            opts[:password]
          )
        end

        conn.instance_variable_set(:@db, self)

        if encoding = opts[:encoding] || opts[:charset]
          if conn.respond_to?(:set_client_encoding)
            conn.set_client_encoding(encoding)
          else
            conn.async_exec("set client_encoding to '#{encoding}'")
          end
        end

        connection_configuration_sqls.each{|sql| conn.execute(sql)}
        conn
      end

      # Set whether to allow infinite timestamps/dates.  Make sure the
      # conversion proc for date reflects that setting.
      def convert_infinite_timestamps=(v)
        @convert_infinite_timestamps = case v
        when Symbol
          v
        when 'nil'
          :nil
        when 'string'
          :string
        when 'float'
          :float
        when String
          typecast_value_boolean(v)
        else
          false
        end

        pr = old_pr = @use_iso_date_format ? TYPE_TRANSLATOR.method(:date) : Sequel.method(:string_to_date)
        if v
          pr = lambda do |val|
            case val
            when *INFINITE_TIMESTAMP_STRINGS
              infinite_timestamp_value(val)
            else
              old_pr.call(val)
            end
          end
        end
        conversion_procs[1082] = pr
      end

      # Disconnect given connection
      def disconnect_connection(conn)
        begin
          conn.finish
        rescue PGError, IOError
        end
      end

      if SEQUEL_POSTGRES_USES_PG && Object.const_defined?(:PG) && ::PG.const_defined?(:Constants) && ::PG::Constants.const_defined?(:PG_DIAG_SCHEMA_NAME)
        # Return a hash of information about the related PGError (or Sequel::DatabaseError that
        # wraps a PGError), with the following entries:
        #
        # :schema :: The schema name related to the error
        # :table :: The table name related to the error
        # :column :: the column name related to the error
        # :constraint :: The constraint name related to the error
        # :type :: The datatype name related to the error
        #
        # This requires a PostgreSQL 9.3+ server and 9.3+ client library,
        # and ruby-pg 0.16.0+ to be supported.
        def error_info(e)
          e = e.wrapped_exception if e.is_a?(DatabaseError)
          r = e.result
          h = {}
          h[:schema] = r.error_field(::PG::PG_DIAG_SCHEMA_NAME)
          h[:table] = r.error_field(::PG::PG_DIAG_TABLE_NAME)
          h[:column] = r.error_field(::PG::PG_DIAG_COLUMN_NAME)
          h[:constraint] = r.error_field(::PG::PG_DIAG_CONSTRAINT_NAME)
          h[:type] = r.error_field(::PG::PG_DIAG_DATATYPE_NAME)
          h
        end
      end

      # Execute the given SQL with the given args on an available connection.
      def execute(sql, opts=OPTS, &block)
        synchronize(opts[:server]){|conn| check_database_errors{_execute(conn, sql, opts, &block)}}
      end

      if SEQUEL_POSTGRES_USES_PG
        # +copy_table+ uses PostgreSQL's +COPY TO STDOUT+ SQL statement to return formatted
        # results directly to the caller.  This method is only supported if pg is the
        # underlying ruby driver.  This method should only be called if you want
        # results returned to the client.  If you are using +COPY TO+
        # with a filename, you should just use +run+ instead of this method.
        #
        # The table argument supports the following types:
        #
        # String :: Uses the first argument directly as literal SQL. If you are using
        #           a version of PostgreSQL before 9.0, you will probably want to
        #           use a string if you are using any options at all, as the syntax
        #           Sequel uses for options is only compatible with PostgreSQL 9.0+.
        # Dataset :: Uses a query instead of a table name when copying.
        # other :: Uses a table name (usually a symbol) when copying.
        #
        # The following options are respected:
        #
        # :format :: The format to use.  text is the default, so this should be :csv or :binary.
        # :options :: An options SQL string to use, which should contain comma separated options.
        # :server :: The server on which to run the query.
        #
        # If a block is provided, the method continually yields to the block, one yield
        # per row.  If a block is not provided, a single string is returned with all
        # of the data.
        def copy_table(table, opts=OPTS)
          synchronize(opts[:server]) do |conn|
            conn.execute(copy_table_sql(table, opts))
            begin
              if block_given?
                while buf = conn.get_copy_data
                  yield buf
                end
                nil
              else
                b = ''
                b << buf while buf = conn.get_copy_data
                b
              end
            ensure
              raise DatabaseDisconnectError, "disconnecting as a partial COPY may leave the connection in an unusable state" if buf
            end
          end
        end

        # +copy_into+ uses PostgreSQL's +COPY FROM STDIN+ SQL statement to do very fast inserts
        # into a table using input preformatting in either CSV or PostgreSQL text format.
        # This method is only supported if pg 0.14.0+ is the underlying ruby driver.
        # This method should only be called if you want
        # results returned to the client.  If you are using +COPY FROM+
        # with a filename, you should just use +run+ instead of this method.
        #
        # The following options are respected:
        #
        # :columns :: The columns to insert into, with the same order as the columns in the
        #             input data.  If this isn't given, uses all columns in the table.
        # :data :: The data to copy to PostgreSQL, which should already be in CSV or PostgreSQL
        #          text format.  This can be either a string, or any object that responds to
        #          each and yields string.
        # :format :: The format to use.  text is the default, so this should be :csv or :binary.
        # :options :: An options SQL string to use, which should contain comma separated options.
        # :server :: The server on which to run the query.
        #
        # If a block is provided and :data option is not, this will yield to the block repeatedly.
        # The block should return a string, or nil to signal that it is finished.
        def copy_into(table, opts=OPTS)
          data = opts[:data]
          data = Array(data) if data.is_a?(String)

          if block_given? && data
            raise Error, "Cannot provide both a :data option and a block to copy_into"
          elsif !block_given? && !data
            raise Error, "Must provide either a :data option or a block to copy_into"
          end

          synchronize(opts[:server]) do |conn|
            conn.execute(copy_into_sql(table, opts))
            begin
              if block_given?
                while buf = yield
                  conn.put_copy_data(buf)
                end
              else
                data.each{|buff| conn.put_copy_data(buff)}
              end
            rescue Exception => e
              conn.put_copy_end("ruby exception occurred while copying data into PostgreSQL")
            ensure
              conn.put_copy_end unless e
              while res = conn.get_result
                raise e if e
                check_database_errors{res.check}
              end
            end
          end
        end

        # Listens on the given channel (or multiple channels if channel is an array), waiting for notifications.
        # After a notification is received, or the timeout has passed, stops listening to the channel. Options:
        #
        # :after_listen :: An object that responds to +call+ that is called with the underlying connection after the LISTEN
        #                  statement is sent, but before the connection starts waiting for notifications.
        # :loop :: Whether to continually wait for notifications, instead of just waiting for a single
        #          notification. If this option is given, a block must be provided.  If this object responds to +call+, it is
        #          called with the underlying connection after each notification is received (after the block is called).
        #          If a :timeout option is used, and a callable object is given, the object will also be called if the
        #          timeout expires.  If :loop is used and you want to stop listening, you can either break from inside the
        #          block given to #listen, or you can throw :stop from inside the :loop object's call method or the block.
        # :server :: The server on which to listen, if the sharding support is being used.
        # :timeout :: How long to wait for a notification, in seconds (can provide a float value for fractional seconds).
        #             If this object responds to +call+, it will be called and should return the number of seconds to wait.
        #             If the loop option is also specified, the object will be called on each iteration to obtain a new
        #             timeout value.  If not given or nil, waits indefinitely.
        #
        # This method is only supported if pg is used as the underlying ruby driver.  It returns the
        # channel the notification was sent to (as a string), unless :loop was used, in which case it returns nil.
        # If a block is given, it is yielded 3 arguments:
        # * the channel the notification was sent to (as a string)
        # * the backend pid of the notifier (as an integer),
        # * and the payload of the notification (as a string or nil).
        def listen(channels, opts=OPTS, &block)
          check_database_errors do
            synchronize(opts[:server]) do |conn|
              begin
                channels = Array(channels)
                channels.each do |channel|
                  sql = "LISTEN "
                  dataset.send(:identifier_append, sql, channel)
                  conn.execute(sql)
                end
                opts[:after_listen].call(conn) if opts[:after_listen]
                timeout = opts[:timeout]
                if timeout
                  timeout_block = timeout.respond_to?(:call) ? timeout : proc{timeout}
                end

                if l = opts[:loop]
                  raise Error, 'calling #listen with :loop requires a block' unless block
                  loop_call = l.respond_to?(:call)
                  catch(:stop) do
                    loop do
                      t = timeout_block ? [timeout_block.call] : []
                      conn.wait_for_notify(*t, &block)
                      l.call(conn) if loop_call
                    end
                  end
                  nil
                else
                  t = timeout_block ? [timeout_block.call] : []
                  conn.wait_for_notify(*t, &block)
                end
              ensure
                conn.execute("UNLISTEN *")
              end
            end
          end
        end
      end

      # If convert_infinite_timestamps is true and the value is infinite, return an appropriate
      # value based on the convert_infinite_timestamps setting.
      def to_application_timestamp(value)
        if convert_infinite_timestamps
          case value
          when *INFINITE_TIMESTAMP_STRINGS
            infinite_timestamp_value(value)
          else
            super
          end
        else
          super
        end
      end

      private

      # Execute the given SQL string or prepared statement on the connection object.
      def _execute(conn, sql, opts, &block)
        if sql.is_a?(Symbol)
          execute_prepared_statement(conn, sql, opts, &block)
        else
          conn.execute(sql, opts[:arguments], &block)
        end
      end

      # Execute the prepared statement name with the given arguments on the connection.
      def _execute_prepared_statement(conn, ps_name, args, opts)
        conn.exec_prepared(ps_name, args)
      end

      # Add the primary_keys and primary_key_sequences instance variables,
      # so we can get the correct return values for inserted rows.
      def adapter_initialize
        @use_iso_date_format = typecast_value_boolean(@opts.fetch(:use_iso_date_format, Postgres.use_iso_date_format))
        initialize_postgres_adapter
        conversion_procs[1082] = TYPE_TRANSLATOR.method(:date) if @use_iso_date_format
        self.convert_infinite_timestamps = @opts[:convert_infinite_timestamps]
      end

      # Convert exceptions raised from the block into DatabaseErrors.
      def check_database_errors
        begin
          yield
        rescue => e
          raise_error(e, :classes=>CONVERTED_EXCEPTIONS)
        end
      end

      # Set the DateStyle to ISO if configured, for faster date parsing.
      def connection_configuration_sqls
        sqls = super
        sqls << "SET DateStyle = 'ISO'" if @use_iso_date_format
        sqls
      end

      def database_error_classes
        [PGError]
      end

      def database_exception_sqlstate(exception, opts)
        if exception.respond_to?(:result) && (result = exception.result)
          result.error_field(::PGresult::PG_DIAG_SQLSTATE)
        end
      end

      # Execute the prepared statement with the given name on an available
      # connection, using the given args.  If the connection has not prepared
      # a statement with the given name yet, prepare it.  If the connection
      # has prepared a statement with the same name and different SQL,
      # deallocate that statement first and then prepare this statement.
      # If a block is given, yield the result, otherwise, return the number
      # of rows changed.
      def execute_prepared_statement(conn, name, opts=OPTS, &block)
        ps = prepared_statement(name)
        sql = ps.prepared_sql
        ps_name = name.to_s

        if args = opts[:arguments]
          args = args.map{|arg| bound_variable_arg(arg, conn)}
        end

        unless conn.prepared_statements[ps_name] == sql
          conn.execute("DEALLOCATE #{ps_name}") if conn.prepared_statements.include?(ps_name)
          conn.check_disconnect_errors{log_yield("PREPARE #{ps_name} AS #{sql}"){conn.prepare(ps_name, sql)}}
          conn.prepared_statements[ps_name] = sql
        end

        log_sql = "EXECUTE #{ps_name}"
        if ps.log_sql
          log_sql << " ("
          log_sql << sql
          log_sql << ")"
        end

        q = conn.check_disconnect_errors{log_yield(log_sql, args){_execute_prepared_statement(conn, ps_name, args, opts)}}
        begin
          block_given? ? yield(q) : q.cmd_tuples
        ensure
          q.clear if q && q.respond_to?(:clear)
        end
      end

      # Return an appropriate value for the given infinite timestamp string.
      def infinite_timestamp_value(value)
        case convert_infinite_timestamps
        when :nil
          nil
        when :string
          value
        else
          value == 'infinity' ? PLUS_INFINITY : MINUS_INFINITY
        end
      end

      # Don't log, since logging is done by the underlying connection.
      def log_connection_execute(conn, sql)
        conn.execute(sql)
      end

      # If the value is an infinite value (either an infinite float or a string returned by
      # by PostgreSQL for an infinite timestamp), return it without converting it if
      # convert_infinite_timestamps is set.
      def typecast_value_date(value)
        if convert_infinite_timestamps
          case value
          when *INFINITE_DATETIME_VALUES
            value
          else
            super
          end
        else
          super
        end
      end

      # If the value is an infinite value (either an infinite float or a string returned by
      # by PostgreSQL for an infinite timestamp), return it without converting it if
      # convert_infinite_timestamps is set.
      def typecast_value_datetime(value)
        if convert_infinite_timestamps
          case value
          when *INFINITE_DATETIME_VALUES
            value
          else
            super
          end
        else
          super
        end
      end
    end

    # Dataset class for PostgreSQL datasets that use the pg, postgres, or
    # postgres-pr driver.
    class Dataset < Sequel::Dataset
      include Sequel::Postgres::DatasetMethods

      Database::DatasetClass = self
      APOS = Sequel::Dataset::APOS
      DEFAULT_CURSOR_NAME = 'sequel_cursor'.freeze

      # Yield all rows returned by executing the given SQL and converting
      # the types.
      def fetch_rows(sql)
        return cursor_fetch_rows(sql){|h| yield h} if @opts[:cursor]
        execute(sql){|res| yield_hash_rows(res, fetch_rows_set_cols(res)){|h| yield h}}
      end

      # Use a cursor for paging.
      def paged_each(opts=OPTS, &block)
        use_cursor(opts).each(&block)
      end

      # Uses a cursor for fetching records, instead of fetching the entire result
      # set at once.  Can be used to process large datasets without holding
      # all rows in memory (which is what the underlying drivers may do
      # by default). Options:
      #
      # :cursor_name :: The name assigned to the cursor (default 'sequel_cursor').
      #                 Nested cursors require different names.
      # :hold :: Declare the cursor WITH HOLD and don't use transaction around the
      #          cursor usage.
      # :rows_per_fetch :: The number of rows per fetch (default 1000).  Higher
      #                    numbers result in fewer queries but greater memory use.
      #
      # Usage:
      #
      #   DB[:huge_table].use_cursor.each{|row| p row}
      #   DB[:huge_table].use_cursor(:rows_per_fetch=>10000).each{|row| p row}
      #   DB[:huge_table].use_cursor(:cursor_name=>'my_cursor').each{|row| p row}
      #
      # This is untested with the prepared statement/bound variable support,
      # and unlikely to work with either.
      def use_cursor(opts=OPTS)
        clone(:cursor=>{:rows_per_fetch=>1000}.merge!(opts))
      end

      # Replace the WHERE clause with one that uses CURRENT OF with the given
      # cursor name (or the default cursor name).  This allows you to update a
      # large dataset by updating individual rows while processing the dataset
      # via a cursor:
      #
      #   DB[:huge_table].use_cursor(:rows_per_fetch=>1).each do |row|
      #     DB[:huge_table].where_current_of.update(:column=>ruby_method(row))
      #   end
      def where_current_of(cursor_name=DEFAULT_CURSOR_NAME)
        clone(:where=>Sequel.lit(['CURRENT OF '], Sequel.identifier(cursor_name)))
      end

      if SEQUEL_POSTGRES_USES_PG

        PREPARED_ARG_PLACEHOLDER = LiteralString.new('$').freeze

        # PostgreSQL specific argument mapper used for mapping the named
        # argument hash to a array with numbered arguments.  Only used with
        # the pg driver.
        module ArgumentMapper
          include Sequel::Dataset::ArgumentMapper

          protected

          # An array of bound variable values for this query, in the correct order.
          def map_to_prepared_args(hash)
            prepared_args.map{|k| hash[k.to_sym]}
          end

          private

          def prepared_arg(k)
            y = k
            if i = prepared_args.index(y)
              i += 1
            else
              prepared_args << y
              i = prepared_args.length
            end
            LiteralString.new("#{prepared_arg_placeholder}#{i}")
          end

          # Always assume a prepared argument.
          def prepared_arg?(k)
           true
          end
        end

        BindArgumentMethods = prepared_statements_module(:bind, [ArgumentMapper, ::Sequel::Postgres::DatasetMethods::PreparedStatementMethods], %w'execute execute_dui')

        PreparedStatementMethods = prepared_statements_module(:prepare, BindArgumentMethods, %w'execute execute_dui') do
          # Raise a more obvious error if you attempt to call a unnamed prepared statement.
          def call(*)
            raise Error, "Cannot call prepared statement without a name" if prepared_statement_name.nil?
            super
          end
        end

        # Execute the given type of statement with the hash of values.
        def call(type, bind_vars=OPTS, *values, &block)
          ps = to_prepared_statement(type, values)
          ps.extend(BindArgumentMethods)
          ps.call(bind_vars, &block)
        end

        # Prepare the given type of statement with the given name, and store
        # it in the database to be called later.
        def prepare(type, name=nil, *values)
          ps = to_prepared_statement(type, values)
          ps.extend(PreparedStatementMethods)
          if name
            ps.prepared_statement_name = name
            db.set_prepared_statement(name, ps)
          end
          ps
        end

        private

        # PostgreSQL uses $N for placeholders instead of ?, so use a $
        # as the placeholder.
        def prepared_arg_placeholder
          PREPARED_ARG_PLACEHOLDER
        end
      end

      private

      # Use a cursor to fetch groups of records at a time, yielding them to the block.
      def cursor_fetch_rows(sql)
        server_opts = {:server=>@opts[:server] || :read_only}
        cursor = @opts[:cursor]
        hold = cursor[:hold]
        cursor_name = quote_identifier(cursor[:cursor_name] || DEFAULT_CURSOR_NAME)
        rows_per_fetch = cursor[:rows_per_fetch].to_i

        db.send(*(hold ? [:synchronize, server_opts[:server]] : [:transaction, server_opts])) do
          begin
            execute_ddl("DECLARE #{cursor_name} NO SCROLL CURSOR WITH#{'OUT' unless hold} HOLD FOR #{sql}", server_opts)
            rows_per_fetch = 1000 if rows_per_fetch <= 0
            fetch_sql = "FETCH FORWARD #{rows_per_fetch} FROM #{cursor_name}"
            cols = nil
            # Load columns only in the first fetch, so subsequent fetches are faster
            execute(fetch_sql) do |res|
              cols = fetch_rows_set_cols(res)
              yield_hash_rows(res, cols){|h| yield h}
              return if res.ntuples < rows_per_fetch
            end
            loop do
              execute(fetch_sql) do |res|
                yield_hash_rows(res, cols){|h| yield h}
                return if res.ntuples < rows_per_fetch
              end
            end
          rescue Exception => e
            raise
          ensure
            begin
              execute_ddl("CLOSE #{cursor_name}", server_opts)
            rescue
              raise e if e
              raise
            end
          end
        end
      end

      # Set the @columns based on the result set, and return the array of
      # field numers, type conversion procs, and name symbol arrays.
      def fetch_rows_set_cols(res)
        cols = []
        procs = db.conversion_procs
        res.nfields.times do |fieldnum|
          cols << [fieldnum, procs[res.ftype(fieldnum)], output_identifier(res.fname(fieldnum))]
        end
        @columns = cols.map{|c| c.at(2)}
        cols
      end

      # Use the driver's escape_bytea
      def literal_blob_append(sql, v)
        sql << APOS << db.synchronize(@opts[:server]){|c| c.escape_bytea(v)} << APOS
      end

      # Use the driver's escape_string
      def literal_string_append(sql, v)
        sql << APOS << db.synchronize(@opts[:server]){|c| c.escape_string(v)} << APOS
      end

      # For each row in the result set, yield a hash with column name symbol
      # keys and typecasted values.
      def yield_hash_rows(res, cols)
        res.ntuples.times do |recnum|
          converted_rec = {}
          cols.each do |fieldnum, type_proc, fieldsym|
            value = res.getvalue(recnum, fieldnum)
            converted_rec[fieldsym] = (value && type_proc) ? type_proc.call(value) : value
          end
          yield converted_rec
        end
      end
    end
  end
end

if SEQUEL_POSTGRES_USES_PG && !ENV['NO_SEQUEL_PG']
  begin
    require 'sequel_pg'
  rescue LoadError
    if RUBY_PLATFORM =~ /mingw|mswin/
      begin
        require "#{RUBY_VERSION[0...3]}/sequel_pg"
      rescue LoadError
      end
    end
  end
end

redpajama_set_name: RedPajamaGithub


01. CHIEFTEC A-135 APS-1000CB 2 263 грн.
02. Chieftec gpm-1000c 2 337 грн.
03. Aerocool VX 700 (4713105953633) 863 грн.
04. CHIEFTEC Force CPS-750S 1 516 грн.
05. Chieftec ctg-650c 1 838 грн.
06. Chieftec GPS-700A8 1 476 грн.
07. Chieftec gps-600a8 1 309 грн.
08. Chieftec gps-650a8 1 385 грн.
09. AEROCOOL VX 800 1 019 грн.
10. Chieftec iArena GPC-700S 1 412 грн.


text:
"""This is a backend analysis worker which will be deployed on the server.

We basically pull a new task from the task master, and run the plugin
it specifies.
"""

# pylint: disable=unused-import,g-bad-import-order
from grr.lib import server_plugins
# pylint: enable=unused-import,g-bad-import-order

from grr.lib import access_control
from grr.lib import config_lib
from grr.lib import flags
from grr.lib import startup
from grr.lib import worker

def main(unused_argv):
  """Main."""
  config_lib.CONFIG.AddContext(
      "Worker Context",
      "Context applied when running a worker.")

  # Initialise flows
  startup.Init()

  # Start a worker
  token = access_control.ACLToken("GRRWorker", "Implied.")
  worker_obj = worker.GRRWorker(queue=worker.DEFAULT_WORKER_QUEUE,
                                token=token)

  worker_obj.Run()

if __name__ == "__main__":
  flags.StartMain(main)


text:
Business News›Markets›Stocks›News›P2P lenders seek FM's help to get clarity on sector's rules
P2P lenders seek FM's help to get clarity on sector's rules
Many venture capitalists reluctant to invest in such lenders due to lack of proper rules.
Updated: Jul 24, 2018, 10.36 AM IST
ThinkStock Photos
P2P lending platforms allow individuals to lend money to other people and organisations without an intermediary bank or an NBFC.
MUMBAI: Frustrated with the Reserve Bank of India's delay in finalising the guidelines for peerto-peer lending, some entrepreneurs from this sector have written to the finance minister seeking his intervention to expedite the finalisation of rules to enable them to access funds required for their next round of growth.
"In the absence of clarity of regulations, venture capitalists have been reluctant to invest in P2P lending companies. This is not only depriving us of the much-needed funds, but is also creating an obstacle for incoming foreign direct investment into India," wrote founders of a few of the P2P lending platforms in a letter to the finance minister.
P2P lending platforms are internet-based tech-driven entities which allow individuals to lend money to other people and organisations without an intermediary bank or an NBFC. The RBI, in April last year, had come out with a consultation paper on P2P lending which had attracted huge interest in the nascent lending industry.
It has been more than a year since the final guidelines are being awaited, causing potential investors to develop cold feet and existing investors to be jittery. "Neighbouring countries including China, Indonesia and Vietnam along with major economies such as Germany, the US and UK have introduced legislation for P2P lending," said another founder of a P2P platform.
reserve bank of india & rsquo


text:
Department of Biological Chemistry, UCLA
Programming cellular behaviors with biological circuits Living cells use circuits of interacting genes and proteins to sense and respond to signals, communicate, remember information, and develop into multicellular organisms. These circuits often...
Hilary Coller, Ph.D., is Professor of Molecular, Cell and Developmental Biology, UCLA and Professor of Biological Chemistry at the UCLA David Geffen School of Medicine. She received her undergraduate degree in Biochemistry and Molecular Biology...
Utpal Banerjee is the Irving and Jean Stone Professor and Chair of the Department of Molecular, Cell and Developmental Biology at the University of California, Los Angeles with a joint appointment in the Department of Biological Chemistry at the...
Leonid Kruglyak, Ph.D., is a Distinguished Professor of Human Genetics and Biological Chemistry at the David Geffen School of Medicine at UCLA and the Diller-von Furstenberg Endowed Chair in Human Genetics. Dr. Kruglyak received his A.B. degree...
Steve Jacobsen did his PhD at the University of Minnesota and postdoctoral studies at the California Institute of Technology with Elliot Meyerowitz. He joined the department of Molecular Cell and Developmental Biology in 1998. He has recieved two...
Gabriel H. Travis is a biochemist and molecular biologist who has been on the faculty at UCLA in Ophthalmology and Biological Chemistry since 2001. Dr. Travis earned his BS degree in chemistry at UCLA, and his MD at UCLA School of Medicine. After...
Dr Gonen is an expert in electron crystallography and cryo EM. He determined the 1.9Å resolution structure of the water channel aquaporin-0 by electron crystallography, the highest resolution for any protein determined by cryo EM techniques at...
Dr. Tontonoz is Professor and the Francis and Albert Piansky Endowed Chair in Pathology and Laboratory Medicine. He received his B.A. from Wesleyan University and his M.D. and Ph.D. from Harvard Medical School. His Ph.D. thesis was carried out at...


do I aspire? did I aspire?
do you aspire? did you aspire?
does he/she/it aspire? did he/she/it aspire?
do we aspire? did we aspire?
do they aspire? did they aspire?
am I aspiring? was I aspiring?
are you aspiring? were you aspiring?
is he/she/it aspiring? was he/she/it aspiring?
are we aspiring? were we aspiring?
are they aspiring? were they aspiring?
have I aspired? had I aspired?
have you aspired? had you aspired?
has he/she/it aspired? had he/she/it aspired?
have we aspired? had we aspired?
have they aspired? had they aspired?
have I been aspiring? had I been aspiring?
have you been aspiring? had you been aspiring?
has he/she/it been aspiring? had he/she/it been aspiring?
have we been aspiring? had we been aspiring?
have they been aspiring? had they been aspiring?
shall/will I aspire? shall/will I have aspired?
will you aspire? will you have aspired?
will he/she/it aspire? will he/she/it have aspired?
shall/will we aspire? shall/will we have aspired?
will they aspire? will they have aspired?
shall/will I be aspiring? shall/will I have been aspiring?
will you be aspiring? will you have been aspiring?
will he/she/it be aspiring? will he/she/it have been aspiring?
shall/will we be aspiring? shall/will we have been aspiring?
will they be aspiring? will they have been aspiring?
should/would I aspire? should/would I have aspired?
would you aspire? would you have aspired?
would he/she/it aspire? would he/she/it have aspired?
should/would we aspire? should/would we have aspired?
would they aspire? would they have aspired?
should/would I be aspiring? should/would I have been aspiring?
would you be aspiring? would you have been aspiring?
would he/she/it be aspiring? would he/she/it have been aspiring?
should/would we be aspiring? should/would we have been aspiring?
would they be aspiring? would they have been aspiring?


text:
Q: Max function in PHP fails on strings? Given this list.txt file:
9
10
19

Guess what?
max(split("\n",$file_handle)) gives me 9
max(explode(PHP_EOL,$file_handle)) gives me 9
Now, on a string:
$string = "9
10
19";
max(split("\n",$string)) gives me 19
Updated: When reading from a file, I get strings and max() can't seems to find the correct max when comparing string values?! 9 is bigger than 10. The same file content on a string works fine. file_get_contents()/fread() same issue.

A: Are you sure that EOL (end-of line) is "\n"?
Look at this answer:
Explode PHP string by new line
And check this for EOL explanation:
Difference between \n and \r?

A: This solves it. Still a mystery to me why values come as string from file and as numbers from a string with the same content. Anyway, here's the fix:
max(array_map('intval', split("\n",$file_handle)));


Jonah Goldberg is at least temporary poster boy for Right Liberals. I'm not sure who's poster boy for Left Liberals. Patrick Deneen carries the banner for anti-liberals. Rachel Lu plus some stuff I've encountered on what conditions allow a rise from poverty in the third world, make me think I'm a penitent liberal (which may not be all that different from Deneen when you distill him).