text:
import logging
import math
from functools import partial
from typing import Any, Callable, Dict, Optional, Sequence, Tuple

import torch

from .tensor_utils import tensor_tree_map, tree_map

def _fetch_dims(tree):
    shapes = []
    tree_type = type(tree)
    if tree_type is dict:
        for v in tree.values():
            shapes.extend(_fetch_dims(v))
    elif tree_type is list or tree_type is tuple:
        for t in tree:
            shapes.extend(_fetch_dims(t))
    elif tree_type is torch.Tensor:
        shapes.append(tree.shape)
    else:
        raise ValueError("Not supported")

    return shapes

@torch.jit.ignore
def _flat_idx_to_idx(
    flat_idx: int,
    dims: Tuple[int],
) -> Tuple[int]:
    idx = []
    for d in reversed(dims):
        idx.append(flat_idx % d)
        flat_idx = flat_idx // d

    return tuple(reversed(idx))

@torch.jit.ignore
def _get_minimal_slice_set(
    start: Sequence[int],
    end: Sequence[int],
    dims: int,
    start_edges: Optional[Sequence[bool]] = None,
    end_edges: Optional[Sequence[bool]] = None,
) -> Sequence[Tuple[int]]:
    """
    Produces an ordered sequence of tensor slices that, when used in sequence on a tensor with shape dims, yields
    tensors that contain every leaf in the contiguous range [start, end]. Care is taken to yield a short sequence of
    slices, and perhaps even the shortest possible (I'm pretty sure it's the latter).

    end is INCLUSIVE.
    """
    # start_edges and end_edges both indicate whether, starting from any given
    # dimension, the start/end index is at the top/bottom edge of the
    # corresponding tensor, modeled as a tree
    def reduce_edge_list(l):
        tally = 1
        for i in range(len(l)):
            reversed_idx = -1 * (i + 1)
            l[reversed_idx] *= tally
            tally = l[reversed_idx]

    if start_edges is None:
        start_edges = [s == 0 for s in start]
        reduce_edge_list(start_edges)
    if end_edges is None:
        end_edges = [e == (d - 1) for e, d in zip(end, dims)]
        reduce_edge_list(end_edges)

    # Base cases. Either start/end are empty and we're done, or the final,
    # one-dimensional tensor can be simply sliced
    if len(start) == 0:
        return [tuple()]
    elif len(start) == 1:
        return [(slice(start[0], end[0] + 1),)]

    slices = []
    path = []

    # Dimensions common to start and end can be selected directly
    for s, e in zip(start, end):
        if s == e:
            path.append(slice(s, s + 1))
        else:
            break

    path = tuple(path)
    divergence_idx = len(path)

    # start == end, and we're done
    if divergence_idx == len(dims):
        return [tuple(path)]

    def upper():
        sdi = start[divergence_idx]
        return [
            path + (slice(sdi, sdi + 1),) + s
            for s in _get_minimal_slice_set(
                start[divergence_idx + 1 :],
                [d - 1 for d in dims[divergence_idx + 1 :]],
                dims[divergence_idx + 1 :],
                start_edges=start_edges[divergence_idx + 1 :],
                end_edges=[1 for _ in end_edges[divergence_idx + 1 :]],
            )
        ]

    def lower():
        edi = end[divergence_idx]
        return [
            path + (slice(edi, edi + 1),) + s
            for s in _get_minimal_slice_set(
                [0 for _ in start[divergence_idx + 1 :]],
                end[divergence_idx + 1 :],
                dims[divergence_idx + 1 :],
                start_edges=[1 for _ in start_edges[divergence_idx + 1 :]],
                end_edges=end_edges[divergence_idx + 1 :],
            )
        ]

    # If both start and end are at the edges of the subtree rooted at
    # divergence_idx, we can just select the whole subtree at once
    if start_edges[divergence_idx] and end_edges[divergence_idx]:
        slices.append(path + (slice(start[divergence_idx], end[divergence_idx] + 1),))
    # If just start is at the edge, we can grab almost all of the subtree,
    # treating only the ragged bottom edge as an edge case
    elif start_edges[divergence_idx]:
        slices.append(path + (slice(start[divergence_idx], end[divergence_idx]),))
        slices.extend(lower())
    # Analogous to the previous case, but the top is ragged this time
    elif end_edges[divergence_idx]:
        slices.extend(upper())
        slices.append(path + (slice(start[divergence_idx] + 1, end[divergence_idx] + 1),))
    # If both sides of the range are ragged, we need to handle both sides
    # separately. If there's contiguous meat in between them, we can index it
    # in one big chunk
    else:
        slices.extend(upper())
        middle_ground = end[divergence_idx] - start[divergence_idx]
        if middle_ground > 1:
            slices.append(path + (slice(start[divergence_idx] + 1, end[divergence_idx]),))
        slices.extend(lower())

    return [tuple(s) for s in slices]

@torch.jit.ignore
def _chunk_slice(
    t: torch.Tensor,
    flat_start: int,
    flat_end: int,
    no_batch_dims: int,
) -> torch.Tensor:
    """
    Equivalent to

        t.reshape((-1,) + t.shape[no_batch_dims:])[flat_start:flat_end]

    but without the need for the initial reshape call, which can be memory-intensive in certain situations. The only
    reshape operations in this function are performed on sub-tensors that scale with (flat_end - flat_start), the chunk
    size.
    """

    batch_dims = t.shape[:no_batch_dims]
    start_idx = list(_flat_idx_to_idx(flat_start, batch_dims))
    # _get_minimal_slice_set is inclusive
    end_idx = list(_flat_idx_to_idx(flat_end - 1, batch_dims))

    # Get an ordered list of slices to perform
    slices = _get_minimal_slice_set(
        start_idx,
        end_idx,
        batch_dims,
    )

    sliced_tensors = [t[s] for s in slices]

    return torch.cat([s.view((-1,) + t.shape[no_batch_dims:]) for s in sliced_tensors])

def chunk_layer(
    layer: Callable,
    inputs: Dict[str, Any],
    chunk_size: int,
    no_batch_dims: int,
    low_mem: bool = False,
    _out: Any = None,
    _add_into_out: bool = False,
) -> Any:
    """
    Implements the "chunking" procedure described in section 1.11.8.

    Layer outputs and inputs are assumed to be simple "pytrees," consisting only of (arbitrarily nested) lists, tuples,
    and dicts with torch.Tensor leaves.

    Args:
        layer:
            The layer to be applied chunk-wise
        inputs:
            A (non-nested) dictionary of keyworded inputs. All leaves must be tensors and must share the same batch
            dimensions.
        chunk_size:
            The number of sub-batches per chunk. If multiple batch dimensions are specified, a "sub-batch" is defined
            as a single indexing of all batch dimensions simultaneously (s.t. the number of sub-batches is the product
            of the batch dimensions).
        no_batch_dims:
            How many of the initial dimensions of each input tensor can be considered batch dimensions.
        low_mem:
            Avoids flattening potentially large input tensors. Unnecessary in most cases, and is ever so slightly
            slower than the default setting.
    Returns:
        The reassembled output of the layer on the inputs.
    """
    if not (len(inputs) > 0):
        raise ValueError("Must provide at least one input")

    initial_dims = [shape[:no_batch_dims] for shape in _fetch_dims(inputs)]
    orig_batch_dims = tuple([max(s) for s in zip(*initial_dims)])

    def _prep_inputs(t):
        if not low_mem:
            if not sum(t.shape[:no_batch_dims]) == no_batch_dims:
                t = t.expand(orig_batch_dims + t.shape[no_batch_dims:])
            t = t.reshape(-1, *t.shape[no_batch_dims:])
        else:
            t = t.expand(orig_batch_dims + t.shape[no_batch_dims:])
        return t

    prepped_inputs = tensor_tree_map(_prep_inputs, inputs)
    prepped_outputs = None
    if _out is not None:
        prepped_outputs = tensor_tree_map(lambda t: t.view([-1] + list(t.shape[no_batch_dims:])), _out)

    flat_batch_dim = 1
    for d in orig_batch_dims:
        flat_batch_dim *= d

    no_chunks = flat_batch_dim // chunk_size + (flat_batch_dim % chunk_size != 0)

    def _select_chunk(t):
        return t[i : i + chunk_size] if t.shape[0] != 1 else t

    i = 0
    out = prepped_outputs
    for _ in range(no_chunks):
        # Chunk the input
        if not low_mem:
            select_chunk = _select_chunk
        else:
            select_chunk = partial(
                _chunk_slice,
                flat_start=i,
                flat_end=min(flat_batch_dim, i + chunk_size),
                no_batch_dims=len(orig_batch_dims),
            )

        chunks = tensor_tree_map(select_chunk, prepped_inputs)

        # Run the layer on the chunk
        output_chunk = layer(**chunks)

        # Allocate space for the output
        if out is None:
            out = tensor_tree_map(lambda t: t.new_zeros((flat_batch_dim,) + t.shape[1:]), output_chunk)

        # Put the chunk in its pre-allocated space
        out_type = type(output_chunk)
        if out_type is dict:

            def assign(d1, d2):
                for k, v in d1.items():
                    if type(v) is dict:
                        assign(v, d2[k])
                    else:
                        if _add_into_out:
                            v[i : i + chunk_size] += d2[k]
                        else:
                            v[i : i + chunk_size] = d2[k]

            assign(out, output_chunk)
        elif out_type is tuple:
            for x1, x2 in zip(out, output_chunk):
                if _add_into_out:
                    x1[i : i + chunk_size] += x2
                else:
                    x1[i : i + chunk_size] = x2
        elif out_type is torch.Tensor:
            if _add_into_out:
                out[i : i + chunk_size] += output_chunk
            else:
                out[i : i + chunk_size] = output_chunk
        else:
            raise ValueError("Not supported")

        i += chunk_size

    out = tensor_tree_map(lambda t: t.view(orig_batch_dims + t.shape[1:]), out)

    return out

