text:
More from this section Less from this section
Bring Discover to your venue
Discover is the UK's first Story Centre for children aged 0-11 and their families. As a not for profit organisation, our aim is to support a love of language, literature and stories.
At the heart of the centre, our purpose-built Story World and Story Garden are creative play spaces designed to inspire children's curiosity and imagination. We want to help improve reading, writing, speaking and listening skills for children in fun and imaginative ways. Hootah, our resident baby space alien, is always on the look-out encouraging children to create their own stories to send back to his planet Squiggly Diggly.
Changing annually, our interactive exhibitions immerse families in the worlds of their favourite authors and illustrators, from Michael Rosen to Julia Donaldson and Axel Scheffler to Judith Kerr.
Our Story Builders lead timed exhibition sessions and 0-3's Storytelling, and pop up in the Story Worlds and Story Garden to tell more tales.
Throughout the year we invite much-loved and up-and-coming authors, illustrators and other artists to run exciting events.
We also work in schools, libraries community spaces and at festivals. Last year over 151,000 children and adults engaged with Discover.
We have been awarded the Visitor Attraction Quality Assurance marque from Visit Britain and the Learning Outside the Classroom kitemark. Time Out voted Discover one of London's top five family days out and named our bookshop as one of the top five children's bookshops in London.
Make a donation now to help support Discover's work.
Meet the friendly team behind Discover Children's Story Centre.


The Bow Sprit Sleeve is a collar that holds the Bow Sprit in place inside the guide ring of the Reacher Chain Plate.
It keeps the middle of the Sprit from moving up and down and side to side.It creates a tight fit and distributes the force from the contact point of the guide ring.
It is made of black anodized aluminum.


text:
Archive | Fair Labor Standards Act
Arlington v. Miller's Trucking, Inc.
in 5-0, Affirmed & reversed, Fair Labor Standards Act, Oral agreement, Shea, J., Wage and hour laws
Arlington v. Miller's Trucking, Inc., 2015 MT 68 (March 3, 2015) (Shea, J.) (5-0, aff'd & rev'd)
Issue: (1) Whether the hearing officer properly found that Arlington and Miller's did not have an oral employment agreement guaranteeing over $60,000 a year in wages; (2) whether Miller's failure to keep proper records of Arlington's hours can be attributed to Arlington; (3) whether Arlington met his burden of production by introducing evidence of hours he worked; (4) whether the hearing officer properly denied Arlington's overtime wage claim because Arlington's records lacked credibility; and (5) whether the hearing officer abused his discretion in excluding documents showing Miller's failed to comply with hours-of-service requirements.
Short Answer: (1) Yes; (2) no; (3) yes; (4) no; and (5) no.…
Stubblefield v. West Yellowstone
in 5-0, Affirmed, Fair Labor Standards Act, Jury verdict, Montana Supreme Court summaries
Stubblefield v. West Yellowstone, 2013 MT 78 (March 26, 2013) (5-0) (Wheat, J.)
Issue: Whether substantial credible evidence supported the jury verdict in favor of the Town on the plaintiff police officers' FLSA claim.

redpajama_set_name: RedPajamaCommonCrawl


Harness the natural cleaning power of steam with the Steamfast Everyday. This powerful, handheld cleaner features a 900-watt boiler for fast heating and strong, steady steam on demand. Clean, sanitize and deodorize a variety of home surfaces without toxic, smelly chemicals. A handy extension hose and a bevy of attachments will make this your go-to tool for cleaning all sorts of surfaces around your home.
This product works great.It got me steaming and cleaning everything!!!


