THURSDAY 30 May 2019 – Welcome to the UK & The Isle of Man!
On arrival at Manchester Airport collect your luggage and make your way to the Arrivals Hall. You will then need to proceed to your departure terminal and check in for your onward flight to the Isle of Man.
On arrival at Ronaldsway Airport, Isle of Man, collect your luggage and make your way to the car park where your Sportsnet Host and coach transfer to the hotel will be waiting.
Enjoy a brilliant VIP introduction to the Isle of Man with a coach tour around the course including live commentary en-route from a current or ex TT Rider. With only 20 people on board get an up close and personal insight into what really goes through a TT rider's head as they navigate their way around the famous TT course. This intimate coach tour gives you the perfect opportunity to ask questions, grab an autograph and maybe even a photo!
The remainder of the afternoon is at your leisure.
Tonight, meet in the hotel reception for your transfer to the Evening Practice session. Here you will enjoy the evening's final practice session from the Official VIP Suite. The evening includes access to the VIP Grandstand, Start Line Pass, buffet dinner, beer, wine and soft drinks. You will also have the opportunity to meet some special guests and mingle with fellow tour participants. Please note that drinks are only included during dinner. For the remainder of the evening you will have the opportunity to purchase drinks from the cash bar.
You can come and go from the suite as you please – a visit to the TT Paddock is a must.
After dinner, you can choose to transfer back to the hotel or enjoy the evening entertainment on Douglas Promenade.
Coach transfer from your hotel to the Official VIP Hospitality Suite in Douglas for Race Day 1.
You will be welcomed to the exclusive TT VIP Club where you can enjoy (a second) breakfast, a gourmet buffet lunch and drinks including beer and wine. With exclusive appearances by riders and celebrity guests, along with easy access to the TT Paddock this hospitality suite promises to bring you face to face with your heroes.
Located trackside, adjacent to the TT Grandstand, the VIP Suite not only provides magnificent views of the famous TT Course, but ensures you are at the very centre of all the action – both on the race track and off it.
At the conclusion of the race, transfer back to the hotel. Your return transfer time and meeting place will be arranged in the morning and advised by your Sportsnet host.
Tonight, get ready for the annual "Sportsnet TT Riders Panel" previously hosted by ex TT rider Cameron Donald. This fun event will showcase entertaining interviews with past & present stars, as well as the opportunity to ask questions yourself, grab an autograph & a photo – away from the general public! In previous years we have been joined by McGuinness, Hutchinson, Anstey, Hillier and Johnson (what a line-up!) and we think most will be back for more this year! A hearty dinner along with beverages will be served as well as music and a great atmosphere you don't want to miss out on!
As a Sportsnet VIP, your experience will be taken to a new level as you are seated front and centre of the stage with a TT personality at your table. For the duration of the night you will have unlimited, exclusive access to the special guest seated at your table, so be sure to pick their brains with all your TT questions! In addition, you will be given priority access to the signing and photo session to ensure you do not miss out.
At the conclusion of the function you can choose to transfer back to the hotel or enjoy the evening entertainment on Douglas Promenade.
Mad Sunday is something that is free to all those on the Isle of Man. It is time when fans get the chance to ride the same 37.75-mile mountain course as those actually competing in the races. It takes place on the circuit and there is plenty going on all over the island.
Utilise your 7 Day "GO Explore Pass" which includes unlimited transport on any of the islands buses, electric trams, horse trams or steam trains. It is available 24/7 for 7 days and you can hop on or off at any time.
Coach transfer from your hotel to Hillberry Grandstand outside of Douglas for Race Day 2.
A Hillberry Grandstand ticket is included today. This is one of the most spectacular vantage points on the TT Mountain Course and gives an uninterrupted view all the way from the left hand corner at Brandish, through the 140 mph right-hander at Hillberry. Most fans will also be able to see competitors taking Kate's Cottage over a mile away on the Mountain. This grandstand will be the only location on the course to feature overhead and side cover along with comfortable grandstand seating.
You will be dropped off at the hotel with the remainder of the evening at leisure.
Today is a free day to explore the Isle of Man.
A visit to the Ramsey Sprint is highly recommended using the Manx Electric railway from Douglas where any tram can be used utilising your 7 Day "GO Explore Pass".
The Ramsey Sprint is a drag sprint event over a 1/8th mile strip which attracts thousands. Anyone can compete as long as they are willing to pay the entry fee. Motorcycles from all over the world enter, most of them already over as part of the TT Festival. Some bikes have special modifications, which certainly keeps things interesting. There is lots of action, exhibits and entertainment to be seen and since the event is all day, getting a good view is not hard.
You are free to return to Douglas at any time using your 7 Day "GO Explore Pass".
Tonight, join your fellow tour members for an intimate dinner with Cam Donald and one other rider. This dinner will give you the opportunity to get to know your heroes on a more personal level, share a drink and a laugh, hear the stories from behind the scenes and simply enjoy a night you're sure to never forget.
Coach transfer from your hotel to Creg Ny Baa Pub which is situated 5kms north of Douglas on the A18 Mountain Road. This is one of the best vantage points on the circuit for Race Day 3.
Treat yourself to the spectacular viewing from elevated balconies at the most famous landmark on the course, Creg Ny Baa Pub. As one of the privileged few, you will enjoy spectacular views of race action from the first-floor balcony. Watch riders approach from Kate's Cottage, negotiate Creg Corner and accelerate up to 200mph towards Brandish.
Please note a buffet lunch with beer, wine and soft drinks is included. You will have access to a cash bar to purchase other drinks throughout the day. Tea and coffee will be provided throughout the day.
The return transfer will leave the Creg once roads have been reopened. This could be an hour after racing depending on how fast they can open 38 miles of road. You are advised to go back to the coach once racing has concluded as it could depart at any time.
A one-way coach transfer from your hotel to Peel for the TT Motorcycle Show.
It is essentially a motorcycle show run by bikers, for bikers, and of course those interested in the diverse nature of motorcycling on the Isle of Man. The organisers have gone to great lengths to ensure that the show is not just a pass-through event.
You are free to return to Douglas at any time using your 7 Day "GO Explore Pass" utilising public transport.
Today we head to the Roadside Vantage Point for all the action of Race Day 4!
Coach transfer from your hotel to the Roadside Vantage Point.
This vantage point promises to offer viewers the opportunity to get right up close to the action for the final day of racing. Please note this may be a remote part of the course, so ensure you are well prepared for the entire day including bringing your snacks and Sportsnet camping chair!
At the conclusion of the race, transfer back to the hotel with the remainder of the evening at leisure. Your return transfer time and meeting place will be arranged in the morning and advised by your Sportsnet host.
Please meet in the hotel reception for your coach transfer to Ronaldsway Airport, Isle of Man.
Today you depart the Isle of Man and fly to back to Manchester Airport where the tour concludes.
Thank you for being a part of the 2019 Sportsnet Holidays Isle of Man TT Platinum Tour!


text:
KZYX News
KZYX News • Trailer Bonus •
• KZYX News • Trailer Bonus •
by KZYX News Department
Google Podcasts Listen On Google Podcasts Spotify Listen On Spotify RSS Feed Subscribe RSS Feed
November 29, 2021 — In the two weeks since a mountain lion killed two goats at the high school farm in Boonville, the remaining goats have been listening to a.m. radio all night long, and scarecrows have been giving off offensive odors to deter further losses.
But the long-term solution is a high fence, ideally twelve feet tall, with a five-foot visual barrier around the bottom so predators looking for an easy meal won't be as easily tempted.
Project Coyote, an organization dedicated to promoting coexistence between wildlife and humans and their livestock, has offered to get together volunteers to help build a more lion-proof fence at the eight-acre farm, which includes about 15 goats and a herd of sheep. The farm is at the Anderson Valley High school in Boonville, which is a populated area, but it's also adjacent to a creek, in a corridor where similar attacks have happened in the past.
In August, the Board of Supervisors voted 3-2 to end the county's contract with USDA Wildlife Services, a relationship which, according to Supervisor John Haschak, had already ended. Haschak serves with Supervisor Glenn McGourty on a committee to develop a non-lethal wildlife policy for the county.
Wildlife Services offered non-lethal services as well as trapping and killing, which led to lawsuits and controversy. According to Dr. Michelle Lute, the National Carnivore Conservation Manager with Project Coyote, attempts at getting rid of carnivores have far-reaching effects.
"You see this a lot with coyotes and mountain lions," she explained; "where you remove a resident adult, and it opens up a vacancy for a new individual to come in. That new individual may be younger, may not know how to hunt as well, so that can create increased conflict, where there was low potential for conflict in the first place. So that's why we say the evidence suggests that removing individual carnivores can sometimes increase conflict, despite the purported purpose being to decrease conflict...and that's why it's been done, cyclically, for decades and decades, without reduced conflict."
Louise Simson, the new superintendent of Anderson Valley School District, is concerned about safety. She says that during the season when goats and sheep are giving birth, students and staff could be at the farm at all hours.
"There was a similar attack, about five years ago, and the animal was trapped," she said. "And we didn't have any further incidents. But this is a safety issue, and that's why I'm involved. I know it's a very political issue, and there's many points of view, but my job as a superintendent is to keep the kids safe and that's why I'm advocating for some help...to me, if there's an animal with an attack behavior — and this is not an isolated incident, there have been numerous incidents all up and down this creek; that the authorities need to take this into account and maybe look at this as a special situation, because it is on school grounds. However, if that is not to be, I have lots of folks who have given me a lot of advice and no resources. My school district has a $400,000 deficit in operating expenses next year. I'm happy to implement solutions, but those solutions need to come with funding."
Lute says that "if the school is interested in collaborating, we'd happily hold a workshop, virtually or in person, if possible, to talk about additional resources and protections at the school. And we can also help find volunteers if there's a volunteer workday possible where some enhanced fencing could occur or the pasture and enclosure could be moved away from the creek. As I understand it, the goats are currently grazing pretty close to a creek, which is a natural corridor for all kinds of wildlife, including mountain lions, that like a lot of cover and want to stay away from humans."
Ten days before the November 15 attack, the county put out a request for proposals from potential contractors to provide some non-lethal services. Haschak said, "that's mostly for those animal encounters of the small type, like the skunk under the house or the raccoon in the dog pen. What we're looking at, as far as a model, is that the person would go out and visit the site and then provide some expert opinions, but if the person really needs some infrastructure done, like a one-way door put in or some mesh or whatever kind of construction work, that would be outside the county's purview. So that would be an opportunity for the person to make some more money, outside the contract with the county."
Haschak also suggested saving money by using recycled materials to build a sturdier fence and assembling a lending library of deterrence items so every farmer doesn't have to stockpile equipment. Simson, the superintendent, says she's open to partnerships, but when it comes to making improvements on school property, like building a bigger barn, there is a long permitting process that involves multiple agencies. But she thinks fencing is a little more doable.
"I think that the fencing we could do relatively easily," she reflected. "But that's a huge expense. So if somebody came to me today and said, Louise, here's a check for $100,000, put up that fence, I'd be on that in a minute. I'd look to my local partners in the valley to help us with that. Barns and things like that, that's a different situation."
Asked if it would be feasible to have volunteers build the fence, she said, "If we had a structured partner who had an idea about how to systematically implement an improvement, we would work through that."
What is KZYX News?
KZYX reporters cover local news for Mendocino County, California, Monday through Friday in six and a half minute reports. Featuring Sarah Reith, Sonia Waraich, Michelle Blackwell, Jim Culp, Marty Durlin and Alicia Bales.
All audio, artwork, episode descriptions and notes are property of KZYX News Department, for KZYX News, and published with permission by Transistor, Inc.

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Troubleshooting a custom "Typed Property" pattern that overwrites property data on subsequent class instantiations I'm trying to put together a utility that works kind of like Python's dataclass but gives me some additional things I can do like type checking on assignment, etc.  I'm basically following the general pattern described in "9.21 Avoiding Repetitive Property Methods" from the O'Reilly Python Cookbook, 3rd Edition
I'm running into an issue where subsequent instantiations of MyClass overwrite data from other instances of it. Here's a simplified version of what I'm doing:
def typed_property(name, default=None):
    varname = "_" + name

    @property
    def prop(self):
        if not hasattr(self, varname):
            setattr(self, varname, default)
        return getattr(self, varname)

    @prop.setter
    def prop(self, value):
        setattr(self, varname, value)

    return prop