class ChunkSizeTuner:
    def __init__(
        self,
        # Heuristically, runtimes for most of the modules in the network
        # plateau earlier than this on all GPUs I've run the model on.
        max_chunk_size=512,
    ):
        self.max_chunk_size = max_chunk_size
        self.cached_chunk_size = None
        self.cached_arg_data = None

    def _determine_favorable_chunk_size(self, fn, args, min_chunk_size):
        logging.info("Tuning chunk size...")

        if min_chunk_size >= self.max_chunk_size:
            return min_chunk_size

        candidates = [2**l for l in range(int(math.log(self.max_chunk_size, 2)) + 1)]
        candidates = [c for c in candidates if c > min_chunk_size]
        candidates = [min_chunk_size] + candidates
        candidates[-1] += 4

        def test_chunk_size(chunk_size):
            try:
                with torch.no_grad():
                    fn(*args, chunk_size=chunk_size)
                return True
            except RuntimeError:
                return False

        min_viable_chunk_size_index = 0
        i = len(candidates) - 1
        while i > min_viable_chunk_size_index:
            viable = test_chunk_size(candidates[i])
            if not viable:
                i = (min_viable_chunk_size_index + i) // 2
            else:
                min_viable_chunk_size_index = i
                i = (i + len(candidates) - 1) // 2

        return candidates[min_viable_chunk_size_index]

    def _compare_arg_caches(self, ac1, ac2):
        consistent = True
        for a1, a2 in zip(ac1, ac2):
            assert type(ac1) == type(ac2)
            if type(ac1) is list or type(ac1) is tuple:
                consistent &= self._compare_arg_caches(a1, a2)
            elif type(ac1) is dict:
                a1_items = [v for _, v in sorted(a1.items(), key=lambda x: x[0])]
                a2_items = [v for _, v in sorted(a2.items(), key=lambda x: x[0])]
                consistent &= self._compare_arg_caches(a1_items, a2_items)
            else:
                consistent &= a1 == a2

        return consistent

    def tune_chunk_size(
        self,
        representative_fn: Callable,
        args: Tuple[Any],
        min_chunk_size: int,
    ) -> int:
        consistent = True
        arg_data = tree_map(lambda a: a.shape if type(a) is torch.Tensor else a, args, object)
        if self.cached_arg_data is not None:
            # If args have changed shape/value, we need to re-tune
            assert len(self.cached_arg_data) == len(arg_data)
            consistent = self._compare_arg_caches(self.cached_arg_data, arg_data)
        else:
            # Otherwise, we can reuse the precomputed value
            consistent = False

        if not consistent:
            self.cached_chunk_size = self._determine_favorable_chunk_size(
                representative_fn,
                args,
                min_chunk_size,
            )
            self.cached_arg_data = arg_data

        return self.cached_chunk_size


text:
package io.apiman.test.integration.ui.tests.organizations;

import static io.apiman.test.integration.ui.support.selenide.SelenideUtils.open;

import static com.codeborne.selenide.Condition.text;

import io.apiman.test.integration.categories.VisualTest;
import io.apiman.test.integration.ui.support.selenide.base.AbstractUITest;
import io.apiman.test.integration.ui.support.selenide.pages.organizations.OrgActivityListPage;

import org.junit.Test;
import org.junit.experimental.categories.Category;

/**
 * @author ldimaggi
 *
 * Acceptance test for requirement: APIMAN-46 - Organization UI - Audit/Activity UI Page
 * Test verifies presence of UI elements that contain expected information as created via REST for:
 *    apimanui/api-manager/orgs/{0}/activity - OrgActivityListPage.java
 *
 */
@Category({VisualTest.class})
public class OrgActivityIT extends AbstractUITest {

    /**
     * Verify expected presence of user, plan, app, api entries in organization activity log
     */
    @Test
    public void shouldListCorrectActivities() {
        OrgActivityListPage theActivityPage = open(OrgActivityListPage.class, organization.getName());

        theActivityPage.entriesContainer().shouldHave(
            text("admin created organization " + organization.getName())
        );
        theActivityPage.entriesContainer().shouldHave(
            text("admin created plan " + organization.getName() + " / " + plan.getName())
        );
        theActivityPage.entriesContainer().shouldHave(
            text("admin created api " + organization.getName() + " / " + api.getName())
        );
        theActivityPage.entriesContainer().shouldHave(
            text("admin created client app " + organization.getName() + " / " + client.getName())
        );
    }

}

redpajama_set_name: RedPajamaGithub


text:
Football: Bayern face Dortmund with relations at new low
Dortmund midfielder Henrikh Mkhitaryan (right) and Bayern Munich defender Pierre Emile Hojbjerg vie during their German Supercup football match in Dortmund on Aug 13, 2014. Bundesliga leaders Bayern Munich face Borussia Dortmund on Saturday, with relations between the German heavyweights seemingly at an all-time low. -- PHOTO: AFP
https://str.sg/328a
BERLIN (REUTERS) - Bundesliga leaders Bayern Munich face Borussia Dortmund on Saturday, with relations between the German heavyweights seemingly at an all-time low.
The atmosphere between the football clubs soured since Bayern began snapping up Dortmund players two years ago, with Mario Goetze becoming the first of a successful Dortmund team to leave for their league rivals.
Long before striker Robert Lewandowski joined the Bavarians this season, a war of words erupted between club bosses.
With Dortmund winger Marco Reus triggering the interest of Bayern, and club CEO Karl-Heinz Rummenigge saying this week they "might be potentially interested" in him, ties have never been so strained.
Club bosses will again skip the traditional pre-game lunch to avoid each other, while Dortmund sports director Michael Zorc rejected the latest Bayern advance for Reus as just another "distraction".
"We are not paying any attention to what comes out of Munich. It is repetitive after all," he said.
It is not the first time Bayern have made open advances for German international Reus but the timing is important as troubled Dortmund are under pressure to start delivering in the league.
They are in 15th place, a full 14 points behind Bayern, after losing six of their nine league games.
A 3-0 victory over St Pauli in the German Cup on Tuesday offered some respite for coach Juergen Klopp, with under-fire striker Ciro Immobile scoring once and setting up another.
Dortmund's defence also looked to be gradually find its stability, with Mats Hummels and Neven Subotic resuming their central partnership and Sokratis Papastathopoulos effective in his new role as full-back.
Fans are also fully behind the team with one woman making a public declaration of love during the post-game news conference on Tuesday. "You led us to success and we will lead you through the crisis," she told a smiling and embarrassed-looking coach Klopp, before he stood up to hug her.
He will need all the support he can get against Bayern, who are undefeated in the three competitions they are still in this season.
Dortmund beat them in the German Super Cup in August but that seems like a lifetime ago.
Bayern have continued to improve over the past few months and are now four points clear at the top.
With Franck Ribery back to full fitness and fellow winger Arjen Robben, who sat out their 3-1 German Cup win over Hamburg on Wednesday, also expected to return to the starting line-up, Bayern are the odds-on favourites.
"When you look at the table then no," said Bayern midfielder Thomas Mueller when asked whether the teams had similar quality. "But they do if you look at the difficulty factor.
"Dortmund are always an uncomfortable opponent. Maybe it is even easier for them than when they face other teams because they know exactly what plan to follow against us.
"I don't expect we will be leading 5-0 at half-time. There have been a lot of tight games in the past years between but if we keep our cool and avoid their quick breaks then we will look good."

redpajama_set_name: RedPajamaCommonCrawl


I love watching the cattle graze peacefully on these beautiful pastures right on the shore of Prince Edward Island. There's nothing like it to help us relax after a long, hard day.
Ashley Wood raises beef, potatoes, turnips, soybeans, wheat and corn and is a great steward of the pastures and fields in Cherry Valley PEI.
He and his family, including his two young 'future farmer' sons, passionately tend to a cow/calf and a beef finishing operation. They raise over a hundred cattle including Angus, Hereford, Simmental and Charolais breeds.
Ashley is a proud Prince Edward Island Certified Beef producer, supplying Happy, Healthy, Humane local beef to Atlantic Canada and beyond.