Online marketing in the charity sector works the same way as in any other niche, except for one fact. While for-profits can afford an entire team of skillful marketers, you may not have a budget for that. Guess what will happen if donors find out you spent their money on promotion instead of helping the needy. Long story short, your fundraising game will be over. To play it safe in charity marketing, you must take more of a do-it-yourself approach.
Instead of paying four-digit sums to marketers, try to promote your fundraising site to the Top 10 on your own. Here's what you need to understand. No matter how noble your intentions are, Google's algorithm doesn't care about them. People google words, and the engine analyses their queries when ranking sites. That said, keyword optimisation must be on your priority list.
First off, broad phrases like "donate money" will get your site nowhere. Long-established fundraising platforms already hold the highest positions for these terms. Google keeps them there because they look trustworthy in its eyes. A high domain rating and thousands of monthly visitors are to blame. There's no way you can push them out of the top until your Google Analytics account shows just as brilliant results as theirs. I hate to be the one who brings the bad news, but it's impossible at the beginning.
What can work for you is content optimisation with more specific, long-tail keywords. While such phrases don't get too many searches individually, collectively they can bring you a lot of page visits.
For example, the page ranking #1 for "donate to Mexico earthquake" also ranks for 300+ similar keywords. As you can see, the verb "donate" is used as a noun "donation" or replaced with a close term "relief." That's because Google has become so intelligent lately that it understands the meaning of users' queries without word-for-word match.
Bonus tip! To come up with more specific keywords for fundraising, combine a few modifiers at once, e.g. a donation item and institution – "donate teddy bears to children's hospital".
The choice of keywords depends on how well they perform in organic search. To pick phrases that can pay off with ready-to-donate visitors, you'll need to analyse their metrics with keyword research tools.
Search Volume shows how many times people google a certain keyword. It will give you a general idea if there's an interest in your campaigns. The more searches a keyword gets, the more donors may land on your fundraising site. But not so fast.
In 79% of cases, this keyword gets no clicks at all, probably because most people get an answer immediately with one of Google's SERP features. There's no point in visiting the pages suggested below, in the Top 10.
That's why you should always estimate how many clicks your target keyword can generate and double check SERP shows no instant answer. Otherwise, your research will be in vain.
People start googling this query a few months before the holiday. At the beginning of December, its search demand reaches a peak but then, when Christmas is over, it declines and remains at a record low for the rest of the time.
To understand how long your fundraising campaigns are in demand, use a free online tool – Google Trends.
Difficulty. With this metric, you'll learn if it's easy to bring your fundraising site to the Top 10. In the beginning, you'd better focus on keywords with a low difficulty score like "donate junk car." To rank for it, your content will need backlinks from eight sites only. Learn more about how this metric is calculated.
Being "just another" person collecting donations won't make things easier for you. Imagine how many other fundraisers are on the playing field. There must be something that could set you apart from them. Try to approach charity issues that no one else has approached yet. The question is how to identify those sweet spots.
A sure-fire way is to hang out on Quora, Reddit, Facebook communities, and forums, i.e. in places where potential donors share their concerns. If the same question gets on your radar again and again, it's a signal of the lack of relevant information and your time to act.
Use that question as a keyword and create authentic content around it for your blog (set it up on your fundraising site if you haven't yet). You can also check if your keyword suggestions coincide with queries that real users google. There are two places in SERP to see them – the search field equipped with Autocomplete and Related Searches at the bottom.
Being the first to provide a clear solution to a popular yet unresolved problem will prove your worth. Some people may become regular visitors of your site. Such relations often end up with generous donations.
Important notice! Besides finding juicy keywords, you'll need to assure Google that your fundraising site is reliable enough to suggest to users. For this, you'll need to back it up with quality backlinks. Learn how to earn them in the video tutorial below.
If you pick the right keywords and gain some link juice, your fundraising site will have a pretty good chance of hitting the first page of search results and get on the eyes of potential donors. The best part is that you can go without costly marketing services. All you'll need a good keyword tool and some logic, that's all. Have any other keyword strategies worked for you? Share them with us below.
Digital technology: charity friend or charity foe?


The south of India is in stark comparison to the north, with both areas being uniquely beautiful, and distinct in their respective architectural styles. Nestled in the craggy hills and plains of Tungabhadra in the southern state of Karnataka, is the ancient Kingdom of Hampi, which was the last great Hindu Kingdom of Vijayanagar. Now a World UNESCO Heritage site, the remnants of this architectural complex was built in 1565, garnering awe and admiration from travellers for centuries.
Interested in South India Luxury Tour Click Here ?
Encompassing an area of almost 42,000 hectares that took over 200 years to be complete, these stunning ruins reveal a time of grandiose and austerity amongst the Vijayanagara Empire. The river Tungabhadra runs parallel to the ruins, and historians have been able to gather just how sophisticated, urban, and advanced the community was, evidenced by the unique and skillfully designed hydraulic technologies.
With more than 1600 surviving remains, tourists can wander between forts, royal complexes, temples, shrines, pillared arenas, gateways, memorials, elephant stables, and water structures. The intricate and detailed carvings on the temples are characteristically Hindu, with deities including Krishna, Ganesh, and many other Dravidian idols. This form of architecture flourished under the Vijayanagara Empire, and was easily recognizable by the massive dimensions, sequestered enclosures, lofty towers, and decorated pillars. The Vitthla temple is not to be missed, as this shrine is the most exquisitely ornate on site, representing the culmination of the Empire's architecture. Despite the many aspects of Hindu architecture and influence, Hampi also demonstrates an adoption of many Indo Islamic elements, showing us that this society although ancient, was evolved, in multi-religious and multi-ethnic areas.
A trip to the spectacular Hampi complex will be a highlight of your stay in south India!
We are always happy to hear from our clients. Speak to one of our tour designers to get your questions answered.


The SAN is a very common component in many customer issues. The aim of this article is to provide a brief overview of our suggested guidelines to achieve the best possible performance; or, alternatively, remove your SAN from the list of variables to review when troubleshooting.
Single initiator -> multi-target zoning.
When configuring your SAN, it's important to remember that the more hops you have, the more latency you will see. For best performance, the ideal topology is a "Flat Fabric" where the FlashArray is only one hop away from any applications being hosted on it. For iSCSI, we recommend that you do not add routing to your SAN.
To illustrate, we'll use an actual support case without names to protect the innocent. In this example, we were seeing terrible performance from the test host. Latency varied wildly, with several hundred milliseconds of peak latency. Bandwidth never surpassed 100MB/sec.
Make sure you know the topology. Please consult with your switch vendor's documentation on how to confirm your topology.
Many of our customers use a CPU chassis such as a Cisco UCS or a HP c7000. These systems commonly have a number of bladed servers that connect to an embedded switch over a copper bus. All but UCS use a type of "dumb" switch (no zoning) which connects to a core fabric switch (this is true for FC and iSCSI). UCS connects to an additional switch/bridge, a "Fabric Interconnect" and then to a core switch.
Each one of these steps increases oversubscription.
For example, a bladed chassis might have 16 discrete servers. Each of these servers connects to an internal HBA which connects to the embedded switch. This switch takes these 16 servers and performs a form of NAT, forwarding all of their traffic to a lesser number of ports; commonly 4, and as many as 16 ports. These will log into a core switch passing frames over to storage. The oversubscription rate can get quite high if you use a hypervisor for your discrete servers. Add Virtual Machines to each blade, let's say 4 VMs per blade, and what do we end up with?
64 initiators share sixteen 8Gb ports. Sixteen 8Gb ports are funneled into an embedded switch with eight 8Gb external ports. We now have 8 entrance points for 64 hosts to communicate with storage, backup, virtual devices, etc. On an 8Gb switch, this is eight hosts for each 8Gb port. For daily operations, this is usually fine, but if you have several high demand systems on this chassis; a database, development systems, this configuration can behave like a bottleneck. This is the driving force behind 16Gb Fibre Channel and the coming 32Gb standard.
In one support case, each chassis only had two iSCSI connections to the core switch, providing, in the real world use, substantially less than 20Gb of bandwidth for all 64 hosts.
For iSCSI and NFS, make sure that your network topology does not contain Ethernet bottlenecks, where multiple links are routed through fewer links, potentially resulting in oversubscription and dropped network packets. Any time a number of links transmitting near capacity are switched to a smaller number of links, such oversubscription is a possibility.
The cumulative impact of additional CPU overhead is another factor when laying out your iSCSI network. In other words, err on the side of too much bandwidth instead of too little.
Assuming you have plenty of network ports, please do avail yourself of all of Pure's ports. You will need to make sure that you balance between maximizing connections to the Pure Storage FlashArray, and any host limitation you may have on the number of connections.
Why? Storage devices are often oversubscribed in today's SAN. By adding more physical paths, you help maintain oversubscription; you provide more pathways, more resiliency, more performance, mitigation of physical problems, and last but not least; you take better advantage of our CPU allocation.
Do note that at the bottom of the connections we list our own ports as "Target Ports" and show our connection speed. This is a nice way to easily verify if you connected to some rogue port fixed at a lower speed.
In this example, we are using an FA-450 that has 8 physical ports. Now, you don't necessarily have to zone/connect all 8 paths to each host like here; you can simply connect 4 ports (2 per controller) to each host. Alternate for other hosts. For example, if you have 20 hosts, 10 can use any 4 ports and the other 10 hosts can use the other ports.
Due to the inherent overhead in iSCSI, we recommend using all possible interfaces per host. You will also want to use at least 8 sessions per host. This happens by default when you attach a host to all 8 Pure ports. If you do not do this, or if your model of FlashArray has less than 8 ports, configure for multiple sessions per host.
Here's the main point: you can see the same Initiator IQN (and it would be Initiator WWN for Fibre Channel) across 8 ports on Pure, the "Target IQNs."
If you see a host, but it is not mapped to any target port, this means that someone configured a host, manually entered an IQN or WWN, but that host has not logged into Pure. In other words, that host is offline for some reason.
A surprisingly large number of performance cases have been resolved by replacing cables. Touching the ends of fibre optic cables, or letting them dangle in a rack (we all do it) leads to contamination. The SFP+ connections for iSCSI are *not* immune to this and are just as unforgiving.
You can clean the cable tips. But most seem to just replace the entire cable. Physical layer errors are insidious, they can destroy performance during peak loads, are often overlooked, and yet is the easiest fix for any performance problem.
The best way is to log into your switch and check for physical layer errors. For 10Gb switch vendors the reporting here varies; some report very little. But almost all 10Gb switch vendors report CRCs. Any port with physical layer errors (like CRCs) should have the cable cleaned or replaced. If that doesn't work, test/replace your switch SFPs. Avoid patch panels if at all possible, if not possible be sure to bypass it for testing.
For Fibre Channel, Cisco has limited diagnostics for physical layer errors. Brocade reports every error in two ways; per port (portstatsshow like Cisco's "show interface details") and in a full Excel like table named "porterrshow."
Between the columns "frames rx" and "enc out" are your physical layer errors. In the above example, the paths are pristine.
For Cisco and Brocade, these numbers are only as good as the switch uptime *or* since stats were last cleared.
We do collect physical layer errors on our ports and these are pulled from system statistics in hex format. Not very user-friendly to be sure and we're working to roll this data out so that you can review port errors in our UI. In the meantime, be assured that the arrays physical layer errors are one of the first items we review for performance escalations and we're happy to provide these stats anytime you need it (for no additional charge, we'll also convert the data from hex to decimal).
Often customers aren't aware of the rogue switch port that was hard fixed to 4Gb; or that the company's mission-critical database server, which cannot suffer any downtime, is still using 4Gb HBAs with outdated drivers. We have caught the occasional 2Gb host as well.
The item to bear in mind is that an SSD based array, with 8Gb or 16Gb HBAs, using Fibre Channel, can achieve extraordinary bandwidth with sub-millisecond latency. When you zone this to a 4Gb host there's a good chance that the host will cause back pressure, unable to keep up, forcing fame discards further down the path.
Add more physical paths if possible and avail yourself multipathing, as per your hosts best practices.
In the event of having to use hardware 2 full port speeds from Pure (2Gb in a 8Gb SAN or 4Gb in a 16Gb SAN), you may need to fix the port speeds that Pure connects to one speed down.
Let's say you just bought an FA-450 with 16Gb HBAs to put into your brand new 16Gb SAN (awesome!). The hosts you are using to migrate data over to Pure are 4Gb. The switch is now in a position to manage 16Gb speeds for Pure, but 4Gb speeds for your host. This can lead to enormous backpressure causing frame discards to Pure, and potentially to all connected devices! (Each frame discard can trigger up to 12 seconds of paused IO between devices for error recovery between ra_tov and ed_tov fabric values).
Therefore, you may need to down-clock port speeds at the switch where Pure connects to 8Gb. This should sufficiently stop discards and allow you to, at least, push IO at the host speed.
Click on SYSTEM, Host Connections, and then look at the bottom of the main page. These are the speeds we've established with the switch, as well as our WWNs and IQNs which you can copy and paste if need be.
Switchshow is a terrific command, displaying a list of all connected devices; the port speeds, port status, physical location, Fibre Channel address, etc.
Much of the output has been snipped, but take a look at the Speed column. The "N" before the number means that the port is set to auto-negotiate, and the following number is the speed that the device settled on.
In this example, Pure is on port 2 (we always start with a WWN of 52) and it is set to N4. So this is likely a 4Gb switch (as we are only 8 or 16Gb). Glance downward and notice the various port speeds. This customer hopefully does not intend to use the 1Gb device, as it is two generations behind 4Gb. Without using all eight FC ports on Pure, we would expect this customer to be bandwidth limited.
Cisco reports the port speeds, but you'll have to make a note separately as to what connects to what interface (use "show flogi database" to know which WWN is connected to which Interface). In this example, all devices are connected at 8Gb.
Zone any single initiator to as many Pure ports as you like (for a dual fabric environment, use 4 ports through each fabric to each host port WWN).
Back in the day FC switch vendors recommended 1 host port to 1 storage port per zone. This was when a RSCN was sent to all devices and when a large switch was 32 ports. We don't recommend this, unless you have the desire and time to manage 4 to 8 zones per device.
• Use single initiator single target or single initiator and multiple target zone sets. In a large fabric, zoning by single HBA requires the creation of possibly hundreds of zones; however, each zone contains only a few members. Zone changes affect the smallest possible number of devices, minimizing the impact of an incorrect zone change. This zoning philosophy is the preferred method and avoids RSCN performance concerns with multiple initiators in the same zone.
Configuring the same initiator to multiple targets is accepted.
Configuring multiple initiators to multiple targets is not recommended.
A jumbo frame is an Ethernet frame that's larger than 1,518 bytes. The default MTU (Maximum Transmission Unit) for most devices is set to 1500. The FlashArray can support MTU up to 9000. Configuring the MTU to 9000 on the FlashArray, switch(es) and hosts will enable your environment for Jumbo Frames. In order to take advantage of the performance gains of using Jumbo Frames, you must enable the setting on the full path (Initiator -> Switch -> Target).
RHEL: How do I set the MTU for my network?


Money For The Cause A Complete Guide To Event Fundraising Conservation Leadership Series Sponsored By The River Systems Institute At Texa By Rudolph A Rosen 20121230 is good choice for you that looking for nice reading experience. We hope you glad to visit our website. Please read our description and our privacy and policy page.
Finally I get this ebook, thanks for all these Money For The Cause A Complete Guide To Event Fundraising Conservation Leadership Series Sponsored By The River Systems Institute At Texa By Rudolph A Rosen 20121230 can get now!


Signing up for spectrum high speed internet ultra package. 400 mbps. Should I pay the $5 for a gateway device or go with the free modem.
"We've got a lot of spectrum in a lot of places. Verizon 5G Home also comes with free installation and set-up of all Wi-Fi.
Linksys WRt54gl – A wireless 802.11G router. Popular with the technology challenged with supporting a "push-button" setup and configuration. Includes access filtering and 128-bit security. Linksys e42.
The D-Link AC1900 EXO Wi-Fi Router is about as simple to set up as any other router, and the Quick Start guide has easy to follow instructions. Simply unplug your DSL or cable modem, connect it to you.
The free WiFi Finder app makes it easy to locate and connect to the nationwide TWC WiFi® network so you can get fast, reliable Internet on-the-go. Access is.
Following the directions in the Quick Start Guide, I connected the router to my modem and my PC and hit the power button. I opened a browser on my PC and typed http://myrouter.local, which launched a.
. the easiest wi-fi I have ever set up, it is also one of the best performing and simplest to manage." Mesh networking a way of solving a critical problem – how do access points, whether a cell towe.
a central and open location. • If you purchased your own wireless router, refer to the manufacturer's instructions to personalize your WiFi network settings.
Welcome letter (home-shipped only); Router and router stand; Power cord; Two network name and password stickers; Ethernet cable; Installing Your Wireless.
If you need to change any of your WiFi settings, such as the name of your Home WiFi network or password, you need the WiFi-enabled Internet modem.
Is there a way to set up this VPN connection on my wireless router (Netgear 624 54g router) along with it receiving the automatic IP address that is required in order for it to connect? I was able to.
Mar 23, 2017. I called Spectrum up and they told me there is a charge if I use their modem for my Wi-Fi. I told them I don't need their Wi-Fi because I have my own router. it up in a cable store or we can ship it direct to you in a self-install kit.
The dual-band solution can utilize both the 2.4Ghz and 5Ghz spectrum bands. the WAN port and plug the router into the wall. You can set up the Buffalo AirStation Router wirelessly by using a WiFi p.
Follow the steps below to install Spectrum Internet and In-home WiFi. You can also download the installation guide for your modem and router in English or in.
Disable Wi-Fi Protected Setup (WPS), a feature that allows connecting devices to the network by using a PIN printed on a sticker or by pushing a physical button on the router. Some vendors' WPS implem.
The AmpliFi Instant Home Wi-Fi Mesh System is designed. to an Ethernet line back to the router for backhaul between the tw.
If you're experiencing low wireless signal strength, run a Spectrum Speed Test. Use an Ethernet cord to connect your computer to your modem and then run a.
Feb 2, 2017. Lawsuit Offers Reminder to Avoid Cable-Company Router. in 2016 and is officially known as Spectrum-Time Warner Cable. could get those promised speeds via WiFi using the modem/routers provided by the company. issue, but a bigger issue is the lack of decent security settings on these modems.
Feb 7, 2017. After reading the full complaint against Spectrum-Time Warner Cable, I'd. or face an installation fee, and returned their old modem or get hit with a large. but, like many Wi-Fi routers, delivers slower speeds in the real world.
Just remember: Whether you discovered a leecher or not, you should still use WPA2-AES encryption, and tackle other wireless r.
Feb 8, 2017. A sign at the Spectrum-Time Warner Cable office on Erie Boulevard East in. and routers, customers have the option to buy and install their own — and. Furthermore, the wireless routers built into the modems provided by the.
I'm thinking of purchasing this Google WiFi System Router replacement | Republic Wireless to replace the leased WiFi router,but I don't know if.
When it comes to WiFi, there are a total of four protocols and two frequencies. The initial flavor of WiFi, 802.11b, occupied the 2.4GHz area of the spectrum. things get seriously complex. You can.
Sep 6, 2016. (This speed is great for connecting multiple devices, streaming in. Wi-Fi router fee: If you want a wireless connection in your home, you'll need.
You can use your traditional Wi-Fi router and a range extender, which are relatively easy to set up. But range extenders can suffer. Google Wifi also actively looks around the Wi-Fi spectrum, seeki.
Cisco's Linksys series of wireless routers is widely sold for use in both consumer. For basic home or small-office use, the same software enables even casual users to set up a router such as the WR.


image: a view of the large bomb damaged chateau in the Somme town of Ham. To the right a group of workers sort through rubble and masonry, while another group of workers stands before the entrance to the chateau on the left. A tower of the building still stands in the centre of the composition.


Migration Working Group – North West invites you to the second seminar organised by the group at Edge Hill University. This seminar will focus on the process of online collaboration to design an Online Arabic language course. The presentation will be based on an international multilingual project implemented in the School of Education, University of Glasgow and in the Gaza Strip (Palestine).
This entry was posted in culture, education and training, event, research and tagged Arabic, Edge Hill, Gaza, Glasgow, Online Learning by Mike Stoddart. Bookmark the permalink.


What women are looking for in pick-up lines. - Seriously, Science?
What women are looking for in pick-up lines.
Ever wonder whether certain pick-up lines work better than others? Should you go for the classic "Do you come here often?" or a simple "Do you have the time?" Here, researchers tested different types of pick-up lines (flippant, direct, or innocuous; see examples below) to determine which type women preferred. It turns out that women looking for a long-term relationship preferred direct or innocuous lines, whereas women looking to hook up preferred attractive men, regardless of the pick-up line. The authors hypothesize that women looking for long-term partners (a "good dad") view flippant pick-up lines as signs of low trustworthiness and intelligence, while short-term relationship seekers only care about "good genes" for their offspring. But in our opinion, anyone who uses the line "Do you have any raisins? No? Well then, how about a date?" probably doesn't have great genes either (or at least not those that influence sense of humor).
1. Do you have any raisins? No? Well then, how about a date?
2. Can I get a picture of you so I can show Santa what I want for Christmas?
1. I saw you across the room and knew I had to meet you. What's your name?
2. Hi, I saw you and thought, 'I'm gonna kick myself all night if I don't at least come over and say Hi.' So … Hi. What's your name?
3. I feel a little embarrassed about this … but I'd like to meet you. What's your name?
1. What do you think of the band?
2. You look really familiar. Have we taken a class together?
NCBI ROFL: An evolutionary explanation for baldness?
NCBI ROFL: An evolutionary analysis of tattooed ladies.
NCBI ROFL: Wham, bam, thank you ma'am: an evolutionary perspective.
Why the assumption that women are looking for a dad for their hypothetical children and that somehow sexual attraction is linked exclusively to genes? Those pick-up lines were BAD. So bad that they would only work if they guy saying them were super hot.
Okay for real though. For heterosexual women, male attractiveness is allegedly rooted in genetic fitness. I never see this explanation applied to men, who, according to stereotype, disregard all markers of genetic inferiority as long as their target is sufficiently attractive. Can it be only women who have an incentive to care about their offspring? I thought for these guys, the imperative to reproduce trumps every other factor in the human experience, but I guess that only applies to females in evolutionary theory!
Once again: why do scientists believe it is valid to disregard completely the effects of socialization and acculturation in the development of sexuality? I just love when applying the "evolutionary perspective" means simply drawing a straight line between genes and literally any observation about human behavior, the more reductive the better. Thank you for mocking this mockery of a study.


text:
Watch This Kid Get More Done in a Day Than Most of Us Do in a Week—Not That We're Avoiding Laundry or Anything
One kid tackles a laundry list of tasks (including laundry) before he even opens a school book. And a TikToker has a video to prove it.
By Beth Ann Mayer January 07, 2022
An image of a laundry basket.
Credit: Getty Images.
It's cliché but true. Every kid is different. Some eat Cheerios for breakfast, lunch, and dinner, put off bedtime for as long as possible, and sleep late. And we love them for it.
Others like to roll out of bed early and get their days started. And then, there's this kid, who is not only clearly a morning person but more put together before sunrise than most adults (myself included).
One parent, who goes by @shopping666 on TikTok, posted a video of her 6-year-old's morning routine, and it's impressive, to say the least.
@@shopping666
"My baby is six years old, and he gets up at six every day to cook for himself, do housework, and then go to school," the caption reads.
And the TikToker has video evidence to prove it. Sure enough, the little man gets up at his alarm, picks out his clothes, and irons them. He then proceeds to brush his teeth, wash his face, and make himself breakfast—and not just cereal and milk. This kid makes himself dumplings and eggs. He does the dishes and not only uses the bathroom but cleans the toilet, does the laundry, and eventually heads off to school.
RELATED: Age-Appropriate Chores for Kids: Getting Children to Help Around the House
Whew, It's a lot. The post has racked up 35K comments. Some were highly suspicious.
"Ain't no kid actually doing that every day," wrote a top commenter.
"We all know he doesn't do that," another skeptic said.
But the video shows he at least did all that one day. Others didn't question the TikToker—they just picked their jaws up off the floor and applauded.
"This kid did more in one day than I have done all year," one TikToker replied.
"He has more motivation than me," said another.
"Good for him. I'm [going to] stay asleep," joked someone else.
RELATED: Make Over Your Morning Routine for Kids
Realistically, your kid may not wake up and act like this tomorrow—and that's OK. Children, especially kids that age, often rely on parents to help make their food. And chores don't have to be done first thing in the morning, regardless of their age. But if mornings are a bit more hectic than you'd like them to be, there's a way to find a happy medium and make them more efficient. Here are some expert-backed tips:
It starts with sleep. If your kid is consistently groggy in the morning or doesn't want to get up, they may not be getting enough nighttime Zzzs. Make sure they're getting enough sleep. The National Sleep Foundation offers age-appropriate guidelines.
Have a place for everything. As adults, some of us constantly scramble to find our phones and keys before heading out the door. We know leaving them in the same place every day can help nix this reoccurring stressor, though. Kids need to be taught to do that. Teach your child to put their coat, shoes, and backpack in the same place the night before so it's easy to find them in the morning.
Know their pain points. Maybe your child has to try on at least five outfits before deciding what they want to wear. Or, perhaps they can't figure out what they want for breakfast. Anticipate these issues and try to solve them in advance. For example, end your day by having your kid strut their stuff and model clothes for you. Then, ask them to pick out the outfit they liked best to wear the next day. You can also establish a menu in advance.
Not everyone is like this TikToker's kid, and even adults can struggle in the morning. Understanding your child and helping them navigate mornings based on their needs, preferences, and personality can help things go more smoothly, though.


text:
Explore the enquiries: Judgement lesson on the enquiries
Key Stage 4, History, Elizabeth I: Meeting the challenge, 1558-1588
In this lesson, we will focus on answering the two enquiry questions for the unit. It will explore the biggest challenge to Elizabeth and then also question the extent to which her early years were a significant challenge.
Q1.Mary, Queen of Scots was raised in which country and with which religion?
Scotland, Catholic Scotland, Protestant France, Catholic France, Protestant
Q2.Why did Elizabeth sign the Treaty of Edinburgh in 1560?
It stopped Mary from returning to France It meant that Mary would not claim to be the heir to the English throne It promised to give support to the Protestant Lords in Scotland It organised Mary's arrival in England
Q3.Who was Mary, Queen of Scots's first husband?
King Francis II of France James Hepburn, Earl of Bothwell Henry Stuart, Lord Darnley
Q4.In what year did Mary marry Henry Stuart, Lord Darnley?
Q5.Why did Mary, Queen of Scots come to England in 1568?
She wanted to visit her cousin, Elizabeth She planned to take over Elizabeth's throne She was forced to abdicate by the Protestant Lords She fled the country because of the Catholic nobles
Enquiry lesson
Q1.Which of the following would present the most severe challenge to a monarch?
Outward conformity Large scale rebellion Direct challenge to authority of monarch Local rebellion
Q2.Who did Elizabeth rely on to support her running of the country on a day-to-day basis?
Local government Central government The clergy Foreign powers
Q3.Why was Mary, Queen of Scots, a threat to Elizabeth?
Her husband was the French King in 1568 She provided an alternative for Protestants in England She had the support of Scotland to invade England She had a legitimate claim to the throne
Q4.Why do some historians believe that Elizabeth's settlement was successful in the early years?
Majority of people accepted it Foreign powers praised Elizabeth for it There was no opposition from Puritans There was lots of opposition
Q5.Why do some historians believe that Elizabeth's early years were a challenge?
She had to deal with the religious division within England She did not have loyalty from her Privy Council She faced an invasion from foreign powers There were several rebellions
Lesson summary: Explore the enquiries: Judgement lesson on the enquiries
Elizabeth I: Meeting the challenge, 1558-1588
What made the Northern Earls Revolt in 1569?


Holy God, Holy Three and Holy One, be with us now as we offer our prayers for the world and ourselves.
Holy Father, you have created all things and made us in your own image. We rejoice in the beauty of your creation. We come before you in wonder and we seek to be sensitive to your mysteries. We ask for wisdom to understand the complexity of the world around us.
We pray for places where your earth is exploited or damaged, where your creatures are abused or misused. We pray for all people who lack freedom or are oppressed.
We remember the citizens of Iraq and the Middle east and we pray for all people living in conflict and war.
Holy God, Holy and Strong One: hear our prayer.
Christ in glory, risen and ascended, you have redeemed us by your love, your give us life which is eternal. We pray to you for all people who walk in darkness, all who cry out in pain, all who feel beyond hope. We remember all those who are rejected, isolated or outcast.
May they and those who mourn them know your peace.
Spirit of God, breathing life into all, we give you thanks for our talents and abilities, for the powers of renewal and refreshment. We pray that we and your church may reach out in love. We pray for our church leaders and for the ministry of all your faithful people. We pray for the outreach and mission of your church across the world and that we here in Bedford may be inspired to find new and imaginative ways of working in our community.
Bind us together in unity and love. We pray that as we go about our daily lives and experience happiness, disappointments, unexpected events and changes we might find the different aspects of the Trinity at work in us helping us to find reasons for hope and joy.
Merciful Father, accept these prayers in the name of your son, our Saviour, Jesus Christ. Amen.


text:
Quotation Explorer - 'Grounds'
Yes. Oh no! I don't subject myself to a leadership that does not break new territories! It is the job of leadership to succeed in landing its limbs on new grounds. - Israelmore Ayivor
The tears of my eyes watered your heart but failed to evoke a response from the barren grounds of what beats in you. They will still come and I will welcome them because they contain you. - Faraaz Kazi
If you are honest, truthful, and transparent, people trust you. If people trust you, you have no grounds for fear, suspicion or jealousy. - Dalai Lama XIV
CIf you are honest, truthful, and transparent, people trust you. If people trust you, you have no grounds for fear, suspicion or jealousy. - Dalai Lama XIV
Agnosticism simply means that a man shall not say he knows or believes that for which he has no grounds for professing to believe. - Thomas H. Huxley
On Jesus' rock, my life abounds; all other floors are slippery grounds. His love for me, is mercy band; any other love is sinking sand. - Israelmore Ayivor
Hypocrite: The man who murdered his parents, and then pleaded for mercy on the grounds that he was an orphan. - Abraham Lincoln
The Army has carried the American ... ideal to its logical conclusion. Not only do they prohibit discrimination on the grounds of race, creed and color, but also on ability. - Tom Lehrer
There's a light, a light of hope, to break, destroy, recreat, unite and reform grounds of a future, our sustenance. And until that light shines so bright, we the people, our generation will forever March on to failure, otherwise eternal victory is assured!!!!!!!! - Samuel Gyekye Mensah
Any church that operates in prayerless and powerless Christianity spend their days and years conducting dust to dust rites in the burial grounds. - Steven Chuks Nwaokeke
Dreams are the flowers of imagination which bloom on the fertile grounds of the mind. - Debasish Mridha
The most crucial problem with intellectual learning is that it receives the unknown on the grounds of the known. - Raheel Farooq
Man is a credulous animal, and must believe something; in the absence of good grounds for belief, he will be satisfied with bad ones. - Bertrand Russell
We shall defend our island, whatever the cost may be, we shall fight on the beaches, we shall fight on the landing grounds, we shall fight in the fields and in the streets, we shall fight in the hills; we shall never surrender. - Sir Winston Churchill
You can try to defend discrimination on grounds that people are acting according to their conscience, but never forget that those same people may find it conscionable to discriminate against you next. - DaShanne Stokes
Specifically, I'd like to debate whether cannibalism ought to be grounds for leniency in murders, since it's less wasteful. - Bill Watterson
I refuse to answer that question on the grounds that I don't know the answer - Douglas Adams
... and thereof do I repent: I only plucked an occasional flower when I might have gathered an ample harvest of fruit -- such are the just grounds for the regrets I have ...
A hallucination is to be in the presence of that which previously could not be imagined, and if it previously could not be imagined then there is no grounds for believing that you generated it out of yourself. - Terence McKenna
The morning behind the dark mist, the mighty and gracious cloud in the sky, scepter of power to the modest grounds yielding fruitfulness, you are the ALMIGHTY. - Darmie Orem
Every time you understand something, religion becomes less likely. Only with the discovery of the double helix and the ensuing genetic revolution have we had grounds for thinking that the powers held traditionally to be the exclusive property of the gods might one day be ours. . . . - James D. Watson
On what grounds would God be told that He can bring death to millions of people at the end of a normal life span, but that He may not do it in any other way? - Donald Grey Barnhouse
Everybody is standing, but you must stand out.Everybody is breaking grounds; but you must breakthrough!Everybody scratching it; but you must scratch it hard!Everybody is going, but you must keep going extra miles!Dare to be exceptionally excellent and why not? - Israelmore Ayivor
No doubt Jack the Ripper excused himself on the grounds that it was human nature.
Whatever you do for the purpose of impacting on others, no matter how little you think it to be or how little your audience may seem, it not only grows but it leaves a lifetime effect which sets you up on greater grounds of success more than you ever anticipated. - Chinonye J. Chidolue
In every marriage more than a week old there are grounds for divorce. The trick is to find and continue to find grounds for marriage. - Robert Anderson
Moral grounds are always the last refuge of people who have no sense of beauty. - Oscar Wilde
In every marriage more than a week old, there are grounds for divorce. The trick is to find and continue to find grounds for marriage. - Robert Anderson
He grounds the warship he walks on.
What we call rational grounds for our beliefs are often extremely irrational attempts to justify our instincts. - Thomas Henry Huxley
There are other grounds for believing that gays and lesbians should be respected and protected from oppression: their right to privacy and freedom of actionand expression; the "victimless" nature of homosexual relations; and the many valuable contributions that gays and lesbians make to society. - Simon LeVay
I don't want prizes. I turned down the National Institute of Arts and Letters when I was elected to it in 1976 on the grounds that I already belonged to the Diner's Club. - Gore Vidal


text:
Ledgers Canada Franchisee - Gulam Madari
Home / Spotlight on a Franchisee
Ledgers Canada
Professional Accounting, Bookkeeping and Tax Services for the Small Business Community
After completing school with a Bachelor of Commerce and a Diploma in Financial Management, Gulam moved on to complete 4 years of the Certified General Accountants (CGA) Program, then starting a home-based accounting practice in 1995, Gulam became frustrated by the lack of growth in his business and the challenges that starting your own accounting practice presents. It was at this time that he began to look for an opportunity that would allow him to utilize his skills and experience in the accounting field.
Through an internet search, Gulam came across BeTheBoss.ca and the Ledgers Franchise System. After a short-period, Gulam decided that Ledgers represented everything he was looking for in a business and joined the Ledgers Network in July 2007, being awarded a Franchise for the Ottawa West area.
"My decision to join the Ledgers Network was twofold; I was immediately able to offer additional services such as business plans and incorporations to clients, setting my business apart from others in the industry, and I also gained instant credibility by being a part of a Nationally recognized brand." Ledgers Professionals provide a tremendous array of services to small business, their owners and the public. With services ranging from basic bookkeeping to Corporate Tax, Business Plans and Incorporations, the revenue potential for a franchise owner is limited only to their efforts and desire to succeed. The Ledgers model is a strong one; Ledgers is not one of a bookkeeping service whereby the franchise owner pushes paper all day, but one of a business model where the owner is out in the community, providing small business owners with advice, guidance and support while staff back at the office provides the day-to-day bookkeeping and accounting services.
With the infrastructure, support and experience at Ledgers Canada's head office, franchise owners can provide services that most 'bookkeepers' cannot, and at prices a small business owner can afford.
Since joining the Ledgers Network, Gulam's business has grown steadily and in 2012 he reached the 'Top 10' list of Ledgers Franchises in terms of Revenues, he also earned himself recognition for 'Best Marketing Initiatives' at Ledgers Canada's annual conference. 2013 has so far proven to be no different; Gulam's business has grown incredibly and by June, he was closing in on the 'Top 5' list.
This year, Gulam was once again recognized for his tremendous efforts and success, being award Franchise of the Year for 2013; "For an individual to receive this award is a Major achievement, and this recognition is greatly deserved by Gulam for his efforts, Gulam is an incredible Team player and exemplifies the success one can receive for their efforts. In the past year, Gulam has consistently raised the bar for the levels of success attainable for a Ledgers franchise owner, said Ledgers Canada President Gordon Haslam.
Today, Gulam processes hundreds of Personal Income Tax Returns, has numerous monthly bookkeeping clients and dozens of Corporate Tax clients, his practice continues to grow each month and he feels he will be in the 'Top 5' by the end of the year. Having achieved incredible success in only a short period of time, Gulam now has his sights set on opening another Ledgers Franchise location in nearby Gatineau, QC.


The distinctive sound of iconic band Simple Minds will fill the Villa Marina's Royal Hall during this year's Isle of Man TT festival.
XSM Ex Simple Mind will take to the stage on 28th May, featuring former Simple Minds drummer Brian McGee alongside 1980s pop star Owen Paul and fellow band members Joe O'Neill, Anthony William and Gary Irvine.
The concert, organised by JonnoPromotions and TalisMann Promotions, is being sponsored by the Isle of Man Steam Packet Company, which is assisting with travel costs, and Sure, and with media partnership from 3FM.
McGee was part of the original line-up of Simple Minds, the band famous for anthems including Waterfront and Don't You Forget About Me, and played a key role in defining the group's unmistakable early sound. He played on the band's first five albums, featuring on tracks like Life in a Day, Chelsea Girl and The American.
He became part of XSM in 2010, performing around the world and recording new music.
At the Villa Marina, Owen Paul – who had his own top 10 hit with My Favourite Waste of Time – will be on vocals as the band performs a set comprised from the back catalogue of Simple Minds.
Jonno Gollow, of JonnoPromotions, added: 'Brian McGee was there at the start of Simple Minds and helped shape the sound which saw the band become one of the biggest music groups in the world. We're delighted he'll be bringing those sounds to the Villa Marina, accompanied by superb vocalist Owen Paul and a hugely talented band.
While the timing of the concert during Practice Week means both Island residents and visiting TT fans can enjoy the music, it has been scheduled for Sunday evening to avoid any closed road sessions, and with the following day being a Bank Holiday there's no reason not to stay out late.
Tickets are on sale now at the Welcome Centre, by calling 600555 or online at www.villagaiety.com.


text:
Jharsuguda district Current Affairs, GK & News
Current Affairs; November 2, 2018
Here are the main headlines for current Events of November 2, 2018. National Current Events SC allows use of 5 more documents by claimants for the draft Assam National Register of Citizens (NRC), extends deadline to Dec 15 The Supreme Court extended the deadline for filing claims of people whose names were not included in ..
Topics: Dravid • Jharsuguda • Jharsuguda Airport • Jharsuguda district • Odisha • Sai • States and union territories of India • Subdivisions of India • Surendra Sai
Odisha Assembly passes a unanimous resolution to name newly-built Jharsuguda airport after noted freedom fighter Veer Surendra Sai
The Odisha Assembly has recently passed a unanimous resolution to name the newly-built Jharsuguda airport after noted freedom fighter Veer Surendra Sai. Prime Minister Narendra Modi is scheduled to inaugurate the airport on 22 September 2018. Earlier, in July 2018, the Centre had asked the State government naming of the airport is to be considered ..
Topics: Biju Patnaik • Brajarajnagar • Districts of India • East India • Jharsuguda • Jharsuguda Airport • Jharsuguda district • Kamal Singh Dao • Odisha • Sambalpur • States and union territories of India • Surendra Sai


Ever since I was very little, I can remember getting light headed, sick to my stomach, and moody. My mom would have me quickly eat some toast with honey and I would feel better within minutes. It didn't change as I got older. When I was a teenager, I would have the episodes, grab a Coke and candy bar, and feel better within minutes. I also got dehydrated many times as a teen and had to lay in the hospital with an I.V. I didn't worry about it much until I was 23. I can't really say that I passed out because I was aware of everything, I just couldn't move AT ALL. I could hear everything around me, but I couldn't even open my eyes. When I was finally able to move, I threw up, and then had severe mood swings. I went from uncontrollable laughter to uncontrollable crying. For days after that, I was exhausted.
I went to my regular family practice doctor and they did a glucose tolerance test. He said he felt that I am hypoglycemic and was concerned that my glucose dropped to 40 mg/dl [2.2 mmol/L] at one point. He just told me not to skip any meals and that should take care of it. I'm not convinced. I think there is an underlying problem here. I am not overweight and never have been, and I don't have any other health problems that I'm aware of. Where do I need to go from here?
Hypoglycemia is not diagnosed from an oral glucose tolerance test. It is made on the basis of symptoms. The symptoms should correlate with low blood sugars, at least relative to other times of the day. My concern is that the lows are not the answer. I would consider seeing an endocrinologist first. See if they can find any true abnormalities of glucose metabolism. If not, they may have additional recommendations based on your evaluation.


EASTBROOK — Usually law enforcement officers break up underage drinking parties but on Friday, the party came to them. The Hancock County Underage Drinking Task Force had pulled over a vehicle on the Macomber Mill Road when a go-cart with three youths drove by in the roadway, said Hancock County Deputy Sheriff Chris Thornton.
Three youths were in the go-cart. One young man was riding on the go-cart's back bumper holding on with one hand and holding a mug full of rootbeer and vodka in the other, Thornton said.
"'Officer, I am hammered,'" the young man advised the deputy.
While investigating those incidents, another vehicle full of young people with alcohol drove by.
"Once we had the Pontiac stopped, the other two violations found us, so to speak," Thornton said.
The drivers of the go-cart and the third vehicle had been drinking, Thornton said.
The motorist operating the go-cart, a Franklin boy, 17, was charged with operating a motor vehicle while under the influence of an intoxicant.
The operator of the second vehicle to pass by police, Alexander Hartley-Johnson, 20, of Lamoine was arrested on a charge of administrative OUI and operating without a license.
The deputy explained that motorists under age 21 are charged with administrative OUI violations if they drive with any amount of alcohol in their system.
The investigation revealed that all were heading to an Eastbrook camp for a party, Thornton said.
At the camp, police arrested Sam Buck, 19, of Bar Harbor on a charge of providing a place for minors to consume alcohol. Buck was also charged with possession of alcohol by a minor and possession of a usable amount of marijuana.
Police began following the initial vehicle after seeing someone underage put alcohol in the trunk while conducting surveillance at an Ellsworth convenience store earlier in the evening.
Thornton and Ellsworth Police Sgt. Shawn Willey followed the vehicle out Route 1 to Route 182 and finally to the Macomber Mill Road, where they stopped the car.
Thornton said he knew where the youths were heading because the task force had gotten information a few weeks ago that there would be a party at an Eastbrook camp after the Mount Desert Island High School prom, but officers weren't able to locate the camp.
Lt. Tim Cote and Deputies Ben Astbury and Luke Gross assisted at the scene and with transporting the youths to the jail.
Parents were called to retrieve children who weren't going to jail.
Thornton said there was a "buffet of alcohol" at the party, including beer, rum and vodka.
The deputy said police officers are often accused of being hypocritical when they break up drinking parties.
"We're just trying to avoid tragedy whether it be a sexual assault, a regular assault, criminal mischief or disorderly conduct," Thornton said.
One young party-goer had a blood alcohol level of .23 percent, which is nearly three times the .08 percent that the state considers intoxication.
Brittney Salisbury, 19, Longwood, Fla.


text:
import pandas as pd
from unittest import TestCase  # or `from unittest import ...` if on Python 3.4+
import tests.helpers as th
import numpy as np

import category_encoders as encoders

np_X = th.create_array(n_rows=100)
np_X_t = th.create_array(n_rows=50, extras=True)
np_y = np.random.randn(np_X.shape[0]) > 0.5
np_y_t = np.random.randn(np_X_t.shape[0]) > 0.5
X = th.create_dataset(n_rows=100)
X_t = th.create_dataset(n_rows=50, extras=True)
y = pd.DataFrame(np_y)
y_t = pd.DataFrame(np_y_t)

class TestLeaveOneOutEncoder(TestCase):

    def test_leave_one_out(self):
        enc = encoders.LeaveOneOutEncoder(verbose=1, sigma=0.1)
        enc.fit(X, y)
        th.verify_numeric(enc.transform(X_t))
        th.verify_numeric(enc.transform(X_t, y_t))

    def test_leave_one_out_values(self):
        df = pd.DataFrame({
            'color': ["a", "a", "a", "b", "b", "b"],
            'outcome': [1, 0, 0, 1, 0, 1]})

        X = df.drop('outcome', axis=1)
        y = df.drop('color', axis=1)

        ce_leave = encoders.LeaveOneOutEncoder(cols=['color'])
        obtained = ce_leave.fit_transform(X, y['outcome'])

        self.assertEqual([0.0, 0.5, 0.5, 0.5, 1.0, 0.5], list(obtained['color']))

    def test_leave_one_out_fit_callTwiceOnDifferentData_ExpectRefit(self):
        x_a = pd.DataFrame(data=['1', '2', '2', '2', '2', '2'], columns=['col_a'])
        x_b = pd.DataFrame(data=['1', '1', '1', '2', '2', '2'], columns=['col_b'])  # different values and name
        y_dummy = [True, False, True, False, True, False]
        encoder = encoders.LeaveOneOutEncoder()
        encoder.fit(x_a, y_dummy)
        encoder.fit(x_b, y_dummy)
        mapping = encoder.mapping
        self.assertEqual(1, len(mapping))
        self.assertIn('col_b', mapping)     # the model should have the updated mapping
        expected = pd.DataFrame({'sum': [2.0, 1.0], 'count': [3, 3]}, index=['1', '2'],  columns=['sum', 'count'])
        np.testing.assert_equal(expected.values, mapping['col_b'].values)

    def test_leave_one_out_unique(self):
        X = pd.DataFrame(data=['1', '2', '2', '2', '3'], columns=['col'])
        y = np.array([1, 0, 1, 0, 1])

        encoder = encoders.LeaveOneOutEncoder(handle_unknown='value')
        result = encoder.fit(X, y).transform(X, y)

        self.assertFalse(result.isnull().any().any(), 'There should not be any missing value')
        expected = pd.DataFrame(data=[y.mean(), 0.5, 0, 0.5, y.mean()], columns=['col'])
        pd.testing.assert_frame_equal(expected, result)

    def test_HandleMissingIsValueAndNanInTrain_ExpectAtValueSet(self):
        df = pd.DataFrame({
            'color': [np.nan, np.nan, np.nan, "b", "b", "b"],
            'outcome': [2, 2, 0, 1, 0, 1]})

        X = df.drop('outcome', axis=1)
        y = df.drop('color', axis=1)

        ce_leave = encoders.LeaveOneOutEncoder(cols=['color'], handle_missing='value')
        obtained = ce_leave.fit_transform(X, y['outcome'])

        self.assertEqual([1, 1, 2, 0.5, 1.0, 0.5], list(obtained['color']))

    def test_HandleMissingIsValueAndNanInTest_ExpectMean(self):
        df = pd.DataFrame({
            'color': ["a", "a", "a", "b", "b", "b"],
            'outcome': [1.6, 0, 0, 1, 0, 1]})

        train = df.drop('outcome', axis=1)
        target = df.drop('color', axis=1)
        test = pd.Series([np.nan, 'b'], name='color')
        test_target = pd.Series([0, 0])

        ce_leave = encoders.LeaveOneOutEncoder(cols=['color'], handle_missing='value')
        ce_leave.fit(train, target['outcome'])
        obtained = ce_leave.transform(test, test_target)

        self.assertEqual([.6, 1.0], list(obtained['color']))

    def test_HandleMissingIsValueAndNanInTestAndNoTestTarget_ExpectMean(self):
        df = pd.DataFrame({
            'color': ["a", "a", "a", "b", "b", "b"],
            'outcome': [1, 0, 0, 1, 0, 1]})

        train = df.drop('outcome', axis=1)
        target = df.drop('color', axis=1)
        test = pd.Series([np.nan, 'b'], name='color')

        ce_leave = encoders.LeaveOneOutEncoder(cols=['color'], handle_missing='value')
        ce_leave.fit(train, target['outcome'])
        obtained = ce_leave.transform(test)

        self.assertEqual([.5, 2/3.0], list(obtained['color']))

    def test_HandleUnknownValue_HaveUnknownInTest_ExpectMean(self):
        train = pd.Series(["a", "a", "a", "b", "b", "b"], name='color')
        target = pd.Series([1.6, 0, 0, 1, 0, 1], name='target')
        test = pd.Series(['b', 'c'], name='color')
        test_target = pd.Series([0, 0])

        ce_leave = encoders.LeaveOneOutEncoder(cols=['color'], handle_unknown='value')
        ce_leave.fit(train, target)
        obtained = ce_leave.transform(test, test_target)

        self.assertEqual([1.0, .6], list(obtained['color']))

redpajama_set_name: RedPajamaGithub


The oceans are the largest global heat reservoir. As a result of man-made global warming, the temperature in the global climate system increases; around 90 percent of the extra heat is absorbed by the oceans. This means that the average sea temperature can tell us a lot about the state of our climate, both today and in the past. However, it is difficult to determine an accurate average value across all sea depths and regions of the world. The results of previous measurement methods heavily depend on location, season or sea depth, which can lead to distorted results.
As part of the WAIS Divide Ice Core Project, an international research team led by Bernhard Bereiter from the Scripps Institution of Oceanography – now working at the OCCR and at Empa (Swiss Federal Laboratories for Materials Science and Technology) – has developed a method of measuring ocean temperatures over the last 24'000 years with high accuracy. These measurements have now been published in "Nature". "Our study clearly shows that the basic idea – the connection between the concentration of noble gases in the atmosphere and the average ocean temperature – is correct and that the method works," said Bereiter.
The work is based on ice cores from the Antarctic. The layers of eternal ice form an archive of the atmosphere, in which not only dust particles and solids but also air and other gases are trapped. In these bubbles one can determine the concentration of different gases. For once, it is not the usual suspects such as the greenhouse gases methane and carbon dioxide that play a role, but the noble gases krypton, xenon and argon, as Bereiter points out. The principle can be explained as follows: cooling water absorbs noble gases from the atmosphere, while warming water releases noble gases into the atmosphere. The concentration of noble gases in the atmosphere thus allows conclusions to be drawn about the average global temperature of the sea – and not only the warmer ocean surface, but the mean temperature averaged over the entire mass of water to the very bottom of the sea.
The drill cores from the Antarctic ice cover the period of the past 24'000 years. During this time, the transition from the last ice age to the current warm age took place. This is also reflected in the results from drilling cores: the researchers found a significant rise in mean ocean temperatures; overall, the ocean warmed up by 2.6 degrees Celsius over a period of 10'000 years. In the analysis of the data, Bereiter found that the increase in average global sea temperature is strongly correlated to the air temperature in Antarctica, which underscores the influence of the southern hemisphere on the global climate.
Up to now, this type of temperature measurement can only be applied to very large changes such as the investigated transition from an ice age to a warm age. In theory, however, the method should also work to monitor current changes. These are (still) relatively small compared to the temperature changes investigated in the current study, which is why much more precise methods than are currently available are urgently needed, according to Bereiter.
Ice cores are our only source of samples from the palaeo-atmosphere and are, therefore, extremely valuable for palaeo-climate research because they capture environmental parameters ranging, on local scales, from individual snowflakes to the entire Earth's atmosphere and, on time scales, from hours to hundreds of thousands of years. They record numerous aspects of the Earth's climate system in a single archive with very high temporal resolution. The aim of the WAIS (West Antarctic Ice Sheet) Divide Ice Core Project is to investigate the climate from the last ice age to the present day with a much greater time resolution and dating accuracy than previously possible. This applies in particular to the analysis of atmospheric gases, water isotopes and chemicals.


text:
Big Bear Mountain
Mountain State Park
Bear Mountain Ski
Bear Mountain Resort
Bear Mountain State Park Maps
From the parking area, find the aqua-blazed Long Path, marked at the trailhead with a distinctive circular disk featuring the Long Path logo. Follow the Long Path along the north shore of the lake on a rocky footpath through a mountain laurel thicket. After about ten minutes, the trail bends away from the lake, crosses Pine Swamp Brook, and passes by an huge rock ledge to the right. A little over a mile from the start, you'll climb to a junction with the yellow-blazed Dunning Trail (laid out in 1933 by Dr. James M. Dunning, a volunteer with the Appalachian Mountain Club). The Long Path and the Dunning Trail run together for a short distance, then split at a fork. Take the left branch, now following the yellow blazes of the Dunning Trail along a wide woods road. As the trail descends through laurel, you will notice a number of charred and burned trees - the result of a forest fire that spread through this area in 2001. This was a "ground fire" - the live, mature trees were not destroyed. But the ugly scars of the fire can be seen along the trail for the next two miles. This should serve as a reminder for all of us to be careful with fire in the woods (in Harriman State Park, open fires are allowed only at the fireplaces provided at designated shelters). When you reach the base of the descent, you'll notice some stone foundations to the left of the trail. These are remnants of the village built in the late 1800s to house workers at the adjacent Hogencamp Mine. According to the late historian James M. Ransom, there were once 20 houses, several barns, a school and a store in this location! Iron ore was mined at this site from 1870 to 1885. After crossing a brook, you will observe a stone platform to the left. It was built out of tailings - the technical term for the pieces of rock discarded during the mining process. Piles of tailings may be found throughout this mining site. A short distance beyond, you will come to a vertical mine shaft, about 25 feet in diameter, on the right side of the trail. The shaft is filled with water, and a seven-inch cast-iron pipe (once used to dewater the mine) protrudes from it. Use extreme caution when approaching this open shaft! On the opposite side of the trail, iron rods may be seen protruding from a crumbling concrete base (now covered with grass), with a stone-lined well, three feet in diameter, beyond. There are many other interesting remnants of mining activity in the area. Those who wish to explore the area more extensively should consult Iron Mine Trails by Edward Lenik, published by the New York-New Jersey Trail Conference (the hard-copy book is out of print, but the book is available from the Trail Conference website as an e-book). Continue south along the Dunning Trail, passing a swamp to the left. The trail soon curves to the right. One section of the old grassy road followed by the trail has been extensively built up using mine tailings. Part of this road was once known as the "Crooked Road, " as it follows many curves around the hills in an attempt to keep the road as level as possible. The lake visible to the left is Little Long Pond. After a mile on the Dunning Trail, you will come to a very large bare, rocky area, known as "Bowling Rocks" for the boulders that dot the bare rock. Then, in another 0.4 mile, after a short climb, you'll reach a junction with the red-on-white-blazed Ramapo-Dunderberg (R-D) Trail. (This junction, which is on the crest of a ridge, may be a little hard to find. If you find yourself beginning a long, steady descent, you've gone too far and should return to the highest point, where the junction is located.) Turn right and follow the red-on-white blazes northward. You are now at about the halfway point of the hike. The R-D Trail passes through an area where the scars of the recent forest fire are particularly noticeable. It crosses a huge open rock surface, known as the Whaleback. Just beyond, look for a plaque on a boulder to the right of the trail. It was placed in memory of George E. Goldthwaite, a member of the Fresh Air Club of New York, who was reputed to have hiked the entire 21-mile R-D Trail in less than five hours - quite a feat for hiking this steep, rocky trail! The trail now steeply descends a rock face to cross a stream on a log bridge, and it climbs to a junction with the blue-blazed Lichen Trail (which leaves to the left). A short distance beyond, the R-D Trail passes beneath a large overhanging rock, known as "Ship Rock" for its resemblance to the prow of a ship. The trail continues ahead to climb Hogencamp Mountain. The bare rock summit of this 1, 353-foot mountain - one of the highest spots in Harriman State Park - affords a wide panorama of the surrounding area. The tower visible straight ahead in the distance is a microwave relay tower for AT&T, located near Gate Hill Road. The trail makes a sharp right turn here and begins a steady descent, soon entering a deep evergreen forest. This is a welcome change from the open rocky expanses that you've followed for the last mile and a half. At the base of the descent, you'll reach "Times Square, " marked by a fireplace next to a huge boulder. It was so named because it is located at the junction of three trails and serves as a popular meeting place for hikers. Turn right here and follow the Arden-Surebridge (A-SB) Trail, marked by red-triangle-on-white blazes (to be distinguished from the red-dot-on-white blazes of the Ramapo-Dunderberg Trail). The A-SB Trail briefly runs together with the Long Path, but almost immediately bears left and begins a steady descent on an old mining road. In half a mile, it reaches the northern end of the yellow-blazed Dunning Trail, where it crosses a stream below an attractive cascade. This stream marks the northeastern end of the area damaged in the 2001 forest fire. Just beyond the stream crossing, you will notice a large rectangular cut in the hillside to the left of the trail. This excavation is part of the Pine Swamp Mine, another mining venture in the area, which was opened about 1830 and was worked intermittently until 1880. As you continue along the trail, several other excavations and open pits (now filled with water) may also be seen. One interesting feature, visible in the second excavation, is a long, round depression in the rock - the mark left by the drill bit used to excavate the mine! After passing these mine openings, the trail bears right and descends into the woods. Soon, you will pass a stone wall and several stone foundations to the left of the trail. These are remnants of the village that once housed the workers at the nearby mine. The A-SB Trail then passes by the northern end of the Pine Swamp and soon begins a steady ascent of Pine Swamp Mountain. After passing a junction with the Red Cross Trail, the A-SB Trail makes its final descent to the parking area at Lake Skannatati, where the hike began.
Source: www.nynjtc.org
DESCENT Bear Mountain State Park 7
Energica Ego Test Ride Bear Mountain State Park NY
MIXED Bear Mountain State Park 9
County Route 33 is a 13.3 miles (21.4 km) south–north county route in the central part of Rockland County, New York. Prior to 1970, portions of CR 33 were designated as the old route of New York State Route 304. Today, CR 33 serves as an alternative route for NY 304...
Dunderberg Mountain stands at the so-called southern gate of the Hudson Highlands where the region's namesake Hudson River enters a dramatic gorge. It rises about 1,086 feet (331 m) from the river's west bank above Jones Point, New York, within Bear Mountain State...
Weather in Bear Mountain NY January 20, 2020
Big Bear Mountain Resorts January 10, 2020
Bear Mountain Christmas December 31, 2019
Big Bear Mountain hours December 21, 2019
Bear Mountain Golf Victoria December 11, 2019
Stone Cottages Bear Mountain December 1, 2019
Bear Mountain Ski Rentals November 21, 2019
Bear Mountain Snow forecast November 11, 2019
Harriman Bear Mountain Trail Map November 1, 2019
Bear Mountain - Reviews about park of New York
Bear Mountain Real Estate
Bear Mountain Water Park
Overlook Lodge at Bear Mountain
Marin Bear Valley Mountain bike
Bus to Bear Mountain
Copyright © 2020 · All Rights Reserved | www.sizedresses.org


Chief Williams Ibori, the former Unugbrogo of Oghara kingdom, Delta state and elder brother of a former governor of the state, James Ibori, is dead.
He reportedly passed away very early this morning, according to some online sources. Others say he died late last night.
Mourning his death, Olorogun Williams Makinde, the Managing Director /CEO of Delta state Oil Producing Areas Development Commission (DESOPADEC) described the late High Chief William Ibori, the Unugbrogodo of Ogharefe Oguedion, as a bridge builder, who did his best to unite communities and political actors of differing views and tendencies.
I received, with profound grief, the news of the passage to eternal glory of High Chief William Ibori, the Unugbrogodo of Ogharefe Oguedion elder brother to our national leader and mentor Chief James Onanefe Ibori.
also ensuring rancor-free politicking by uniting politicians of divergent principles and proclivities.
He was in a class of his own as a cultural aficionado; a devotee of his people's tradition, who gave so much of himself in serving as the Unugbrogodo of Ogharefe Oguedion.
cause for Delta state unity, growth and renaissance.
He will indeed be missed by we his family, the good people of the great Oghara Kingdom and Delta State.
Facebook users including Ossai Ovie Success, the media aide to Delta state governor, Ifeanyi Okowa have taken to the social media platform to mourn the death of Chief Ibori.
0 Response to "James Ibori's older brother, dies 4 months after he married a much younger bride"


text:
/*
 * IndexMaintainceTest.java
 *
 * Created on February 24, 2005, 5:47 PM
 */
package com.gemstone.gemfire.cache.query.internal.index;

import java.util.Collection;
import java.util.HashSet;
import java.util.Set;

import org.junit.FixMethodOrder;
import org.junit.runners.MethodSorters;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

import com.gemstone.gemfire.cache.Cache;
import com.gemstone.gemfire.cache.Region;
import com.gemstone.gemfire.cache.query.CacheUtils;
import com.gemstone.gemfire.cache.query.Index;
import com.gemstone.gemfire.cache.query.IndexExistsException;
import com.gemstone.gemfire.cache.query.IndexNameConflictException;
import com.gemstone.gemfire.cache.query.IndexStatistics;
import com.gemstone.gemfire.cache.query.IndexType;
import com.gemstone.gemfire.cache.query.Query;
import com.gemstone.gemfire.cache.query.QueryService;
import com.gemstone.gemfire.cache.query.RegionNotFoundException;
import com.gemstone.gemfire.cache.query.SelectResults;
import com.gemstone.gemfire.cache.query.Utils;
import com.gemstone.gemfire.cache.query.data.Portfolio;
import com.gemstone.gemfire.cache.query.functional.StructSetOrResultsSet;
import com.gemstone.gemfire.cache.query.internal.ExecutionContext;
import com.gemstone.gemfire.cache.query.internal.QueryObserverAdapter;
import com.gemstone.gemfire.cache.query.internal.QueryObserverHolder;
import com.gemstone.gemfire.cache.query.internal.parse.OQLLexerTokenTypes;

import dunit.DistributedTestCase;

/**
 *
 * @author vaibhav
 */
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class IndexMaintainceTest extends TestCase {

  public IndexMaintainceTest(String testName) {
    super(testName);
  }

  protected void setUp() throws Exception {
    if (!isInitDone) {
      init();
    }
    System.out.println("Running " + this.getName());
  }

  protected void tearDown() throws Exception {
  }

  public static Test suite() {
    TestSuite suite = new TestSuite(IndexMaintainceTest.class);
    return suite;
  }

  static QueryService qs;
  static boolean isInitDone = false;
  static Region region;
  static IndexProtocol index;
  protected boolean indexUsed = false;

  private static void init() {
    try {
      Cache cache = CacheUtils.getCache();
      region = CacheUtils.createRegion("portfolio", Portfolio.class);
      region.put("0", new Portfolio(0));
      region.put("1", new Portfolio(1));
      region.put("2", new Portfolio(2));
      region.put("3", new Portfolio(3));
      qs = cache.getQueryService();
      index = (IndexProtocol) qs.createIndex("statusIndex",
          IndexType.FUNCTIONAL, "status", "/portfolio");
      assertTrue(index instanceof CompactRangeIndex);
    }
    catch (Exception e) {
      e.printStackTrace();
    }
    isInitDone = true;
  }

  public void test000BUG32452() throws IndexNameConflictException,
      IndexExistsException, RegionNotFoundException {
    Index i1 = qs.createIndex("tIndex", IndexType.FUNCTIONAL, "vals.secId",
        "/portfolio pf, pf.positions.values vals");
    Index i2 = qs.createIndex("dIndex", IndexType.FUNCTIONAL,
        "pf.getCW(pf.ID)", "/portfolio pf");
    Index i3 = qs.createIndex("fIndex", IndexType.FUNCTIONAL, "sIter",
        "/portfolio pf, pf.collectionHolderMap[(pf.ID).toString()].arr sIter");
    Index i4 = qs.createIndex("cIndex", IndexType.FUNCTIONAL,
        "pf.collectionHolderMap[(pf.ID).toString()].arr[pf.ID]",
        "/portfolio pf");
    Index i5 = qs.createIndex("inIndex", IndexType.FUNCTIONAL, "kIter.secId",
        "/portfolio['0'].positions.values kIter");
    Index i6 = qs.createIndex("sIndex", IndexType.FUNCTIONAL, "pos.secId",
        "/portfolio.values val, val.positions.values pos");
    Index i7 = qs.createIndex("p1Index", IndexType.PRIMARY_KEY, "pkid",
        "/portfolio pf");
    Index i8 = qs.createIndex("p2Index", IndexType.PRIMARY_KEY, "pk",
        "/portfolio pf");
    if (!i1.getCanonicalizedFromClause().equals(
        "/portfolio index_iter1, index_iter1.positions.values index_iter2")
        || !i1.getCanonicalizedIndexedExpression().equals("index_iter2.secId")
        || !i1.getFromClause()
            .equals("/portfolio pf, pf.positions.values vals")
        || !i1.getIndexedExpression().equals("vals.secId")) {
      fail("Mismatch found among fromClauses or IndexedExpressions");
    }
    if (!i2.getCanonicalizedFromClause().equals("/portfolio index_iter1")
        || !i2.getCanonicalizedIndexedExpression().equals(
            "index_iter1.getCW(index_iter1.ID)")
        || !i2.getFromClause().equals("/portfolio pf")
        || !i2.getIndexedExpression().equals("pf.getCW(pf.ID)")) {
      fail("Mismatch found among fromClauses or IndexedExpressions");
    }
    if (!i3
        .getCanonicalizedFromClause()
        .equals(
            "/portfolio index_iter1, index_iter1.collectionHolderMap[index_iter1.ID.toString()].arr index_iter3")
        || !i3.getCanonicalizedIndexedExpression().equals("index_iter3")
        || !i3
            .getFromClause()
            .equals(
                "/portfolio pf, pf.collectionHolderMap[(pf.ID).toString()].arr sIter")
        || !i3.getIndexedExpression().equals("sIter")) {
      fail("Mismatch found among fromClauses or IndexedExpressions");
    }
    if (!i4.getCanonicalizedFromClause().equals("/portfolio index_iter1")
        || !i4.getCanonicalizedIndexedExpression().equals(
            "index_iter1.collectionHolderMap[index_iter1.ID.toString()].arr[index_iter1.ID]")
        || !i4.getFromClause().equals("/portfolio pf")
        || !i4.getIndexedExpression().equals(
            "pf.collectionHolderMap[(pf.ID).toString()].arr[pf.ID]")) {
      fail("Mismatch found among fromClauses or IndexedExpressions");
    }
    if (!i5.getCanonicalizedFromClause().equals(
        "/portfolio['0'].positions.values index_iter4")
        || !i5.getCanonicalizedIndexedExpression().equals("index_iter4.secId")
        || !i5.getFromClause().equals("/portfolio['0'].positions.values kIter")
        || !i5.getIndexedExpression().equals("kIter.secId")) {
      fail("Mismatch found among fromClauses or IndexedExpressions");
    }
    if (!i6.getCanonicalizedFromClause().equals(
        "/portfolio.values index_iter5, index_iter5.positions.values index_iter6")
        || !i6.getCanonicalizedIndexedExpression().equals("index_iter6.secId")
        || !i6.getFromClause().equals(
            "/portfolio.values val, val.positions.values pos")
        || !i6.getIndexedExpression().equals("pos.secId")) {
      fail("Mismatch found among fromClauses or IndexedExpressions");
    }
    if (!i7.getCanonicalizedFromClause().equals("/portfolio index_iter1")
        || !i7.getCanonicalizedIndexedExpression().equals("index_iter1.pkid")
        || !i7.getFromClause().equals("/portfolio pf")
        || !i7.getIndexedExpression().equals("pkid")) {
      fail("Mismatch found among fromClauses or IndexedExpressions");
    }
    if (!i8.getCanonicalizedFromClause().equals("/portfolio index_iter1")
        || !i8.getCanonicalizedIndexedExpression().equals("index_iter1.pk")
        || !i8.getFromClause().equals("/portfolio pf")
        || !i8.getIndexedExpression().equals("pk")) {
      fail("Mismatch found among fromClauses or IndexedExpressions");
    }
    qs.removeIndex(i1);
    qs.removeIndex(i2);
    qs.removeIndex(i3);
    qs.removeIndex(i4);
    qs.removeIndex(i5);
    qs.removeIndex(i6);
    qs.removeIndex(i7);
    qs.removeIndex(i8);
    Index i9 = qs.createIndex("p3Index", IndexType.PRIMARY_KEY, "getPk",
        "/portfolio pf");
    if (!i9.getCanonicalizedFromClause().equals("/portfolio index_iter1")
        || !i9.getCanonicalizedIndexedExpression().equals("index_iter1.pk")
        || !i9.getFromClause().equals("/portfolio pf")
        || !i9.getIndexedExpression().equals("getPk")) {
      fail("Mismatch found among fromClauses or IndexedExpressions");
    }
    qs.removeIndex(i9);
  }

  public void test001AddEntry() throws Exception {
    System.out.println(((CompactRangeIndex) index).dump());
    IndexStatistics stats = index.getStatistics();
    assertEquals(4, stats.getNumberOfValues());
    //    com.gemstone.gemfire.internal.util.
    //    DebuggerSupport.waitForJavaDebugger(region.getCache().getLogger());
    region.put("4", new Portfolio(4));
    System.out.println(((CompactRangeIndex) index).dump());
    stats = index.getStatistics();
    assertEquals(5, stats.getNumberOfValues());
    //Set results = new HashSet();
    //index.query("active", OQLLexerTokenTypes.TOK_EQ, results, new ExecutionContext(null, CacheUtils.getCache()));
    SelectResults results = region.query("status = 'active'");
    System.out.println(Utils.printResult(results));
    assertEquals(3, results.size());
  }

  // !!!:ezoerner:20081030 disabled because modifying an object in place
  // and then putting it back into the cache breaks a CompactRangeIndex.
  // @todo file a ticket on this issue
  public void _test002UpdateEntry() throws Exception {
    IndexStatistics stats = index.getStatistics();
    System.out.println(((CompactRangeIndex) index).dump());
    Portfolio p = (Portfolio) region.get("4");
    p.status = "inactive";
    region.put("4", p);
    assertEquals(5, stats.getNumberOfValues());
    //Set results = new HashSet();
    //index.query("active", OQLLexerTokenTypes.TOK_EQ, results,new ExecutionContext(null, CacheUtils.getCache()));
    SelectResults results = region.query("status = 'active'");
    assertEquals(2, results.size());
  }

  public void test003InvalidateEntry() throws Exception {
    IndexStatistics stats = index.getStatistics();
    region.invalidate("4");
    assertEquals(4, stats.getNumberOfValues());
    //Set results = new HashSet();
    //index.query("active", OQLLexerTokenTypes.TOK_EQ, results,new ExecutionContext(null, CacheUtils.getCache()));
    SelectResults results = region.query("status = 'active'");
    assertEquals(2, results.size());
  }

  public void test004DestroyEntry() throws Exception {
    IndexStatistics stats = index.getStatistics();
    region.put("4", new Portfolio(4));
    region.destroy("4");
    assertEquals(4, stats.getNumberOfValues());
    //Set results = new HashSet();
    //index.query("active", OQLLexerTokenTypes.TOK_EQ, results,new ExecutionContext(null, CacheUtils.getCache()));
    SelectResults results = region.query("status = 'active'");
    assertEquals(2, results.size());
  }

  //This test has a meaning only for Trunk code as it checks for Map implementation
  //Asif : Tests for Region clear operations on Index in a Local VM
  public void test005IndexClearanceOnMapClear() {
    try {
      CacheUtils.restartCache();
      IndexMaintainceTest.isInitDone = false;
      init();
      Query q = qs
          .newQuery("SELECT DISTINCT * FROM /portfolio where status = 'active'");
      QueryObserverHolder.setInstance(new QueryObserverAdapter() {

        public void afterIndexLookup(Collection coll) {
          IndexMaintainceTest.this.indexUsed = true;
        }
      });
      SelectResults set = (SelectResults) q.execute();
      if (set.size() == 0 || !this.indexUsed) {
        fail("Either Size of the result set is zero or Index is not used ");
      }
      this.indexUsed = false;

      region.clear();
      set = (SelectResults) q.execute();
      if (set.size() != 0 || !this.indexUsed) {
        fail("Either Size of the result set is not zero or Index is not used ");
      }
    }
    catch (Exception e) {
      e.printStackTrace();
      fail(e.toString());
    }
    finally {
      IndexMaintainceTest.isInitDone = false;
      CacheUtils.restartCache();
    }
  }

  //Asif : Tests for Region clear operations on Index in a Local VM for cases
  // when a clear
  //operation & region put operation occur concurrentlty
  public void test006ConcurrentMapClearAndRegionPutOperation() {
    try {
      CacheUtils.restartCache();
      IndexMaintainceTest.isInitDone = false;
      init();
      Query q = qs
          .newQuery("SELECT DISTINCT * FROM /portfolio where status = 'active'");
      QueryObserverHolder.setInstance(new QueryObserverAdapter() {

        public void afterIndexLookup(Collection coll) {
          IndexMaintainceTest.this.indexUsed = true;
        }

        public void beforeRerunningIndexCreationQuery() {
          //Spawn a separate thread here which does a put opertion on region
          Thread th = new Thread(new Runnable() {

            public void run() {
              //Assert that the size of region is now 0
              assertTrue(IndexMaintainceTest.region.size() == 0);
              IndexMaintainceTest.region.put("" + 8, new Portfolio(8));
            }
          });
          th.start();
          DistributedTestCase.join(th, 30 * 1000, null);
          assertTrue(IndexMaintainceTest.region.size() == 1);
        }
      });
      SelectResults set = (SelectResults) q.execute();
      if (set.size() == 0 || !this.indexUsed) {
        fail("Either Size of the result set is zero or Index is not used ");
      }
      this.indexUsed = false;
      region.clear();
      set = (SelectResults) q.execute();
      if (set.size() != 1 || !this.indexUsed) {
        fail("Either Size of the result set is not one or Index is not used ");
      }
    }
    catch (Exception e) {
      e.printStackTrace();
      fail(e.toString());
    }
    finally {
      IndexMaintainceTest.isInitDone = false;
      CacheUtils.restartCache();
    }
  }

  public void test007IndexUpdate() {
    try{
    CacheUtils.restartCache();
    IndexMaintainceTest.isInitDone = false;
    init();
    qs.removeIndexes();

    index = (IndexProtocol) qs.createIndex("statusIndex",
        IndexType.FUNCTIONAL, "pos.secId", "/portfolio p , p.positions.values pos");
    String queryStr = "Select distinct pf from /portfolio pf , pf.positions.values ps where ps.secId='SUN'";

    Query query =  qs.newQuery(queryStr);
    SelectResults rs =(SelectResults) query.execute();
    int size1 = rs.size();
    for(int i=4;i<50;++i) {
	    region.put(""+i, new Portfolio(i));
    }
    rs =(SelectResults) query.execute();
    int size2 = rs.size();
    assertTrue(size2>size1);
   }catch(Exception e) {
     e.printStackTrace();
     fail("Test failed due to exception="+e);
   }finally {
     IndexMaintainceTest.isInitDone = false;
     CacheUtils.restartCache();
   }

  }

  /**
   * Test to compare range and compact index.
   * They should return the same results.
   */
  public void test008RangeAndCompactRangeIndex() {
    try{
      //CacheUtils.restartCache();
      if (!IndexMaintainceTest.isInitDone){
        init();
      }
      qs.removeIndexes();

      String[] queryStr = new String[] {
          "Select status from /portfolio pf where status='active'",
          "Select pf.ID from /portfolio pf where pf.ID > 2 and pf.ID < 100",
          "Select * from /portfolio pf where pf.position1.secId > '2'",
      };

      String[] queryFields = new String[] {
          "status",
          "ID",
          "position1.secId",
      };

      for (int i=0; i < queryStr.length; i++){
        // Clear indexes if any.
        qs.removeIndexes();

        // initialize region.
        region.clear();
        for (int k=0; k < 10; k++) {
          region.put(""+k, new Portfolio(k));
        }

        for (int j=0; j < 1; j++) { // With different region size.
          // Update Region.
          for (int k=0; k < (j * 100); k++) {
            region.put(""+k, new Portfolio(k));
          }

          // Create compact index.
          IndexManager.TEST_RANGEINDEX_ONLY = false;
          index = (IndexProtocol) qs.createIndex(queryFields[i] + "Index",
              IndexType.FUNCTIONAL, queryFields[i], "/portfolio");

          // Execute Query.
          SelectResults[][] rs = new SelectResults[1][2];
          Query query =  qs.newQuery(queryStr[i]);
          rs[0][0] =(SelectResults) query.execute();

          // remove compact index.
          qs.removeIndexes();

          // Create Range Index.
          IndexManager.TEST_RANGEINDEX_ONLY = true;
          index = (IndexProtocol) qs.createIndex(queryFields[i] + "rIndex",
              IndexType.FUNCTIONAL, queryFields[i], "/portfolio");

          query =  qs.newQuery(queryStr[i]);
          rs[0][1] =(SelectResults) query.execute();

          System.out.println("#### rs1 size is : " + (rs[0][0]).size() + " rs2 size is : " + (rs[0][1]).size());
          StructSetOrResultsSet ssORrs = new  StructSetOrResultsSet();
          ssORrs.CompareQueryResultsWithoutAndWithIndexes(rs, 1,queryStr);
        }
      }
    }catch(Exception e) {
      e.printStackTrace();
      fail("Test failed due to exception="+e);
    }finally {
      IndexManager.TEST_RANGEINDEX_ONLY = false;
      IndexMaintainceTest.isInitDone = false;
      CacheUtils.restartCache();
    }
  }

  /**
   * Test to compare range and compact index.
   * They should return the same results.
   */
  public void test009AcquringCompactRangeIndexEarly() {
    try{
      //CacheUtils.restartCache();
      if (!IndexMaintainceTest.isInitDone){
        init();
      }
      qs.removeIndexes();

      String[] queryStr = new String[] {
          "Select status from /portfolio pf where status='active'",
          "Select * from /portfolio pf, pf.positions.values pos where pf.ID > 10 and pf.status='active'",
          "Select pf.ID from /portfolio pf where pf.ID > 2 and pf.ID < 100",
          "Select * from /portfolio pf where pf.position1.secId > '2'",
          "Select * from /portfolio pf, pf.positions.values pos where pos.secId > '2'",
      };

      // initialize region.
      region.clear();
      for (int k=0; k < 10; k++) {
        region.put(""+k, new Portfolio(k));
      }

      // Create range and compact-range indexes.
      qs.createIndex("id2Index ", IndexType.FUNCTIONAL, "pf.ID", "/portfolio pf");
      qs.createIndex("id2PosIndex ", IndexType.FUNCTIONAL, "pf.ID", "/portfolio pf, pf.positions.values");
      qs.createIndex("status2PosIndex ", IndexType.FUNCTIONAL, "pos.secId", "/portfolio pf, pf.positions.values pos");

      // Set the acquire compact range index flag to true
      //IndexManager.TEST_ACQUIRE_COMPACTINDEX_LOCKS_EARLY = true;
      // Update Region.
      for (int k=0; k <  100; k++) {
        region.put(""+k, new Portfolio(k));
      }
      for (int i=0; i < queryStr.length; i++){
        // Execute Query.
        SelectResults[][] rs = new SelectResults[1][2];
        Query query =  qs.newQuery(queryStr[i]);
        rs[0][0] =(SelectResults) query.execute();
      }

    }catch(Exception e) {
      e.printStackTrace();
      fail("Test failed due to exception="+e);
    }finally {
      //IndexManager.TEST_ACQUIRE_COMPACTINDEX_LOCKS_EARLY = false;
      IndexMaintainceTest.isInitDone = false;
      CacheUtils.restartCache();
    }
  }

  ////////// main method ///////////
  public static void main(java.lang.String[] args) {
    junit.textui.TestRunner.run(suite());
  }//end of main method

}