[Zope] Re: Integrating IIS and Plone -- everything works ... except images!
Previous message: [Zope] Integrating IIS and Plone -- everything works ... except images!
src= references are trying to look under yoursite.com:8080 still.
browser to just view that image only, then the page can't find it either.
'') which will remove all :8080 strings of your URL.
exaclty what the problem is.
> I followed this document "Connecting IIS to Zope"
>     - Beta 2 worked, 1 didn't.
> But, none of my images stored in ZODB are getting resolved.
>   Navigation works, pages work, database stuff ok, just not images???


As per the latest Opinion Poll, Congress Party is likely to emerge victorious in 2 out of three BJP-ruled States with the upcoming Assembly Polls.
Looks like, Good times are ahead for the Congress as Modi Wave evaporated within four years. Anti-incumbency is so strong in the BJP-ruled States across the Nation.
Farakka Express Derails: 7 Dead, Death Toll To Rise!
T-Congress MLA Candidates - First List!


text:
Brillant is een Frans historisch merk van motorfietsen.

De bedrijfsnaam was: Félix Bosse, Paris.

Brillant was een van de eerste Franse motorfietsmerken. Het begon al in 1903 met de productie van motorfietsen, waarbij de klanten konden kiezen voor inbouwmotoren van Peugeot en Zürcher. De productie werd echter al in 1904 beëindigd.

Frans historisch motorfietsmerk

redpajama_set_name: RedPajamaWikipedia


text:
package me.abarrow.ScalaSubNet

import scala.collection.mutable.ArrayBuffer
import me.abarrow.ScalaSubNet.utils.FileUtils

class CSV(val header: Array[String]) {
  val rows = new ArrayBuffer[Array[String]]()

  def addRow(row: Array[String]): Unit = {
    if (row.length != cols) {
      //TODO: handle quoted strings to avoid splitting on commas
      throw new IllegalArgumentException("Row length " + row.length +
          " is not the same as header length " + cols)
    }
    this.synchronized {
      rows.append(row)
    }
  }

  def addRow(entry: Map[String, String]): Unit = {
    val row = Array.fill[String](cols)("")
    entry.foreach { f =>
      val idx = header.indexOf(f._1)
      if (idx == -1) {
        throw new IllegalArgumentException("Column " + f._1 +
            " not found in header.")
      }
      row(idx) = f._2
    }
    addRow(row)
  }

  lazy val cols:Int = header.length

  def encode(sep: String = ",", newline: String = "\n"): String = {
    val output: StringBuilder = new StringBuilder()
    output ++= CSV.joinAndEscape(header, sep, newline)
    output ++= newline
    rows.foreach { x =>
      output ++= CSV.joinAndEscape(x, sep, newline)
      output ++= newline
    }
    output.toString()
  }

  def save(path:String, sep: String = ",", newline: String = "\n"):Unit = {
    FileUtils.saveUTF8Text(path, encode(sep, newline))
  }

  def toMaps(): Array[Map[String, String]] = {
    rows.map { x => header.zip(x).toMap }.toArray
  }
}

object CSV {

  def decode(csvText:String, sep:String = ",", newline:String = "\n"): CSV = {
    val cleanText = csvText.replace("\r", "")
    val rows:ArrayBuffer[ArrayBuffer[String]] = new ArrayBuffer[ArrayBuffer[String]]()
    var i = 0
    var startIdx = 0
    var quoted = false
    var wasQuoted = false
    val textLen = cleanText.length()
    var row:ArrayBuffer[String] = new ArrayBuffer[String]()
    var cell:Option[String] = None
    while(i < textLen) {
      val c = cleanText(i)
      if (quoted) {
        if (c == '\"') {
          if (i + 1 == textLen) {
            //this is the end of the file and the row
            row.append(cleanText.substring(startIdx, i))
            rows.append(row)
          } else if (cleanText(i + 1) != '"'){
            quoted = false;
          } else {
            i += 1
          }
        }
      } else {
        if (c == newline.charAt(0)) {
          if (wasQuoted) {
            row.append(cleanText.substring(startIdx, i - 1))
            wasQuoted = false
          } else {
            row.append(cleanText.substring(startIdx, i))
          }
          rows.append(row);
          row = new ArrayBuffer[String]()
          startIdx = i + 1
        } else if (c == sep.charAt(0)) {
          if (wasQuoted) {
            row.append(cleanText.substring(startIdx, i - 1))
            wasQuoted = false
          } else {
            row.append(cleanText.substring(startIdx, i))
          }
          startIdx = i + 1
        } else {
          if (wasQuoted) {
              throw new IllegalArgumentException("Invalid CSV")
          }
          if (c == '\"') {
            if (startIdx != i) {
              throw new IllegalArgumentException("Invalid CSV")
            }
            quoted = true
            wasQuoted = true
            startIdx += 1
          }
        }
      }
      i+=1
    }
    if (quoted) {
      throw new IllegalArgumentException("Invalid CSV")
    } else if (i > startIdx) {
      if (wasQuoted) {
        row.append(cleanText.substring(startIdx, i - 1))
      } else {
        row.append(cleanText.substring(startIdx, i))
      }
      rows.append(row)
    }
    if (rows.length == 0) {
      throw new IllegalArgumentException("Invalid CSV")
    }

    val decoded = new CSV(rows(0).toArray.map(unescapeAsNeeded))
    rows.slice(1, rows.size).foreach { x =>
      decoded.addRow(x.toArray.map(unescapeAsNeeded))
    }
    decoded
  }
  def load(filePath:String, sep:String = ",", newline:String = "\n"): CSV = {
    decode(FileUtils.openUTF8Text(filePath), sep, newline)
  }

  private def joinAndEscape(input:Array[String],  sep:String = ",", newline:String = "\n"):String = {
    input.map(x => escapeAsNeeded(x, sep, newline)).reduce((a, b) => a + sep + b)
  }

  private def escapeAsNeeded(input:String, sep:String = ",", newline:String = "\n"):String = {
    if (input.contains(newline) || input.contains(sep) || input.contains('\"')) {
      "\"" + input.replace("\"", "\"\"") + "\""
    } else {
      input
    }
  }

  private def unescapeAsNeeded(input:String):String = input.replace("\"\"", "\"")

}

redpajama_set_name: RedPajamaGithub


text:
Rienzi is een plaats (town) in de Amerikaanse staat Mississippi, en valt bestuurlijk gezien onder Alcorn County.

Demografie
Bij de volkstelling in 2000 werd het aantal inwoners vastgesteld op 330.
In 2006 is het aantal inwoners door het United States Census Bureau geschat op 327, een daling van 3 (-0,9%).

Geografie
Volgens het United States Census Bureau beslaat de plaats een oppervlakte van
2,6 km², geheel bestaande uit land. Rienzi ligt op ongeveer 153 m boven zeeniveau.

Plaatsen in de nabije omgeving
De onderstaande figuur toont nabijgelegen plaatsen in een straal van 20 km rond Rienzi.

Externe link

Plaats in Mississippi


text:
(1751–89). American adventurer and explorer John Ledyard accompanied Captain James Cook on his voyage to find a Northwest Passage to the Orient (1776–79). In the course of his voyage with Cook, Ledyard developed what was to become a lifelong interest in establishing a lucrative fur trade with China.
Ledyard was born in 1751 in Groton, Connecticut. He attended Dartmouth College in 1772 to study to become a missionary among the North American Indians, but he left school the next year. He shipped out as a common seaman in 1774 and met up with Cook's expedition in 1776. Ledyard's work about the voyage, A Journal of Captain Cook's Last Voyage to the Pacific Ocean, was printed and distributed in 1783.
Ledyard's numerous efforts to secure financial support for his proposals to open the Asian markets to the West were unsuccessful. Ledyard subsequently felt that he could attract interest in the commercial possibilities of the Pacific Northwest by walking eastward across Russia (including Siberia), crossing the Bering Strait, and then continuing on foot across the North American continent. He set out from St. Petersburg in September 1787 and by the following February had gotten as far as Irkutsk, where Empress Catherine the Great had him arrested and escorted out of Russia. Ledyard's last adventure was an expedition into Africa in search of the source of the Niger River, but he got no farther than Cairo, Egypt, before he died on January 10, 1789.

redpajama_set_name: RedPajamaCommonCrawl


text:
There's A Patent Issue With Open-Source Doom 3
Written by Michael Larabel in Linux Gaming on 15 November 2011 at 09:21 PM EST. 19 Comments
There's some good and bad news concerning the imminent release of the Doom 3 source-code. The bad news is that the lawyers for Bethesda / id Software have voiced concerns regarding some of the Doom 3 source-code due to a patent issue. The good news is that John Carmack himself is now writing some new code for this open-source drop of the popular game built on the id Tech 4 engine.
John Carmack, the founder of id Software and well known open-source advocate, tweeted tonight, "Lawyers are still skittish about the patent issue around "Carmack's reverse", so I am going to write some new code for the doom3 release."
Carmack's Reverse refers to a stencil buffer implementation of shadow volumes, which became a technique to become widely popular among video games following the 2004 release of Doom 3. Around 1999, a patent was filed that covers a "Method for rendering shadows using a shadow volume and a stencil buffer" and was then issued by the USPTO in 2002. John Carmack had independently conceived a similar algorithm to what's covered by the patent, which he created in the year 2000 while working on Doom 3. The patent in question is owned by Creative Labs.
A decade later this shadow volume implementation is causing a last-minute problem for the open-sourcing of Doom 3 / id Tech 4. Hopefully this new code that John Carmack is writing for the open-source code-base will satisfy the company's lawyers without sacrificing the engine's performance or visual quality.
There's no word on when the workaround to the patent issue will be ready, but hopefully it will be soon. As of the end of October, the Doom 3 source-code was ready to ship and just waiting this legal approval, but now there's this last minute legal problem. Hopefully no other problems arise.
It was this summer when John Carmack announced the Doom 3 source-code would be released in 2011 following the release of id Software's Rage game, which is the inaugural title on the id Tech 5 engine. Earlier versions of the id Tech engine were open-sourced once they reached the end of their commercial usefulness, and now with id Tech 5 being out there, id Tech 4 is going to be joining the open-source party.
The release of the Doom 3 / id Tech 4 source-code will immediately make it one of the most advanced open-source games available for Linux and other platforms. It's expected the code -- like earlier id Software code drops -- will be under the GNU GPL.
If you haven't run Doom 3 before under Linux, the Linux client is first-rate and has been supported since 2004 shortly after the Windows launch. Doom 3 can also work just fine under FreeBSD using the Linux binary compatibility layer. A Mac OS X client for Doom 3 also exists.
Next year we will hopefully see the Rage Linux game client (in binary form) as the first AAA game release under Linux in quite a while. Work on Doom 4 is also underway by id Software.
For those wishing to do some more reading about "Carmack's Reverse" until the Doom 3 source-code is released, see the shadow volume Wikipedia page and the patent causing the problems.
(For those that do not currently follow me on Twitter, as mentioned there, benchmarks of Doom 3 from the open-source Mesa / Gallium3D drivers on a range of hardware under Linux will be published in the very near future.)
Related Linux Gaming News
Unreal Engine 4.23 Preview Brings Virtual Texturing, Other Enhancements
DXVK 1.3 Released With Discard Optimization, Async Presentation
GameMode Seeing Improvement Work For Better Integration With GNOME
Godot Engine 4.0 Continues Working Towards Vulkan Support
DXVK 1.2.2 Brings Minor CPU Overhead Optimizations, Game Fixes
The Smach Z AMD+Linux Gaming Handheld Might Actually Ship This Year