text:
modified on 23 October 2018 at 18:14 ••• 10,099,023 views
Bylaska (Talk | contribs)
(→)
Edoapra (Talk | contribs)
(22 intermediate revisions not shown)
__NOTITLE__
__NOTOC__
=NWChem: Open Source High-Performance Computational Chemistry=
NWChem software can handle:
*Biomolecules, nanostructures, and solid-state
*Properties and relativistic effects
NWChem is actively developed by a consortium of developers and maintained by the [http://www.emsl.pnl.gov EMSL] located at the Pacific Northwest National Laboratory ([http://www.pnl.gov PNNL]) in Washington State. Researchers interested in contributing to NWChem should review the Developers page. The code is distributed as open-source under the terms of the [http://www.opensource.org/licenses/ecl2.php Educational Community License version 2.0] (ECL 2.0).
NWChem is actively developed by a consortium of developers and maintained by the [http://www.emsl.pnl.gov EMSL] located at the Pacific Northwest National Laboratory ([http://www.pnl.gov PNNL]) in Washington State. Researchers interested in contributing to NWChem should review the [http://www.nwchem-sw.org/index.php/Developer Developers page]. The code is distributed as open-source under the terms of the [http://www.opensource.org/licenses/ecl2.php Educational Community License version 2.0] (ECL 2.0).
The current version of NWChem is version 6.6 can be [[Download|downloaded here]].
The current version of NWChem is version 6.8.1 can be downloaded from this [[https://github.com/nwchemgit/nwchem/releases/tag/6.8.1-releaselink]].
=== NWChem 6.6 is available for [[Download| download]]===
=== NWChem 6.8.1 is available for [[https://github.com/nwchemgit/nwchem/releases/tag/6.8.1-release download]]===
== EMSL Arrows ==
== ==
[[file:myarrowmovie.gif|right|200px|caption]]
[[file:emslarrows.png|right|200px|caption]]
For more information see [http://www.nwchem-sw.org/index.php/NWChem:Current_events#"EMSL_Arrows_-_An_Easier_Way_to_Use_NWChem"] and [http://www.nwchem-sw.org/index.php/EMSL_Arrows#"EMSL Arrows"]
=== [https://arrows.pnnl.gov/api EMSL Arrows API] ===
== Citation ==
 [https://arrows.emsl.pnnl.gov/api ''' EMSL Arrows API''']
== NWChem Citation ==
The current version of NWChem is version 6.8.1 can be downloaded from this [link].
NWChem 6.8.1 is available for [download]
EMSL Arrows
NWChem Citation


text:
BIG LOUD'S GRIFFEN PALMER GETS BIG BREAK
Big Loud Publishing songwriter Griffen Palmer won season two of NBC's Songland last night (5/18). With assistance from show producer and Grammy-winning hitmaker Shane McAnally, among others, Palmer crafted a tailor-made version of his ballad "Second Guessing" for Florida Georgia Line, which is out now.
Other producers and songwriters involved in making the track include Corey Crowder, Ester Dean, Andrew DeRoberts, Tyler Hubbard, Brian Kelley, Benjamin Simonetti, Ryan Tedder and Geoff Warburton.
"Being on Songland was such an incredible experience and learning opportunity for me as a songwriter. I still can't believe that a band I've looked up to for so many years has chosen my song to record as their own. Being able to share this moment with friends and family on national television makes it all that much more special," shared Picking, Ontario native Palmer.
Featured on FGL's forthcoming 6-Pack EP, "Second Guessing" marks Palmer's second high-profile Country cut. His first career release was Keith Urban's "Polaroid," off his THE SPEED OF NOW PART 1 album, coming this fall.
The 24-year-old up and comer is currently working on his songwriting development among Big Loud's roster and is gearing up to release new music sometime later this year.
Stream season two of Songland here and check out "Second Guessing" here.


text:
"Oh Father" is a song recorded by American singer Madonna for her fourth studio album Like a Prayer (1989).  It was released as the fourth single from the album on October 24, 1989, by Sire Records. The song was not released as a single in most European territories until December 24, 1995, when it appeared on the 1995 ballads compilation Something to Remember. Written and produced by Madonna and Patrick Leonard, the nexus of "Oh Father" was the presence of male authoritative figures in Madonna's life, most prominently her father, Tony Ciccone. Madonna's relationship with her father had soured after her mother's death in 1963 and his remarriage three years later. While developing the Like a Prayer album, Madonna was in an emotional state of mind due to her personal problems, which is reflected in "Oh Father".

Musically, "Oh Father" is a baroque pop ballad. It was recorded at a studio in the Garment District of New York City. Leonard put together different types of chord progression and created the basic outline of a melody, which Madonna shaped and then wrote lyrics to fit the melody. She used a contrast of timbre while singing the song, which also featured instrumentation from strings, piano, violin and drums. "Oh Father" received positive reviews from critics and authors, but commercially was less successful than Madonna's previous singles. In most of the countries where it was released, the song failed to attain top-ten positions, except in Finland, where it peaked at number six. It ended Madonna's string of 16 consecutive top five singles in the United States.

The music video of the song was Madonna's attempt to embrace and accept her mother's death. Directed by David Fincher and shot in black-and-white, it shows a little girl playing in the snow, as her mother dies. A grown-up Madonna follows the child and sings the song, as the child runs away from her abusive father. Described by reviewers as "autobiographical", the video was listed by Rolling Stone as one of "The 100 Top Music Videos". Scholars noted how Madonna's persona was split into the child and adult in the video, and one writer described a scene involving the dead mother shown in her wake, with her lips sewn shut, as one of the most disturbing scenes in the history of mainstream music videos—the scene was inspired by Madonna's memory of her mother from her funeral. "Oh Father" was performed only on the Blond Ambition World Tour in 1990, where Madonna portrayed a woman trying to find her religion and her battle for it.

Background

When Madonna was five years old, in 1963, her mother, Madonna Ciccone (whom Madonna was named after), died of breast cancer at the age of 30. Months before this, Madonna noticed changes in her mother's behavior and personality from the attentive homemaker she was, but did not understand the reasons. Mrs. Ciccone, at a loss to explain her dire medical condition, would often begin to cry when questioned by Madonna, at which point Madonna would respond by wrapping her arms around her mother tenderly. "I remember feeling stronger than she was", Madonna recalled, "I was so little and yet I felt like she was the child." Madonna later acknowledged that she had not grasped the concept of her mother dying. "There was so much left unsaid, so many untangled and unresolved emotions, of remorse, guilt, loss, anger, confusion. ... I saw my mother, looking very beautiful and lying as if she were asleep in an open casket. Then I noticed that my mother's mouth looked funny. It took me some time to realize that it had been sewn up. In that awful moment, I began to understand what I had lost forever. The final image of my mother, at once peaceful yet grotesque, haunts me today also."

Madonna eventually learned to take care of herself and her siblings, and she turned to her paternal grandmother in the hope of finding some solace and some form of her mother in her. The Ciccone siblings resented housekeepers and invariably rebelled against anyone brought into their home ostensibly to take the place of their beloved mother. In an interview with Vanity Fair, Madonna commented that she saw herself in her youth as a "lonely girl who was searching for something. I wasn't rebellious in a certain way. I cared about being good at something. I didn't shave my underarms and I didn't wear make-up like normal girls do. But I studied and I got good grades.... I wanted to be somebody." Terrified that her father, Tony Ciccone, could be taken from her as well, Madonna was often unable to sleep unless she was near him. Two years after her mother's death, her father married the family's housekeeper, Joan Gustafson. It was at this point that Madonna began to express unresolved feelings of anger towards her father that lasted for decades, and developed a rebellious attitude. She explained in interviews that "Like all young girls, I was in love with my father and I didn't want to lose him. I lost my mother, but then I was my mother... and my father was mine... When he married my stepmother, it was, 'OK, I don't need anybody.' I hated my father for a long, long time."

Writing and inspiration

When Madonna started work on her fourth studio album, Like a Prayer, she was already in an emotional state of mind, following her divorce with then-husband, Sean Penn, her thirtieth birthday, and unfavorable reviews for her acting endeavors. She had certain personal matters on her mind that she thought could be the musical direction of the album. While writing the songs for Like a Prayer, Madonna also acted in a Broadway production called Speed-the-Plow. In the play, she portrayed Karen, a secretary to a movie producer who bedded her on a bet with his friends. Karen later gets revenge, but is depicted as just as seedy and conniving as the men who had partaken in this bet and exploited her. Madonna was frustrated with the role and the negative reception, which she vented into her lyrics. The result was a set of three songs—"Till Death Do Us Part", "Promise to Try" and "Oh Father"—where she sought to purge herself from her personal paranoia and demons.

Written with producer Patrick Leonard, in "Oh Father" the singer wanted to revisit the pain and confusion that had characterized her relationship with her father. Generally accepted by critics and academics as a love letter to Tony Ciccone or as an indictment, Madonna never explained her inspiration behind "Oh Father", except saying that the song was about her father and a tribute to Simon & Garfunkel, her favorite band at that time. She wanted to leave it open for interpretation.

Although the singer has never mentioned physical abuse in her family, she had mentioned that her father was a disciplinarian and her stepmother was hard on her. Author Lucy O'Brien wrote in her book Madonna: Like an Icon that the song stemmed more from the emotional neglect that Madonna faced, with her father locked up in grief after Mrs. Ciccone died. When he married again, his new wife was wrapped up with her own children, so the older kids were often left to their own devices. O'Brien believed that for this reason, Madonna's girlhood would have been without much joy, and that "Oh Father" was a potent example of the singer using her imagination to escape from her troubled childhood, while blaming it on her father. Tony later said, "Maybe I'm not the greatest father in the world, but life wasn't easy for us, and Nonni [Madonna's nickname] knows all of this."

Recording and composition
When Madonna went to record "Oh Father", her troubled role in Speed-the-Plow was on her mind, with the result being that she vented her emotions in the recording of the song. Bill Meyers, who did the string arrangement for most of the songs on Like a Prayer, including "Oh Father", recalled that Madonna worked on the song with Leonard in "this really dingy, awful little studio in the Garment District in New York. It was grotesquely dirty and cramped, and that's what came out of it."

According to him, Madonna was moved while singing the song, since the theme suggested incest and the controversial topic of closet beatings. However, her insecurities about her childhood showed up in anxieties during her vocal performance. Meyers said that if Madonna bended a note or sang flat in a certain spot, she would go on doing that consistently as she did not like to vary her voice or change the tone. Madonna recalled that Leonard thought of the melody for the song. After the mixing was over, Meyers complimented Madonna by saying that it was her "strongest" vocal performance.

For the baroque pop ballad, Madonna uses a contrast of timbre, her higher smoother voice with her lower one. The song begins with the sound of violins for about 20 seconds. After this, drums, string arrangement and piano ushers on top of the violins, as Madonna sings the chorus line "You can't hurt me now, I got away from you, I never thought I would." The violins and the drum beats drop after the chorus, but come back again during the next bridge. As Madonna sings the verse "Oh father I have sinned", the violins change their pitch to a higher one. After the second chorus, there is an instrumental break where she sings about the realization that her father did not want to hurt her but she still ran away. The song ends with the guitar and violins fading out with Madonna's voice. In an interview with Paul Zollo, Madonna commented that the "Father" can refer to Tony, God or all the "authorities in her life". In a 2014 interview with Billboard celebrating the 25th anniversary of Like a Prayer, Leonard explained the recording process of the song:
"My favorite thing that we ever recorded, ever—or wrote—is 'Oh Father'... because we knew when we did it, that there was something about this that was in a way kind of the most *real* thing. [For] that song, the 'record' button was only pressed three times. That's it. So it's real. It's something that I really wanted to do and she was kind enough to say 'let's try this,' and it was not easy."

Critical reception

Critical response for "Oh Father" was generally positive. J. Randy Taraborrelli, author of Madonna: An Intimate Biography, commented that with the track, Madonna exposed herself by transforming her personal experience into art, making it clear to anyone how she felt about her relationship with Tony. Rooksby believed that the "psychobabble" phrases of feeling good about oneself in the song, would have made it extremely popular in the early Eighties. He added that "Oh Father" was the most compassionate and generous moment in Madonna's musical career and the track might have inspired the exploration of childhood in the music of contemporary artists like Kate Bush and Tori Amos, in particular Bush's song "The Fog" from her 1989 studio album, The Sensual World, and Amos' "Winter" from the 1992 effort, Little Earthquakes.  Author Leslie C. Dunn wrote in her book Embodied Voices, that the autobiographical nature of the song brought forth a new side of Madonna. Sharing the same view, Freya Jarman-Ivens, one of the authors of Madonna's Drowned Worlds, declared "Oh Father" as a powerful statement regarding father-daughter relationships. Allen Metz, author of The Madonna Companion, described the song as a "stark ballad with a serious string arrangement". O'Brien felt that the strings were dramatic and pretentious. She described Madonna's singing as consisting of "Courtney Love-style rasp" and adding that Madonna "attacks the song with personal passion".

Lennox Samuels from The Dallas Morning News felt that the "great sense of being hurt that is present in 'Oh Father' is far more relatable than any other Madonna song." Kevin Phinney from the Austin American-Statesman called it the strongest and the most shocking song on Like a Prayer. Alan Jones from Music Week said, "It's a complex piece, not her easiest to love, with constantly shifting tempo, pseudo-classical interludes and a stong vocal." Stephen Holden from The New York Times wrote that the orchestration of the song was "grandiloquent", while describing Madonna's delivery of the lines as an "angry triumph". Stewart Mason from Allmusic shared Holden's opinion, and described "Oh Father" as "[Madonna's] finest ballad performance ever". He added that the "upward modulation of the chorus, accompanied by some overdubbed self-harmonies that feature a very controlled and effective use of Madonna's highest register, is sheer brilliance, giving the song a steely resolve that removes any taint of self-pity from the verses." Music journalist J. D. Considine, while reviewing Like a Prayer for Rolling Stone, believed that despite the song's "lush" string arrangement, some of the lyrics contain a disquieting degree of pain. Hadley Freeman from The Guardian commented that the confessional nature of the lyrics of "Oh Father" was what appealed to her the most in the song. Negative reception for the song was given by Mark Browning, author of David Fincher: Films That Scar, who called it one of Madonna's weakest efforts, due to the verses sounding more like musical theater than a pop song. Entertainment Weeklys Chuck Arnold wrote that "[Madonna] has done other songs that deal with her family issues, but rarely better than this"; he listed "Oh Father" as the singer's 40th best single. Jude Rogers from The Guardian placed the track at number 28 of her ranking of Madonna's singles, in honor of her 60th birthday, writing: "Lush strings and bassy pianos on this classy 1989 primal scream. Hugely emo, parent-baiting lyrics, but gorgeous in its execution". In August 2018, Billboard picked it as the singer's 64th greatest single, writing that "['Oh Father'] not only set the tone for Madonna's more contemplative, downtempo decade to come, it also provided an early model for the piano-led power balladry of '90s singer-songwriters like Tori Amos and Jewel".

Chart performance
In the United States, "Oh Father" was released on October 24, 1989, and debuted at number 55 on the Billboard Hot 100, during the week of November 11, 1989. The song became Madonna's first single since "Holiday" in 1984 not to enter the top ten in the United States, peaking at number 20 on the week of January 6, 1990. This ended her streak of 16 consecutive top five singles and 17 consecutive top ten singles. It was present on the Hot 100 for a total of 13 weeks. In Canada, "Oh Father" debuted at number 84 on the RPM Singles Chart on November 11, 1989. After nine weeks, the song reached a peak of number 14 on the chart, and was present for a total of 15 weeks. The single was Madonna's lowest charting single in Australia at the time, where it peaked at number 59, breaking a run of 20 consecutive top 40 singles.

"Oh Father" was not released as a single in most European territories until December 24, 1995, when it appeared on Madonna's 1995 compilation album Something to Remember. The 1995 single was released with different track listing and artwork which included a photography still from the 1989 music video. The song debuted and peaked at number 16 on the UK Singles Chart on January 6, 1996. It became the third single of her career to miss the top-ten position in the United Kingdom, after "Lucky Star" (1984) and "Take a Bow" (1994). According to The Official Charts Company, "Oh Father" has sold 58,730 copies in the UK as of August 2008. The song also appeared on the Irish Singles Chart for one week at number 25 on January 4, 1996. The song was more commercially successful in Finland, where it reached number six. On the European Hot 100 Singles, the song debuted at number 73 on January 13, 1996. The next week, it reached its peak position at number 62 and became her lowest-charting single on the chart up to that point.

Music video

Synopsis

The music video was filmed during the last week of October 1989 at Culver Studios in Culver City, California, and was directed by David Fincher, who worked with Madonna in her video for "Express Yourself". Described by Carol Clerk, author of Madonnastyle, as "harrowingly autobiographical", the video was shot entirely in black-and-white and recreates the death scene of a young woman, exploring the tempestuous relationship that ensues between the husband and the daughter she has left behind. The singer recalled in a 1991 interview with Vanity Fair, that she remembered that her mother's lips looked funny in the funeral. When she got closer, she saw that Madonna Sr's lips had been sewn together. This image of her mother had haunted Madonna for many years, and led her to comment that she never could resolve her Electra complex.
I had to deal with the loss of my mother and then had to deal with the guilt of her being gone and then I had to deal with the loss of my father when he married my stepmother. So I was just one angry abandoned girl. I'm still angry. The part of me that goes around saying "Fuck you! Fuck you!" is the part that's covering up the part that's saying "I'm hurt!" I guess all of this came through in the video.

The clip begins with a young girl playing in the backyard as snow falls on the ground. The scene shifts to that of a bedside, where a young woman who has died, lies. Her husband covers her with a white sheet as a priest prays. Madonna, wearing a long, black coat, sings the song underneath a snow-covered, dead tree, as the young girl plays with her dead mother's jewelry. The husband comes and shouts at the girl, tearing away the woman's pearl necklace which drop at the little girl's feet. The adult Madonna is shown lying beside another man singing the song as the little girl visits her mother's grave. The man gets up and slaps Madonna in the face, as the little girl cries in front of the grave. She is taken away from the graveyard by her father, as interspersed scenes show the girl being kissed by her mother, her trying to reach the knob of a door, and Madonna powdering the bruise mark on her face.

As the singer walks through a forest, the father is shown resorting to drinking in grief. A funeral scene follows, showing the girl walking up to her mother's wake. When she sees her mother's lips sealed with thread, she runs away from the wake. Madonna walks through a house, where shadows show the girl being scolded and shouted at by the father. Ultimately she walks to the graveyard and stands beside an old man, implying that she herself is the little girl portrayed. The video ends with the little girl dancing in front of her mother's grave as snow falls around her.

Reception and analysis

Madonna later said that the end of the video was "my attempt to embrace and accept my mother's death". According to feminist writer E. Ann Kaplan, the video is said to have taken stylistic inspiration from the 1941 Orson Welles film, Citizen Kane. She described the video as a "typical adolescent story in Western cultural terms". It foregrounds Madonna's repressive Catholic upbringing and her conflicted relationship not only to her literal father in the video, but also a symbolic one—the Holy Father, the Law and the Patriarchy.

Bruce David Forbes, author of Religion and Popular Culture in America, felt that the video drew on Madonna's childhood experiences and dramatized her efforts to renegotiate these relationships, in her daily interactions with her lover and father, and in relation to Catholicism, which the singer referred to in the line "Oh father I have sinned". Dunn noticed that like the Pepsi commercial shot for her earlier single "Like a Prayer", Madonna's persona is split into a child and adult, who repeatedly fuse and separate. Leslie C. Dunn commented that as the narrative developed, the child is shown singing, but the adult Madonna's voice is heard, and when the adult Madonna appears in a hallway, her shadow is that of a child. Madonna responded to these observations by saying: "I think the biggest reason I was able to express myself and not be intimidated was not having a mother."

Dunn then moved onto the scene during the funeral, when the child trembled from seeing her mother's lips sewn shut. Described by her as one of the most troubling shots in mainstream music videos, the scene was inspired by Madonna's memory of her mother lying in her wake. In the 1990 MTV special hosted by Kurt Loder titled Breakfast with Madonna, Loder described the video as "amazing", then asked Madonna if her father had seen it. Madonna responded, "To tell you the truth, I don't know if he's seen it. I'm sort of afraid to ask." After MTV world-premiered the video on November 11, 1989, they wanted to pull it off broadcast until the scene with the lips shut was removed. Madonna disagreed and told them that she would cancel future deals with the channel, prompting MTV to air the video again. The music video has been honored by Rolling Stone as one of "The 100 Top Music Videos", placed at number 66. In 1991, the video received a nomination at the 33rd Grammy Awards, in the category of Best Short Form Music Video. Madonna's vision of reconciliation in the music videos of both "Oh Father" and her 1986 single "Papa Don't Preach" was later included in the third level of Madonna Studies, a controversial development of a field in media studies during the 1990s. The music video for "Oh Father" is commercially available on Madonna's The Immaculate Collection (1990) DVD/VHS compilation.

Live performance and covers

Madonna performed "Oh Father" on her 1990 Blond Ambition World Tour in a medley with "Live to Tell", during the second segment of the show. As the performance of "Like a Prayer" ended, Madonna, who was dressed in a clergyman's robe with a crucifix around her neck, and a veil around her head, knelt on a church nave, while incense fumes wafted around her. She started singing "Live to Tell" from a confession bench, with Roman columns and a platform full of votive candles in the background. In the middle of the song, she started singing "Oh Father" while a dancer in a black frock played the role of a priest. The dancer, Carlton Wilborn, recalled that this performance required a lot of rehearsal time, since the dance portrayed Madonna as a woman trying to find her religion. He explained: "One side knew she needed it, another side was resistant, and our dance represented that battle inside." At the end of the performance, Wilborn pushed down Madonna's head before pulling her back up again, thus portraying his role as the priest, trying to wake up Madonna to the importance of religion. Two different performances were taped and released on video, the Blond Ambition – Japan Tour 90, taped in Yokohama, Japan, on April 27, 1990, and the Blond Ambition World Tour Live, taped in Nice, France, on August 5, 1990.

British alternative band My Vitriol released a rock version of the song on their 2001 album, Finelines. A cover version by Giant Drag done in folk rock style was included on the 2007 Madonna tribute compilation Through the Wilderness. Sia covered the song on her 2010 album, We Are Born. K. Ross Hoffman from Allmusic praised this version, saying that Sia's voice sounded throaty and it "recalled any number of tortured '90s alt-rock songstresses". Caryn Ganz of Rolling Stone said that Sia's cover "finds the sweetness in [the original song], brightening it into an airy, blippy closer."

Track listing and formats

7" / Cassette Single (US)
 "Oh Father" (7" Edit) – 4:20
 "Spanish Eyes" (LP Version) – 5:15

UK Cassette Single (1995)
 "Oh Father" (LP Version) – 4:58
 "Live to Tell" (Live Edit from Ciao Italia) – 6:22

UK CD Single (1995)
 "Oh Father" (LP Version) – 4:58
 "Live to Tell" (Live Edit from Ciao Italia) – 6:22
 "Why's It So Hard" (Live from The Girlie Show) – 5:12

Credits and personnel

Madonna –  vocals, songwriter, producer
Patrick Leonard – songwriter, producer, arranger
Bill Meyers – arranger
Bruce Gaitsch – acoustic guitar
Chester Kamen – guitar
Guy Pratt – bass guitar
Chuck Findley – arranger, brass

 Camille – violin, background vocals
Donna De Lory – background vocals
Niki Haris – background vocals
Paulinho da Costa – percussion
Herb Ritts – cover art photographer

Credits and personnel adapted from Like a Prayer album liner notes.

Charts

Notes

References

1980s ballads
1989 songs
1989 singles
1996 singles
Baroque pop songs
Black-and-white music videos
Madonna songs
Music videos directed by David Fincher
Sia (musician) songs
Pop ballads
Songs written by Madonna
Songs written by Patrick Leonard
Song recordings produced by Madonna
Song recordings produced by Patrick Leonard
Sire Records singles
Warner Records singles
Songs about fathers

redpajama_set_name: RedPajamaWikipedia


Almost a year after its global debut, the Rolls-Royce of SUV has finally landed in the Philippines. The Cullinan, dubbed the Most Luxurious SUV in the World, will enable Rolls-Royce to tap a new breed of customer: those who demand the ultimate in luxury while traversing the most challenging terrain.
The Cullinan possesses a bold, functional, and dynamic design language that combines traditional Rolls-Royce design cues with something more adventurous. Upfront, there is the Pantheon grille and deep-set laser headlights. Towards the side, the high-bodied SUV (maximum height is 1,836 millimeters) is cut and accentuated by 22-inch wheels.
Cullinan comes with two interior options. With space for three passengers in the rear, the five-seater 'Lounge' seating version is perfect for Filipino families.
The rear seats fold down electronically either completely, creating a flat load area or in a 2/3 and 1/3 split, increasing practicality even further. Rear passengers can still travel with a long load, or use the carpeted seat back as an occasional table on which to rest their precious personal items.
The rear compartment offers a standard 560 liters of space, growing to 600 with the parcel shelf removed. With both rear seats folded, the Cullinan offers a loading length of 2,245 mm and load capacity of 1,930 liters—one of the largest in the luxury SUV segment.
The four-seater version of Cullinan, also known as the Individual Seat configuration, provides for the highest level of luxury in the SUV segment.
The two individual rear seats are separated by a Fixed Rear Center Console, which contains a drinks cabinet with Rolls-Royce whisky glasses and decanter at the front, and champagne flutes and refrigerator in the rear. The seats feature ventilation and massage functions, and can be adjusted over a number of planes to offer ultimate comfort for rear seat passengers over longer.
In this Individual Seating configuration, a truly unique glass partition behind the rear seat isolates the passenger cabin from the luggage compartment, resulting in some of the lowest levels of noise recorded in an SUV cabin, while also protecting the Cullinan's occupants from temperature changes even when the luggage compartment is open.
A fashion theme is evident in the cabin in either version, with the upper dashboard fascia clad in a newly-developed and contemporary-looking 'Box Grain' black leather, a durable and water-resistant boarded leather similar to that used in Italian high-end luggage and handbag design.
Cullinan is the most technologically advanced SUV of its type in the world. On activation via its key, Cullinan lowers itself by 40mm to make entry, through segment-unique coach doors, effortless into its sanctuary of a cabin. Passengers are greeted by wide aperture, electronically-closing doors with touch sensitive door handles.
Available features include a panoramic glass roof, a studio-grade 18-channel, 18-speaker Bespoke audio system, a touchscreen operated infotainment system, and of course, the signature picnic tables.
Underneath the Cullinan is the Rolls-Royce's unique all-aluminum architecture called the 'Architecture of Luxury", delivering extraordinary body stiffness for exceptional 'best-in-class' performance on rough terrain, while maintaining the 'Magic Carpet Ride' that Rolls-Royce is famous for.
Add the latest generation of self-leveling four-corner air suspension, sophisticated all-wheel drive and all-wheel steering systems, a complete reworking of the new 6.75-liter twin-turbo V12 Rolls-Royce engine (850 Nm of torque at only 1,600 rpm) and the world's smoothest eight speed transmission, and you have the world's pinnacle luxury SUV.
Off-road, electronically-controlled air springs use a powerful compression system to actively push down any wheel when the system detects loss of traction to ensure every wheel is constantly in contact with the ground and maximum torque is delivered usefully to all wheels.
Effortless, Everywhere is available from a single source, known within Rolls-Royce as the 'Everywhere' button, offering four different programs within the off-road driving mode, in addition to Hill Descent and suspension height controls.
The Cullinan also delivers the deepest wading depth of any super-luxury SUV at 540 mm thanks to its ride height. But no off-road trip will ever mess up patrons' grand plans as is the way with Rolls-Royce's attention to detail. Both front and rear coach doors wrap low under the sill, ensuring that all dirt remains outside the door.
The Rolls-Royce Cullinan presented for display (and in these photos) cost P 53 million. It's finished in Sapphire Black with a Cobalto Blue Double Coachline. The interior of this Cullinan is upholstered with a two-tone Selby Grey/Navy Blue leather combination, and an open-pore Circassian Walnut veneer.
The Cullinan is now available for order in the Philippines, with first customer deliveries beginning in the next few months 2019.


text:
Q: Multiplexing a Circuit Frankly, I'm overwhelmed with this circuit that I have to start building in lab tomorrow.  Last week we built an octal decoder that takes a 3-bit binary input from 000 to 111 and displays a unique character of our choosing on an LED display (common anode). It was all combinational logic and I understand it fairly well. Now we're expanding on the circuit and I don't understand a lot of the circuitry or how it works. I will briefly describe the assignment and then try to explain what I do and don't understand. Here is the schematic:

Note that n=3 here.
The assignment:
We have to design and build a circuit that will display 9 bits of data on 3 separate 7 segment (common anode) displays. A DIP switch controls the three inputs of the decoder built last week. The three separate digit devices have corresponding segments wired together (e.g. a to a, b to b, etc.). The output only appears on one of the displays at a time, but if they are scanned fast enough they should all appear lit.  For the multiplexing I have to use 7403 open collector logic. For each digit, we must design a transistor to function as a "high end digit driver" in order to source/sink appropriate current to light the digit adequately. We must design a counter circuit that produces the digit drive signals sequentially from right to left.
My Understanding:
Multiplexing
My prof described multiplexers essentially as electrical switches; they choose which signals to transmit. I think my biggest misunderstanding is rooted in what purpose the multiplexer serves in this circuit. Is the multiplexer represented in the schematic where it says "buffers"? Is that common? Originally, when we were using one display with the decoder, we didn't need a multiplexer. If the ultimate goal is to display the output on two additional displays, why couldn't we just wire the all the a's, b's, c's, etc. together? He also mentioned demultiplexing, but it's not clear if that's necessary here.
High End Digit Driver
The purpose of the transistor drivers are to supply/sink current to/from the LEDs, but it's unclear to what it's connected to electrically in terms of the emitter, collector, and base. If the drivers are simply sourcing or sinking current, why are they connected to the multiplexer?
Counter Circuit
I've built a counter circuit once before using a 555 timer. This is the schematic:

I believe I could use this circuit and tinker with the R values until I get a desirable output. However, what is considered a desirable output here? The procedure just says the counter circuit has to produce the digit drive signals - this seems vague.

A: I'll try to cover the parts of your question separately.
Multiplexing

Is the multiplexer represented in the schematic where it says "buffers"?

Nope! The multiplexer is the select digit part of the circuit. As you said, a multiplexer is an electrical switch: if I have \$n\$ "selector" inputs, I can choose from \$2^n\$ outputs. In your case, you have a two bit counter (because 1 bit isn't enough to count up to 2) which is connected to the "select" part of the multiplexer. The mux then sets one of its four outputs high, depending on what the counter is. If you make your counter reset as soon as it hits 3, then your multiplexer will set 0 high, then 1, then 2, and repeat this loop forever.

If the ultimate goal is to display the output on two additional displays, why couldn't we just wire the all the a's, b's, c's, etc. together?

When the mux has set digit 0 high, we only want to light up display 0 (and likewise for 1 and 2). If you wire the displays together, you can't control them all with different digits.
High End Digit Driver

The purpose of the transistor drivers are to supply/sink current to/from the LEDs, but it's unclear to what it's connected to electrically in terms of the emitter, collector, and base.

Look at a single digit driver. When its mux output is high, you want current to flow from your power supply into the LEDs; when the mux is low, you want to block that current. That means your which digit? output is probably connected to the base of the transistor, and setting it high allows current to flow from the collector to the emitter. Is that enough of a step in the right direction?

If the drivers are simply sourcing or sinking current, why are they connected to the multiplexer?

You'll have three drivers. You only want to turn on one at a time, and the multiplexer picks which one. They aren't "simply sourcing current", I guess - they're current sources that you can selectively turn on and off.
Counter Circuit

However, what is considered a desirable output here?

You want to count
0, 1, 2, 0, 1, 2, ...

so you'll need two wires (like I mentioned above). What parts do you have access to? What kind of counter circuits have you seen before?
As Nedd mentioned, you have a good oscillator set up - that'll be the input to your counter. Flip-flops would be a standard approach from there.

A: I agree with you, and disagree with @Kynit: the multiplexer is the part marked "buffers" on your schematic. But more on that in a moment: let's walk through the circuit backwards, from the display to the oscillator.
I'm going not going to provide any schematics, and may be a little vague at times - as you're learning, I imagine it's best not to give too much away.
Display
As I understand it, your three 7-segment displays are common-anode, and have the cathodes of each segment wired to the corresponding segment in the other two displays. This implies that if you connect the three anodes to the positive supply and any given cathode to the negative supply (using appropriate current-limiting resistors, of course), then the corresponding segment would light up on all three displays.
This is obviously undesirable, because you want to be able to control each display independently. This is where the digit drivers come in.
Digit Drivers
Instead of directly connecting each of the three anodes to the positive supply, you can use three transistors (one on each display) as a switch to selectively connect a single display at any given time.
To do this, you'd connect each transistor's collector to the positive supply, the emitter to the display's anode via a current-limiting resistor, and use the base as the control input. Applying a positive voltage to the base turns the display on, connecting it to ground turns the display off.
Now you're able to decide which display will display any given digit. That's only half the battle though - you still need a way of taking the nine bits of input and selecting just the three bits corresponding to the display that's currently turned on.
Multiplexer
That's where the multiplexer comes in. Effectively, a multiplexer is just a device that takes multiple input signals and selects which one to output. Here, you want to split the nine-bit input into three three-bit inputs (i.e. digit 0, digit 1 and digit n-1 on your schematic), then use the multiplexer to place just one of those on the "display bus" at any given time.
You'll need a 3-to-1 multiplexer (you've got three inputs and one output), that is three bits wide (each signal is 3 bits). Fortunately, that's the same as having three parallel one-bit 3-to-1 multiplexers, for which schematics can easily be found online.
For example, bit 0 of digit 0, bit 0 of digit 1, and bit 0 of digit n-1 connect to the three inputs of the first multiplexer, and its output becomes bit 0 of your "display bus". Repeat twice more for bit 1 and bit 2.
So how do you decide which output is active at any time? The multiplexer has two extra "select" lines: applying logic 00 to these lines selects the first input, logic 01 the second, and logic 10 the third (with 11 unused). You may find designs with a slightly configuration (e.g. 01, 10, 11 instead of 00, 01, 10), but the first configuration is probably most common, and is what I assume in the rest of the discussion.
Great, so you can control which display is active, and which part of the input data it displays. But how to get it to cycle through the digits?
Counter
What you need now is some kind of cyclic counter that first selects display 0, then selects display 1, then display 2, back to display 0, display 1, and so forth.
This is known as a mod-3 counter, as it only has three possible output states: 0, 1, and 2. Digital counters are most easily built using a mod-2n construction, e.g. mod-2, mod-4, mod-8, etc, as this corresponds to a whole number of output bits (e.g. 1-bit, 2-bit and 3-bit respectively). Fortunately it's also easy to convert a mod-4 (i.e. 2-bit) counter with a "reset" input to mod-3 - simply tie the second output bit (which becomes high when the counter reaches 2) to the reset input. This means it will immediately return to 0 on the next cycle, instead of going to 3 first.
Again, schematics for the mod-4 counter can be found easily on the internet.
You can then tie this directly to your multiplexer - when the counter outputs 0 (logic 00) the input data for the first display is placed on the display bus, output 1 (01) selects the second display's data, and output 2 selects the third.
Again, this is only half the battle though - you can now cycle through the input data, but you still don't actively control which display is active.
2-to-4 Decoder
To control which display is active, you want to apply a positive signal to each display driver in turn. That is, when the counter outputs 0 (and the multiplexer has placed digit 0 on the display bus), you want the base of the first transistor to go positive, and the other two to go to ground. A similar argument applies for the other two display drivers. This is the purpose of your "select digit" block.
So, you basically want to take that two-bit output from your counter, and use it to select one of three lines depending on the counter value. The circuit that can do this is called a 2-to-4 decoder, which simply has two input lines and four outputs. When the input is 00, the first output is high and the others are low. When the input is 01, the second output is high and the others are low. When the input is 10, the third output is high and the others are low. And when the input is 11, the fourth output is high and the others are low.
You don't need four outputs, and your counter isn't ever going to output 11 anyway, so just use the first three outputs and connect them to your display drivers (ignoring the fourth output).
Note that your 3-to-1 multiplexer basically contains its own internal 2-to-4 decoder, so if you're implementing all of this in discrete logic you can actually simplify the multiplexer by using the output of the 2-to-4 decoder you're using for the digit selector - that's what seems to be implied on your schematic.
Again, schematics for 2-to-4 decoders are easily found online.
There's still one last thing you need though - some signal to cause the counter to cycle through its values.
Oscillator
Your 555 circuit is your oscillator, which simply produces a clock signal that drives the counter. The astable multivibrator circuit you show is exactly what you need, the only thing you need to figure out is the desired output frequency and duty cycle.
As mentioned by @EM Fields, the duty cycle probably isn't very important here, so a 50/50 cycle is a reasonable default.
For the frequency, you should try to refresh the whole display at least 30 times per second to avoid annoying flickering. Since you need to go through each of the three counter states to update the display once, that means your oscillator should run at at least 90 Hz, but it's worth going considerably faster than that just to be safe. On the other hand, during testing it can be useful to run the oscillator (very) slowly because then you can watch the digits as they change.
Given those values, there are formulas easily available that will tell you what size resistors to use.
A side note
Where the de-multiplexer comes into things (that your professor hinted about) is with the 2-to-4 decoder. As the name suggests, a de-multiplexer does the opposite of a multiplexer, taking a single input and switching it between one of several outputs. As such, the 2-to-4 decoder is basically just a one-bit 1-to-4 de-multiplexer, with its input permanently set at logic 1. This is why I disagree with @Kynit - what he/she describes as a multiplexer is, if anything, a de-multiplexer, and the actual multiplexer is elsewhere in the circuit.
I hope the above helps! If something doesn't quite add up, let me know and I'll be happy to sort it out.

A: The 555 provides only the oscillator, to produce the digit drive signals you also need a counter.  One example is an MC14017.  Use Q0, Q1, and Q2 as the inputs to your three digit drivers, then have the Q3 signal feedback to the Reset pin. So the output counts as 0,1,2,0,1.......
See the data sheet for other connection info:
http://www.onsemi.com/pub_link/Collateral/MC14017B-D.PDF
The circuitry after the counter could be considered a multiplexer as it selects one 3-bit data group at a time and sends it to the decoder.

A: Nice project.
Starting at the tail end, with the oscillator, you're proposing using a 555 in its standard astable mode, so it'll free-run with an output frequency of:
$$f = \frac{1.46}{(R1+2R2)\ C} $$
and a duty cycle of
$$D = \frac{R2}{R1+2Rb}$$
For your application, duty cycle doesn't matter much, so make R1 equal to about 1000 ohms and work out R2 for the frequency you want with C1 equal to \$ 1\mu\$F, as you've shown.
Next, you need to be able to select one digit at a time out of a sequential recurring select cycle (that's where the multiplexing comes in) and, all at once, light up the segments you've selected for that digit with its DIP switch.
In order to do the multiplexing properly, you need to select one digit's common anode at a time, and your oscillator driving something like a 4017 will get you the basic timing, but not the drive.
So far so good?

redpajama_set_name: RedPajamaStackExchange


text:
Lago Cecret () é um pequeno lago alpino localizado na cordilheira Wasatch, próximo da cidade de Alta, no estado americano de Utah.  Ela faz parte do Wasatch National Forest. Não se sabe porque o lago possui no nome a letra C envés da letra S (Da palavra Secret em inglês. Suponha-se que o nome teha sido dado por um mineiro que trabalhava na região.

O Lago pode ser acessado no verão através de trilhas do Little Cottonwood Canyon, o lago é cercado por quartzo. O Cecret Lake é cercado pelas cidades de Alta e Snowbird, que possui uma estação de esqui.

O Cecret Lake também garante boa parte do reservatório de água da região metropolitana de Salt Lake City

Ver Também
 Alta, Utah
 Little Cottonwood Canyon

Referências

Links Externos
 Trails.com
 Go-Utah.com
 Outdoor.com
 Climb-Utah.com
 UtahOutdoorActivities

Lagos do Utah
Região Metropolitana de Salt Lake City


text:
Q: Ну никак не работает Прошу помощи у спецов.
Есть код :
console.log(document.getElementsByClassName("_2thnNx-xCf3inVP2jkK276")[0].textContent);

В консоли в браузере срабатывает. Т.е. выдает искомое значение.
Использую его в Tampermonkey не идет, пишет:
Uncaught TypeError: Cannot read property 'textContent' of undefined
    at Si (userscript.html?name=New%20Userscript.user.js&id=b1c43f14-0bd8-4ecc-8874-876b76ed2b71:21)

A: Просто класс, который вы ищете, еще не не подгружен. Дождитесь пока документ полностью загрузится. Например:
document.onreadystatechange = function () {
  if (document.readyState === 'complete') {
    myFunction();
  }
}


Seal Slough is a tributary of Grays River in Wahkiakum County, Washington. Columbia Land Trust owns and cares for 305 acres of river, floodplain, and forest in the area.
The Columbia Land Trust seeks to counter years of river development that has diminished or destroyed important salmon spawning, migration, and rearing habitats in the Pacific Northwest. Columbia Land Trust returns watersheds to their historic condition by reconnecting tidal wetlands and planting native trees and shrubs.
One of the Land Trust's largest conservation projects is the restoration of a nearly 500-acre land parcel that includes approximately 12 miles of Klickitat River shoreline. So far, Columbia Land Trust has cleared away over six miles of an old riverfront road with financial support from the LEX-NG Fund. The impact on the local salmon population is immediate and tangible; sometimes only hours after extracting culverts and riprap from the shoreline, workers have seen salmon-spawning pools form and fill with fish.
Another recent project supported by the LEX-NG Fund is the restoration of a 400-acre property along the Hood River in Oregon. A decaying 2,600-foot-long, 10-foot-diameter steel pipeline was blocking the river's flow to a natural floodplain, so the Land Trust removed it. This is roughly equivalent to lifting and relocating 50 semi-truck trailers: not an easy feat. Once the original habitat is restored and the project is complete, salmon will use the shallow waters for spawning.
With their LEX-NG Fund grant, Columbia Land Trust will continue these, and other, restoration projects and is poised to carry out successful conservation efforts throughout the Pacific Northwest.


text:
Q: How to replace the using of JRParameter.REPORT_FILE_RESOLVER by JasperReportsContext? The JRParameter.REPORT_FILE_RESOLVER is deprecated in version 5.0.
The Javadoc suggests to use JasperReportsContext instead.
How to use JasperReportsContext?
The use is requested when using the Struts2 jasper plugin.
connection=dataSource.getConnection();
reportParams.put(JRParameter.REPORT_FILE_RESOLVER, new SimpleFileResolver(reportsDir));

A: Had the same problem (File resolver in Jasper Reports 5.0.1) and after many hours I found the answer in the JasperReports sources.
LocalJasperReportsContext ctx = new LocalJasperReportsContext(DefaultJasperReportsContext.getInstance());
ctx.setClassLoader(getClass().getClassLoader());
ctx.setFileResolver(new FileResolver() {
        @Override
        public File resolveFile(String s) {
            return new File(s);
        }
    });
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperfile);

JasperFillManager fillmgr = JasperFillManager.getInstance(ctx);
JasperExportManager exmgr = JasperExportManager.getInstance(ctx);

Edit:
The proper solution would include reporting the problem to the plugin's project ticketing system and maybe propose a patch for the resolver implementation.
While waiting for the patch to get accepted, you can extend the JasperReportsResult class and just override the doExecute() method, using the code above, with something like this:
protected void doExecute(String finalLocation, ActionInvocation invocation) throws Exception {
        // Will throw a runtime exception if no "datasource" property. TODO Best place for that is...?
        initializeProperties(invocation);

        LOG.debug("Creating JasperReport for dataSource = {}, format = {}", dataSource, format);

        HttpServletRequest request = (HttpServletRequest) invocation.getInvocationContext().get(ServletActionContext.HTTP_REQUEST);
        HttpServletResponse response = (HttpServletResponse) invocation.getInvocationContext().get(ServletActionContext.HTTP_RESPONSE);

        // Handle IE special case: it sends a "contype" request first.
        // TODO Set content type to config settings?
        if ("contype".equals(request.getHeader("User-Agent"))) {
            try (OutputStream outputStream = response.getOutputStream()) {
                response.setContentType("application/pdf");
                response.setContentLength(0);
            } catch (IOException e) {
                LOG.error("Error writing report output", e);
                throw new ServletException(e.getMessage(), e);
            }
            return;
        }

        // Construct the data source for the report.
        ValueStack stack = invocation.getStack();
        ValueStackDataSource stackDataSource = null;

        Connection conn = (Connection) stack.findValue(connection);
        if (conn == null)
            stackDataSource = new ValueStackDataSource(stack, dataSource, wrapField);

        if ("https".equalsIgnoreCase(request.getScheme())) {
            // set the the HTTP Header to work around IE SSL weirdness
            response.setHeader("CACHE-CONTROL", "PRIVATE");
            response.setHeader("Cache-Control", "maxage=3600");
            response.setHeader("Pragma", "public");
            response.setHeader("Accept-Ranges", "none");
        }

        // Determine the directory that the report file is in and set the reportDirectory parameter
        // For WW 2.1.7:
        //  ServletContext servletContext = ((ServletConfig) invocation.getInvocationContext().get(ServletActionContext.SERVLET_CONFIG)).getServletContext();
        ServletContext servletContext = (ServletContext) invocation.getInvocationContext().get(ServletActionContext.SERVLET_CONTEXT);
        String systemId = servletContext.getRealPath(finalLocation);
        Map parameters = new ValueStackShadowMap(stack);
        File directory = new File(systemId.substring(0, systemId.lastIndexOf(File.separator)));
        parameters.put("reportDirectory", directory);
        parameters.put(JRParameter.REPORT_LOCALE, invocation.getInvocationContext().getLocale());

        // put timezone in jasper report parameter
        if (timeZone != null) {
            timeZone = conditionalParse(timeZone, invocation);
            final TimeZone tz = TimeZone.getTimeZone(timeZone);
            if (tz != null) {
                // put the report time zone
                parameters.put(JRParameter.REPORT_TIME_ZONE, tz);
            }
        }

        // Add any report parameters from action to param map.
        Map reportParams = (Map) stack.findValue(reportParameters);
        if (reportParams != null) {
            LOG.debug("Found report parameters; adding to parameters...");
            parameters.putAll(reportParams);
        }

        ByteArrayOutputStream output;
        JasperPrint jasperPrint;

        LocalJasperReportsContext ctx = new LocalJasperReportsContext(DefaultJasperReportsContext.getInstance());
        ctx.setClassLoader(getClass().getClassLoader());
        ctx.setFileResolver(parameters.get());
        JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperfile);

        JasperFillManager fillmgr = JasperFillManager.getInstance(ctx);
        JasperExportManager exmgr = JasperExportManager.getInstance(ctx);

        // Fill the report and produce a print object
        try {
            JasperReport jasperReport = (JasperReport) JRLoader.loadObject(new File(systemId));
            if (conn == null) {
                jasperPrint = fillmgr.fillReport(jasperReport, parameters, stackDataSource);
            }
            else {
                jasperPrint = fillmgr.fillReport(jasperReport, parameters, conn);
            }
        } catch (JRException e) {
            LOG.error("Error building report for uri {}", systemId, e);
            throw new ServletException(e.getMessage(), e);
        }

        // Export the print object to the desired output format
        try {
            if (contentDisposition != null || documentName != null) {
                final StringBuffer tmp = new StringBuffer();
                tmp.append((contentDisposition == null) ? "inline" : contentDisposition);

                if (documentName != null) {
                    tmp.append("; filename=");
                    tmp.append(documentName);
                    tmp.append(".");
                    tmp.append(format.toLowerCase());
                }

                response.setHeader("Content-disposition", tmp.toString());
            }

            JRExporter exporter;

            if (format.equals(FORMAT_PDF)) {
                response.setContentType("application/pdf");
                exporter = new JRPdfExporter(ctx);
            } else if (format.equals(FORMAT_CSV)) {
                response.setContentType("text/csv");
                exporter = new JRCsvExporter(ctx);
            } else if (format.equals(FORMAT_HTML)) {
                response.setContentType("text/html");

                // IMAGES_MAPS seems to be only supported as "backward compatible" from JasperReports 1.1.0

                Map imagesMap = new HashMap();
                request.getSession(true).setAttribute("IMAGES_MAP", imagesMap);

                exporter = new JRHtmlExporter(ctx);
                exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
                exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, request.getContextPath() + imageServletUrl);

                // Needed to support chart images:
                exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
                request.getSession().setAttribute("net.sf.jasperreports.j2ee.jasper_print", jasperPrint);
            } else if (format.equals(FORMAT_XLS)) {
                response.setContentType("application/vnd.ms-excel");
                exporter = new JRXlsExporter(ctx);
            } else if (format.equals(FORMAT_XML)) {
                response.setContentType("text/xml");
                exporter = new JRXmlExporter(ctx);
            } else if (format.equals(FORMAT_RTF)) {
                response.setContentType("application/rtf");
                exporter = new JRRtfExporter(ctx);
            } else {
                throw new ServletException("Unknown report format: " + format);
            }

            Map exportParams = (Map) stack.findValue(exportParameters);
            if (exportParams != null) {
                LOG.debug("Found export parameters; adding to exporter parameters...");
                exporter.getParameters().putAll(exportParams);
            }

            output = exportReportToBytes(jasperPrint, exporter);
        } catch (JRException e) {
            LOG.error("Error producing {} report for uri {}", format, systemId, e);
            throw new ServletException(e.getMessage(), e);
        } finally {
            try {
                conn.close();
            } catch (Exception e) {
                LOG.warn("Could not close db connection properly", e);
            }
        }

        response.setContentLength(output.size());
        // Will throw ServletException on IOException.
        writeReport(response, output);
    }

and than use the new extension as the Result in Struts. Please test if the method is implemented correctly.
The final solution should include the use of a context instance setter on the Result object, or maybe a global static context instance accessible from the Result object.


text:
The dynamics of family — by blood or union, and in all cultures — give much insight into the world as we know it. Students in the Marriage and Family concentration within the Sociology major are prepared to pursue careers in a variety of human service professions.
Put Your Degree to Work
Note: While salaries vary depending on several factors including your level of experience, education and training, and geography and industry, here is a sampling of the future job growth and salaries in this area.
Community and social service occupations include social workers, counselors, and religious workers. Employment of community and social service occupations is projected to grow 10 percent from 2014 to 2024, faster than the average for all occupations, adding about 257,700 jobs. Most new jobs in this occupational group will be in the healthcare and social assistance industry. The median annual wage for community and social service occupations was $41,290 in May 2014, which was higher than the median annual wage for all occupations of $35,540.
U.S Bureau of Labor Statistics sample
Job Growth through 2024
Mental Health Counselors and Marriage and Family Therapists
19% (31,400 more jobs)
School and Career Counselors
8% (22,500 more jobs)
Social and Community Service Managers
Department of Sociology, Anthropology, and Social Work
Liberal Arts 331
kashmore@aum.edu
The course listings below are a representation of what this academic program requires. For a full review of this program in detail, please see our official online catalog AND consult with an academic advisor. This listing does not include the core curriculum courses required for all majors and may not include some program-specific information, such as admissions, retention and termination standards.
Course sampling specific to the Marriage and Family concentration includes:
SOCI 3250
Sociocultural definitions and responses to illness; organization of health and medical institutions; social epidemiology of disease; changing doctor-patient relationships; inequality and the distribution of health care; and emphasis on sociocultural and environmental factors influencing health and illness.
Sociological perspective of religion, including the effect of religion on behavior and attitudes and the reciprocal relationship of religion with other societal institutions. Examines major aspects of religion in the United States.
Sociology of Family
Analysis of family systems throughout the world, with emphasis on structural features, internal dynamics and current trends in the United States.
Intimate Lifestyles
An analysis of personal relationships in both traditional marriage and alternate forms. Examines adjustments required in the establishment and maintenance of family-type structures today.
Study of the sociological and anatomical aspects of human sexuality. examines sexual responsibility, sexual values, sexual practices and techniques, contraceptives, sexually transmitted diseases, deviant sexual practices, sexual dysfunctions and laws pertaining to sexual conduct.
Examines behavioral and non-behavioral forms of norm violations from theoretical, methodological and evidentiary sources. Substance abuse, mental and physical illness, sexual deviations, suicide, violence and societal reactions to forms of deviance are examined.


text:
Q: Saving file in specified directory Node.js I want to save an image using fs.writeFile, but I'm not able to do this.
The path in which i want to do this: C:\Users\poz\lotos\images\1232133123@gmail.com
My code:
    var d = new Date();
    var n = d.getTime() + ".jpeg";
    var dir = "C:/Users/poz/lotos/images/" + email;

    mkdirp(dir);

    var data = image.replace(/^data:image\/jpeg;base64,/,'');

    var dir2 = dir + "/";

    fs.writeFile(__dirname +'/../../images/' + email + '/' + n, data, 'base64' , function(err){
      if (err)
        return console.log(err);
    });

*The folder is created.
An error which I'm getting:
[Error: ENOENT: no such file or directory, open 'C:\Users\poz\lotos\images\1232133123@gmail.com\1602604489722.jpeg'] {
errno: -4058,
code: 'ENOENT',
syscall: 'open',
path: 'C:\Users\poz\lotos\images\1232133123@gmail.com\1602604489722.jpeg'
}

A: mkdirp(dir)

Returns a promise that is not awaited.
You should call
mkdirp.sync(dir)

Or rewrite your code in an async style.
I would suggest using:
const savePath = require('path').join(__dirname, '/../../images/', email)

to avoid issue related to OS or missing trailing slash.


text:
Sheepstreet Lane, Etchingham, East Sussex, TN19 7AZ
Sheepstreet LaneEtchingham, East Sussex, TN19 7AZ
2.23 Ac (0.9 Ha)
Unlisted barn with planning permission for single storey residential dwelling
Exceptional plot in an Area of Outstanding Natural Beauty with southerly views
Rural position between the villages of Ticehurst and Etchingham
About 2.2 acres in total
2 miles Etchingham mainline station
12.8 miles Tunbridge Wells
A rare opportunity to purchase a detached unlisted barn with planning permission for conversion to create a five bedroom Stephen Langer-designed family home in a wonderful rural location.
The Barn at Shortridge Farm enjoys a superb rural location in an Area of Outstanding Natural Beauty and is well set back from Sheepstreet Lane, which links the popular villages of Ticehurst and Etchingham.
The Barn is located below the main group of farm buildings to the north and is an unlisted agricultural structure, believed to have been erected around 1895 and standing on its own, with a southerly aspect and far-reaching views.
Planning permission Ref: RR/2016/3134/P, dated 3/03/2017 has been granted to convert this barn into a Stephen Langer-designed single-storey detached house with proposed accommodation of about 3,178 sq feet comprising spacious open plan reception rooms, five bedrooms, four bath/shower rooms, a south facing raised deck with access from the principal reception areas, cloakroom and parking.
The property will sit within grounds of about 2.2 acres and a landscaping scheme has been prepared to mitigate any concerns in relation to the impact that the proposal may have on the surrounding area.
Further information on the planning applications can be obtained from Rother District Council:
http://planweb01.rother.gov.uk/OcellaWeb/planningSearch.
We would refer you to Rother District Council's Community Infrastructure Levy policy relating to new development at http://www.rother.gov.uk/CIL.
The site is currently accessed via a right of way over the entrance to Shortridge House next door. However, the planning consent allows for the creation of a new shared private drive which will be implemented at the point of sale.
Agent's Note: The site plans are provided for guidance only and are not suitable for use for Land Registry compliant purposes.
View payable Stamp Duty for this property
Shortridge Farm Barn is located in an Area of Outstanding Natural Beauty in a delightful rural lane between Ticehurst and Etchingham which are both about two miles away. The A21 is accessible at Hurst Green about 2.6 miles to the east and has recently benefitted from a major upgrade which has significantly improved access north to Tonbridge (about 18 miles) and Sevenoaks (about 25 miles) and thereby the M25 London orbital for Gatwick Airport (via M23). The Channel Tunnel lies about 45 miles to the east via Hawkhurst/Tenterden and Hastings (about 16.5 miles) via the A21 to the south.
Local amenities include a Londis general store with post office, artisan bakery, pharmacy, greengrocer, dry cleaners, award winning pub and individual shops in Ticehurst, and a good range of services in Wadhurst (about 5.5 miles) and Hawkhurst (about 5.9 miles). Tunbridge Wells (about 12.8 miles) offers more comprehensive amenities including theatres and restaurants.
Directions: From Tunbridge Wells, proceed out of town on Frant Road (A267). Pass through Frant and then turn left on the B2099 towards Wadhurst. Continue through Wadhurst and Wallcrouch into Ticehurst and turn right into Church Road opposite The Bell. Pass the church on the left, down the hill and then turn left into Sheepstreet Lane which will be found on the left on the bend as you ascend. The entrance to Shortridge House can be found on the right-hand side after about 1.5 miles. Shortridge Farm is located at the end of this drive.
EPC Rating = F
Becky Card
Whether you're selling or looking to attract new tenants, we're here to help


text:
Home/Sports
Fernando Tatis Jr. is the new "king" of home runs
Santo Domingo, DR. – Nothing can stop the devastating power presented by the young Dominican slugger Fernando Tatis Jr., who has…
President Danilo Medina congratulates Los Toros Del Este for winning la Serie del Caribe
President Danilo Medina congratulated Los Toros Del Este on Saturday afternoon after winning his first Serie del Caribe crown held…
Toros del Este win Final Series champion Lidom
Santo Domingo, Dominican Republic. – Los Toros del Este defeated the Tigres del Licey 7 by 1 to be crowned…
Lidom announces final series calendar
The Professional Baseball League of the Dominican Republic (LIDOM) has already announced the Final Series calendar. The same night in…
Mariano Rivera baseball player receives highest honor in US hands from Trump
The Panamanian Mariano Rivera, a former New York Yankees player and one of the legends of baseball, received on Monday…
Manny Pacquiao has another great challenge in Las Vegas
Manny Pacquiao, legend of modern boxing, will have this Saturday one of his great challenges when he faces the dangerous…
Manny Acta says Las Estrellas Orientales will be competitive again
San Pedro de Macorís, Dominican Republic . – Las Estrellas Orientales, current national champions, will again have a competitive team…
Wander Franco a well-priced Dominican in the minors
Santo Domingo, Dominican Republic. With only 18 years and just two years of being signed as a professional by the…
Jasson Dominguez inspiration was his father
Jasson Domínguez SIGNED FOR US $ 5.1 MILLION Santo Domingo, Dominican Republic – Jasson Domínguez relates that his passion for…
Robert Puason To ask for money in semaphores a millionaire baseball
Santo Domingo, Dominican Republic – Robert Puason enjoys a great present, it promises a promising future, but the tears leave…
Santana hit two homers and towed five for Mariners
Santo Domingo, Dominican Republic. Domingo Santana hit two homers in a game for the third time this season, Marco Gonzales won…
Deontay Wilder fulminated in the first assault on Dominic Breazeale; the American achieved his ninth full weight defense
Boxing. – The dawn of this Sunday, in New York, was registered a fulminating and fast knockout on the part…
Las Aguilas Cibaeñas will repeat Yunesky Maya and signed Esmerlin Vásquez as a free agent
SANTIAGO. – Las Aguilas Cibaeñas announced that they will repeat the Cuban pitcher Yunesky Maya and that they have hired…
Miguel Feris is the new president of the Estrellas Orientales
SAN PEDRO DE MACORÍS. The shareholders meeting of the Sports Corporation of San Pedro de Macoris, owner of the Estrellas…
The percentage of Dominicans that reaches the Major Leagues goes up to 5.4%
The Bill submitted to the Senate the Romana Amarilis Santana (PLD) to regulate the signing of young players in the…
Pujols and Trout: a relationship of great respect
Albert Pujols sees him go to the dressing room after finishing the practices and immediately puts his label. "The best…


Former Athletic Director Glenn Hofmann, who resigned during an exhaustive investigation by a law firm hired by Merrimack, is now at Virginia Commonwealth University. Hofmann's employment with VCU was confirmed by Scott Day, assistant athletic director for athletic communications.
The VCU athletic director, Ed McLaughlin, was Hofmann's boss at Niagara University, where Hofmann served as an associate athletic director for external relations. McLaughlin left his post as athletic director at Niagara last July to join VCU. McLaughlin was employed at Merrimack College from 1997 to 2000.
Merrimack accepted Hofmann's resignation in late August after he had been on leave since early July. The investigation, led by attorneys at Bingham McCutchen, focused on matters that were "personnel based," which the college does not comment on. Before moving to VCU, Hofmann worked at Smolak Farms in North Andover, an apple orchard that also sells doughnuts. Merrimack is still wrestling with how it will replace Hofmann.


text:
Space, Uncategorized No Responses »
New solar flares are unleashing. We will see the effects in certain areas over the next 24 hours.
We Missed ISON But Some Bigger Friends Are Coming To Visit Soon
English: Comet Siding Spring (C/2007 Q3) as imaged in the infrared by the WISE space telescope. The images was taken January 10, 2010 when the comet was 2.5AU from the Sun. Text article: http://www.nasa.gov/mission_pages/WISE/multimedia/pia12830-a.html (Photo credit: Wikipedia)
While Comet ISON fizzled its way around the Sun and failed to deliver its previously forecasted sky show, we have a few new space friends making their way towards us in the coming 6 months:
Comet 209P/Linear (closest approach to the Sun – May 6, 2014) – This is reported to possibly be trailing a large meteor shower behind it which may deliver 100-400 meteors/hour through Earth's atmosphere. The comet will pass 0.0554 AU or 5,150,000 miles from the Earth.
Comet 2013 A1 (Siding Spring) (arrival Oct 25, 2014) – According to JPL estimates, this comet will pass within 75,000 miles from Mars and poses a potential threat to hardware in Mars orbit.
Asteroid 2003 QQ47 – Arrival March 21, 2014
Light Show in the Sky on May 25th
Environmental, Predictions, Space No Responses »
Look to the sky in the Northern Hemisphere on May 25th to see a light show of color courtesy of the Sun.
The Great Comet of 2013? C/2012 S1 (ISON) is Coming December 2013
The orbit of the comet of 1680, fit to a parabola, as shown in Isaac Newton's Principia (Photo credit: Wikipedia)
A comet discovered on September 21, 2012 by two Russian astronomers hasn't made the major news outlets yet but it will soon enough. Comet ISON is on its way to bring us a sky show that could be the one of the most memorable since 1680. Gradually increasing in brightness, it will become visible to users with small telescopes or binoculars by August 2013 and visible to the naked eye by late October/early November. It will stay visible in the sky until January 2014 and may actually be brighter then the moon itself. It is not on a trajectory with earth but will pass with 1 degree of the sun. More to come on this later.
Pons-Gambart Comet (C/2012 V4) Sighted Near Mars And Making Return Visit After 62 Years
Planets of the Solar System (Photo credit: Wikipedia)
A mysteriously speeding object whipping through the solar system has caused some initial concern but has now been identified as the elusive Pons-Gambert Comet (aka C/2012 V4). It has been spotted speeding past Mars on a trajectory that will put it near the sun before it speeds out of site and away from us. This is the first time the comet has been seen since 1827. It should be visible to viewers on December 11th in the Southeastern portion of the U.S. with a brightness magnitude between 9.0 to 9.5 but its trajectory is low to the horizon and may be hard to see. It is measuring 5.4KM in size (3.4 miles) and will pass behind the sun and will not come close to Earth.
1.1 X-Class Flare launched from the Sun
Signs, Space No Responses »
An X-class flare has just launched from the Sun's west limb. Impaceffect affects unknown at this time.
Just In – Sun Blasts Earth With Major M-Class Flare (March 10 – 1:54 PM EST)
The sun has fired another blast directly at Earth. A class M8.4 solar X-ray flare just was just sent hurling in our direction at 12:44 PM (EST) today from sunspot (AR1429) again . This is a major flare that is just a couple of points short of an X-Class flare and it is directly facing Earth so we will feel it with full force. Our magnetosphere is already stressed from the recent barrage and this can't make things any better. The chance of a strong geomagnetic storm is probable. This post will be updated as more details are determined. Sometime during the morning of March 12, a strong (K7 or higher) geomagnetic storm will arrive in the form of a magnetic cloud resulting from the full halo CME generated on March 9.