class MyClass(object):
    data = typed_property("data", default={})

If I run this using something like this:
obj1 = MyClass()
obj1.data["test"] = set()
obj1.data["test"].add(1)
print(">>> initial")
print("(1) id(obj1) =", id(obj1))
print("(2) obj1.data =", obj1.data)

print(">>> create obj2")
obj2 = MyClass()
obj2.data["test"] = set()

print("(3) obj1.data =", obj1.data)
print("(4) obj2.data =", obj2.data)

print(">>> ID's:")
print("(5) id(obj1) =", id(obj1))
print("(6) id(obj2) =", id(obj2))
print("(7) id(obj1.data) =", id(obj1.data))
print("(8) id(obj2.data) =", id(obj2.data))

I get this output:
>>> initial
(1) id(obj1) = 4429860720
(2) obj1.data = {'test': {1}}
>>> create obj2
(3) obj1.data = {'test': set()}
(4) obj2.data = {'test': set()}
>>> ID's:
(5) id(obj1) = 4429860720
(6) id(obj2) = 4428300544
(7) id(obj1.data) = 4430915136
(8) id(obj2.data) = 4430915136

which is incorrect. In this case, when I created obj2, the obj1.data entry is lost. I would want the output in lines (2) and (3) to match but instead (3) and (4) are now the same. I can see down in (7) and (8) that the property is referencing the same location from both classes so I can see that the creation of obj2 is stomping on obj1.
I think I know what's going on but I wanted to confirm. I think the problem is in the assignment of the default value in my setattr(self, varname, default) line from typed_property. The default parameter to typed_property is really a reference to a single object in memory... So when that assignment happens what's really happening is a reference to default is being assigned to my property's internal storage, right?
I can fix the issue by changing setattr(self, varname, default) to be setattr(self, varname, copy.deepcopy(default) but is that the best way to go?
Ideally, I'd like to just use a dataclass but unfortunately it doesn't handle all the cases we need to cover.
If someone can articulate or post a link to some info that explains what's going on here in memory with that default function argument it'd be helpful for my understanding. Are arguments always fixed references or is it the default argument that's created once by Python?
It would be nice to either confirm what I'm thinking or learn more about the internals of the language.
Thanks!

A: You're correct that the reference to the default value is shared between MyClass instances, and your tests confirm as much. One important piece of information to understand why this happens is that, other than e.g. the body of an __init__ function, a class-body only gets evaluated once; on class creation. There is no way for two or more different default-objects to exist, because the code related to it does not get executed when creating a new MyClass instance.
dataclasses solve this issue of having default values defined in the class body by having both default for immutable default values and default_factory for mutable default values. I'd suggest to just use a similar pattern for your construct, the alternative of creating copies is bound to create problems in case you actually do want to share an object between instances:
def typed_property(name, default_factory=lambda: None):
    varname = "_" + name

    @property
    def prop(self):
        if not hasattr(self, varname):
            setattr(self, varname, default_factory())
        return getattr(self, varname)

    @prop.setter
    def setter(self, value):
        setattr(self, varname, value)

    return prop

class MyClass:
    data = typed_property("data", default_factory=dict)

By passing the dict function as the factory that gets called with the initial settatr, you get new dictionary objects for each instance. If you want to share some object o = MySharedObject(), just define the field as typed_property("shared_data", lambda: o). Or go all the way and define both default and default_factory arguments, but it will make the typed_property implementation a bit more complex with checking that only either the one or the other is used and what not.
And to show that it works now:
>>> a = MyClass()
>>> id(a.data)
140412230286208
>>> b = MyClass()
>>> id(b.data)
140412230275328
>>> id(a.data)
140412230286208

redpajama_set_name: RedPajamaStackExchange


PGCPS General Counsel's Office is Epicenter for Corruption. | Help Change The World. The Future Of The County Is Now.
PGCPS General Counsel's Office is Epicenter for Corruption.
former PGCPS Chief legal Counsel -Mr. Roger Thomas is pictured above.
According to the Washington Post [wednesday, Aug. 1, 2012, METRO section, B1 & B4] Synthia J. Shilling has resigned as the "Chief Human Resources Officer" for PGCPS, effective August 15, 2012. It is revealed that she assaulted a Maryland State trooper in 2008 (for which she only received probation) and left the scene of a motor vehicle accident this past May. In addition to willfully violating Federal personnel practices [to the tune of a $5.9 million fine by the Dept. of Labor], Ms. Shilling's personal life is equally lawless.
It is quite possible that Dr. Hite's resignation and Ms. Shilling's resignation is just the tip of the iceberg within the PGC Board of Education.
You are correct. This is the tip of the iceberg on what has been happening. We need a proper investigation to review everything they have been doing.
Hope I'm not beating a dead horse, but how can a licensed lawyer: (a) be convicted of DUI and LYING TO LAW ENFORCEMENT OFFICERS and not be reprimanded by the Bar Association?; (b) be fired for issuing a 6-figure check WITHOUT AUTHORIZATION to aforementioned convicted lawyer and not be reprimanded by the Bar Association?, and; (c) be responsible for costing the PGCPS over a million dollars in back wages (H1B teachers), $100,000 in penalties, and nearly $240,000 in legal fees and keep his (or her) job?
A poster elsewhere mocked the fruitless efforts of pursuing a lawsuit to weed out the entrenched corruption inside the Sasscer building, and considering that the Chairperson of the Board of Education is herself a lawyer, and according to her BOE biography a Lieutenant Colonel with Homeland Security's Office of Professional Responsibility and Legal Affairs Division. Anyone else would be worried about a conflict-of-interest or the appearance of impropriety, but obviously not in this case.
Thank you for highlighting these issues. We need to pursue this to the fullest without surrender. It's unfair and unethical what she did and continues to do together with Mr. Roger Thomas.


How Do You the Calculate Cost per Mile for Vehicles Used for Trips?
Is anyone determining this through an analysis of costs/month for fuel, tires, regular maintenance, repairs, and if any taxes or registration fees are applicable, then divide that by the average miles/month that are driven? Perhaps by the year for all costs/all miles in a year? Another method?


text:
package com.google.common.collect;

public enum BoundType
{
    CLOSED, OPEN;
    private BoundType() {}
}

redpajama_set_name: RedPajamaGithub


With increasing numbers of organisations moving to the cloud, it is important that businesses fully understand that even in new technological environments they still have to remain compliant with data protection legislation.
As the customer of the cloud computing service provider is likely to be deemed the data controller, the obligations contained in the legislation rest with you and you are therefore responsible for the actions of both the service provider and the cloud provider. One of the key issues in this then is how you can ensure that the service provider and cloud provider comply with the applicable data protection law?
To help with this situation the Information Commissioner's Office (ICO) has recently published guidance that helps businesses by setting out the potential risks, detailing practical steps for customers to follow when selecting a cloud provider and it will serve as an important reminder to companies that they remain responsible for personal data, even when it is passed to cloud network providers.
The guidance begins by addressing the application of the rules contained in the Data Protection Act (DPA) to the processing of information in the cloud. The DPA covers all 'personal data that is processed'. As 'processing' is defined very widely it will include most operations occurring in the cloud, including the simple storage of data.
The distinction between data controller and data processor can sometimes be murky; this is particularly true for cloud computing. The guidance runs through the three main types of cloud deployment model (private, community and public) and considers which role will be filled by the customer and provider. As the cloud customer will be making decisions on the purposes and manner in which the data are processed, it will generally be the data controller and therefore be ultimately liable for compliance with the DPA. However, the precise role of the cloud provider should be reviewed on a case-by-case basis to determine whether it is processing personal data to such an extent that it could be operating as a data controller in its own right.
The DPA requires the data controller to have a written contract with the data processor, which includes obligations on the processor to "act only on instructions from the data controller" and to "comply with security obligations equivalent to those imposed on the data controller itself". Many cloud providers offer 'take it or leave it' terms and conditions when signing up to the service. Therefore, cloud customers should take care to check that any terms of service allow them to retain sufficient control over the data to avoid falling foul of their DPA obligations.
As the DPA requires data controllers to take "appropriate technical and organisational measures against the unauthorised or unlawful processing of personal data", companies should be careful when choosing a cloud provider and ensure that the provider offers sufficient guarantees about their technical and organisational security measures, which should also be precisely spelled out in the contractual documentation.
An audit (including an inspection of the provider's premises) should be carried out to review the security measures of any potential data processor. However, the ICO recognises the logistical difficulty of multiple customers conducting individual audits. Therefore, the guidance recommends that the cloud provider instruct an independent third party to conduct a detailed security audit of its service, which can then be made available to prospective customers.
Where cloud services are layered, this assessment should include assurances that the security of any sub-processor complies with the same security requirements set out by the cloud provider.
Customers should recognise that their obligations as data controller do not end once the cloud provider is selected. Ongoing monitoring, review and assessment is necessary to ensure that the service is run properly as set out in the terms of the contract.
Data 'in transit' between endpoints should be encrypted to ensure that it is secure and protected from interception. The encryption algorithm should meet recognised industry standards.
It may be appropriate for cloud customers to use encryption on data 'at rest' (i.e. stored within a cloud service). When making this decision, the sensitivity of the data should be considered along with the type of processing undertaken in the cloud.
Care should be taken when using an authentication process to allow users to access data remotely and a clear policy should be put in place to dictate the situations where the cloud provider may access the personal data.
There is an increased risk when a single cloud provider acts as a data processor for multiple cloud customers in a multi-tenancy environment. Robust safeguards should be put in place to prevent any data 'mix-ups'.
The DPA contains specific provisions that deal with the deletion of data. Cloud customers should ensure that the cloud provider can delete all copies of personal data within a timescale in line with the customer's own deletion schedule. This may be complicated by the fact that cloud providers often maintain multiple copies of data for resiliency reasons.
Under the DPA, personal data should be obtained only for specified and lawful purposes and should not be further processed in any manner incompatible with those specified purposes. The contract for the provision of the cloud service should therefore prevent the cloud provider from using the data for any of its own purposes.
The ICO notes that a number of Software as a Service (SaaS) products are supported by targeted advertising based on the personal data of cloud users. Cloud providers should be careful to get specific authorisation for this from the cloud customer and the customer should ensure that their own end-users are fully aware of how their data are being processed.
The DPA imposes restrictions on personal data being transferred outside of the EEA. Therefore, cloud customers should request from a potential provider a list of countries where data are likely to be processed along with the safeguards in place in each location.


text:
Finding journal articles & dissertations
Making sense of citations in Chicago style
Academic Presses
Most historians publish their work in books. So, for many topics in history, your best starting point is a good recent scholarly book. The easiest way to find that book is to ask someone else who is knowledgeable about your topic -- for example, your junior seminar instructor or spring JP advisor. But a thorough search of the library catalog is also essential. Here are some tips on finding books about historical topics in the Princeton University Library Main Catalog.
Identify the Library of Congress Subject Heading for your topic, and use it in a subject search. You can look up LC Subject Headings in the big red books in the Trustee Reading Room (and elsewhere in the library). You can also look up a known book on your topic and check the long view for the subject headings assigned to that book.
Use the word "history" as part of a keyword search.
To find material about a person, an government agency, or an organization, search for it as a subject
To limit your search results to English-language materials, "Set Limits" before searching.
Didn't find enough? Expand your search in Worldcat to identify items not held by Princeton, then use Borrow Direct or Interlibrary loan to get the books you discover there.
Assessing what you find -- is this book worth your time?
Who is the author? Is he/she associated with an academic institution?
Who is the publisher? Most good history books are published by academic presses, e.g. Princeton University Press or Oxford University Press.
When was the book published? Your first choice will probably be a book published in the last ten years or so, because a recent book will refer to all the previous work on your topic. But some older books are still very valuable, so do not worry if the most recent book you can find on your topic was published long ago.
Does the book include the scholarly apparatus that will enable you to verify the author's work? Look for footnotes or endnotes plus a bibliography. A book with no notes or bibliography will not be helpful to you at this stage of your research.
Once you have a book in hand, read it. Alas, there are no shortcuts to this part of the research process.
While books are very important, historians also publish their work in articles in academic journals. And the easiest way to find journal articles is to search a bibliographic database that covers your topic:
America: History and Life
This database covers the history and culture of the United States and Canada from prehistory to the present. It indexes scholarly articles in books and journals published from 1954 to the present.
This database covers world history, except for the US& Canada, from 1450 to the present. The coverage includes abstracts of journal articles, books and dissertations from 1960 onwards.
ProQuest Dissertations and Theses: World's largest collection of doctoral dissertations and masters theses
When you consult books or articles in the library, you will encounter footnotes or endnotes that provide citations to other works that may be of interest to you. When you wish to find that other work in the library, it is necessary to understand what type of publication is being cited. You will need to use different tools to find different types of material.
Fortunately, the citations offer important clues to tell you which kind of material is being cited.
Journal articles: Journals are issued in numbered volumes and issues within those volumes (for example, all journal issues published from January-December are in volume 12; each monthly publication has an issue number.) Articles in journals are noted with three important pieces of information. The title of the article is in quotation marks, the title of the journal is in italics, and the volume and issue number are given. The numbers following the colon are page numbers. (You may see a citation in either of the following formats.) To search for journal articles, type the author's name and the article title into "Articles+".
Newspaper and magazine articles: Newspapers and popular magazines usually do not have volume and issue numbers. Therefore, the citation only indicates the date of the newspaper. The title of the article is in quotation marks, the title of the newspaper or magazine is in italics, and the date is given. The numbers following the date are page numbers. To find a newspaper article, search for the name of the newspaper in the Catalog, then follow the links. Consult a librarian if you need help.
Books: Scholarly books are called "monographs" when they are published as stand-alone titles (not part of a series.) The clue that a monograph is being cited is that the title is in italics, and place of publication and the name of the publisher are given. To find a monograph, search for the title in the Catalog. The number after the parenthesis is a page number.
Chapters in Books: Some books are not written by a single author, but rather are collections of chapters by various authors. The person who collects the chapters is called the editor. The clues that a chapter is being cited is that the chapter title is in quotes, the editor is named, and the book title is in italics. To find a chapter, search for the title of the whole book in the Catalog.
Book in a series: Some books are part of a larger set; for example, a cited work could be the fourth volume in a series. The clue that a book in a series is being cited is that a volume number precedes the page number. To find a volume of a series, search for the title of the whole series in the Catalog.
Scholarly books are often desirable for thoroughly researched and documented information. Many are published by University Presses (e.g., Princeton University Press, University Press of Mississippi). This list also shows some important scholarly presses, but is not exhaustive.
University Press of LOCATION
NAME University Press
CDL Press
Greenwood Press
The History Press
John Wiley
The Edwin Mellen Press
Museum Tusculanum/ISBS
Naval Institute Press
Oberlin College Press
Paul & Co
Rowman and Littlefield
Sheffield Academic Press/Continuum International
Smithsonian Institution Press
Transaction Publishers
<< Previous: Finding a topic for your JP
Next: Finding primary sources >>


Whenever you write an essay, article or exclaim can someone write my research paper, you have to edit and proofread it. However, our mind is tricky which is why when proofreading our own text we see it as it should be (or as we imagined it) not as it is. In turn, we miss out on grammar, spelling and punctuation errors we would usually spot immediately in someone else's work. To make sure this year is more productive for you, I'm going to list useful proofreading tips that will help you proofread your own or someone else's work successfully.
Before you start, you have to understand the difference between proofreading and editing. You should edit your work first by making revisions in sentence structures, content, and language used. Proofreading refers to identifying spelling, grammar, and punctuation mistakes. Both editing and proofreading are equally important for overall quality of your work.
Reading your work out loud can increase accuracy of proofreading. Start by reading your text in silence first. Then, read it out loud or imagine you're reading it to some other person. This will make you focus on every aspect of your work and you'll spot grammar, spelling, and even punctuation mistakes faster.
You won't be able to focus on your or someone else's work and identify various mistakes if you are surrounded by distractions. Leave your phone in another room or turn off Wi-Fi, shut off music, TV and remove other distractions from the place where you work.
You can always be one step ahead by preparing yourself for proofreading before you even start writing. How? Well, you should write down a list (and always keep it near) of the most common mistakes you usually make in all your works. Use that list to spot the mistakes you made. For example, let's say you have a tendency to write than instead of then when referring to relation of time and the order in which events in your work occur. In most cases, when editing and proofreading you would overlook this mistake, but keeping it on the list and aiming to find it in the text can be extremely beneficial.
TIP: if you don't know how to make the list or what mistakes you usually make, start by listing most common errors within that work and add new points to the list with each new work.
Instead of focusing on entire content or story you should analyze sentence by sentence. Why? It's because focusing on the entire work won't let you spot some errors that easily. On the other hand, when you analyze and inspect small fractions i.e. sentences you will easily identify mistakes in punctuation, grammar, and spelling.
Identifying mistakes in your essay and correcting them is not enough. Every time you make some change, particularly if you're correcting grammar error and replace some words, you should reread sentence and paragraph again. You want your correction to fit perfectly into your work.
I know it's impossible to be fully concentrated at all times. If you have a lot to write, by the time you finish everything you just think about going to sleep. Sometimes, you will find yourself drifting off during proofreading phase. When this happens, you should reread the paragraph again to make sure you didn't miss anything. Naturally, if you don't have a tight deadline, you can always proofread your work after having some rest.
MS Word has the Spelling and Grammar option and there are many software one can download and use. Although they do make editing and proofreading process faster, you should never rely on them. These programs sometimes overlook some mistakes or they suggest unreasonable solutions for correcting mistakes they identify. The point is, they are never 100% accurate. You can use them as complementary tool in proofreading process. For example, use Spelling and Grammar (or some software you download) before editing and proofreading. Then, go through your text and correct sentence structures, grammar and spelling mistakes, see how you can improve cohesion and punctuation etc.
Correcting mistakes and rereading is inevitable part of proofreading process. Before you move on to the next paragraph you should read it again, but this time read it backward. This is a useful technique that separates words from their context and storyline and enables you to see them as they are. In turn, you won't overlook mistakes you usually would.
Google is extremely useful here. If your text contains terms that you aren't familiar with, you should always look them up on Google to see whether you're spelling them correctly. For instance, if you're writing some medical article and have to include a name of some disease which is usually in Latin. When proofreading, Google the term and see whether you have to correct the term or not.
Make short breaks if you have to proofread larger text.
Although constant rereading, analyzing and looking for errors can be quite tedious editing and proofreading are final steps towards high-quality work. Tips from this article will help you build effective proofreading strategy and boost productivity.


Apply now!! The greatest chance for kerala People!! Indian Institute of Spices Research IISR Recruitment for Research Associate/ Bioinformatics Trainee Post. The job location is in Calicut/Kozhikode. M Phil / Ph.D, MSc is the qualification of job posts. Interested and eligible candidates can attend the interview. The link for applying and how to apply Calicut/Kozhikode Government Jobs is given at the bottom of this page. Please read this post carefully before applying for this job.
Bioinformatics Trainee Job Post- PG Degree in Bioinformatics. Only those who have passed out in the preceding academic year alone will be considered.
Research Associate Job Post- Experience in NGS data analysis.


Advanson is young company searching for ways in which modern technology can help, more than it disturb us.
We specialize in developing simple and inexpensive microcontroller based solutions to help people with their everyday tasks.
This product is placed on restaurant tables to hold menus. Pressing the button sends radio signal. The android tablet/smartphone then beeps and waiters can see table number that need service e.g. order or pay.
We will be happy to come to you in order to directly see application and better understand requirements.
We can also make a meeting in our office to show you possible solutions and materials for your product.
Product example "Hallo Kellner !"
Have you ever been waving to the waiter, time and time again, filling like complete idiot, while he is looking everywhere except to you. It hapens to us all. We have finaly decided what to order or we are in harry to pay, and waiter is nowhere to be seen.
This small device helps customers to calm down and feel more relaxed, knowing their needs will be taken care of. It also helps waiters keep track of tables waiting service.
Apart from its primary function to call waiter, the transmitter also serves as menu holder. It can be mounted on table or some other place.
It is resistant to typical drops, kicks, rain, dust and sun radiation.
Around button is green LED ring that blinks twice after customer push the button. It serves as indication to the customer that his request has been noted.
Each transmitter has its table number. Waiter can easily change table number using the Tablet. Two transmitters can have same table number if desired.
Standard CR2450 battery will lasts for about 5-10 years with heavy usage. Tablet/smartphone will notify waiter which transmitter needs battery replacement, once it is empty.
Optionally, the waiter can also remove table number from Tablet/smartphone by pushing transmitters button twice.
WiFi Base-station acts as a WiFi hotspot.
It recieves requests from the tables and forwards them to the Tablets.
Tablets or Smartphones are used to show Table numbers that wait to be serviced.
When new number arrives the Tablet will make noticable beep signal and the number will be added to the waiting list.
Table number is removed from the list simply by pushing coresponding button.
Tablet is also used to change table numbers by holding the coresponding button pushed for a second.


text:
Tips and Info
Visiting Orlando
Moving to Orlando
Disney Like a Local
Ask Serena
HomeDisney ParksFirst Look at the NEW Jedi Training Academy
First Look at the NEW Jedi Training Academy
Hollywood Studios has reopened their extremely popular show, Jedi Training Academy with a new title: Trials of the Temple. This coincides with the opening of Launch Bay yesterday. For details and pictures of Launch Bay make sure you check them out here. Trials of the Temple introduces a new villain to the mix. The Inquisitor is a character from the animated show Star Wars Rebels. The inquisitor, known as the "Seventh Sister" is a Jedi Hunter working for Darth Vader. She is seriously awesome. I love that we have another strong female character from the Star Wars franchise being highlighted. Particularly here since so many of the children that sign up for the JTA are girls. Plus tying everything together from the movies and the animated series is a nice touch.
[supsystic-gallery id=1 position=center]
Serena Lynhttps://livingbydisney.com
Hi there, I'm Serena and I created Living by Disney when I moved next door to Disney World in Orlando Florida. I don't work for Disney and don't represent the company, but after moving here I made it my job to share unbiased tips and strategies to help you get the most out of your Walt Disney World vacation!
Enchantment Fireworks Dessert Party Review
To celebrate Walt Disney World's 50th Anniversary and the debut of the all-new nighttime fireworks spectacular Disney Enchantment, Disney brought back not just one,...
Space 220 Dining Review
Space 220 is one of Walt Disney World's newest table service restaurants and one of the most anticipated additions in 2021. After a few...
Serena Lyn
Subscribe to Living By Disney
Guide to the Free Disney Genie Planning Tool
Copyright 2021 | LivingbyDisney.com


text:
Del Valle faces New Mexico powerhouse Rio Rancho Cleveland
Kristopher Rivera
Related ›› High school football capsules: Friday Sept. 4
Rio Rancho Cleveland, of the Albuquerque area, will travel down Interstate-25 and I-10 to Conquest Stadium on Friday to duel with the Conquistadores.
"They're big (on offensive line) and have some good, strong kids, but I don't know if they necessarily move as well as Texas kids, but they move well," Del Valle coach Jesse Perales said. "It's going to pose some problems for us, but we're going to have to adjust to that size early."
The Cleveland Storm are the No. 1 ranked team in Class 6A football in New Mexico with 17 returning starters; nine on offense and eight on defense.
"We got a lot to prove, still," Cleveland coach Heath Ridenour said. "Those rankings don't mean a whole lot to us. We went 7-4 last year with these same kids, so we want these kids to come out and prove something."
Last week, Cleveland (1-0) defeated Albuquerque Manzano, 53-0.
Cleveland's 6-foot-2, 195 pound quarterback Gabe Ortega completed 10 of 11 passes with three touchdowns. He also ran for a touchdown.
Another standout for the Storm is 6-foot, 195 pound running back Landry Hayes, a two-year starter. Against Manzano, he had six carries for 82 yards and two touchdowns.
Their offensive line has been an important part of the team. They have four returning starters, led by the 6-foot-6, 270 pound Stanford commit, Henry Hattis.
Last year, the Conquistadores beat Cleveland 27-7.
"One of the things that really stood out for us was how physical they were on the defensive side of the football," Ridenour said regarding Del Valle. "They return most of those players, so the challenge remains the same."
Del Valle's offense seems to be doing well adjusting to the absence of quarterback Steven Montez.
"Defenses are always ahead of offenses early on," Perales said. "On defense, I think we're pretty fast. The offense is gaining ground and looking good."
Last week, Del Valle (1-0) defeated Gadsden, 34-7.
Quarterback Anthony Lopez had 202 passing yards. Running back Jason Morales had 96 rushing yards, wide receiver Matt Martinez had 78 yards receiving and linebacker Mike Aguirre had eight tackles.
Canutillo vs. Eastwood
Also Friday night, Eastwood (1-0) will go on the road to face Canutillo (0-1).
"We're going to try to trade punches, blow for blow, with Canutillo and try to be just as physical as them," Eastwood coach Julio Lopez said.
Last week, the Troopers bagged a 19-12 win over the Chapin Huskies. The Troopers' offense struggled and the defense shined. However, they aim to clean things up for Friday.
On offense, quarterback Mark Torrez and wide receiver Richie Rodriguez combined for some big plays against Chapin.
Torrez completed 15 of 28 passes for 230 yards and three touchdowns. Rodriguez had seven catches for 158 receiving yards and three touchdowns.
"Richie is probably one of the elite players in town, the kid has gotten better every time I see him on film, but that's not their only weapon," Canutillo coach Scott Brooks said. "Offensively, that's probably as good as what we're going to see. They're probably going to want a little revenge after we beat them last year."
Kristopher Rivera may be reached at 546-6121.


When possible try to avoid sweating. Make sure there is good ventilation.
If your baby has heat rash, make sure they are not swaddled in too many garments and avoid plastic mattresses.
Try to wear loose cotton clothing which can help prevent you overheating and making the itch worse. Avoid fabrics which irritate your skin, like wool or scratchy fabrics.
A cool bath or shower may help provide short-term relief from any itching, but excessive showering or bathing should be avoided as this can reduce the natural oils that protect the skin and may make it worse.
There are medicines available to ease the symptoms of itching. Speak to your pharmacist for further advice and to make sure any medicines you take are suitable for you.
Your pharmacist may recommend calamine lotion (which helps ease itching) or antihistamine medicines.
Your pharmacist may also recommend a low-strength hydrocortisone cream. Hydrocortisone cream is a type of steroid cream used to treat inflammation.
You many need antibiotics if the area becomes infected.
If you are still concerned about your heat rash, why not use healthdirect's online Symptom Checker to get advice on when to seek medical attention.
Heat rash or prickly heat is caused by blockage of sweat glands during times of high heat or humidity, causing itching or prickling of the skin.
Heat rash, prickly heat or miliaria looks like little red spots on the skin. It might appear if your child gets too hot. Its common and easy to treat.
Miliaria is a group of skin conditions that arise from blockage of sweat ducts. There are three types of miliaria classified by the level of blockage of the sweat duct.
Hot weather can be dangerous for babies because they are easily affected by the heat. Learn how to keep them cool and safe.
Heat kills more Australians than any natural disaster. Find out how you can treat and prevent heat-related illness.
Babies and young children can easily get sunburnt, even on cooler or overcast days. A few simple steps can help you protect both yourself and your baby.
Babies and children can quickly lose body fluids in hot weather, which can lead to dehydration.
Growing up in northern Australia can be a magical and safe experience. But parents need to be aware of the risks posed by life in the tropics.


text:
June 3, 2014 By Fausta
Democrat Chavista for Congress!
A political whore is someone who would do anything to get elected, and now Arizona's 7th Congressional District has its own.
Meet Scott Fistler:
Scott Fistler didn't have much luck as a Republican candidate. He lost a 2012 write-in campaign against U.S. Rep. Ed Pastor, then lost a 2013 bid for a Phoenix city council seat now held by Laura Pastor, Ed's daughter.
After petitioning a state superior court last November and paying $319, Fistler now legally shares the name of the celebrated labor movement icon, Cesar Chavez. Earlier this year, Chavez (formerly Fistler) became a Democrat, and – before Ed Pastor announced his retirement from Congress – filed to run in the heavily Hispanic 7th Congressional District.
The original union activist Cesar Chavez opposed illegal immigration. Makes ou wonder how that would go over in his district, doesn't it?
But don't fret. Fistler/Chavez is not taking questions:
Chavez did lay out some ground rules for media questions, should he be able to get to them. Questions must be screened, no more than five questions, no question longer than five words and Chavez will not discuss his name change, he explained in the email.
Not stepping in enough doo-doo as it is, Fistler/Chavez crowns his campaign by using photographs of Chavista demonstrations in Caracas, which had been carefully staged for deceased dictator Hugo Chavez as the crowds were bussed in and paid.
Meanwhile, in Venezuela, Hugo's legacy lives on.
Filed Under: Democrats, politics Tagged With: Arizona, Scott Fistler


Rimfire 322 - Pocahontas Sunrise. Faces the slopes, in the village. Sunrise every day!
HEATED PARKING GARAGE, PRIVATE SKI LOCKERS, ELEVATOR BUILDING, STARBUCKS LOCATED ON LOBBY LEVEL!
Rimfire is that perfection location for your vacation. Right in the heart of The Village, close to all the action. Enjoy a fresh cup of coffee at Starbuck's, dine in one of our fine restaurants, relax in one of the hot tubs located in the complex, or walk to any of the many activities going on. This unit is equipped with a full kitchen, gas fireplace, sleeper sofa, and two TV's. Book this adorable unit for your vacation today.


The sight was so astonishing that one driver's dashboard camera captured him shouting "What the f--- was that!" after the blazing space rock plummeted to Earth.
Videos posted by witnesses who happened to be out driving — and who had their dash cams turned on— showed the meteor streaking down over the Florida sky at about 11:55 Saturday night.
The National Weather Service's Tallahassee forecast office tweeted images of the meteor showing up on a lightning map.
Forecasters explained that the meteor is not the bright line of light extending in a northeast-southwest diagonal line in the map image. The meteor is actually a quick and easy-to-miss purple dot that briefly blinks in the Panhandle just slightly east of the upper portion of the Big Bend area.
While the meteor appears to have fallen between Tallahasee and Live Oak, the "What the f--- was that?" witness reported seeing the meteor in Gainesville, Florida.


Discover What's Really Driving Your Food Habits!
Get these Free Reports Now and learn about a whole-system approach that includes the physical, mental, emotional, spiritual, and energetic aspects of your food issues.
Emotional eating, being overweight or underweight, binge eating, and other disorders are the physical manifestations of your underlying energy patterns.
• Receive profound insights about how these patterns play out in your other relationships – your relationship with yourself, your power, and with other people.
• Take an in-depth look at what is involved in changing these patterns.
Once you change these hidden patterns you'll naturally find yourself choosing to do those things that support your optimal weight. Maintaining a healthful diet and having the discipline to exercise are natural byproducts of changing your underlying patterns. Get your free reports now!


Source objects are representations of non-MediaHound services that we have linked to their corresponding MediaHound objects. Examples of these would be HBO, Netflix, IMDb, and RottenTomatoes.
All MediaHound Object Types can be inferred from the first five characters of their MHID or AltID. Here is a list of all Source types in The Entertainment Graph and their corresponding prefix.
All Source objects are returned with a default set of fields. These fields contain information and properties that relate directly to the essence of the Source object itself.
The default fields are guaranteed and are returned every time a Source object is returned. Everything else may be included by passing in the relevant Component.
mhid The MediaHound ID of the Source.
name The name of the Source.
altId The alternate ID of the Source, to be used for urls.
connectable Indicates if a User has the ability to connect to this Source and indicate preferences about it.
webUrl The url that links to the Source's outside site.
All Source objects contain a Name sub-object called primaryName. This contains the primary locale-relevant Name.
The primaryName object is returned whenever a primaryName Component is requested.
All Source objects contain a sub-object called primaryImage. You can expect this to be the best visual representation of the Source.
The primaryImage will return an Image object.
The primaryImage object is returned whenever a primaryImage Component is requested. The response object is guaranteed, but may only contain a default image.
All Source objects contain a sub-object called secondaryImage. You can expect this to be an icon image of the piece of content.
The secondaryImage will return and Image object.
The secondaryImage object is returned whenever a secondaryImage Component is requested. The response object is guaranteed, but may only contain a default image.
Some Source objects contain a sub-object called allSubscriptions. This contains information about the various subscriptions that are offered by the Source (i.e., "Stream").
The allSubscriptions object is returned as an array of Object/Context Pairs. The object will be the actual Subscription and the context will be empty. Subscription Objects are not retrievable by themselves and are only viewed in reference to a Source.
The allSubscriptions object is not guaranteed, but is returned anytime the allSubscriptions Component is requested. It may contain only an empty array.
mhid The MediaHound ID of the Subscription.
name The name of the Subscription.
description The description of the Subscription.
timePeriod The time period of the Subscription plan, such as "monthly" or "yearly."
price The current price of the Subscription plan.
currency The currency that the price is in, usually "USD."
mediums An array of strings that indicate the various mediums the Subscription allows Media to be delivered in, such as "stream" or "download."
All Source objects contain a sub-object called allMediums. It is an array of all the possible mediums that are offered by the Source. Examples would be "stream" or "download."
The allMediums object is returned whenever an allMediums Component is requested.
allMediums An array of all the possible mediums that are offered by the Source (i.e., "stream" or "download").
All Source objects contain a sub-object called socialMetrics. This is an object that will contain all the general social metrics about the Source object.
The socialMetrics object is guaranteed and will be returned anytime the socialMetrics Component is requested. Additionally, the socialMetrics Component is considered a primitive Component and therefore, is not in an Object/Context Pair.
likers The number of Users that currently like this Source object.
followers The number of Users that currently follow this Source object.
collectors The number of each type of Collection that this Source object is currently in.
mentioners The number of posts that this Source object is currently mentioned in.
All Source objects contain a sub-object called userSocial. This is an object that will contain the User specific social metrics about the Source object.
The userSocial object is only guaranteed when a User has been authenticated with either Code Grant, Implicit Grant, or Password Grant, and will be returned when a userSocial Component is requested.
userConnected Specifies whether the currently authenticated User currently has connected to the Source object.
userPreference Specifies the level of preference the currently authenticated User has for the Source object.
If a Media object is available to be consumed by a User from a Source, the context object will simply be the mediums object. However, for Sources such as IMDb, where there is no real way to consume the Media, the context object may contain launchInfo and social objects with some basic properties about the Media on the Source.
When asking for the Sources that a particular Media object is available on, the response is an array of Object/Context Pairs. The object is the actual Source, as described above. The context is a complex nested object that aims to give as much information as possible in a manner that is consistent across all Sources.
Note that everything inside context is not configurable via Components. It is assembled automatically with the most data the API can provide.
The mediums property is an array of Medium objects, each containing information for a specific medium, or manner in which a Source delivers content to a consumer.
type The type of medium. Current values are download, stream, deliver, and pickup.
methods The Methods object as described below.
The methods property is an array of Method objects, each containing information for a specific method, or pricing plan, that the Source allows a consumer to consume the content.
type The type of method. Current values are rent, purchase, subscription, and adSupported.
formats The Formats object as described below.
The formats property is an array of Format objects, each containing specific pricing information for individual formats, as well as launchInfo for that respective format.
type The type of the format, such as "480p" or "720p" for video formats.
price The price of the content in the format.
currency The currency of the price, usually "USD."
launchInfo The Launch Info object of the specific format, described below.
The smallest and most basic part of the Source Context is the launchInfo object. It contains the Source's ID for the specified Media, as well as direct links to the Media on a Source's site.
The links are not guaranteed to exist, so the fallback should always be to the sourceId.
http The web link to go to the Media.
ios The iOS mobile link to go directly to the content, without having to open an embedded web view.
android The Android mobile link to go directly to the content, without having to open an embedded web view.
view A collection of links to simply view the content.
consume A collection of links to directly consume the content.
preview A collection of links to only preview the content.
sourceId A String representation of the ID of the content on the Source's domain. If using the Source's SDK, this could be used instead of the links.


Corruption of any application is an unfortunate situation but it's quite common on a wider sense. MS Outlook Express is an email client serving day-to-day communication needs for organizations and individuals but it can also go wrong. Outlook Express uses DBX file extension to store data in user systems and any damage in them can lead to Outlook. Free download of Outlook Express DBX Recovery Software 4.1, size 3.25 Mb.


STARSkaters Skate Therapy volunteers and B.L. Wylie (far left) and Hope for Three Teen Huddle volunteers.
Hope for Three, a Fort Bend-based nonprofit whose mission is to raise community awareness and provide financial and emotional support to families with children on the autism spectrum, today announced the latest recipient of the "Caring Friends" award, presented by Hope for Three's Teen Huddle. This award, presented monthly to an organization promoting acceptance and inclusion of individuals with autism, recognizes the outstanding work of B.L. Wylie and her STARSkaters Skate Therapy volunteers.
The Basic Skills Therapeutic Curriculum founded by B.L. Wylie and Jim O'Neill, trains STARSkaters Skate Therapy volunteers to provide exciting on-ice experience to kids with autism and other special needs. Sugar Land is one of first cities in the country to offer the program. Benefits are both physical - strength, balance - and psychosocial - interacting with coaches and peers, and working to overcome fears.
Special needs skating lessons are offered every Saturday morning at Sugar Land Ice & Sports Center. For more information, visit: www.SkateTherapy.org/ If you would like a speaker to visit your group, school or organization and share more about the autism awareness program, "It's Cool to Care", contact Hope for Three, 800-317-0787 or visit www.HopeforThree.org.


text:
Q: Quicksort with Linq performance Advantage passing T[] vs. IEnumerable Just for fun I built a quicksort implementation in C# with Linq:
public static IEnumerable<T> quicksort<T>(IEnumerable<T> input) where T : IComparable<T>{
    if (input.Count() <= 1) return input;
    var pivot = input.FirstOrDefault();
    var lesser = quicksort(input.Skip(1).Where(i => i.CompareTo(pivot) <= 0));
    var greater = quicksort(input.Where(i => i.CompareTo(pivot) > 0));
    return lesser.Append(pivot).Concat(greater);
}

It sorts 10000 random integers in about 13 seconds.
Changing it to use int[] instead of List results in about 700 times better performance! It only takes 21ms to sort the same 10000 random integers.
public static T[] quicksortArray<T>(T[] input) where T : IComparable<T>{
    if (input.Count() <= 1) return input;
    var pivot = input.FirstOrDefault();
    var lesser = quicksortArray(input.Skip(1).Where(i => i.CompareTo(pivot) <= 0).ToArray());
    var greater = quicksortArray(input.Where(i => i.CompareTo(pivot) > 0).ToArray());
    return lesser.Append(pivot).Concat(greater).ToArray();
}

Just looking at the code I would have assumed this would have worse
performance. I assumed that .ToArray() would create an additional array in memory and copy all integers there.
I think passing an array vs. passing a list should take about the same time.
So where does this huge performance difference come from?

A: This is why you should be very careful about iterating an IEnumerable multiple times.
The first time you call quicksort you pass in, say,  List.  It calls quicksort two more times, in each of those cases, the IEnumerable that you're passing in represents a query that will skip the first item and then perform a comparison on every single item after that.  You then take that query and pass it to two more instances of quicksort, but making the query not only skip the first item and compare every item after it, but then skip the first item of the results of that query and then compare every item after that to something.  This means that by the time you finally reach a value, you've got a query that represents log(n) skips, and is comparing every item in the sequence to a value log(n) times.
In your second implementation  you're not passing in queries to quicksort, you're evaluating those queries to their values and passing in the values to the operation, which can then use those values twice, rather than continually performing an extremely complex query multiple times.

A: The thing about linq queries are they are lazy, they won't be evaluated until you call a method like ToArray or ToList. In your first code for example, this query:
input.Skip(1).Where(i => i.CompareTo(pivot))

Will be evaluated at least twice every time you call quicksort, once for Count() and once for FirstOrDefault. Which means the filtering operation will be repeated for each call over and over. When you use ToArray on the other hand, since you have the filtered elements in an array already, Where won't be executed every time, it will be executed once you call the ToArray and that's it. This is the difference between the codes, based on this you can do the math for the other parts.


Levi's article addresses both the constitutionality and the efficacy of the FCC's current rules that effectively require broadcasters to air three hours per week of what the Commission defines as "core" children's educational programming. It argues that, even though the current rules would probably pass muster under the First Amendment, they should nevertheless be substantially revised. Empirical studies describe mixed results, with broadcasters claiming to have complied with the rules despite airing substantial amounts of educationally insufficient programming. This is predictable, according to Levi, because of the economic and other factors that push broadcasters toward minimal compliance.
The working paper thus advises a turn away from programming mandates. It proposes a "pay or play" approach that allows broadcasters to pay a yearly fee to a fund that would support high-quality public television children's programming, to air such programming themselves, or to choose a combination of the two. The paper recognizes that a "pay or play" model would have to limit both broadcaster game-playing and FCC content-intrusiveness in order to make the public better off than under the current rules.
While the paper makes specific suggestions on how to reduce broadcaster misuse, it ultimately calls for a ventilation of various alternative "pay or play" models in a public rulemaking proceeding. Such an inquiry would not only reveal the comparative costs and benefits of the various options, but might even result in a negotiated compromise pursuant to which children would have access to more high-quality educational television on broadcast television. As time lapses, the efficacy of the chosen model could be assessed by comparing the resulting programming to what was aired under the more traditional regulatory approach of the past decade.
The research is being published by the Federal Communications Law Journal in its Spring 2010 issue, and is available now on SSRN at http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1464826.


Welcome to Spirits of the Crystal. This is a forum for fans of the Final Fantasy RPG videogames to come and role play in a world based upon the worlds we love so well. By coming here, we hope that you seek to join our numbers and become another member of our group.
Admittedly, if you are unfamiliar with the concept of forum-based role-play, this might seem a bit daunting. I know that it was very daunting for me when I first started, and I have twenty years of experience with role-playing and even more years with writing.
Text-based role-playing, like we have here, is a form of community created fanfiction. Basically, each player controls a single character, sometimes more than that, and together we weave a tapestry that tells a unified story. Sort of.
Community driven fiction is chaotic even at best, but it is rewarding beyond anything which is done alone. When more than one person is involved in a story, the whole is greater than the sum of the parts, and it can be a wonder to behold.
It's why I keep coming back to role-playing, even though I have honed my writing skills through other forms of fiction.
Community driven fanfiction is even more particular, and just as rewarding.
There are, though, some things that a beginning player needs to know before starting out on the character building process.
First off, the medium we use is text. Color can be added to text to make it more visually appealing, but the way we communicate is through words. That means that every attempt to use those words properly is highly appreciated. Spellcheck, a handy thesaurus, whatever you need to use, make use of it. But what is more important is the imagination and creativity which each player brings to the board.
You will notice fairly quickly that the world of Artegal is not a world which has ever appeared in any of the Final Fantasy games, past, present, or possibly future. That is because Artegal is an original creation. I made Artegal and I wove into the world certain features which are common to Final Fantasy including the familiar airships and Chocobos.
Now, the first step to becoming a player is to post a character for approval on the Character Creation board. This is discussed in more depth in the Character Creation Template post, which is an announcement at the top of the page. Use the template. It exists for a reason. Yes, you can make it pretty with colors if you so desire, but please, don't alter it if you can avoid it.
Once the character is approved then you, the player, can set about building Weapons and Spells or Skills. Be sure to follow the templates on those boards as well.
Before posting a spell or a skill for approval, be certain to post in the Residency section of the world where you seek to live, so that the World Leader, if there is one, knows that your character is going to be living there, and so that there is no confusion about your spells, since a world is required for them.
To post RP simply go to the RP section of the world where you are entering and open a thread introducing your character. Unless you have prearranged with another player to handle the introduction in another way, the best bet is to make the thread (Open) so that anyone can join in. From there it should be simple enough to proceed.
There are a few terms that bear defining at this point, because you will likely run across them at some point.
God-Mod (also God-Modding). Usually used as an adjective to describe something as stupidly powerful or without counter-balance. It is related to something called a "God Mode" in videogames, a cheat code that makes the player invincible or otherwise unreasonably powerful. It is a cheat. It is not fun for anyone. I have used "It is a good day to die" in WarCraft II. It's not as much fun. It is also used to describe the situation where one character predetermines the actions of another one, without prior consent.
Rhinohiding. This is where one player refuses to accept any legitimate hits that another player may have gotten in a combat situation. The term comes from something that is an actual problem in medieval recreation groups that have forms of combat, where certain fighters will not acknowledge hits by fighters they feel are below them. It is very difficult to judge, sometimes, particularly with powerful fighters who are legitimately fast and strong. But make no mistake, it is still cheating and it is still wrong.
Noob. A noun, usually, to describe someone who is very new to a situation and thus very ignorant of the common, unspoken rules. It is a term usually used in derision, and thus I really don't like it. The less derisive term is Newbie, and it is simply a way of saying that someone is unfamiliar with the environment and so makes stupid mistakes out of ignorance, not maliciousness. Everyone goes through a Newbie phase. It's okay. I'm very forgiving of honest mistakes, just don't make a habit of it.
RP, also Role-play, role-playing, role-players. Relating to what we are all here to do, which is, pretending to be a character and interact with other players who are pretending to be their characters. This is how we build our stories. It's a whole lot of fun, at least, I think so. I should hope that you will find it so as well.
Bump. This is the word used to describe the one word, or single sentence posts that are designed to bring attention back to something that had fallen out of awareness. It's considered polite, when a Moderator is attempting to help you as a player to see something through the approval process and you edit your post to take clarifications into account, to follow with a Bump post so that the Moderator knows that you have finished your edits and would like the post looked at again.
NPC, or Non-Player Character. Any character that is not controlled by another player and exists for the purpose of conversation and interaction in a given RP. Canon characters can be NPCs if they haven't been claimed by anyone. If the character is claimed, though, that character cannot be NPCed without prior consent.
That should be sufficient to get you started. If you have other questions, please do not hesitate to ask any staff member, or even myself.
I look forward to meeting you in RP.


Reunification is a systemic process intended to rebalance the quality of the child(ren)'s relationship with each parent when one parent has not had contact with the child(ren) for at least 6 months. The hope of reunification is that it will result in the re-establishing of the parent/child relationship and that the family members will learn and practice skills leading to healthier functioning in the future.
Reunification is not a forensic evaluation or a process that will result in custody recommendations. Ascend may make recommendations regarding possible next steps likely to support the reunification goals, but legal recommendations or custody recommendations are outside our scope of competency when we are acting as providers of reunification services.
This reunification services model offers several advantages. Reunification services are structured, with expectations for frequency of attendance for all family members, so problems are addressed proactively before they escalate. Also, the entire family participates in reunification, so children feel that their whole family is working together and they are not left alone to tackle these difficult family issues.
NOTE: Ascend does not accept insurance for most of the charges associated with reunification services. Sometimes, one or more family members needs therapeutic support during the reunification process and might chose an Ascend provider. In this case, those services may be billable to insurance, but families should anticipate all reunification sessions and charges will be billed at a rate of $175/hour and deducted directly from the deposit.
The first step in the process at Ascend is a one-hour consultation with an Ascend provider to discuss your individual case. The fee for a reunification consultation is $100. During this meeting, a provider will meet with both parents to answer questions related to the reunification process and help you determine whether your individual case is appropriate for Ascend.
Your case is determined to be appropriate for Ascend. In this circumstance, both parents need to communicate during the consultation their willingness to participate in the process in order to join the wait list.
Our receptionists do not speak over the phone with potential clients for reunification services. To request a consultation with an Ascend provider to discuss your specific situation and questions, please fill out the contact form below. Someone will contact you, usually within 3 business days, to schedule your consultation session. You will be asked to pay the $100 fee for the session via credit card over the phone to secure the hour on a provider's schedule.
Most reunification consultations take place in our Edina office.
If you have already been ordered for reunification services, the Ascend provider will review your current order to see if there will be any changes required prior to Ascend taking on your case. It is likely Ascend will require clients to have the Ascend Model Court Order provided on this page.
Please note: When an opening becomes available for your family, you will be required to submit your deposit, signed Reunification Services Agreement and signed Safe Harbor Agreement within one week of notification. If one party is unable or unwilling to submit the deposit and the signed documents, we will move on to the next family that fits our current availability. Please be prepared to address any questions you have regarding these documents and/or the deposit during the consultation meeting.


text:
Q: Microsoft Sharepoint online list all files in a folder I want to get a list with all files and dirs in a dir located on a sharepoint
I do not have experience with REST api and I can not find this specific problem solved on google
I have the current code:
HttpURLConnection sharepoint = new LoginManager().login();
    String siteURL = "https://confidential.sharepoint.com/something/"; //here <siteURL_path> is '/teams/SPdev/AlertsCount'
    String wsUrl = siteURL + "/_api/web/GetFolderByServerRelativeUrl('TheFolder')";
    //Send Request
    InputStream in = sharepoint.getInputStream();

    //Read the response.
    String responseStr = "";
    if (sharepoint.getResponseCode() == 302)
    {
        responseStr = "Folder read. ResponseCode: " + sharepoint.getResponseCode();
    }
    else
    {
        responseStr += "Error while reading folder, ResponseCode: " + sharepoint.getResponseCode() + " " + sharepoint.getResponseMessage();
    }
    System.out.println(responseStr);

Where LoginManager is something I did folowing this:
https://social.technet.microsoft.com/Forums/office/en-US/4c8d3696-1d41-44e3-897c-ac3c0b44f66a/share-point-online-authentication-using-java?forum=sharepointsearch


text:
Dallas Music
Sorta Texas Music
Ghost Writings
Deep Ellum Radio
Talk to the Ghost
Ghosty Voting
Monday Mixteen: 6/18/18
June 18, 2018 Written by The Ghost
OK, so I'm a bit late in posting this on a Monday. I do sort of have an excuse. Yesterday, since The Ghost was lacking inspiration, I decided to make this an all request edition of the Monday Mixteen. So really, it's everyone else's fault for not getting requests to me sooner, right? That's my story, and I'm sticking with it.
In reality, I'm quite glad that I got some feedback from those who commented on my Facebook and Instagram posts. It made the take the time to examine artists that I was often either unfamiliar with, or whose works I had not listened to carefully enough. Perhaps I should do this more often. Except next time, I'll get the word out earlier than Sunday afternoon.
Electrik Ants, "Orbital Insertion"
Electrik Ants are the only act to be requested twice by my readers. Word is that their live shows are quite amazing; it's a hypothesis I hope to test soon.
Tish Hinojosa, "West"
There are those musician's names that seem ever so familiar, yet your knowledge of their work is non-existent. Such has been the case for me with Ms. Hinojosa. I thank my friend from high school, Tiffany, for putting a sound to the name.
Ellen Once Again, "Call the Doctor"
My friend Emmeline requested this fun and catchy number. There's always a sense of happiness to be felt when Ellen's music is being played.
Drunk, "Queen of the Carribean"
I forgot who told me about Drunk earlier this year, but I gave their music only a passing listen. Perhaps the track I listened to wasn't as gorgeous as this, or it could have been that I was not in the right state of mind to feel their music. Let me now go on record as saying I like Drunk. That sounds all sorts of wrong.
Chris Welch & The Cicada Killers, "Lonely"
If Roy Orbison were still alive and writing songs, I could imagine him penning something like "Lonely". Chris Welch straddles the line between country and soul in a similar vein to how Mr. Orbison did it over half a century ago. Thanks to Nil Ferrin for this killer request. No word on why her former KNON sidekick, Veronica Young, didn't harass me to add some Loyal Sally to this playlist.
Emmeline, "If You Can't Love Me"
Emmeline is the only individual to both request a song and also be the act another fan requested. This song is from what Emmeline claims will be her debut full-length, Rise. I use the word "claims" since I have heard much talk about the release, yet still nothing concrete. She's apparently taking a cue from Rahim Quazi's playbook of making fans wait a long, long, long time for an album.
Jenna Clark, "Graceless"
The track was released in February, but there's a light, breezy quality to the melody that seems a perfect summertime jam. I dare you to change my mind on that.
Partaker, "Monochrome"
When I saw Jon Rose of The Delzells express interest in requesting a song, I predicted he would merely try to get me to play his band. Instead, he recommended two fine choices: Un Chien and Partaker. I went with Partaker as it's a band I've talked less about, and that I also need to be paying more attention to. The soft-heavy dynamics of this track demonstrate how interesting and engaging of a listen Partaker is. I suppose I should partake of their music more often.
Mitchell Ferguson, "Cry"
I don't recall who requested this track off the top of my head, but this track is golden.
Oil Boom, "Delta Rice"
Thanks to my friend Jenny, who finally requested Oil Boom after being reminded that I'm looking only for local or Texas based acts for the playlist. I will, however, check out the tracks she recommended by David Bazan and El Ten Eleven. I just won't be writing about them here; that's all.
Kinsley August, "Another Try"
Kinsley requested the Drunk track, as well as requesting his own track. The Ghost is always happy to play tracks by Kinsley. While this is certainly one of the more fun tracks he's released to date, it still pales to the hints of what I've heard from his upcoming album.
Whiskey Folk Ramblers, "Just Like Heaven"
Tyler Rogeux of WFR also requested a track (Jenna Clark) in addition to requesting his own act. The Ghost is a big Cure fan, and I'd say that that WFR did a cover that while melodically didn't veer far from the original, the style is decidedly Whiskey Folk Ramblers.
Maya Piata, "Sunday Working"
Brave Little Howl, "Stories by the Campfire"
Sex Regrets, "Shark Week"
Jacob Furr, "Life Comes at You Fast"
The last four tracks were recommended by the artist (or a musician within that band), but these are some pretty darn good tracks. And hey, it saved me from having to follow through on my threat to add Vanilla Ice and Jessica Simpson songs on the Monday Mixteen.
Dallas Music, Playlists, Texas Music
brave little howl, chris welch, drunk, electrik ants, ellen once again, emmeline, jacob furr, jenna clark, kinsley august, maya piata, mitchell ferguson, oil boom, partaker, sex regrets, tish hinojosa, whiskey folk ramblers
Monday Mixteen: 9/2/19	— Today is Labor Day, which to many signifies the end of Summer. With Fall right around the corner, that can only mean one thing. No, I'm not not talking about Pumpkin Spice latte, or Pumpkin Spice body wash, or Pumpkin Spice Whiskey. I'm talking about Ghosty Awards. This year will mark the 5th Annual Ghosty [...]
Monday Mixteen: 8/26/19	— This has been a fabulous weekend for The Ghost. I got to celebrate my birthday weekend with family and friends, and of course, I got to see some great live music courtesy of Pleasant Grove. Me thinks The Ghost has been partied out, however, so there will be no commentary from me today. Instead, I [...]
Monday Mixteen: 7/22/19	— Politics are an area that I've always been reluctant to discuss on the blog. After all, this is a music blog, not a political one. With the level of vitriol being spread in our country right now, however, I feel that I cannot continue to stay silent. The level of racism and hate being spouted [...]
Monday Mixteen: 6/24/19	— What a weekend this has been for The Ghost. I want to give a huge thank you to Opening Bell Coffee for letting me host my Acoustiganza there, to all the talented musicians who played, and for everyone who came and supported the local musicians. This weekend promises to be a big one for shows [...]
Monday Mixteen: 6/3/19	— The Ghost may not have said much in the past month, but that does not mean that there have been no new developments in GOBL land. In fact, I have a long overdue show announcement. I will be returning to Opening Bell Coffee on Saturday, June 22nd for another edition of Acoustiganza. There's even a [...]
Threekend: 6/15/18
Subscribe to the GOBL mailing list
Monday Mixteen: 9/2/19
Ten for Your Attention: 8/20/19
© 2015 Ghost of Blind Lemon.
Website design provided by Easy Local Marketing


text:
2019 Contractor Awards Winners Announced
We are thrilled to officially announce the winners of our end-of-year awards, namely the Star Contractor of the Year 2019 and six Special Ambassador accolades, which have been created to recognise excellence, professionalism and commitment to Autotech Recruit.
Throughout the year, Autotech Recruit contract vehicle technicians and MOT testers are nominated by our regional consultants for Star Contractor of the Month awards, in recognition of outstanding professionalism in the course of undertaking their temporary vehicle technician/MOT tester duties.
At the end of the year, one standout contractor is presented with a Star Contractor of the Year award. The winner receives an engraved trophy, a Red Letter voucher worth £250, and a Christmas hamper.
This year, we have also decided to present six contractors with a Special Ambassador award - an accolade for those who embody the ethos of Autotech Recruit and unfailingly represent our company's core values of professionalism, reliability and integrity. Each one of our winners receives an engraved trophy and a £100 Amazon gift card.
Please read on to find out who the winners are...
Autotech Recruit Star Contractor the Year 2019
We are delighted to announce that this year's winner of the Star Contractor of the Year award is... Peter Owens!
Peter is a very deserving winner and we are extremely proud to have a vehicle technician of his calibre and dedication in our network. Massive congratulations from all of us at Autotech Recruit, Pete!
A few words about our winner...
Pete started working for Autotech Recruit in 2015. Throughout this time Pete has been the finest example of what we could ever hope for in a freelance contractor. He never causes any issues or has any problems, is hardworking, reliable and most importantly, accurate with his work.
It is rare that Pete ever takes days off because he is always accepting work on behalf of Autotech Recruit – we actually have to tell him to take the days off that he is entitled to!
Working under his own limited business, Pete has always been one to help others out, offering plenty of advice to his fellow contractors on our Vehicle Mechanic & MOT Tester Hub. We often ask him to help when we need a longstanding colleague to help out a new starter at a client site, showing them the ropes and making sure they know all about the important things, like filling in timesheets and reporting for check-in with their consultant.
Pete has recently decided to slow up slightly, to spend more time with his family, as he has always been a heavy traveller for us. Driving up and down the country day in day out, starting his day before the sun rises and before a lot of us even consider getting out of bed. He does this with no quibble, happily taking on work in new areas and for new clients he isn't familiar with, whilst also referring other potential contractors to us, spreading the word about the freelance revolution we very much believe in.
To top off a fantastic (nearly) 5 years with us, a few weeks ago, Pete showed how truly selfless he is by buying and providing the homeless with hot drinks and sleeping bags on his cold morning commute to work. Pete said he is very fortunate and grateful for the position he is in and also knows what it's like to be where they are. It's acts of kindness like this that make us proud to have Pete on board and representing us in the industry!
Autotech Recruit Special Ambassador Awards 2019
The Special Ambassador award recognises the contribution our loyal and regular contractors have made to our business in the past 12 months, not only in terms of doing a really great job but also for proving that contracting can be a very exciting career choice for vehicle technicians and MOT testers.
It gives us great pleasure to present you the six winners of this accolade...
Michael Clough
Matthew Dann
Amrath Hussain
Lloyd Robinson
Congratulations to all the winners and thank you for consistently demonstrating great reliability and commitment to the company and our clients. We're delighted to have you flying the Autotech Recruit flag and we're looking forward to working with you in 2020!
Free Guide to Overcoming Automotive Talent Shortages
Six Things to Look for in a New Motor Trade Job
The Four Strategies to Help You Overcome Talent Shortages
The Sustainable Car Revolution
Tweets by autotechrecruit


RAFA BENITEZ will reportedly join Newcastle on a three-year deal.
Newcastle are expected to appoint Benitez after he held talks with Magpies managing director Lee Charnley.
Reports in Spain have claimed the former Real Madrid boss will sign a three-year contract to replace Steve McClaren at St James' Park.
And Spanish newspaper AS add that a source close to Benitez has revealed he will complete his move to Newcastle imminently pending confirmation from the Premier League club.
Benitez is set to return to the Premier League having previously managed Liverpool (2004-2010) and Chelsea (2012-2013).
Newcastle are expected to sack McClaren soon, after he arrived to take training this morning.
David Moyes and Brendan Rodgers were also linked with the post but the Toon have set their sights on Benitez.
The 55-year-old was sacked by Real in January and is heading to Newcastle with the club second-bottom of the league.
Benitez is said to have demanded additional control at Newcastle than McClaren was given as he plans for a long-term project in the North East.
The Magpies' next game is against Leicester on Monday and Benitez is wanted in the dug out by then.


To help our students, we keep our group classes small. Most have no more than six students, and our writing classes have no more than three. That way, our students get much of the teacher's time, personal attention, and help.
Basic English is for students about age 7 and above, for students just starting English. Students learn the ABCs, proper pronunciation, common vocabulary, and start to read in English.
Intermediate English is for students who have studied English for two or three years, and want to improve their ability to read and talk with foreigners in English.
Upper-Intermediate English is for students who have studied English for four or five years or more, and who want to prepare for high school English, college English, or move to the US or another English-speaking country.
Advanced SAT/TOEFL/IELTS classes are for students who already have a strong reading ability in English but need to take the TOEFL, IELTS, or SAT so they can study in the US or another English\-speaking country some day.
Writing classes, from basic to advanced, help students improve their writing skills.


Description: 15 AMPERE-125 VOLT (NEMA 5-15R) GFCI DUPLEX OUTLET, (60Hz), 4mA-6mA TRIP, CLASS A RATED, SHUTTERED CONTACTS, AUTOMATIC GFCI CIRCUIT TEST, TEST / RESET BUTTONS, ON / OFF LIGHT & TRIP INDICATOR, IMPACT RESISTANT NYLON BODY & WALL PLATE, AUTOMATIC GROUND FEATURE, BACK AND SIDE WIRED TERMINALS ACCEPT #10, 12, 14 AWG CONDUCTORS, 2 POLE-3 WIRE GROUNDING, (2P+E). WHITE.
Operating and storage temp. -35C + 66C, 10ka short circuit rating.
Automatic Circuit Test= (GFCI Circuit tested automatically every 3 seconds).
Safelock Protection= (Outlet power shuts off if internal components damaged).
Miswire Protection= (Power to outlet & downstream outlets prevented if line / load terminals are wired incorrectly).


Statistical Process Control (SPC), Six Sigma, ISO-9000 are three quality control tools used to improve process repeatability.
Repeatable processes can then be fined tuned and improved. The expertise at Productivity Solutions becomes a great benefit to your organization when we implement quality control projects and consulting.
Wrote several procedures for documenting, updating and distributing departmental procedure per ISO-9000 requirements.
Updated production and test procedures per ISO-9000 requirements for over 400 assemblies.


Whether it is from your dentist, in conversation, or via some media outlet, we all hear about gum disease from time to time. The terminology may vary, including terms like periodontal disease or gingivitis, but the disease process is the same. Even though we hear the term "gum disease" regularly, many people understand very little about this condition, which could cost them their smiles. The more we understand about gum disease, the more we can be aware of when we may need treatment, how we can avoid it with preventive care in Waterford, and why it is so important to do so.
It is important to state that gum disease is manageable with a combination of adequate home and professional care. By working with your dentist, you can prevent and treat gum disease so that your smile and your health remain their best. Contact Metropolitan Dental Center to schedule your visit.


From 8 – 11 January I am at Heimtextil (Frankfurt) to present my newest collection to you. You can also find me on Intirio (Ghent) from 27 – 29 January and for the first time at Ambiente (Frankfurt) from 8 – 12 February. See you there?


text:
<?php

namespace Magento\Test\Integrity;

use Magento\Framework\App\Utility\Files;

/**
 * PAY ATTENTION: Current implementation does not support of virtual types
 */
class ObserverImplementationTest extends \PHPUnit_Framework_TestCase
{
    /**
     * Observer interface
     */
    const OBSERVER_INTERFACE = 'Magento\Framework\Event\ObserverInterface';

    /**
     * @var array
     */
    protected static $observerClasses = [];

    /**
     * @var array
     */
    protected static $blackList = [
        // not support of virtual types
        'SalesOrderIndexGridAsyncInsertObserver',
        'SalesInvoiceIndexGridAsyncInsertObserver',
        'SalesShipmentIndexGridAsyncInsertObserver',
        'SalesCreditmemoIndexGridAsyncInsertObserver',
        'SalesOrderIndexGridSyncInsert',
        'SalesInvoiceIndexGridSyncInsert',
        'SalesShipmentIndexGridSyncInsert',
        'SalesCreditmemoIndexGridSyncInsert',
        'SalesOrderIndexGridSyncRemove',
        'SalesInvoiceIndexGridSyncRemove',
        'SalesShipmentIndexGridSyncRemove',
        'SalesCreditmemoIndexGridSyncRemove',
        'SalesOrderSendEmailsObserver',
        'SalesOrderInvoiceSendEmailsObserver',
        'SalesOrderShipmentSendEmailsObserver',
        'SalesOrderCreditmemoSendEmailsObserver',
    ];

    public static function setUpBeforeClass()
    {
        self::$observerClasses = array_merge(
            self::getObserverClasses('{*/events.xml,events.xml}', '//observer')
        );
    }

    public function testObserverInterfaceImplementation()
    {
        $errors = [];
        foreach (self::$observerClasses as $observerClass) {
            if (!is_subclass_of($observerClass, self::OBSERVER_INTERFACE)) {
                $errors[] = $observerClass;
            }
        }

        if ($errors) {
            $errors = array_unique($errors);
            sort($errors);
            $this->fail(
                sprintf(
                    '%d of observers which not implement \Magento\Framework\Event\ObserverInterface: %s',
                    count($errors),
                    "\n" . implode("\n", $errors)
                )
            );
        }
    }

    public function testObserverHasNoExtraPublicMethods()
    {
        $errors = [];
        foreach (self::$observerClasses as $observerClass) {
            $reflection = (new \ReflectionClass($observerClass));
            $maxCountMethod = $reflection->getConstructor() ? 2 : 1;

            if (count($reflection->getMethods(\ReflectionMethod::IS_PUBLIC)) > $maxCountMethod) {
                $errors[] = $observerClass;
            }
        }

        if ($errors) {
            $errors = array_unique($errors);
            sort($errors);
            $this->fail(
                sprintf(
                    '%d of observers have extra public methods: %s',
                    count($errors),
                    implode("\n", $errors)
                )
            );
        }
    }

    /**
     * @param string $fileNamePattern
     * @param string $xpath
     * @return array
     */
    protected static function getObserverClasses($fileNamePattern, $xpath)
    {
        $observerClasses = [];
        foreach (Files::init()->getConfigFiles($fileNamePattern, [], false) as $configFile) {
            foreach (simplexml_load_file($configFile)->xpath($xpath) as $observer) {
                $className = (string)$observer->attributes()->instance;
                // $className may be empty in cases like this <observer name="observer_name" disabled="true" />
                if ($className) {
                    $observerClasses[] = trim((string)$observer->attributes()->instance, '\\');
                }
            }
        }
        return array_diff(
            array_unique($observerClasses),
            self::$blackList
        );
    }
}