We recently had the chance to chat with two of our Davis Phinney Foundation Ambassadors who specialize in working with people living with Parkinson's. Together they shared their five best tips for the newly diagnosed.
Brett Miller, Rock Steady Boxing coach and wellness professional recommends that people do the following as soon as they're diagnosed.
Movement disorder specialists focus specifically on conditions that affect movement. They're not primary care physicians or broad-scope neurologists, but they often work in collaboration with them.
The great thing about many MDSs is that not only do they have a deep understanding of the disease process, but they also tend to understand the anxiety, fear and uncertainty that come with a Parkinson's diagnosis or a noticeable progression of symptoms. That can go a long way when you're dealing with something as serious as Parkinson's.
In addition, while it might be nice if your MDS is the person you see the most, many people see their MDS only once a year or once every two years, and they rely on their primary care physician or neurologist for their more frequent care. If that's the case, it's critical to encourage collaboration and sharing of information so as a team they can give you what you need.
The biggest obstacle to finding an MDS, let alone the right one for you, is that MDSs are hard to find, especially if you don't live in a big city. However, if you want to receive the best care possible, many of my clients find that a road trip or flight to see a good one is well worth it.
The second most important piece of advice I'd suggest is to get involved in a daily exercise routine.
According to research, boxing isn't only an extremely difficult sport to perform, but it shows that when performed correctly (non-contact) under the guidance of a licensed professional, it creates a neurological protective response to the dopamine cell structure that protects and reduces the breakdown of the cell walls.
But, if you've never boxed, how and where do you start?
I encourage my clients to attend boxing classes two to three times a week. This may seem like a lot; however, when you experience the benefits—often a reduction in motor and non-motor symptoms—you'll find you can't wait to get to the gym.
Many of my clients with Parkinson's also have other health concerns such as hypertension, cardiac history, diabetes or some long-standing orthopedic issues which makes them think they shouldn't participate in a boxing class. This isn't necessarily true. While it's always important to check with your doctor before you begin any exercise program, once you have been cleared, you may find that regular boxing actually helps reduce these issues. Just be sure to find a coach who has a degree in a medically related field such as exercise physiology or physical or occupational therapy and has the necessary certifications to teach proper boxing workouts. Better yet, find someone who specializes in working with people living with Parkinson's.
Brett Miller and Davis Phinney raise their hands – Every Victory Counts!
One of the things people struggle with most (whether they have Parkinson's or not) is actually taking that first step into a wellness center or boxing facility. It can feel intimidating to start something new; however, once you find the right place and the right people, it will feel like coming home.
Find a place that employs professional, knowledgeable and approachable coaches. Where camaraderie is just as important as the activity you're doing, and where you meet people who lift you up and you look forward to seeing every day. These places do exist. This kind of exercise combined with the social connection can have a profound impact on your ability to live well with Parkinson's.
Angee Ludwa, physical therapist and fellow Davis Phinney Foundation Ambassador added two more pieces of advice to the list.
Angee Ludwa (far left in pink) with her PWR! class.
Being diagnosed with Parkinson's is often overwhelming and many people find themselves asking the question, where do I go from here?
Some people dive into finding as much information as they can and seek out others traveling a similar path. Others completely avoid the topic and isolate themselves. In my experience, it's the former who have the best chance of living well with Parkinson's. Fortunately, there are many people who can help you during this journey and play a crucial role as part of your tribe.
The first place I recommend my clients go if they need resources or support is the Davis Phinney Foundation. Their Ambassadors have a wealth of information and are all eager to help in any way they can. There may even be one in your area; however, even if there isn't, one of them will likely be able to guide you to the resources you need. As an Ambassador living in Michigan, I have had phone conversations with people in Chicago and Ohio and beyond.
Building a solid care team can be the difference between just getting by and thriving with Parkinson's.
An ideal Parkinson's care team would include your care partner, MDS, primary care doctor, physical therapist, occupational therapist, speech therapist, nutritionist and maybe a personal trainer or coach. It may take some trial and error to find the right team members—individuals who specialize in working with people living with Parkinson's and are open to communicating and working together to provide you the best care possible—but it is worth it if you want to live well (and long) with Parkinson's.
As a physical therapist, I'm always trying to help people connect to ones in their area. Here are a few resources in case you're on the lookout for a great physical therapist for your care team.
Brett and Angee would love to know, what advice would you add to those who've been newly diagnosed with Parkinson's? Feel free to share in the comments below.
Brett Miller opened a Rock Steady Boxing affiliated gym (110 Fitness) in 2016 while continuing to provide physical therapy to people with Parkinson's in their own homes. In 2018, he also opened a wellness center to provide programs for the Parkinson's community, which is now the largest in the world.
As an Ambassador, Brett believes in making the most of each day, and he hopes to bring essential tools to those in his community and share his experience creating comprehensive wellness programs. Learn more and reach out to Brett here.
Angee is a physical therapist and has been practicing for 21 years. About 14 years ago, Angee and a co-worker started to notice an increase in the number of people with Parkinson's who were being referred to them for physical therapy. After working with the Parkinson's community, Angee knew that she had found her passion. From that point on, she has been helping people who have Parkinson's live their best life.
Angee currently works part-time in an outpatient neuro-clinic and works one-on-one for skilled therapy. She also teaches many community exercise classes such as PWR! Moves, Rock Steady Boxing, cycling and pole-walking. Learn more and reach out to Angee here.
Much more can be found in our latest edition of Davis Phinney Foundation's Every Victory Counts® manual. It's packed with up-to-date information about everything Parkinson's, plus an expanded worksheets and resources section to help you put what you've learned into action.
Request your copy of the Every Victory Counts manual by clicking the button below.


text:
Where Diageo sees gin's popularity growing around the world after UK boom
26th July, 2019 by Edith Hancock
While some claim we've reached 'peak gin' in the UK, the CEO of drinks giant Diageo believes there is still plenty of opportunity to cash in on international sales.
Although the spirit makes up just a small fraction of drinks giant Diageo's sales, CEO Ivan Menezes sees "a lot of runway ahead" for the growth of its gin portfolio worldwide, with markets such as Brazil and Mexico starting to pick up pace.
"Everyone's talking about gin and we are really happy and excited about the momentum of gin," the spirits boss said during a briefing with journalists on Thursday (25 July).
Net sales of Diageo's gin brands rose 22% in the year to June 30, with Gordon's and Tanqueray delivering double digit growth, although gin still makes up just 4% of the company's revenues. In the UK, where Gordon's drove sales of pre-mixed drinks up 17%, sales rose 4% with market share gains in both beers and spirits.
The spirit's popularity has continued to grow in the UK. According the WSTA's end of year market report, the summer of 2018 witnessed record gin sales, with the equivalent of almost 28 million bottles sold. More gin was sold during three months of the 2018 heatwave than the summers of 2014 and 2015 combined.
In the last quarter of 2018 gin sales grew 53% by volume and 59% by value, compared to 2017, which the WSTA states is "the largest growth by quarter on record for gin".
HM Revenue and Customs figures published in February showed that exports of UK gin rose by 15% in 2018, compared to the previous year, rising to £612 million.
Menezes said that he does not expect growth in the UK to continue at the rate it has, but that it could be repeated in other international markets.
He added the group had seen growth in countries like "Brazil, Mexico, and South Africa," although sales were still relatively sluggish in the US.
"The trend of gin is spreading around the world," he said, "and we see a lot of runway ahead."
Menezes said that, since he became CEO of the business, Diageo is now "much better at recruiting new consumers to new occasions," and says it has improved its research into consumer demand, which is now a "a huge source of advantage for the company."


HomeGardenTomatoesCan Tomatoes Be Grown Indoors?
You can grow tomatoes indoors and feel highly rewarded. The tomatoes that a person grows is always better than what he can buy in supermarkets. Let us think about what you need to know if you are considering growing tomatoes indoors.
The first step is to analyze tomato varieties. You require a crack resistant one. Not all tomatoes can handle an indoor environment. Then we need to think about the soil. Equal parts of perlite, sphagnum peat and vermiculite has to be used when creating standard potting soil. Good PH can be adjusted with the addition of 1 hydrated teaspoon of lime for each 4 liters of good soil mix.
After your soil is prepared you have to use your tomato seeds. It is always a little difficult to do this. Growing a plant is equally important when compared to starting seeds. Tomato seeds planting brings in a need to planting the seeds at around 1/4 inches depth with around 8 seeds per every inch. The first days after plantation they should be covered so that they do not dry out.
When growing indoor tomatoes the easiest part is to take care of them. Every plant has to receive fluorescent lighting for a minimum of 18 hours every single day. A perfect temperature for growing is 70 degrees in daytime and 65 degrees in nighttime. When a plant reaches a minimum of 12 inches it has to be transplanted to a container of one gallon. You should be able to pick the fruits after around 60 days.
When growing tomatoes indoors flowering steps out as being the most difficult part. If you want to do everything properly then you have to learn force flowering. A tomato flowers in around 2 months and the one near it might flower only after around 80 days. If you are looking for flowering then you have to move the plant towards a 3 gallons container. You need to constantly remember that you can receive help in the event that you are faced with problems. Growing tomatoes and flowering them indoors is possible but just a little more difficult than outdoors.


text:
Tibetan protests spread to Nepal
Thu, 3rd November 2011
After growing protests in Tibet and India against China's rule of the formerly Buddhist kingdom of Tibet, demonstrations have now flared up in Nepal with police arresting nearly 100 people near the Samdupling Tibetan refugee camp in Kathmandu valley.
Nepalese police said they acted on a tip that some people would attempt self-immolation in protest on November 2, the second day of a three-day "Global Action" campaign by Tibetans in Nepal. Among the arrests were 18 people who were found carrying oil cans. Blogs showed aghast relatives and neighbors grappling with the protesters to stop them.
The Tibetan Youth Congress (TYC), the campaign organiser, had said it planned to hold peaceful activities, including a mass prayer service, pledges written in blood and shaved heads.
The aim was to show solidarity with Tibetans whose political and religious rights have been curtailed in since China annexed Tibet in the 1950s. The prayers are especially for nine monks and a nun who set themselves ablaze in Tibet this year in protest with five of them dying.
TYC said the participants were angered by police tearing down the portrait of their spiritual leader, the Dalai Lama. On 1 November, when the campaign started, police tore down a placard that said that Tibetans were holding a prayer ceremony for those who had laid down their lives for religion and politics in Tibet.
Nepal, situated between China and India, once had offered fleeing Tibetan refugees a home. However, it now has begun tightly controlling the movements of the exiles, preventing them from holding traditional prayers or celebrating the Dalai Lama's birthday in public.
Rights groups like Amnesty International and the International Campaign for Tibet say the crackdown is due to growing pressure by China, which claims Tibet is an integral part of its communist republic.
By Sudeshna Sarkar, Ecumenical News International
PrevPreviousUN experts criticise China crackdown on Buddhist monks
NextUK to allow religious gay partnership ceremoniesNext


the newest major Spark API called Datasets.
To motivate Datasets, let's start with an example.
Let's say we've just done the following computation on a DataFrame.
and each one of these listings represents a home for sale on the market.
the average price of the homes for sale in that zip code, okay?
So that's what the program looks like here.
now we have everything collected in groups per zip code.
the price column because we want to calculate the average of that column.
So that's the computation that we've done.
Great, wonderful, seems just fine.
in the form of an array back to the master node.
Oops or no, or what was this thing again?
I thought I was getting back an array of doubles representing the average prices.
What is this row thing here?
but we didn't really look at them very closely.
What's in this row thing again?
the order of the columns in that row so I know which things to cast.
So you might ask yourself, okay, well, then how many columns was my result again?
indexed into them and then cast them to the correct types, so here's one attempt.
So I have a value called averagePricesAgain.
let's just cast that to an integer and let's see how it works.
Nope, got a ClassCastException, so that was wrong.
Instead of randomly trying different casts, let's look up the API docs for Row.
Okay, so I can call head on my array of rows.
gives me the schema, and then I can pretty print it nicely in the form of a tree.
Okay, wonderful, so this is my schema.
and the second element in the row is a double, that's great.
Okay, so my average price is this one here.
Hooray, so now I've casted this correctly.
then the second element is double.
I have no idea what's happening here.
something works, and I could still be wrong, so this is pretty error prone.
But hey, at least it worked.
optimizations and actual typesafety, so I didn't have to do this.
Well, that's where Datasets come in.
because they combine these nice optimizations with typesafety.
Okay, maybe that's too extreme of a metaphor, but you get what I mean.
that is that DataFrames are actually Datasets.
it's actually really a Dataset with type Row.
So DataFrames are actually Datasets, they're actually the same thing.
But okay, what the heck is a Dataset then?
Well, a Dataset can be thought of as a typed distributed collection of data.
So kind of in the same way that we think about an RDD.
It's a typed distributed collection of data.
However, Datasets have a little bit more than RDDs.
So, the Dataset API actually unifies this DataFrame API with the RDD API.
that looked very different from the operations that we learned in RDDs.
on a same Spark-distributed collection.
relational operators all intermingling in the same code.
it to be a Dataset.
you get more optimizations on Datasets than you got on RDDs.
it couldn't do all of the cool stuff that the Catalyst optimizer could do.
while having that nice flexible functional API as well.
Let me tell you what I mean by mixing and matching these two APIs.
of all of the homes for sale in different zip codes.
the most important field is, of course, the price in the zip code field.
And the first thing we do is we can do groupByKey on it.
this is super cool, we're passing a lambda to the groupByKey function.
columns is going to be our key, so we pass a function to do that.
So here we are, passing functions, it looks a lot like RDDs again.
So here we are, calculating the average per key grouping.
And then we're telling Spark that the type of that calculation is a double.
different APIs or both of these different ways of thinking about writing code.
and then on the next line it can have a very relational expression.
So, I can mix and match these things however I want.
And the types match up because everything is a Dataset, so it all works out.
what Datasets are all about.
So Datasets are kind of something in the middle between DataFrames and RDDs.
which means I have the same operations on both of them.
use everything like we've used it before.
In addition, Datasets add more typed operations that can also be used.
so we can have both typed and untyped relational operations.
they were mixed together with data sets.
from some of the optimizations that we saw in DataFrames.
it's not completely, perfectly type safe but it's pretty type safe, let's just say.
since Spark 2.0, Creating Datasets is super easy.
which is a convenience method that creates a new dataset from a data frame.
this thing called spark implicits.
reading in structure, to semistructure data from file.
DataFrames, now if you provide some type information.
So in this case we say, okay, this json file here is full of Person instances.
types on that with the structure and scheme on this people.json file.
Then this Dataset will be read into memory from file and will be perfectly typed.
types in order to get the Datasets into memory or with the right types.
we can also create a dataset from an RDD by using the same convenience method.
we can just call toDS on this list, for example.
I've gotta remind you about these Column things here.
we're always using these Column things, and there was this syntax for using them.
because everything is now typed, we now have the notion of typed Columns.
I was expecting a typed column and you might ask.
Well okay, how do I create a typed column then?
Well it's pretty easy you just have to use this as method.
With the type that you're column contains and then this creates a new typed column.
Okay, so let's get right into the transformation on datasets.
DataFrames are called untyped transformations?
So you have also typed variance of some of the untyped transformations as well.
and on the hand we have typed transformation.
functions on RDDs that we like so much.
grouped into these two categories and it's going to be very important.
then your nice dataset can lose all of its type transformations.
data sets are data sets, these APIs are seamlessly integrated.
to you in a previous session.
how do you suddenly create type information?
So here's an example down here below.
and I want to increment all of the digits in the keys here in these key value pairs.
I have to cast each element to them if I want to do something with them.
I've got to do this ugly cast and then add 1.
It's really not clear what I'm doing.
information at all when at one point you did have type information.
So again, you got to be careful about that.
they don't always look 100% the same on datasets as they did in RDDs.
without looking at the API docs start programming RDD's on top of dataset.
We're going to get lots of compiler, so just keep that in mind.
So let's go through some of the common typed transformations on datasets.
All of these look pretty familiar, don't they?
flatmap, the same is also true for filters.
distinct returns a new dataset with all the duplicates removed.
I hope these familiar operations make you comfortable.
Because already with groupByKey, things start getting a little weird again.
groupByKey gets a little weird.
which is a little strange.
How is this a transformation if it doesn't return a dataset, right?
in two steps will return a dataset.
return a new dataset It just does so with an extra step in the middle.
the last session on DataFrames we also had this weird two step process.
the result of the groupByKey that was called on Dataset.
groupByKey we return a different type called KeyValueGroupedDataset.
the aggregation operations that you can use.
there are a number of aggregation operations defines which return datasets.
Okay, so how do we actually group and aggregate on datasets?
out of this KeyValueGroupDataset thing here, and it returns a dataset.
And that's how you do a group and then aggregate on the dataset.
let's first talk about some more.
So let's talk about this KeyValueGroupDataset thing here.
I'm going to list just a couple.
it does a reduce on the elements of each group.
then we do a reduce on that.
So that's reduced groups, and that returns a Dataset when it's done.
aggregation function, that we saw in the previous session on data frames.
And this can be pretty general, this aggregation can be pretty general.
Also note that it takes a parameter, a typed column rather than a regular column.
saw on previous session on data frames.
But if you remember, there was also an API on this thing too.
Let's have a look at that more closely.
So just like in DataFrames, there was this general aggregation function.
which I don't know what to do with.
If I pass the typed column to it, what does it aggregate?
a center deviation of something.
statistical aggregation operations, there's things like max and min.
aggregation operations that you can choose out of this function things here.
And then all you do, in this case, let's say we've chosen one called average.
then we pass this average of the column to the aggregate function.
Oops, the same thing happened that happened earlier in this session.
we can't just pass the column name to the average function here.
the parentheses are in the wrong location here.
And everything is all better now.
now has been converted into a typed column.
we can compute the typed average on that column.
So again we keep the type information around.
So let's go back to this KeyValueGroupedDataset thing again.
Well normally, the operations on these group data sets are aggregations.
which is very similar to the reduce groups that we saw earlier.
the map function that you pass to it to each group of data.
So you could imagine going to the collection of the values.
of values, and it returns a new dataset as a result.
on RDDs, and it was nowhere to be found.
So what happened to reduceByKey?
Well the short answer is that datasets don't have a reduceByKey method.
But we can do a little challenge right now.
of the group by key, so we went through all these things.
to emulate the semantics of a reduceByKey transformation on a specific dataset.
we have these weird little string snippets and a bunch of integers here is the keys.
And your challenge is to try emulate this call here.
the operations that I've just showed you, but to do it instead on a dataset.
I'm going to give you a moment to try it yourself.
this is the one I've chosen right now.
And now we call groupByKey on it.
which column or attribute in the dataset should be viewed as the key.
the number here which appears to be some kind of ID as the key.
What we do is, we select the first element of the pair here.
And so what this does is it does groupByKey on the integers here.
these KeyValue grouped dataset things, right?
I've go to do something else on it to make it a dataset.
what this does is, it takes a function from a key and a value to some other type.
here is a collection of strings that represent the groups of the values.
this, it first groups by the indices and then it reduces on the values.
concatenation, so we were concatenating all these pieces of strings together.
So I'd like to do the same thing in this mapGroups function.
So I again return a key value pair where I keep the key as it is.
I do a fold on it to concatenate all the strings together.
I can basically emulate what a reduceByKey operation does.
if I call show on the results, I get now a visualized table here.
look, there's something interesting happening here.
Suddenly, is jumbled stuff makes a little bit of sense.
Let's sort that actually another time to make this pit into a better order.
this is a secret message actually from all of these pieces.
So that's how we know we did it right.
So while that might have worked, there's actually a problem with this approach.
of the danger of using this mapGroups function.
course extremely expensive and we don't want to do that, right?
which is exactly what we're doing, it's actually best to use something else.
It's best to use the reduce function or to use this thing called an aggregator.
Don't use these mapGroup things unless you really have to.
But okay, let's follow the advice of the docs.
Let's try doing it with the reduce function.
In fact, it's called reduced groups.
the group to values and instead this is doing a reduce on the group of values.
So all we gotta do with the result of our groupByKey is called mapValues.
Because reduceGroups has to work on individual strings and not pairs.
passes them down the line to reduceGroups.
Which then concatenates all of those strings.
I could print out the Dataset and it would be exactly the same thing.
But the docs also suggested this weird aggregator thing here, what is that thing?
So, an aggregator is a class that helps you generically aggregate data.
to chose from are very specialized.
And you don't have the ability to create your own aggregation function.
So this aggregation class here is supposed to let you do that.
it's kind of like the aggregate method that we saw in RDDs.
functions and the zero that we would pass to the aggregate method on RDDs.
First things first, you've gotta know where this thing is.
so you're going to have to import this aggregator then to use it.
Okay, but what is this aggregator class?
The first thing you might notice is that it has three types.
A type IN, a type BUF and a type OUT.
on RDDs it allowed us to change the types.
And to do things in parallel.
it was possible to compute some pieces in parallel and to combine them all later.
So this is exactly what this class aggregator is going to do.
And in this case, the IN type is actually the input type of the aggregator.
BUF is the intermediate type during aggregation.
computation, we have this BUF type that we can change it to.
OUT is the type that comes out of the aggregation if we want to change the type.
And all of these types can be different.
And this is what an aggregator looks like.
So what we gotta do is create a new aggregator here.
then we have to implement these peculiar methods here.
So this should be pretty clear what it does.
This is the initial value of the aggregation.
So this is like the zero that we pass to fold left for example.
So this is the initial value.
these are like the two functions that we passed to the aggregate method on RDD.
method is what merges these independently computed aggregations together.
one more time before we return the value of the aggregation.
hard once you get the hang of it.
you look at things in terms of input, buffer and output types.
And you just keep this schema in your mind.
Let's create our own aggregator.
we start by looking at the types in these things.
We can break this into steps.
Remember, input, buffer, and output.
So, what's the input type?
Well, remember, the input type is what came out of the group ByKey method.
So, in this case, it would be a pair of int string.
So We know that this is going to be a pair of int string.
And we that the output type is going to be a string.
Since these are pretty simple data types, the buffer value can also be a string.
Okay, so first step is complete.
output type is string, great.
Now we have to feel in the rest of the types.
That's completely easy to do, if you go back two slides.
And here we have a template of where we can plug in these different types.
And the only thing that's not a string is this input type which is a pair.
So we just mechanically plug these types in.
Now we have to figure out what these methods should actually each do.
The zero or the initial value is pretty straight forward.
this is definitely going to be an empty string.
And actually these types that we've already plugged in give it away.
out of this pair and concatenate it with this other string here.
We just take B, we pull out the string out of A and we concatenate them together.
Now this is a string.
since we already have a string we just want to merge together two strings.
So, we just do another set of string concatenations.
Again, we need to return a string.
We just return r without doing anything to it and that's it, there's our aggregator.
The last thing that we do is we convert it to a column.
So there is this toColumn method here.
method it needs to be of type column.
So here we go we parse our aggregator which we named strConcat.
We parse it to this aggregation function.
we do as string because the result is of type string.
And that's it, voila, we have our aggregator.
Oops, expect we don't, we got a compile error.
So there was something missing.
what it says here is that there are two unimplemented members.
One called bufferEncoder and one called outputEncoder and they're of type encoder.
not we heard about these in passing during the data frame session.
this highly specialized internal tabular representation that Spark SQL operates on.
these encoder things, these things are required by datasets.
So every data set has encoders to go along with it.
tabular representation that we heard about.
And this special representation is Sparks internal Tungsten's binary format.
Which allows these operations to happen on already serialized data.
Which actually greatly improves the memory utilization.
Well, that's the context for these things.
well why isn't Java or Kryo good enough?
which we have encoders define for us.
all of those Spark SQL core data types.
there's always a super optimal encoder available for these Core Data types.
So that gives us an optimization opportunity.
is the fact that these encoder things actually contain the schema information.
So they're not just serializers and deserializers.
stored in it's data sets.
So this is kind of the magic that Tungsten does.
So this is where we get this great memory utilization from.
stuff in in memory, which is a lot smaller than Kryo or Java.
which is one of the fastest industrial serializers that are around.
And with the representation of the data that we're operating on.
And I told you that there's an encoder for every dataset.
we've been creating Datasets all over the place.
And we've never seen these encoder things before.
automatically via implicits from this SparkSession object.
to explicitly pass an encoder to something.
And for that Spark SQL actually has an object called encoders in the SQL package.
creating encoders from Scala primitive types and products and things like that.
STRING, etc, for primitives that are knowable,right?
Which isn't the case for all of Scala's primitives.
And then there are methods that create encoders for the Scala primitives.
So, scalaInt, sclaLong, scalaByte, etc, the list goes on.
because sometimes we're building up complex types of A case classes.
So, here are some examples of how one might go about creating an encoder.
So you just call this the name of this package object.
you get back an encoder of type integer, the scala integer.
if we have a case class type like person here.
So that was a quick introduction to encoders.
So let's finish up the implementation of this aggregator.
then look up the right methods to use in the encoder's object.
So I've implemented my encoders.
I've gotta make it a typed column.
And then I gotta pass it to this aggregator method that we saw before.
And that's it, here's the result, just as we expected.
go about grouping and aggregating data.
in case you don't find an aggregator that you need in the Spark API.
So I hope this slide is refreshing, so we're changing directions a little bit.
We saw transformations and then grouping and aggregating on Datasets.
Now let's look at actions on Datasets.
the actions that we've seen on RDDs and on DataFrames.
There's nothing different about them, in fact.
each or count or collect, they're all the same.
digging into those aggregator things a few slides back.
Everything is as expected with actions, so that's an introduction to Datasets.
functions like math, flat math, and that we liked from RDDs.
were thrown by the annualizer when having to deal with DataFrames being untyped.
So, at this point I've given you three APIs, three big main different APIs.
then we spent a bunch of time on these things called RDDs.
And so, your head must be spinning right now.
the other one of these things?
when you might be interested in choosing one abstraction over another.
the core abstraction that everything else is built on top of.
these richer abstractions on top of these RDD things, and they're generating RDDs.
we have RDDs that we're actually running.
what Spark is running is an RDD, right?
So you can think of RDDs as a little bit more low level and totally free form.
It's up to you to do your own optimizations on them.
And we learned that the hard way in several sessions earlier in the course.
to know exactly what these things are doing under the covers.
some reason into a Dataset or a DataFrame.
manage low level details of your RDD computations.
You can't just trust the optimizers to do it for you.
serialized with these encoder things, which is a real possibility.
Encoders can't yet nicely deal with user defined data types.
So these are situations when an RDD might be necessary.
if you're going to read in some kind of structured data format like JSON or XML.
map it to a case class.
Datasets do that really well for you.
easy with things like Datasets and even DataFrames.
it's often really nice to go with a DataFrame or Dataset.
as possible on these optimization components that Spark provides.
generally trust that it's going to be okay.
DataFrames are a good choice, if you can deal with the fact that they're not typed.
Datasets are a really nice compromise.
Because maybe they're not as performant as these DataFrames here.
But they still have good performance, they still have some optimization done on them.
when you want to work with functional APIs.
it doesn't have to be the best.
So it's up to you to decide which one.
the sort of computation that you want to do.
Perhaps it easier to do it with sort of functional APIs and types.
it really depends on the problem that you're trying to solve.
But this is a good set of criteria to help you make that decision.
some of the limitations of Datasets that might not have been completely obvious.
Datasets don't get all of the optimization the DataFrames get.
And they gave you some hints throughout the course about why that's the case.
how giving more structure helps optimization.
it can access only the fields that are involved and say, for example, a filter.
the data, we have the structure of the computation, we can see into everything.
We can see the data.
We can see the computation.
ones without actually having to instantiate the entire data type.
So that's why Catalyst is good at optimizing in this case.
functional operations that include passing around function literals or lambdas.
you need to apply this function to it you don't what's in it.
that it should have to do, because Spark just can't see into lambda functions.
It has no idea what they're doing.
operations that involve passing around these function literals.
And of course you don't miss out on every possible optimization.
You just miss out on some important ones.
This is why sometimes datasets are slower than data frames.
these wonderful optimizations from Catalyst.
any of these operations then you get all of Catalyst's optimizations on datasets.
not you get the full sort of suite of optimizations that are available.
map operations don't get any optimizations.
still result in large speedups over regular RDDs, so that's not nothing.
functions, but you still get all the benefits of Tungsten.
Spark has to optimize operations on datasets.
these standard Spark SQL data types, these primitive data types.
ensure that there is a Tungsten encoder that exists for you.
So, this could be also be a problem.
You can't just put any data type ever into Spark.
And finally there is that point about semi-structured and structured data.
programmatically guess the structure of these datasets.
put it into some format that's comfortable for datasets to deal with.
pieces that you need in with regular Spark RDDs.


Natalie Higgins has also been endorsed by the Massachusetts Nurses Association PAC, MassEquality PAC, the Mass Women's Political Caucus, and the International Union of Operating Engineers Local 4.
I read this article and found it quite meaningful for the people who keep animals as pet. This post have shown me the best way to protect the pet in the tough times. I am thankful to you for helping me out from this critical situation regarding my pet dog.
begin with a hook that catches the reader's interest.
get 3d cheats from this website.


text:
Ву́лиця Стефа́ника (також Ву́лиця Василя́ Стефа́ника) — назва вулиць у деяких населених пунктах України.

Вулиця Василя Стефаника
 Вулиця Василя Стефаника — вулиця в місті Городенка.
 Вулиця Василя Стефаника — вулиця в місті Жовква.
 Вулиця Василя Стефаника — вулиця в місті Івано-Франківськ.
 Вулиця Василя Стефаника — вулиця в місті Ізмаїл.
 Вулиця Василя Стефаника — вулиця в місті Кам'янське.
 Вулиця Василя Стефаника — вулиця в місті Київ.
 Вулиця Василя Стефаника — вулиця в місті Надвірна.
 Вулиця Василя Стефаника — вулиця в смт Підбуж.
 Вулиця Василя Стефаника — вулиця в місті Рава-Руська.
 Вулиця Василя Стефаника — вулиця в місті Сокаль.
 Вулиця Василя Стефаника — вулиця в місті Трускавець.
 Вулиця Василя Стефаника — вулиця в місті Яремче.

Вулиця Стефаника
 Вулиця Стефаника — вулиця в місті Берегове.
 Вулиця Стефаника — вулиця в місті Бережани.
 Вулиця Стефаника — вулиця в смт Більшівці.
 Вулиця Стефаника — вулиця в смт Богородчани.
 Вулиця Стефаника — вулиця в місті Болехів.
 Вулиця Стефаника — вулиця в місті Бориспіль.
 Вулиця Стефаника — вулиця в місті Бровари.
 Вулиця Стефаника — вулиця в місті Броди.
 Вулиця Стефаника — вулиця в смт Брошнів-Осада.
 Вулиця Стефаника — вулиця в місті Бурштин.
 Вулиця Стефаника — вулиця в місті Буськ.
 Вулиця Стефаника — вулиця в місті Вижниця.
 Вулиця Стефаника — вулиця в місті Винники.
 Вулиця Стефаника — вулиця в місті Володимир.
 Вулиця Стефаника — вулиця в місті Галич.
 Вулиця Стефаника — вулиця в смт Глеваха.
 Вулиця Стефаника — вулиця в місті Городок Львівської області.
 Вулиця Стефаника — вулиця в смт Гусятин.
 Вулиця Стефаника — вулиця в місті Дніпро.
 Вулиця Стефаника — вулиця в місті Долина.
 Вулиця Стефаника — вулиця в місті Дружківка.
 Вулиця Стефаника — вулиця в місті Дубляни.
 Вулиця Стефаника — вулиця в місті Дубно.
 Вулиця Стефаника — вулиця в місті Заліщики.
 Вулиця Стефаника — вулиця в місті Збараж.
 Вулиця Стефаника — вулиця в місті Звягель.
 Вулиця Стефаника — вулиця в смт Івано-Франкове.
 Вулиця Стефаника — вулиця в місті Калуш.
 Вулиця Стефаника — вулиця в смт Козова.
 Вулиця Стефаника — вулиця в місті Коломия.
 Вулиця Стефаника — вулиця в місті Копичинці.
 Вулиця Стефаника — вулиця в місті Косів.
 Вулиця Стефаника — вулиця в місті Кривий Ріг.
 Вулиця Стефаника — вулиця в смт Ланчин.
 Вулиця Стефаника — вулиця в місті Луганськ.
 Вулиця Стефаника — вулиця в місті Луцьк.
 Вулиця Стефаника — вулиця в місті Львів.
 Вулиця Стефаника — вулиця в місті Миколаїв Львівської області.
 Вулиця Стефаника — вулиця в місті Мукачево.
 Вулиця Стефаника — вулиця в смт Обертин.
 Вулиця Стефаника — вулиця в смт Отинія.
 Вулиця Стефаника — вулиця в смт Печеніжин.
 Вулиця Стефаника — вулиця в місті Почаїв.
 Вулиця Стефаника — вулиця в місті Радехів.
 Вулиця Стефаника — вулиця в місті Самбір.
 Вулиця Стефаника — вулиця в місті Сколе.
 Вулиця Стефаника — вулиця в місті Снятин.
 Вулиця Стефаника — вулиця в смт Солотвин.
 Вулиця Стефаника — вулиця в місті Старий Самбір.
 Вулиця Стефаника — вулиця в місті Стебник.
 Вулиця Стефаника — вулиця в місті Стрий.
 Вулиця Стефаника — вулиця в смт Тересва.
 Вулиця Стефаника — вулиця в місті Тернопіль.
 Вулиця Стефаника — вулиця в місті Тетіїв.
 Вулиця Стефаника — вулиця в місті Тисмениця.
 Вулиця Стефаника — вулиця в місті Тлумач.
 Вулиця Стефаника — вулиця в місті Тячів.
 Вулиця Стефаника — вулиця в місті Ужгород.
 Вулиця Стефаника — вулиця в місті Хирів.
 Вулиця Стефаника — вулиця в місті Ходорів.
 Вулиця Стефаника — вулиця в місті Червоноград.
 Вулиця Стефаника — вулиця в місті Чернівці.
 Вулиця Стефаника — вулиця в місті Чортків.
 Вулиця Стефаника — вулиця в місті Яворів.
 Вулиця Стефаника — вулиця в смт Ясіня.

 Вулиця Стефаника — зникла вулиця в місті Київ.

Провулок Василя Стефаника
 Провулок Василя Стефаника — провулок в місті Кременчук.

Провулок Стефаника
 Провулок Стефаника — провулок в місті Дніпро.
 Провулок Стефаника — провулок в місті Луцьк.
 Провулок Стефаника — провулок в місті Полтава.
 Провулок Стефаника — провулок в місті Чернівці.
 Провулок Стефаника — провулок в смт Шкло.

 Провулок Стефаника — зниклий провулок в місті Київ.

Див. також
 Вулиця Юрія Стефаника — вулиця в місті Бучач.
 Набережна Василя Стефаника — набережна в місті Івано-Франківськ.

Вулиці, названі на честь людей


Freshly painted throughout this beautifully presented single level home is in a highly sought after pocket of Bangor. Features include floating timber floorboards, spacious combined lounge and dining, modern laminate kitchen with walk in pantry and easy flow through to the air conditioned family room.
There are 3 bedrooms all with built in robes and the master an en-suite. With an easy-care yard, double lock up garage and conveniently located to shops & schools this home is ready to move into.


text:
Craig Reynolds start or sit: Week 17 fantasy football advice
We go over the fantasy football outlook of Craig Reynolds ahead of the Detroit Lions Week 17 matchup against the Seattle Seahawks.
By DKNation Staff Jan 2, 2022, 5:05am PST
Share All sharing options for: Craig Reynolds start or sit: Week 17 fantasy football advice
Craig Reynolds of the Detroit Lions looks to stiff arm Richie Grant of the Atlanta Falcons at Mercedes-Benz Stadium on December 26, 2021 in Atlanta, Georgia.
The Detroit Lions get star running back D'Andre Swift back when they meet the Seattle Seahawks in Week 17 of the 2021 NFL season. Swift's return means a cascading effect will take place in the position group in terms of role, which will likely limit how much fantasy value Craig Reynolds has.
Fantasy Football analysis: Lions RB Craig Reynolds
After getting a few productive weeks in as the Lions primary running back, it's back to the third-string role for Reynolds. He's not going to see the field much unless either Swift of Jamaal Williams gets hurt, which is hard to bank a sit/start decision on. Managers might've been able to use Reynolds over the last few weeks in a pinch but he's not going to have much value as the third running back in this group.
Reynolds should be left out of starting lineups in Week 17.


text:
Teachers strike next Wednesday
Shetland News @shetnews
http://shet.news/tfji5
THE VAST majority of schools in Shetland will be closed next Wednesday as teachers join their colleagues and fellow public sector workers across the UK in a day of industrial action.
The strike is in protest at the government's plans to change public sector pension schemes, which would result in real term pay cuts of more than eight per cent, teachers' union EIS said.
Other public sector unions will also be taking action on 30 November which is likely to affect council and health board services.
Local EIS secretary Bernie Cranie said teachers did not want to strike but felt they were being forced to take action.
"This will be the first national strike action by teachers and lecturers for a quarter of a century.
"We have been driven to this by continuing cuts to public services and sustained attacks on the living standards of public sector workers," he said.
Mr Cranie hoped that parents, students and the wider community in Shetland would understand that this action was their last resort.
"The latest government attack – on pension provision – would force all teachers and lecturers to pay more, work longer, and get less in the end for their pension. One effect for all teachers would be an average 3.2 per cent cut in their pay due to increased employee pension contributions.
"We are taking this day of action in defence of public services and those who work in these services.
"We believe that our schools, colleges and universities and our pupils and students deserve the best. But this cannot be delivered on the cheap; there must be proper investment in our public services and fair pay and conditions, including pensions, for the public sector workers who deliver them."
Schoolchildren to strike in climate protest
War of words continues as college lecturers strike for the third time
Review: Lasting treasure at Home & Away
'Part of our past that needs to be kept alive'
'Sinister buffoon' Trump debated at Althing
Pupils design local flag for Parliament Square
Ferries dispute: SIC warns of disruption
Live: Full Council debates Northmavine schools
Live: Northmavine primary debate
Deferred sentence for assaulting girlfriend
Hundreds out on strike


Modern lines, simple joinery, and loads of storage space combine to make this TV cabinet both functional and great-looking.
At over six feet, this stylish cabinet is wide enough to handle a big TV, either sitting on top or mounted on the wall. Down below there's plenty of space for your electronic equipment, a media collection, or extra cables. What you'll really appreciate is how easy it is to build. It's a simple plywood case trimmed with a solid-wood top, face frame, and base. For a different look, the plan also includes instructions for building optional frosted-glass panels for the doors.
This modular wall unit offers loads of storage space as well as the ultimate in flexibility.
With a combination of style and functionality, this cabinet makes an ideal place to exhibit a few of your most treasured possessions.


Since it is, after all, Christmas, and at least here in Utah it's cold enough to freeze even the most hearty of souls, wouldn't it be "cool" to warm up by a raging fire?
Here, for your warming pleasure, is a Yule log in a fireplace. What with the heat generated from most computers nowadays, the effect is mostly complete. Look at it this way: no soot or ashes to clean up!
That is so AWESOME and it complimented my space heater perfectly! (Let's just say the heater is close enough I don't need the remote control) The flickering flames, the heat...aah, bliss!
HAPPY CHRISTMAS and remember to cherish every gift and keep the "holiday spirit" in your heart every day of the year!


Report environmental crime to Bedford borough council. You can make a report in three easy steps: 1) Check the location (which is detected for you automatically)2) See the problem and take a photo.3) Pick a report category, enter a description and submit Once we receive the report it will be routed direct to Bedford Borough council. You can view the progress in the app, via text, email and on the Love Clean Streets web site (http://lovecleanstreets.org) If you dont have time to make the report now, take the picture and send the picture from the pictures gallery later.


Smart locks help you straddle the line between security and convenience. Whether you want the most secure smart lock, or the one that will make your life easier, we have the best one for your needs here.
A quick note on security before we get started: smart locks aren't a magic bullet that makes your home more secure. If you have windows, they can be broken, and some weak doors can be kicked in. Furthermore, having a fancy, visible smart lock on your door might send a signal to opportunistic thieves that there are other expensive gadgets inside worth stealing (and this is a factor we consider in our judgments of smart locks). Smart locks aren't going to make your house more secure than any old decent and properly installed deadbolt will, but they can make it way more convenient for you. It's up to you to determine what works best for protecting your home and finding the right balance between security and convenience. With that in mind, here are our favorite choices.
Right off the bat, the KwikSet Kevo gets points for looking like a normal lock on the outside. Aside from an LED ring indicator light (which is usually off), this lock looks almost identical to a standard deadbolt. Its benign design conceals a handy, unique feature: you can unlock your door by simply tapping the lock. It automatically recognizes your smartphone when you approach, but won't unlock the door until you touch the lock. It's an excellent compromise that makes sure you only unlock the door when you want to.
You can also unlock the Kevo with a separate key fob accessory ($25), or a normal old school key if you'd prefer. For guests, you can share free eKeys that give them temporary access. The Kevo app lets you track who has used eKeys, and when they have locked or unlocked your door. So, say you want to give an eKey to the babysitter or cleaners, you'll be able to see if they enter your home other than when you expected them.
If you want to access your lock remotely when you're away from home, you'll need the Kevo Plus Hub, which costs an extra $100. You can also buy the lock and hub together for $290. The hub allows you to lock or unlock your door from your phone even if you're away, as well as confirm whether your door is locked or not. It also allows you to connect to voice assistants like Alexa so, for example, you could lock your front door with a voice command, or as part of a routine.
As we mentioned earlier, it's better if your smart lock doesn't look any different on the outside. If that's your priority, it's hard to beat the August Smart Lock Pro. Unlike most smart locks, this device uses your existing locking cylinder and strike plate, so you don't need to get new keys made and your door will look exactly the same from the outside (the futuristic silver knob seen above is installed on the inside of the door, replacing the thumb turn you current use to lock the door). You get all the convenience of a smart lock without drawing any extra attention to your home.
At $219, the August Smart Lock Pro is one of the more expensive models up front. While it supports Apple's HomeKit, if you want to use voice commands or control it from outside the home, you'll need a separate accessory called the Connect Bridge. This hub costs $45 on Amazon, but you can sometimes buy both the lock and hub together for a discount (as of this writing, the combo is $249). If you want the hub, the August Smart Lock Pro can come out cheaper than the KwikSet Kevo with its hub, so you can save a little extra money over our top pick, too.
The August Smart Lock Pro also comes with a feature called DoorSense that will tell you if your door is open, as well. Most smart locks can only tell if the door is locked by whether the bolt is extended, but a door could be wide open and still be "locked" by that definition. With DoorSense, you can place a magnetic sensor on your door so you'll know if the door is left (or kicked) open.
In our opinion, both August Smart Locks are ideal for renters, since they can be used without changing your locks (something that your local laws or landlord may forbid). However, the August takes the proper recommendation for also being considerably cheaper than the Pro version. This model also features a more traditional design on the inside with a proper thumb turn lever instead of a big round dial.
The major downside for the cheaper price is that it doesn't support Apple's HomeKit. It's Bluetooth-only out of the box. Like the Pro version, if you want to unlock it remotely or use a voice assistant to control it, you'll need to buy the Connect Bridge. The company sells both in one package for $200, but since the separate hub on Amazon is only $45, you may as well save a few bucks buying them separately (at least, at the time of this writing).
For $70 off the Pro version, you sacrifice remarkably little. It may end up coming down to personal preference—the massive round interior lock on the Pro is certainly eye-catching but it can be off-putting to some—but if you're renting or just want to save some money, we'd tend to recommend the August Smart Lock 3rd Gen over its more expensive cousin.
Most of the smart locks on our list are designed to be as invisible as possible, but you may still want to have an alternate way to get into your home that doesn't require Bluetooth or Wi-Fi to work. On that front, the Schlage Sense may be up your alley. The front of the lock features a numeric touchpad that can store up to 30 unlock codes (between four and eight digits) that you can enter to open your door. You give everyone that needs access to your home their own code, and you can revoke those codes when you need to, or even restrict them to only work during certain times of the day.Of course, you can also use your smartphone to unlock your door when you arrive home.
Smart locks with keypads are also an excellent fit for families where not everyone has a smartphone—if your kids are young enough that they don't have a smart phone but old enough to run over to the neighbor's house to play, a smart lock they can use a key code to open is ideal. Further, this Schlage lock has one feature that none of the other smart locks in our roundup have: thanks to the keypad you can eschew using any of the smart features and use it simply as a key-code enabled regular lock. Should you decide smart locks aren't for you, then you aren't left empty handed but have a perfect good "dumb" lock with a nice keypad.
Like all the other entries on this list, you'll need a separate adapter to connect to Wi-Fi or use voice commands. You can buy one from Lowe's or Home Depot for $70. That puts the total price at $270 if you want all the features, which is higher than August's overall cost, but a smidge cheaper than KwikSet. If you want the keypad, it's probably worth it, but if all you want is to save money, there are cheaper options.
In most cases, upgrading to a smart lock is going to cost a couple hundred dollars. The Lockitron Bolt, on the other hand, only costs $99. That makes it attractive if you need to save every penny. However, you lose out on some features. The lock only connects to your phone over Bluetooth, unless you buy the Lockitron Bridge for $59, which starts to put it closer to the range of other, better locks. You can set up geofences on your phone and either unlock your door automatically or get a prompt asking if you want to unlock it. However, you can't unlock it remotely (again, without the Bridge), or with voice assistant commands.
It's also not compatible with a number of door styles. If your door uses either a mortise lock or rim lock without an electrified strike, you'll need an add-on you can only buy by emailing the company. They also recommend professional installation for this add-on, so if your goal is to save money, this probably won't help you. You can check the company's site here to see whether your door is compatible. If it is, and if you don't mind not having Alexa voice commands or control when you're away from home, this might be for you.
Smart locks have started to mature to the point that they tend to work reliably and have plenty of options for fallbacks in case they fail. Most are also discreet enough that no one outside your home will ever know that you put in a smart lock. If you've been considering getting a smart lock, it's a good time to consider one.
With the holidays right around the corner, it's time to either get those Christmas cards out the door, or find a service to get them out the door for you! Whatever your preference, we've narrowed down the perfect Christmas card printing services for this holiday season.


Dog First Aid Could Save Your Dogs Life !
Could Save Your Dogs Life !
At home, and especially while you're both away, you need complete control of any situation your dog is in. Dog obedience training is essential for keeping her under control and safe.
Continue reading "Dog Obedience Training Prevents Accidents and Injuries"
There are many colors to the border collie; the black and white might be the most common color, but a Tri Color Border Collie is very popular.
Continue reading "Tri Color Border Collie Information"
Training a Border Collie is probably one of the easiest breeds to train.
Continue reading "Training A Border Collie"
Taking care of Border Collies is not something that you should dread.
Continue reading "Border Collies Are Very Smart Dogs"
Border Collie Puppies are without a doubt some of the cutest, most adorable little things you've ever laid eyes on.
Continue reading "Border Collie Puppies Information"
Continue reading "Border Collie Information"
Border collies are beautiful dogs that originally come from Great Britain, and the Border Collie History is one of diversity and excitement.
Continue reading "Border Collie History"
Knowing some Border Collie Facts is an important part of a owning this breed.
Continue reading "Border Collie Facts"
Border Collie Care requires patience and a fair amount of dedication, but these dogs are one of the best friends you could ever have.
Continue reading "Border Collie Care Information"
Bloat is a serious condition that not many dog owners are aware of.
Continue reading "Bloat Is Something To Worry About"
Continue reading "Dobermans - Von Willebrand Disease - Super Glue"
I found her at the supermarket. I opended my car door and she jumped on me. She is long like a hotdog and has floppy ears but has the face chihuaha.
Continue reading "Blanca my chiweenie"
Use these dog first aid supplies to build your own first aid kit. You can build it from scratch or customize a purchased kit for hunting or field trial use.
Continue reading "Dog First Aid Supplies To Build Your Own Kit"
The Chinese Crested Chihuahua is much loved by many because of their strange unique look.
Continue reading "Chinese Crested Chihuahua Information"
It's important to protect your dogs eyes; dogs are just as susceptible to eye diseases as humans are and even get some of the same issues.
Continue reading "Your Dogs Eyes Information"
A dog crate is a useful and popular piece of training equipment that you can use for your Pit Bull.
Continue reading "Your Pit Bull Dog"
To begin the house training process with your Pit Bull puppy, you need to first determine a suitable place outside your house where he can relieve himself.
Continue reading "Your Pit Bull Puppy House Training "
When it comes to your Pit Bull dogs, aggression towards people is the most dangerous of all of the behavioral problems that a dog can have is.
Continue reading "Your Pit Bull Dogs are "Leader Of The Pack" "
Most dogs, including your Pit Bull Dog get a thrill of being inside the car and going for a ride.
Continue reading "Keeping Your Pit Bull Dog Safe "
Before you bring home your new Pit Bull dog, you should already have the necessary preparations made in order for your new puppy to feel safe and comfortable.
Continue reading "Your New Pit Bull Dog"
Since they grow continually, you need to trim your dogs nails regularly to avoid snags and other problems. Learn why it's important to check his nails daily, and trim them often.
Continue reading "Trim Your Dogs Nails Regularly"
Your dogs eyes can become irritated easily. This can lead to infections and other problems. Check his eyes daily to prevent these problems.
Continue reading "Check Your Dogs Eyes Daily"
Ear infections are common in dogs. Clean your dogs ears regularly to avoid them becoming breeding grounds for bacterial and fungal infections.
Continue reading "Clean Your Dogs Ears to Avoid Infection"
Your dogs coat and skin can develop many problems if you do not provide regular grooming. Mats, hot spots and other issues can all be prevented with some daily grooming.
Continue reading "Your Dogs Coat and Skin Need Regular Grooming To Prevent Problems"
The Yorkshire terrier is one of the most popular breeds of dog in America.
Continue reading "Yorkshire Terrier Information"


Box 14-127 SKELETONS IN THE CLOSET Speech by Mary Anderson, Ph.D.
It will be better than anything on TV.
Saturday night, you are invited to come and learn about the secret and private lives of Hamilton's notable McQuesten family whose historic downtown home, Whitehern, is now a city museum.
A wicked stepmother, a wastrel son, a domineering matriarch, a suspected suicide and all the other ingredients of a soap opera 1 played out in the home.
Mary Anderson, the author of The Life Writings of Mary Baker McQuesten, will be speaking at 8 p.m., in Room 1a1 of McMaster University's Ewart Angus Centre to the Hamilton Association for the Advancement of Literature, Science and Art.
Admission is free. The Ewart Angus Centre is at the rear of McMaster University Medical Centre.
Anderson, a playwright and historian, has pored over the years of personal letters and papers by the family.
The lecture will deal with the Victorian gems of history, science and art in the Whitehern museum Archives.
1 The story of the McQuesten family at Whitehern is actually a dramatic saga in three parts and would make an exciting three-part series for television.
The first part is: The Rise of the House of McQuesten with Dr. Calvin McQuesten who opened Hamilton's first foundry and made a fortune manufacturing threshing machines and stoves. He retired in 1865 with a fortune of $500,000 and other investments in real estate and bonds, etc.
The second part of the saga is: The Fall of the House of McQuesten, with Dr. Calvin's son, Isaac, who lost the fortune through poor investments, and ended up bankrupt through alcoholism, other addictions and mental illness. He died very suddenly at the age of forty, a suspected suicide, but it may have been accidental. There was much stigma connected with his death and bankruptcy.
The third part of the saga is: The Restoration of the House of McQuesten; it contains both Tragedy and Triumph. It involves Mary Baker McQuesten, the impoverished mother/matriarch of the 6 children at Whitehern who were between the ages of 14 and 2 at the time of their father's death. She soon perceived that there were only two of her children who were capable of higher education and of achieving professional status. They were Ruby and Tom but Tom, being a man, had the potential for greater earning power in the Victorian Age. Therefore, Mary sent Ruby to school to become a teacher. She then took a job at the Ottawa Ladies' College and sent almost all of her money home to pay for Tom's education. She was also his mentor as her letters to Tom demonstrate. As soon as Tom graduated in law in 1907, Ruby fell and died 4 years later of Tuberculosis--that is the Tragedy. Tom went on to achieve Triumph and to restore the family in dignity and in honour, if not in wealth. He became an MPP and built many of the roads and bridges in Ontario. To read his story, see his bio on this site, or the several books written about the McQuesten family. Also visit the Whitehern Museum in Hamilton for a tour of the home which is intact with all family belongings up to 1968.


Being a new mom is a joyful state like no other. It is the happiest time of your life….. Isn't it?
In India, motherhood is always unquestioningly, painted this way. New mothers cannot be anything but full of smiles to the baby and the many visitors. Emotional stress or anxiety are most often not discussed with the spouse or family due to the stigma attached to being anything but joyful after a baby is born.
Baby blues or Post partum depression are viewed as contrary to the established notions of the self-sacrificing mother. As a result, even the mildest form of anxiety about pregnancy is a battle for the mother. Most women may even be unaware that their anxiety has a name and requires medical attention.
In this issue, Family Mantra brings you stories of those who have struggled through various pregnancy related anxieties and how they coped through it.
Elizabeth Alex shares with us about her 'The Postpartum Roller Coaster' of two kids in two years. Frustrated, angry, mood swings; her relationship with her first child was really suffering. Her road to recovery will truly encourage those in the same situation.
A father's emotions and anxieties during pregnancy are unfortunately not really given much importance. Aravind Pulickel gives us a man's perspective on how he dealt with their sudden pregnancy. 'I Felt My Wife's Pregnancy Pain..Just Kidding!' will make you laugh and touch your heart at the same time.
A premature birth can be extremely traumatic. In our feature article, 'In a hurry to get out', Chitra Jayakaran talks about how the stress, bed rest, fear and premature birth of their second one was an experience that really changed their lives.
To gain a deeper understanding of pregnancy related anxieties, we interviewed Dr. Jalaja Veronica, a Gynecologist/ Obstetrician and Mrs. Olive Nagraj, a counselor. In 'A Deeper Shade of the Blues for a new mom' they provide in-depth insight into postpartum depression and coping methods.
Does having a baby lead to a rocky marriage or a rocking one? Natasha Fernandez talks about her post-baby journey and how it affected her marriage in, 'Rock-a- bye Baby'.
Do we fall easy prey to lies and fallacies and propoganda? Do we double check things before we circulate them? Is it true just because you heard it or read it on Whatsapp? Abraham Thomas gives us his opinion in, 'The Cost of a Lie'.
As electronic media has percolated into our lives, reading books has taken a backseat. This generation now associates books with just learning. Latika Sakhuja shows us that there is a lot more that comes from reading in 'The mystical world of books'.
If you know anyone who will find help in the content we publish, please pass on a copy to that person. To gift a yearly subscription, log onto familymantra.com now.
Write to us at fm@kutumbcommunications.org for feedback or suggestions.
Cover Story: The Postpartum Roller Coaster Feature: I Felt My Wife's Pregnancy Pain… …Just Kidding!
Marriage Mantra: Rock-a- Bye Baby – Is It Leading To A Rocky Marriage Or A Rocking One?
Parenting: The Mystical World Of Books Reflections: Pregnant With A Purpose!


Avalokiteshvara, to Shariputra: Form is emptiness, emptiness is form; emptiness is not other than form, form too is not other than emptiness. Likewise, feelings, perceptions, mental formations, and consciousness are all empty. Therefore, Shariputra, all phenomena are emptiness… Therefore, Shariputra, in emptiness there is no form, no feelings, no perceptions, no mental formations and no consciousness…no body and no mind…no mental objects.
Did you get that? All phenomena (apparent forms, which are impermanent) are empty; in emptiness, there is no form, or phenomena—"reality," as we know it.
If, in truth "the body" is empty of reality, then what of "the mind", and "thoughts", perceptions and conceptions, "feelings"—of all "consciousness", in general?
Gate, gate: gone, gone! "All are empty." Oh. Then what has become of the self: "you"?
The Dalai Lama has written that if it is understood that the self is empty—along with body, mind and consciousness—then those things which the self relates to are also void of content, or reality.
If one understands emptiness…there is simply no basis for grasping onto selfhood to arise. From this practical perspective…emptiness constitutes the highest and most subtle understanding of the Buddha's teaching of no self.
No self. Hmm. Then what about the things (phenomena) I seem to experience? He gives the example of our meditation practice, which could mean spiritual seeking in general.
Thus, meditative practice is negated. Next, the fruition of this practice is negated—"there is no wisdom, no attainment"—by affirming the emptiness of the subjective experience.
What remains for one for whom "emptiness constitutes the highest and most subtle understanding"? "Emptiness of mind" in recognizing that there is no mind, in reality, to begin with!
All of the qualities of the 'mind'…are empty, and are negated here…thus, the emptiness of the mind is said to be the basis of nirvana. [or under another name, sahaja Samadhi].
This is what is meant, in the scriptures, by "no mind".


text:
You are here: Parliament home page > Parliamentary business > Publications and Records > Committee Publications > All Select Committee Publications > Commons Select Committees > Environment, Food and Rural Affairs > Environment, Food and Rural Affairs
Select Committee on Environment, Food and Rural Affairs Minutes of Evidence
Memorandum submitted by The Ramblers' Association (A24)
1. The Ramblers' Association (RA) welcomes the opportunity to contribute to this inquiry examining the future of farming in the UK. We would particularly like to comment on the relationship between recreational use of the countryside with the food and farming sectors in terms of:
(a) the way improved stewardship of agricultural land can be promoted; and
(b) opportunities for agriculture by shifting emphasis away from production subsidies.
We believe that improvements to agri-environment schemes are necessary in order to provide the opportunities that will benefit agriculture, the rural economy and the public.
2. The RA is a voluntary organisation founded in 1935 whose aims are to promote walking, to protect public rights of way, to campaign for access to open country and to defend the beauty of the countryside. We have over 208,000 supporters consisting of more than 131,000 individual members and 77,000 members of affiliated clubs and societies.
The character of the countryside that our founder members enjoyed walking in at the time of the RA's formation in 1935 has immeasurably changed. This change has been brought about through the post-war agricultural policies that drove production targets upwards towards the aim of self-sufficiency in food production for the UK, through the intensively farmed and often degraded rural landscapes brought about by the Common Agricultural Policy (CAP), to where we stand today facing the challenges brought about by the Foot and Mouth disease (FMD) outbreak. Our members are inherently connected to the countryside, and the farming practices that shape it, as the countryside provides the core reason for our members' walking activities. Consequently the RA has an interest in the ways that future agricultural policy mechanisms will affect the landscapes that the public enjoy when walking.
3. The visual qualities of the British countryside have never been static and the varied demands placed upon it have been a prime reason for changes in the appearance of the landscape. Today's situation is unique in that never before have the pressures of so many varied demands and expectations of the countryside been so transparently demonstrated and recognised. We have been forced to acknowledge that the countryside is expected to be a food factory, a living space, a business park, a playground and nature reserve. Within each of these expectations lie conflicting pressures: food produced in sufficient quantity but at high quality; somewhere to live that has an individual character but provides the multitude of services a community expects to have access to, whether in an urban or rural context and a place where those running local shops, pubs and B&Bs can make a living. It is also expected to be a place to recharge spirits in solitude and tranquillity, a place that provides ecological niches for every type of fauna and flora to flourish in, a source of minerals, and military training ground. And so the list goes on.
4. The public have a subjective perception of how the countryside looks and how they would like it to look in a variety of idealised scenarios. It is sometimes difficult to reconcile the realities of a living, working countryside with the one that people would most like to visit. However, agri-environment schemes provide the opportunity to link together the realities of farming practices and the demands of the food industry with the needs of the public as consumers of food and as users of recreational landscapes. Even those who are physically remote from the countryside have a sense of expectation that the taxes should contribute towards creating beneficial countryside management policies and practices rather than negative ones that reduce biodiversity and landscape quality.
5. The value of the experience that visitors to the countryside have continues to be rewarding enough, despite the increasing pressures the countryside faces today. Visitor numbers have steadily increased over time. The Countryside Agency's "Foot and Mouth Disease: the State of the English Countryside" report (2001), stated that:
"In 1998 over one-fifth of visitors to the countryside pursued activities such as hiking, rambling, field study and cycling that are now affected. These activities accounted for some 26 million tourist trips and spending of £2.7 billion."
6. It is evident from these figures that the countryside's "customers" have changed. Agri-environment schemes support this change by improving the quality of the experience of visiting the countryside and by making it a more diverse and vibrant place. The appreciation of these qualities by visitors needs to be capitalised upon by funding the policy mechanisms that foster them thus realising the public's expectations in a positive way.
RIGHTS OF WAY
7. Rights of way are a key element to walking in the countryside, and walking is Britain's most popular outdoor pastime. An ICM survey in 2000 showed that 77 per cent of the population walk for pleasure at least once a month. The public want and expect rights of way to meet legal requirements. Yet highway authorities—which receive funding from government for their statutory duty work on rights of way—are failing in these duties. The law requires rights of way to be open, free from obstruction, and signposted where they leave a metalled road. However, Audit Commission figures show that nearly all highway authorities are failing in these duties. The most recent performance indicators published by the Audit Commission cover the 1999-2000 year. These indicators show that only 75 per cent of rights of way in England were easy to use; and only 66 per cent in England were legally signposted. The Rights of Way Condition Survey 2000 by the Countryside Agency shows that walkers can expect a serious problem around every 1.25 miles (2 km).
8. Rights of way are an integral part of the countryside. Their closure during FMD was fundamental to the failure of many businesses in rural areas during the FMD period because the public understood that the countryside was closed on account of rights of way being closed. This is a clear indication that citizens and taxpayers expect the countryside to offer an open and well maintained footpath network, and indeed rely upon it to deliver an "open countryside".
OPPORTUNITIES FOR AGRICULTURE, THE RURAL ECONOMY AND THE PUBLIC THROUGH IMPROVED ACCESS AGREEMENTS
9. We consider it unacceptable that landowners who break the law by ploughing and cropping rights of way are currently eligible for payment for this within the terms of the IACS Arable Area Payment Scheme. We would like the government to amend the scheme to ensure that landowners are not being subsidised to break the law, and to make it a condition of any payment that all rights of way are free from obstruction. We also have concerns about the purchasing of public access under the provisions of the Countryside Stewardship Scheme. Our research shows that most of the access sites were previously open to the public to a greater or lesser degree and/or had access problems which were off-putting to visitors. We believe that this scheme has many benefits and provides excellent opportunities for better land management. However, it does not represent good value for money in terms of the benefits that it should provide the public through access provision, and consequently fails to support the economy in rural areas beyond its agricultural remit (such as by supporting tourism through providing a landscape that people can and want to visit). We strongly recommend that the millions of pounds spent on this scheme should be used far more strategically to deliver more far reaching local benefits, including supporting an open and well-maintained rights of way network and implementing Part 1 of the Countryside and Rights of Way Act 2000 which will bring many new opportunities for greater public access.
10. The Ramblers' Association welcomes the Environmentally Sensitive Areas (ESAs) scheme of management agreements and payments to farmers for the conservation and maintenance of the countryside. However, we would like to see this scheme reformed so that grants were made conditional upon the landowner's observance of their statutory duties in respect of rights of way. We believe there is a case for combining ESAs, Countryside Stewardship and the Farm Woodland Premium scheme into a single framework.
11. We feel there should be recognition and reward to the dedication of some smaller farmers operating at minimal levels of profit to preserving small fields and field margin features which are highly valued by visitors to the countryside. The farming industry can be strengthened through maintaining a diverse structure of farm size and types. Industrial scale farming using intensive farming practices can lead to a reduction in landscape features that provide wildlife habitats. The RA shares the concerns of other countryside organisations regarding the loss of landscape features such as hedgerows and dry stone walls and the effects of overgrazing on hillsides We welcome the progress that has been made in addressing these problems but feel there is still much more to be achieved. Farmers need to be rewarded for good practice rather than productivity.
12. There are some welcome developments in the farming and food sectors. These positive aspects need to be better supported to achieve their full potential. For example the speciality and local foods sector. Production of these foods are based on quality not the cheapest price. It also provides a link between farmers and consumers and the landscape, thus providing an incentive to protect it.
13. Another example of this is organic farming. Following a ground shift in public awareness of organic produce the food retailers have realised there is a need to meet consumer demand. Retailers should recognise they have a major role to play in supporting conversion to organic systems with significant environmental benefits beyond non-use of pesticides and artificial fertilisers. It has been an awareness of the impacts of intensive farming practices by pioneer organic farmers that resulted in organic farms having a more positive impact on the environment. Future demand for organic produce should be met by supporting organic practices that continue to foster practices that increase farm biodiversity. Furthermore, such practices need to be developed to provide further benefits such as increased access and landscape enhancement.
14. In the short term the RA hopes that the outcome of the current examinations of the food and farming industries will result in a major shift in farming and food production policy, along with a recognition of the contribution that walking and tourism now make to the rural economy. A change in current policy on food production methods inevitably requires a re-think on funding streams and how to increase funding and apply it in a more targeted way to ensure that agri-environment packages deliver a wide range of benefits to all the stakeholders of the rural economy.
15. The Ramblers' Association supports increased funding for the England Rural Development Programme through an increased share of EU funds for the UK at the mid-term review and further commitment to modulation between 2003 and 2006.
16. The problems that face the farming and food industry have been recognised for some time and derive mainly from a continuing narrow focus on over-production supported by subsidies mainly as a result of the Common Agricultural Policy. The RA hopes that in the medium to long term CAP reforms will further raise the ability of agri-environment schemes to deliver tangible multi-sector benefits throughout the countryside. We recognise that this will take time but believe it is essential in cushioning the economy in rural areas against any future crisis brought about by the current focus on support for unsustainable farming practice. We would like to see the Government push for increased degressivity in forthcoming rounds of CAP reform discussions.
17. The Foot and Mouth outbreak clearly demonstrated the role walking plays in the economy. Walking has an important contribution to make to a diverse range of businesses across all sectors of the rural economy. We recognise that those who live and work in rural areas are of primary importance but we also believe that those who visit the countryside share a significant appreciation of the qualities of the countryside, and that both communities and visitors alike wish to see these qualities protected. The RA believes that future funding requirements for farming subsidies and economic support mechanisms to rural areas need to consider all the facets of the economy in rural areas, strengthening it and preventing over-reliance on one particular sector. The creation of cohesive, cross compliant agri-environment schemes and an integrated approach to planning policies, (ensuring they do not simply allow a proliferation of development that damages the character of the countryside), will reinforce the qualities that people seek as inhabitants and visitors alike.
18. We recommend that Government agricultural policy ensures the creation of a highly diverse food and farming sector by increasing funding to and making the environmental focus of the current schemes broader so that landscape, biodiversity and amenity objectives are equal. This will enable these schemes to deliver to society the health benefits provided by outdoor recreation and aid the development of a greater understanding and appreciation of the countryside by making it more accessible and beautiful for all to enjoy.
The Ramblers' Association
Prepared 13 May 2002


Aquamarine can be use as a calming stone, also believe to resonate ocean energy, and to help connect with nature and spirits of the sea, it also associated with the throat chakra, courage, loyalty, friendship among others. All natural gemstones, have their own unique all natural, colors patterns, beauty and faults.
Ency. of Crystal, Gem and Metal Magic by Scott Cunningham Easy to use, this reference from Scott Cun..
A mix of untumbled Aquamarine stones. Stones range in size from jewelry sized chips to stones 1 1/2"..