text:
/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.facebook.presto.sql.planner.assertions;

import com.facebook.presto.Session;
import com.facebook.presto.metadata.Metadata;
import com.facebook.presto.spi.block.SortOrder;
import com.facebook.presto.spi.predicate.Domain;
import com.facebook.presto.sql.parser.SqlParser;
import com.facebook.presto.sql.planner.Symbol;
import com.facebook.presto.sql.planner.plan.AggregationNode;
import com.facebook.presto.sql.planner.plan.ApplyNode;
import com.facebook.presto.sql.planner.plan.ExceptNode;
import com.facebook.presto.sql.planner.plan.FilterNode;
import com.facebook.presto.sql.planner.plan.GroupIdNode;
import com.facebook.presto.sql.planner.plan.IntersectNode;
import com.facebook.presto.sql.planner.plan.JoinNode;
import com.facebook.presto.sql.planner.plan.OutputNode;
import com.facebook.presto.sql.planner.plan.PlanNode;
import com.facebook.presto.sql.planner.plan.ProjectNode;
import com.facebook.presto.sql.planner.plan.SemiJoinNode;
import com.facebook.presto.sql.planner.plan.TableScanNode;
import com.facebook.presto.sql.planner.plan.UnionNode;
import com.facebook.presto.sql.planner.plan.ValuesNode;
import com.facebook.presto.sql.planner.plan.WindowNode;
import com.facebook.presto.sql.tree.Expression;
import com.facebook.presto.sql.tree.FunctionCall;
import com.facebook.presto.sql.tree.QualifiedName;
import com.facebook.presto.sql.tree.WindowFrame;
import com.facebook.presto.util.ImmutableCollectors;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;

import static com.facebook.presto.sql.ExpressionUtils.rewriteQualifiedNamesToSymbolReferences;
import static com.facebook.presto.sql.planner.assertions.MatchResult.NO_MATCH;
import static com.facebook.presto.sql.planner.assertions.MatchResult.match;
import static com.facebook.presto.sql.planner.assertions.StrictAssignedSymbolsMatcher.actualAssignments;
import static com.facebook.presto.sql.planner.assertions.StrictSymbolsMatcher.actualOutputs;
import static com.facebook.presto.util.ImmutableCollectors.toImmutableList;
import static com.facebook.presto.util.ImmutableCollectors.toImmutableMap;
import static com.google.common.base.Preconditions.checkState;
import static java.util.Collections.nCopies;
import static java.util.Objects.requireNonNull;

public final class PlanMatchPattern
{
    private final List<Matcher> matchers = new ArrayList<>();

    private final List<PlanMatchPattern> sourcePatterns;
    private boolean anyTree;

    public static PlanMatchPattern node(Class<? extends PlanNode> nodeClass, PlanMatchPattern... sources)
    {
        return any(sources).with(new PlanNodeMatcher(nodeClass));
    }

    public static PlanMatchPattern any(PlanMatchPattern... sources)
    {
        return new PlanMatchPattern(ImmutableList.copyOf(sources));
    }

    /**
     * Matches to any tree of nodes with children matching to given source matchers.
     * anyNodeTree(tableScanNode("nation")) - will match to any plan which all leafs contain
     * any node containing table scan from nation table.
     * @note anyTree does not match zero nodes. E.g. output(anyTree(tableScan)) will NOT match TableScan node followed by OutputNode.
     */
    public static PlanMatchPattern anyTree(PlanMatchPattern... sources)
    {
        return any(sources).matchToAnyNodeTree();
    }

    public static PlanMatchPattern anyNot(Class<? extends PlanNode> excludeNodeClass, PlanMatchPattern... sources)
    {
        return any(sources).with(new NotPlanNodeMatcher(excludeNodeClass));
    }

    public static PlanMatchPattern tableScan(String expectedTableName)
    {
        return node(TableScanNode.class).with(new TableScanMatcher(expectedTableName));
    }

    public static PlanMatchPattern tableScan(String expectedTableName, Map<String, String> columnReferences)
    {
        PlanMatchPattern result = tableScan(expectedTableName);
        return result.addColumnReferences(expectedTableName, columnReferences);
    }

    public static PlanMatchPattern strictTableScan(String expectedTableName, Map<String, String> columnReferences)
    {
        return tableScan(expectedTableName, columnReferences)
                .withExactAssignedOutputs(columnReferences.values().stream()
                        .map(columnName -> columnReference(expectedTableName, columnName))
                        .collect(ImmutableCollectors.toImmutableList()));
    }

    public static PlanMatchPattern constrainedTableScan(String expectedTableName, Map<String, Domain> constraint)
    {
        return node(TableScanNode.class).with(new TableScanMatcher(expectedTableName, constraint));
    }

    public static PlanMatchPattern constrainedTableScan(String expectedTableName, Map<String, Domain> constraint, Map<String, String> columnReferences)
    {
        PlanMatchPattern result = constrainedTableScan(expectedTableName, constraint);
        return result.addColumnReferences(expectedTableName, columnReferences);
    }

    private PlanMatchPattern addColumnReferences(String expectedTableName, Map<String, String> columnReferences)
    {
        columnReferences.entrySet().forEach(
                reference -> withAlias(reference.getKey(), columnReference(expectedTableName, reference.getValue())));
        return this;
    }

    public static PlanMatchPattern aggregation(
            Map<String, ExpectedValueProvider<FunctionCall>> aggregations,
            PlanMatchPattern source)
    {
        PlanMatchPattern result = node(AggregationNode.class, source);
        aggregations.entrySet().forEach(
                aggregation -> result.withAlias(aggregation.getKey(), new AggregationFunctionMatcher(aggregation.getValue())));
        return result;
    }

    public static PlanMatchPattern aggregation(
            List<List<String>> groupingSets,
            Map<Optional<String>, ExpectedValueProvider<FunctionCall>> aggregations,
            Map<Symbol, Symbol> masks,
            Optional<Symbol> groupId,
            PlanMatchPattern source)
    {
        PlanMatchPattern result = node(AggregationNode.class, source).with(new AggregationMatcher(groupingSets, masks, groupId));
        aggregations.entrySet().forEach(
                aggregation -> result.withAlias(aggregation.getKey(), new AggregationFunctionMatcher(aggregation.getValue())));
        return result;
    }

    public static PlanMatchPattern window(
            ExpectedValueProvider<WindowNode.Specification> specification,
            List<ExpectedValueProvider<FunctionCall>> windowFunctions,
            PlanMatchPattern source)
    {
        PlanMatchPattern result = node(WindowNode.class, source).with(new WindowMatcher(specification));
        windowFunctions.forEach(
                function -> result.withAlias(Optional.empty(), new WindowFunctionMatcher(function)));
        return result;
    }

    public static PlanMatchPattern window(
            ExpectedValueProvider<WindowNode.Specification> specification,
            Map<String, ExpectedValueProvider<FunctionCall>> assignments,
            PlanMatchPattern source)
    {
        PlanMatchPattern result = node(WindowNode.class, source).with(new WindowMatcher(specification));
        assignments.entrySet().forEach(
                assignment -> result.withAlias(assignment.getKey(), new WindowFunctionMatcher(assignment.getValue())));
        return result;
    }

    public static PlanMatchPattern output(PlanMatchPattern source)
    {
        return node(OutputNode.class, source);
    }

    public static PlanMatchPattern output(List<String> outputs, PlanMatchPattern source)
    {
        PlanMatchPattern result = output(source);
        result.withOutputs(outputs);
        return result;
    }

    public static PlanMatchPattern strictOutput(List<String> outputs, PlanMatchPattern source)
    {
        return output(outputs, source).withExactOutputs(outputs);
    }

    public static PlanMatchPattern project(PlanMatchPattern source)
    {
        return node(ProjectNode.class, source);
    }

    public static PlanMatchPattern project(Map<String, ExpressionMatcher> assignments, PlanMatchPattern source)
    {
        PlanMatchPattern result = project(source);
        assignments.entrySet().forEach(
                assignment -> result.withAlias(assignment.getKey(), assignment.getValue()));
        return result;
    }

    public static PlanMatchPattern strictProject(Map<String, ExpressionMatcher> assignments, PlanMatchPattern source)
    {
        /*
         * Under the current implementation of project, all of the outputs are also in the assignment.
         * If the implementation changes, this will need to change too.
         */
        return project(assignments, source)
                .withExactAssignedOutputs(assignments.values())
                .withExactAssignments(assignments.values());
    }

    public static PlanMatchPattern semiJoin(String sourceSymbolAlias, String filteringSymbolAlias, String outputAlias, PlanMatchPattern source, PlanMatchPattern filtering)
    {
        return node(SemiJoinNode.class, source, filtering).with(new SemiJoinMatcher(sourceSymbolAlias, filteringSymbolAlias, outputAlias));
    }

    public static PlanMatchPattern join(JoinNode.Type joinType, List<ExpectedValueProvider<JoinNode.EquiJoinClause>> expectedEquiCriteria, PlanMatchPattern left, PlanMatchPattern right)
    {
        return join(joinType, expectedEquiCriteria, Optional.empty(), left, right);
    }

    public static PlanMatchPattern join(JoinNode.Type joinType, List<ExpectedValueProvider<JoinNode.EquiJoinClause>> expectedEquiCriteria, Optional<String> expectedFilter, PlanMatchPattern left, PlanMatchPattern right)
    {
        return node(JoinNode.class, left, right).with(
                new JoinMatcher(
                        joinType,
                        expectedEquiCriteria,
                        expectedFilter.map(predicate -> rewriteQualifiedNamesToSymbolReferences(new SqlParser().createExpression(predicate)))));
    }

    public static PlanMatchPattern union(PlanMatchPattern... sources)
    {
        return node(UnionNode.class, sources);
    }

    public static PlanMatchPattern intersect(PlanMatchPattern... sources)
    {
        return node(IntersectNode.class, sources);
    }

    public static PlanMatchPattern except(PlanMatchPattern... sources)
    {
        return node(ExceptNode.class, sources);
    }

    public static ExpectedValueProvider<JoinNode.EquiJoinClause> equiJoinClause(String left, String right)
    {
        return new EquiJoinClauseProvider(new SymbolAlias(left), new SymbolAlias(right));
    }

    public static SymbolAlias symbol(String alias)
    {
        return new SymbolAlias(alias);
    }

    public static PlanMatchPattern filter(String predicate, PlanMatchPattern source)
    {
        Expression expectedPredicate = rewriteQualifiedNamesToSymbolReferences(new SqlParser().createExpression(predicate));
        return node(FilterNode.class, source).with(new FilterMatcher(expectedPredicate));
    }

    public static PlanMatchPattern apply(List<String> correlationSymbolAliases, Map<String, ExpressionMatcher> subqueryAssignments, PlanMatchPattern inputPattern, PlanMatchPattern subqueryPattern)
    {
        PlanMatchPattern result = node(ApplyNode.class, inputPattern, subqueryPattern)
                .with(new CorrelationMatcher(correlationSymbolAliases));
        subqueryAssignments.entrySet().forEach(
                assignment -> result.withAlias(assignment.getKey(), assignment.getValue()));
        return result;
    }

    public static PlanMatchPattern groupingSet(List<List<String>> groups, String groupIdAlias, PlanMatchPattern source)
    {
        return node(GroupIdNode.class, source).with(new GroupIdMatcher(groups, ImmutableMap.of(), groupIdAlias));
    }

    public static PlanMatchPattern values(Map<String, Integer> values)
    {
        PlanMatchPattern result = node(ValuesNode.class);
        values.entrySet().forEach(
                alias -> result.withAlias(alias.getKey(), new ValuesMatcher(alias.getValue())));
        return result;
    }

    public PlanMatchPattern(List<PlanMatchPattern> sourcePatterns)
    {
        requireNonNull(sourcePatterns, "sourcePatterns are null");

        this.sourcePatterns = ImmutableList.copyOf(sourcePatterns);
    }

    List<PlanMatchingState> shapeMatches(PlanNode node)
    {
        ImmutableList.Builder<PlanMatchingState> states = ImmutableList.builder();
        if (anyTree) {
            int sourcesCount = node.getSources().size();
            if (sourcesCount > 1) {
                states.add(new PlanMatchingState(nCopies(sourcesCount, this)));
            }
            else {
                states.add(new PlanMatchingState(ImmutableList.of(this)));
            }
        }
        if (node.getSources().size() == sourcePatterns.size() && matchers.stream().allMatch(it -> it.shapeMatches(node))) {
            states.add(new PlanMatchingState(sourcePatterns));
        }
        return states.build();
    }

    MatchResult detailMatches(PlanNode node, Session session, Metadata metadata, SymbolAliases symbolAliases)
    {
        SymbolAliases.Builder newAliases = SymbolAliases.builder();

        for (Matcher matcher : matchers) {
            MatchResult matchResult = matcher.detailMatches(node, session, metadata, symbolAliases);
            if (!matchResult.isMatch()) {
                return NO_MATCH;
            }
            newAliases.putAll(matchResult.getAliases());
        }

        return match(newAliases.build());
    }

    public PlanMatchPattern with(Matcher matcher)
    {
        matchers.add(matcher);
        return this;
    }

    public PlanMatchPattern withAlias(String alias, RvalueMatcher matcher)
    {
        return withAlias(Optional.of(alias), matcher);
    }

    public PlanMatchPattern withAlias(Optional<String> alias, RvalueMatcher matcher)
    {
        matchers.add(new Alias(alias, matcher));
        return this;
    }

    public PlanMatchPattern withNumberOfOutputColumns(int numberOfSymbols)
    {
        matchers.add(new SymbolCardinalityMatcher(numberOfSymbols));
        return this;
    }

    /*
     * This is useful if you already know the bindings for the aliases you expect to find
     * in the outputs. This is the case for symbols that are produced by a direct or indirect
     * source of the node you're applying this to.
     */
    public PlanMatchPattern withExactOutputs(List<String> expectedAliases)
    {
        matchers.add(new StrictSymbolsMatcher(actualOutputs(), expectedAliases));
        return this;
    }

    /*
     * withExactAssignments and withExactAssignedOutputs are needed for matching symbols
     * that are produced in the node that you're matching. The name of the symbol bound to
     * the alias is *not* known when the Matcher is run, and so you need to match by what
     * is being assigned to it.
     */
    public PlanMatchPattern withExactAssignedOutputs(Collection<? extends RvalueMatcher> expectedAliases)
    {
        matchers.add(new StrictAssignedSymbolsMatcher(actualOutputs(), expectedAliases));
        return this;
    }

    public PlanMatchPattern withExactAssignments(Collection<? extends RvalueMatcher> expectedAliases)
    {
        matchers.add(new StrictAssignedSymbolsMatcher(actualAssignments(), expectedAliases));
        return this;
    }

    public static RvalueMatcher columnReference(String tableName, String columnName)
    {
        return new ColumnReference(tableName, columnName);
    }

    public static ExpressionMatcher expression(String expression)
    {
        return new ExpressionMatcher(expression);
    }

    public PlanMatchPattern withOutputs(List<String> aliases)
    {
        matchers.add(new OutputMatcher(aliases));
        return this;
    }

    public PlanMatchPattern matchToAnyNodeTree()
    {
        anyTree = true;
        return this;
    }

    public boolean isTerminated()
    {
        return sourcePatterns.isEmpty();
    }

    public static PlanTestSymbol anySymbol()
    {
        return new AnySymbol();
    }

    public static ExpectedValueProvider<FunctionCall> functionCall(String name, List<String> args)
    {
        return new FunctionCallProvider(QualifiedName.of(name), toSymbolAliases(args));
    }

    public static ExpectedValueProvider<FunctionCall> functionCall(
            String name,
            Optional<WindowFrame> frame,
            List<String> args)
    {
        return new FunctionCallProvider(QualifiedName.of(name), frame, false, toSymbolAliases(args));
    }

    public static ExpectedValueProvider<FunctionCall> functionCall(
            String name,
            boolean distinct,
            List<PlanTestSymbol> args)
    {
        return new FunctionCallProvider(QualifiedName.of(name), distinct, args);
    }

    public static List<Expression> toSymbolReferences(List<PlanTestSymbol> aliases, SymbolAliases symbolAliases)
    {
        return aliases
                .stream()
                .map(arg -> arg.toSymbol(symbolAliases).toSymbolReference())
                .collect(toImmutableList());
    }

    private static List<PlanTestSymbol> toSymbolAliases(List<String> aliases)
    {
        return aliases
                .stream()
                .map(PlanMatchPattern::symbol)
                .collect(toImmutableList());
    }

    public static ExpectedValueProvider<WindowNode.Specification> specification(
            List<String> partitionBy,
            List<String> orderBy,
            Map<String, SortOrder> orderings)
    {
        return new SpecificationProvider(
                partitionBy
                        .stream()
                        .map(SymbolAlias::new)
                        .collect(toImmutableList()),
                orderBy
                        .stream()
                        .map(SymbolAlias::new)
                        .collect(toImmutableList()),
                orderings
                        .entrySet()
                        .stream()
                        .collect(toImmutableMap(entry -> new SymbolAlias(entry.getKey()), Map.Entry::getValue)));
    }

    @Override
    public String toString()
    {
        StringBuilder builder = new StringBuilder();
        toString(builder, 0);
        return builder.toString();
    }

    private void toString(StringBuilder builder, int indent)
    {
        checkState(matchers.stream().filter(PlanNodeMatcher.class::isInstance).count() <= 1);

        builder.append(indentString(indent));
        if (anyTree) {
            builder.append("anyTree");
        }
        else {
            builder.append("node");
        }

        Optional<PlanNodeMatcher> planNodeMatcher = matchers.stream()
                .filter(PlanNodeMatcher.class::isInstance)
                .map(PlanNodeMatcher.class::cast)
                .findFirst();

        if (planNodeMatcher.isPresent()) {
            builder.append("(").append(planNodeMatcher.get().getNodeClass().getSimpleName()).append(")");
        }

        List<Matcher> matchersToPrint = matchers.stream()
                .filter(matcher -> !(matcher instanceof PlanNodeMatcher))
                .collect(toImmutableList());

        builder.append("\n");

        if (matchersToPrint.size() + sourcePatterns.size() == 0) {
            return;
        }

        for (Matcher matcher : matchersToPrint) {
            builder.append(indentString(indent + 1)).append(matcher.toString()).append("\n");
        }

        for (PlanMatchPattern pattern : sourcePatterns) {
            pattern.toString(builder, indent + 1);
        }
    }

    private static String indentString(int indent)
    {
        return Strings.repeat("    ", indent);
    }
}

redpajama_set_name: RedPajamaGithub


text:
TH deficiency
Tyrosine hydroxylase (TH) deficiency is a disorder that primarily affects movement, with symptoms that may range from mild to severe.
The mild form of this disorder is called TH-deficient dopa-responsive dystonia (DRD). Symptoms usually appear during childhood. Affected individuals may exhibit unusual limb positioning and a lack of coordination when walking or running. In some cases, people with TH-deficient DRD have additional movement problems such as shaking when holding a position (postural tremor) or involuntary upward-rolling movements of the eyes. The movement difficulties may slowly increase with age but almost always get better with medical treatment.
The severe forms of TH deficiency are called infantile parkinsonism and progressive infantile encephalopathy. These forms of the disorder appear soon after birth and are more difficult to treat effectively.
Babies with infantile parkinsonism have delayed development of motor skills such as sitting unsupported or reaching for a toy. They may have stiff muscles, especially in the arms and legs; unusual body positioning; droopy eyelids (ptosis); and involuntary upward-rolling eye movements. The autonomic nervous system, which controls involuntary body functions, may also be affected. Resulting signs and symptoms can include constipation, backflow of stomach acids into the esophagus (gastroesophageal reflux), and difficulty regulating blood sugar, body temperature, and blood pressure. People with the infantile parkinsonism form of the disorder may have intellectual disability, speech problems, attention deficit disorder, and psychiatric conditions such as depression, anxiety, or obsessive-compulsive behaviors.
Progressive infantile encephalopathy is an uncommon severe form of TH deficiency. It is characterized by brain dysfunction and structural abnormalities leading to profound physical and intellectual disability.
The prevalence of TH deficiency is unknown.
Mutations in the TH gene cause TH deficiency. The TH gene provides instructions for making the enzyme tyrosine hydroxylase, which is important for normal functioning of the nervous system. Tyrosine hydroxylase takes part in the pathway that produces a group of chemical messengers (hormones) called catecholamines. Tyrosine hydroxylase helps convert the protein building block (amino acid) tyrosine to a catecholamine called dopamine. Dopamine transmits signals to help the brain control physical movement and emotional behavior. Other catecholamines called norepinephrine and epinephrine are produced from dopamine. Norepinephrine and epinephrine are involved in the autonomic nervous system.
Mutations in the TH gene result in reduced activity of the tyrosine hydroxylase enzyme. As a result, the body produces less dopamine, norepinephrine and epinephrine. These catecholamines are necessary for normal nervous system function, and changes in their levels contribute to the abnormal movements, autonomic dysfunction, and other neurological problems seen in people with TH deficiency.
Learn more about the gene associated with TH deficiency
This condition is inherited in an autosomal recessive pattern, which means both copies of the gene in each cell have mutations. The parents of an individual with an autosomal recessive condition each carry one copy of the mutated gene, but they typically do not show signs and symptoms of the condition.
Genetic Testing Registry: Segawa syndrome, autosomal recessive
Other Diagnosis and Management Resources (1 link)
GeneReview: Tyrosine Hydroxylase Deficiency
autosomal recessive infantile parkinsonism
Segawa syndrome, autosomal recessive
TH-deficient DRD
Health Topic: Autonomic Nervous System Disorders
Health Topic: Dystonia
National Institute of Neurological Disorders and Stroke: Dystonias Fact Sheet
MalaCards: segawa syndrome, autosomal recessive
Orphanet: Autosomal recessive dopa-responsive dystonia
Bachmann-Strauss Dystonia and Parkinson Foundation
Dopa-Responsive Dystonia Ireland
Dystonia Medical Research Foundation
National Organization for Rare Disorders (NORD): Dystonia
National Organization for Rare Disorders (NORD): Tyrosine Hydroxylase Deficiency
Furukawa Y, Kish S. Tyrosine Hydroxylase Deficiency. 2008 Feb 8 [updated 2017 May 11]. In: Pagon RA, Adam MP, Ardinger HH, Wallace SE, Amemiya A, Bean LJH, Bird TD, Ledbetter N, Mefford HC, Smith RJH, Stephens K, editors. GeneReviews® [Internet]. Seattle (WA): University of Washington, Seattle; 1993-2017. Available from http://www.ncbi.nlm.nih.gov/books/NBK1437/
Furukawa Y, Kish SJ, Fahn S. Dopa-responsive dystonia due to mild tyrosine hydroxylase deficiency. Ann Neurol. 2004 Jan;55(1):147-8.
Furukawa Y. Update on dopa-responsive dystonia: locus heterogeneity and biochemical features. Adv Neurol. 2004;94:127-38. Review.
Hoffmann GF, Assmann B, Bräutigam C, Dionisi-Vici C, Häussler M, de Klerk JB, Naumann M, Steenbergen-Spanjers GC, Strassburg HM, Wevers RA. Tyrosine hydroxylase deficiency causes progressive encephalopathy and dopa-nonresponsive dystonia. Ann Neurol. 2003;54 Suppl 6:S56-65.
Pearl PL, Capp PK, Novotny EJ, Gibson KM. Inherited disorders of neurotransmitters in children and adults. Clin Biochem. 2005 Dec;38(12):1051-8. Epub 2005 Nov 18. Review.
Pearl PL, Taylor JL, Trzcinski S, Sokohl A. The pediatric neurotransmitter disorders. J Child Neurol. 2007 May;22(5):606-16. Review.
Verbeek MM, Steenbergen-Spanjers GC, Willemsen MA, Hol FA, Smeitink J, Seeger J, Grattan-Smith P, Ryan MM, Hoffmann GF, Donati MA, Blau N, Wevers RA. Mutations in the cyclic adenosine monophosphate response element of the tyrosine hydroxylase gene. Ann Neurol. 2007 Oct;62(4):422-6.
Reviewed: April 2009

redpajama_set_name: RedPajamaCommonCrawl


text:
… observations from over a half century of geekiness.
"Star Wars Episode IX: The Rise of Skywalker" solders together the saga's many pieces…
Posted by A Middle Aged Geek on December 24, 2019
*****PLANET-KILLER SIZED SPOILERS AHEAD!*****
"Enjoy the show, you must…"
The most difficult aspect of writing this review was deciding how to write it. I decided not to write a full-length story synopsis, because the moment-to-moment plot mechanics are a lot less important (or interesting) to me than how "The Rise of Skywalker" (TROS) manages to pull off a few cinematic miracles. The first being to give a significant (and believable) role to the late original trilogy star Carrie Fisher, who'd tragically passed away three years ago. The second was to pull the Star Wars franchise out of a particularly divisive ditch known as "The Last Jedi." The third (and arguably most important) was to wrap up the nine-part, 42-year Skywalker cinematic saga into a coherent and entertaining narrative (with a few bits of arguably necessary retconning). These points, along with the characters and how they're serviced, are what I wish to focus upon, though I will address a few specific story beats as well.
As stated up top, this will be a spoiler-filled analysis, so I'm assuming the reader has seen the film.
In an action-packed (almost incoherently so) opening, we see the Millennium Falcon slip into an icy Imperial stronghold to get firsthand intel from in inside Imperial source on a dangerous new threat to the galaxy…
"One last look…at my friends."–C3PO.
The opening crawl gives up one of the biggest spoilers right up front ("The Dead Speak!") when it's revealed that former Emperor Palpatine (Ian McDiarmid) has somehow survived his 'death' from 1983's "Return of the Jedi" using vague experiments involving cloning (a callback to the prequels) and use of the force to salvage himself back into existence. We see cloning tanks with other 'experiments' of his (including the bodies of what appear to be lifeless Snoke prototypes). It's implied that Palpatine is consciously using his (still formidable) power to will his broken, aged body back together using the Force itself. Later on in the film, during a final confrontation with Rey (Daisy Ridley) and Kylo Ren (Adam Driver), the decrepit former Emperor tries to literally steal their powers of regeneration to repair himself; Palpatine is a clear metaphor for an older greedier generation robbing today's youth of their (literal) future. With his lips a necrotic shade of charcoal and his blinded eyes fully opaque, the resurrected Palpatine certainly looks more terrifying than ever before. McDiarmid slips back into the role like a comfortable pair of slippers.
The dead speak!
Yes, as hinted in the trailers and posters, Emperor Palpatine (Ian McDiarmid) does return to the film, though he looks a bit worse than we see him here…
It's arguably a Hail Mary pass to bring in Palpatine as the big bad for this final chapter of Disney's Star Wars trilogy, but it also works. "Supreme LeaderSnoke" (Andy Serkis) felt like a Palpatine knockoff anyway, so it's with some irony that we learn Snoke actually is little more than a chip off of Palpatine's block. A bit more handwaving is done when we learn the 'big secret' of the film… that Rey's parents were offspring of Palpatine's as well, and that Rey is, in fact, Emperor Palpatine's granddaughter (the movie is maddeningly nonspecific about which of Rey's parents were directly related to Palpatine). The former galactic Emperor had both of Rey's parents murdered so that he might further manipulate her into her eventual role as "Empress Palpatine." Palpatine's somewhat vaguely defined resurrection is best taken with a grain of salt (or the entire shaker), because the payoff is ultimately worth it.
Ace pilot Poe Dameron (Oscar Isaac) uses hyperspace skipping to flee pursuing First Order TIE fighters (which now travel through hyperspace themselves!).
On the subject of resurrections, we come to one of the most delicate and tactfully done cinematic resurrections involving a deceased actor that I've ever seen. Three years later, the passing of "Princess Leia" herself, Carrie Fisher, still doesn't quite seem real to me. She was the youngest of the original trilogy cast back in 1977 (at age 19) and passed away not long after her 60th birthday. Her role in 2017's "The Last Jedi" was completed shortly before her death, so her role in that film didn't require any significant augmentation. General Leia was supposed to have a much more active role in TROS, and that was a problem. The powers-that-be could've simply killed the character off-camera, but that would've been a major cheat to the audience, as well as to the memory of the late Carrie Fisher (not to mention thousands of kids of my generation who idolized Leia as a feminist icon back in 1977).
Using deleted scenes and clips from the previous Star Wars movies, the late Carrie Fisher is allowed to have her graceful swan song within the Star Wars universe.
With Fisher gone, JJ Abrams (cowriter, producer and director) realized he had access to the next best thing. Using deleted scenes and repurposed shots from the prior two films, his team carefully reintegrated her character (using computerized rotoscoping and body doubles) into new clothing, a new location, and even a new hairstyle. Abrams and cowriter Chris Terrio also carefully rewrote specific scenes surrounding her character so that her previously recorded dialogue fit, and it does (surprisingly well, in fact). In this film, General Leia is not just the Resistance leader, but she's also taken on the role of Jedi Master, completing Rey's training, following the death of her brother Luke (Mark Hamill) in "The Last Jedi."
Rey (Daisy Ridley) engages in the same kinds of rigorous Jedi training we saw in "The Empire Strikes Back"…
Using body doubles, combat masks and carefully integrated facial shots of a younger Fisher and Hamill, we also see a flashback sequence (post–"Return of the Jedi") where Luke trains his sister to become a Jedi; she even makes her own lightsaber. This bit of shoehorned-in backstory comes later in the film, but it goes a long way towards explaining Leia's previously inexplicable command of the Force in "The Last Jedi" (surviving in the vacuum of space), as well as an early scene in TROS where she is seen mentoring Rey on the jungle world of the new Resistance Base. Using all of Fisher's prerecorded performance, Leia fits back into this film almost as though Fisher herself had never died… and how I wish that were so.
Seeing the late (and still missed) Carrie Fisher back on-screen one last time does indeed feel like a warm hug from home.
Despite the resurrection of Fisher's character, General Leia does die later on in the movie as she gives the very last of her life energy to reach out across the light years to her wayward son Ben Solo, aka "Kylo Ren". Leia dies much in the same way as her brother Luke died when he used his own life energy to astral-project himself to the planet Krayt at the climax of "The Last Jedi." By having her character die onscreen as well, both Leia and Fisher are given the proper farewell they both deserved.
Chewbacca (Joonas Suotamo), Poe (Oscar Isaac), Rey (Daisy Ridley) and Finn (John Boyega) take the Millennium Falcon out on another mission.
At the movie's center is Rey (Daisy Ridley), the aforementioned granddaughter of Palpatine who is assuming the kind of heroic/spiritual journey previously the purview of the Skywalker boys (Luke and his dad, Anakin/Darth Vader). To those who dismiss the character as a 'Mary Sue' (a semi-miraculous interloper of a character who can do nearly anything) I would argue the same case applies to Luke Skywalker, as well as Neo from "The Matrix", young Clark Kent from "Superman", or even Hercules from Greek mythology. Rey's story is the classic hero's journey, which began in literature and imagination millennia ago. The only difference between Rey and those earlier heroes is her gender, and if anyone still has a problem with a woman assuming a hero's journey in pop culture, I hope you'll join us here someday in the 21st century.
Rey enters the remains of the shattered Death Star II from "Return of the Jedi." This scene simultaneously evokes feelings of nostalgia in older fans for its recreations of iconic Death Star interiors, as well as Rey's own origin story as a rappelling scavenger eking out an existence on Jakku by climbing the interiors of hollowed out Imperial derelicts crashed in the desert.
The exponential growth of Rey's Force abilities and training in TROS (her newfound powers of force-healing, force-lightning, etc) do feel a bit rushed, as if to make up for the mentorship she didn't receive from the surly, bitter version of Luke Skywalker seen in "The Last Jedi." In fact, much of the first act of TROS feels overly busy; with dialogue, characters and events nearly falling off of the overcrowded screen. It's a bit too much to take in at once… as if JJ Abrams and company are fervently apologizing for the black eye the previous movie gave to the Star Wars universe and its characters.
Moving on, Rey is well served in this film; beginning with a quest to find a Sith 'wayfinder' device that will reveal the location of both Palpatine and a hidden planet-destroying "Final Order" starfleet. Rey's quest to find (and use) the wayfinder takes her to the desert planet Pasaana, not too unlike her childhood home of Jakku (which was reminiscent Luke's home planet of Tatooine). Traveling there with her friends Finn (John Boyega), Poe Dameron (Oscar Isaac) as well as droids BB-8 and C3PO (Anthony Daniels, still sweltering in the hot golden suit after 42 years).
Some of the new Force abilities introduced in "The Last Jedi" are carried over into the new film as well, such as the ability to transmit matter over long distances by linking minds (something Kylo Ren learns to take advantage of), as well as elder Jedi dying when force-projecting themselves over great distances (Luke and now his sister, Leia). The kindling of an attraction between Rey and Kylo Ren was also hinted at in the prior film as well.
On Pasaana, Rey and her friends face off against Kylo Ren, flee from flying stormtroopers, get caught in quicksand, find subsurface tunnels, and confront a wounded sand-worm creature right out of "Dune" (on which Rey uses her newfound healing touch). They even see the skeleton of a dead rival.
I half-expected Belloq to show up and steal the Sith dagger…
So while the tone and feel of TROS is far more consistent with Abrams' own "Force Awakens", Rian Johnson's "Last Jedi" isn't entirely ignored. Yes, fans of "The Last Jedi" may feel a bit slighted by the newer film's abrupt shift in tone, but Abrams is steering this ship back onto the course he originally set for it in 2015. That Abrams and his team managed to include so many disparate pieces from this (often contradictory) 42 year-old entertainment franchise is extraordinary, even if a bit exhausting.
On Pasaana, Finn (John Boyega) and Poe (Oscar Isaac) watch helplessly as Chewbacca is capture by First Order troops. Both characters are given more heroic business to do in this movie than in "The Last Jedi."
Finn (John Boyega) and Poe (Oscar Isaac), both newly promoted generals now (just like Han and Lando in "Return of the Jedi"), are given more meaningful business to do in this film, and both are also given hints of romance that don't pan out onscreen (though Finn's relationship status is left a bit more ambiguous). We meet a mysterious former flame of Poe's named "Zorii Bliss" (former star of Abrams' TV series "Felicity", Keri Russell), but that 'romance' is little more than a casual flirtation. Finn also meets a former stormtrooper named Jannah (Naomi Ackie) on the planet Kef Bir. They seem to be drawn together, but we don't see a full-on romance bloom between them (onscreen, anyway…that may be the subject of fanfic for years to come). For whatever reasons, Disney's Star Wars trilogy is curiously devoid of strong romantic entanglements. There is, of course, the much ballyhooed same-sex kiss near the end of the movie (not between any main characters, unfortunately), but it's less romantic and more like post-victory relief. To anyone who has issues with the kiss? Get over it. LGBTQ folks are here to stay. They always will be, and they always have been.
Rose Tico (Kelly Marie Tran) is very underused. Her attraction to Finn from "The Last Jedi" is virtually ignored, and her character is friend-zoned. This mishandling of Tran's character is one of my biggest issues with this otherwise satisfying entry in the Star Wars canon.
Finn's prior pairing with Rose Tico (Kelly Marie Tran) from "The Last Jedi" simply fizzles out. No reason given. It's a real shame to see Rose (and Tran) sidelined. While I thought her character was poorly served in "The Last Jedi", none of the blame belongs to Tran. She imbued Rose with as much personal charm as she could; the fault lay with the uneven scripting of her character. I was also angered and sickened to see the ugly slurs that were hurled Tran's way on social media as well. Rose Tico's slighted appearance in TROS feels as if the writers were caving into her character's poor reception among a certain clique of fandom, and that's a genuine shame. None of my issues with the character of Rose were related to Tran's performance.
Aboard the dead assassin Ochi's ship, BB-8 makes a new droid friend in D-O (voice of JJ Abrams).
Of course, when I was a boy (having seen the original Star Wars at the age of 10), my favorite characters were the droids. I loved the Kenner action figures of them, and I had a remote-controlled R2-D2 (which my mother's dog promptly peed upon, of course). To the droids' cheering section, I'm pleased to report that C3PO and BB-8 are given their moments, though beloved astromech droid R2-D2 is little more than a cameo in the film. The veteran droids are also joined by a smaller, wheel-based droid named DO (dee-oh). DO (voiced by none other than JJ Abrams, himself) is a droid found aboard a derelict Sith vessel on the planet Pasaana. The droid is very skittish towards humans; a clear metaphor for traumatized rescue animals who are later adopted by loving owners. In a film overstuffed with so many bits of business, Abrams manages to throw a metaphorical bone towards animal rescue.
Zorii Bliss (Keri Russell, under there somewhere), Poe (Oscar Isaac), BB-8, Rey (Daisy Ridley) and Finn (John Boyega) say goodbye to their friend C3PO (Anthony Daniels), who prepares to have his mind-wiped so that a forbidden text on a Sith dagger can be read against his programming…
C3PO (the returning Anthony Daniels) has a bit more business in this film than he's had in the prior two Disney Star Wars chapter movies. In TROS, he reads forbidden text on an ancient Sith dagger that is critical in locating the resurrected Palpatine and his new "Final Order" fleet. In order to read the text (in violation of his original Senate programming), the droid is taken to the planet Kijimi, where the text translation will be forcibly (no pun intended) removed from his mind, at the expense of his memory (his memory was wiped once before in "Revenge of the Sith"). This 'sacrifice' was heavily played up in the trailers as the 'end' of C3PO.
C3PO (original Star Wars veteran Anthony Daniels) has his mind wiped for the cause…but don't worry; he was backed up on his i2-D2.
Yes, C3PO's mind is wiped, which leaves him as little more than an amnesiac running gag throughout the film ("How can you be my best friend when we've just met?"). Daniels' long history with the character allows him to play the amnesia for what it's worth, but it's a very minor subplot, despite the insane amount of hype it received via Lucasfilm's publicity department. Near the end of the film, R2-D2 restores his companion's memories via backed-up files (save for his most recent experiences after he departed for Pasaana), so C3PO's 'sacrifice' was little more than a 'don't forget to backup your phone' gag. C3PO's death was a publicity ruse, but yeah, it also worked…I really thought he was a goner.
Poe and Finn attempt a daring rescue of Chewbacca (Joonas Suotamo) aboard the First Order superlaser-powered command ship. An action sequence that recalls Princess Leia's rescue aboard the Death Star back in 1977.
Chewbacca, now played by Finnish basketball player-turned-actor Joonas Suotamo (who assumed the role following the declining health and eventual death of Peter Mayhew earlier this year) has an interesting new role as the 'rescued princess' of TROS (ironic, since Chewbacca has usually been the one doing the rescuing). Following his capture by the First Order on Pasaana, Chewie is taken aboard the command ship. Originally thought to be killed following the explosion of his transport ship, Rey confirms (through the Force) that the 250 year-old Wookiee is alive, prompting Finn and Poe to attempt a rescue. Chewbacca, of course, faked his own capture aboard the Death Star in "A New Hope" in order to reach the station's detention level and rescue then-Princess (now General) Leia. Now, he is the one needing a bit of rescuing. Rey gives the boys a hand in springing Chewie with a well-placed mind trick ("We are pleased to see you"), but has her own rendezvous with destiny elsewhere on the ship. When Chewie is finally rescued aboard the reclaimed Millennium Falcon, Rey leaps aboard the open ramp of the departing ship. It's nice to see classic characters like C3PO and Chewbacca given significant roles in this last Skywalker chapter, even if R2-D2 is a bit sidelined.
Chewbacca and Lando Calrissian (Billy Dee Williams) are back in the cockpit of the Millennium Falcon once again…
In addition to Chewbacca, TROS also sees the return of Lando Calrissian (Billy Dee Williams). Lando first appears in disguise on Pasaana (recalling Lando's similar disguise when he infiltrated Jabba's palace 36 years ago), and he also gives a few warm wishes to General Leia (with whom he shared a flirtation on Cloud City in "Empire Strikes Back"). But most importantly, he's back in the cockpit of what was originally his ship, the Millennium Falcon (see "Solo: a Star Wars Story" for details). While his earlier disguise cleverly masks a body double (Williams walks with a cane now), his interaction with both newer and classic characters helps to round out this unapologetic and unabashedly sentimental family reunion of a film. Yes, Lando's appearance is obvious fan service, but in a film tying up 42 years of loose ends for the most successful movie franchise in history, it gets a pass from me.
Luke Skywalker returns in a decidedly less corporeal (but no less powerful) form in TROS.
Continuing the subject of returning classic Star Wars characters, Luke Skywalker (Mark Hamill) is back in spectral form on the watery world of Ahch-To, and he apologizes to Rey for his bad behavior ("I was wrong") in "The Last Jedi." I'm guessing that apology was a poke at Rian Johnson's depiction of Luke in that film, as Hamill himself was reportedly unhappy it as well. Force ghost-Luke also encourages Rey to go after the resurrected Palpatine, much as Obi-wan encouraged Luke to "face Darth Vader again" in "Return of the Jedi." And in a lovely nod to Yoda in "The Empire Strikes Back", Luke pulls his own long-submerged X-wing fighter from the water (where it was seen in "The Last Jedi") and gently brings it ashore for Rey to use, to the exact same music we hear when Yoda pulls the submerged ship from the Dagobah swamp in "Empire."
The original gatefold double LP of John Williams' "Star Wars" soundtrack; and that John Berkey poster graced my bedroom wall (and my imagination) for years….
John Williams' score of TROS plays like a Star Wars Greatest Hits medley, with repeated use of his Force and Princess Leia themes in particular, and being a lifelong fan of Williams' music, I'm perfectly fine with that. The very first album I ever bought (at the tender age of 10) was the original "Star Wars" double-LP soundtrack in its original gatefold jacket. Pretty sure I'll be dropping coinage someday for ROTS' soundtrack as well…
Adam Driver as Kylo Ren/Ben Solo.
The single most riveting character in Disney's Star Wars trilogy.
Without a doubt, my single favorite character in Disney's new Star Wars trilogy has been Adam Driver's "Kylo Ren/Ben Solo." Driver's unconventional looks and downright uncomfortable intensity fit the character perfectly (I can only imagine what he would've done with the role of Anakin Skywalker). As the newly self-appointed "Supreme Leader" of the First Order (following his slaying of Snoke in "The Last Jedi"), Kylo Ren has the single greatest dramatic arc in the film. The action begins with his bloodthirsty purge to obtain one of two Sith holocrons (aka way-finders) and ends with his redemption through acts of love (Rey) and sacrifice (his mother Leia). Along the way, he challenges Emperor Palpatine, perfects (and exploits) the power of Force trans-materialization, kidnaps Chewbacca, and even receives a visit from his dead father Han Solo (a tearful cameo by Harrison Ford). Han's cameo isn't a Force-ghost like Luke, just a manifestation of Ben's own need for his slain father's forgiveness.
Harrison Ford as Ben Solo's vision of his late father Han makes for a tearful "Field of Dreams" moment.
Kylo Ren self-doubt, visible whenever he takes his mask off, gives us the dramatic fireworks that we might've seen percolating behind the equally conflicted Darth Vader's mask in "Return of the Jedi." Earlier in the film, he takes the mask which he shattered in "The Last Jedi" and welds it back together, with crude, bright red fissures still visible all along its surface. The fractured mask is a metaphor for so many things; the cracks in his own identity (self-identity is another key issue throughout the film), his determination to hold himself together in the face of a greater threat (Palpatine) and his own hiding behind a facade in which he neither needs nor fully believes.
Rey and Kylo Ren 'meet' (and shatter Vader's old mask) via a supercharged Skype-chat in Ren's quarters…
In an earlier post on "The Last Jedi", I once suggested that love between Kylo Ren and Rey might just be the key that ultimately reconciles the dark and light sides of the force. TROS embodies that philosophy as well, with love expressed not in romance (save for a single kiss) nor in sex, but in the act of self-sacrifice.
Shortly after entering the remains of the shattered Death Star II, Rey has a vision of herself turned to the dark side of the Force… a warning that almost goes unheeded when she takes advantage of a distracted Kylo Ren in battle shortly after.
During their epic, rain-soaked battle atop the remains of the Death Star II (its remnants crashed in the ocean of the planet Kef Bir), Kylo Ren is distracted by his mother Leia, who reaches out to him through the Force, using the last of her life force to do so. In that momentary distraction, Rey seizes the opportunity to slay her opponent, running a lightsaber through his abdomen… a fatal blow.
The climax of this battle ends in an act of love and self-sacrifice, not in hate and conflict…
Rey doesn't gloat in her victory; instead, she chooses compassion and love over hate. With her newfound power of Force-healing (a power seen earlier on Pasaana, and in the new series, "The Mandalorian"), she cures Kylo Ren, using a significant portion of her own life energy to do so. Upon awakening, Kylo Ren is returned to life as Ben Solo…his prior existence fully shed with his healed wound.
Rey confronts the ultimate evil in the Star Wars universe.
No, not toxic fandom… Emperor Palpatine.
Later on, after Rey's own victorious-but-lethal battle with Palpatine on the hidden world of Exogal leaves her drained of all life, a weakened Ben Solo gives the last of his own energy into healing Rey. Upon her revival, the two smile and kiss right before Solo transcends into the greater Force, as did his namesake Obi-wan "Ben" Kenobi (Sir Alec Guinness) in the original trilogy. Compassion and love over hate and aggression; a timeless message. Ben Solo's redemption is arguably a repeat of Vader's own sacrifice for his son Luke in "Return of the Jedi" (of which TROS owes much debt), but its message remains so significant that it's worth repeating for a new generation. Ultimately, love, compassion, and the hope for redemption are at the core of the Skywalker family saga.
Rey, like Luke and Anakin Skywalker before her, is caught between assumed birthright and chosen identity.
While Rey is locked in her final confrontation with the resurrected Palpatine on Exagol, her friends are locked in their own death struggle against a powerful new "Final Order" battle fleet of star destroyers that come standard-equipped with planet-killer weapons (once again) that can now be easily mounted on mobile platforms instead of massive space stations (Death Stars) or planets (Starkiller Base). In a scene that is powerful but utterly devoid of logic or common sense, we see Palpatine's massive battle fleet literally rise from the ground of the planet Exogal. Now, if you feel an overpowering need to nitpick this, I also give you the long-held sci-fi staples of sound in the vacuum of space, or aliens in distant galaxies speaking American-accented English. No one should ever be under the illusion that Star Wars is hard sci-fi; it's pure Arthurian fantasy with sci-fi trappings, and I've long made my own peace with it on those terms. Moving on now…
Rage against the machines.
Resistance fightercraft take on the massive new "Final Order" battle fleet of super-duper star destroyers…
While the fighters engage the massive, overwhelming power of the First Order fleet, Resistance fighters (with the defected stormtroopers from Kef Bir as new recruits) board the still-in-atmosphere command ship on its hull, and launch an offensive on horseback.
I'm sure sure the star destroyer assault on horseback will be almost as divisive as the Canto Bight sequence of "The Last Jedi"…
Yes, the CGI horses look a wee-bit goofy onscreen (my wife didn't like them at all), but they also harken back to the technology vs. nature battle that was in the earliest drafts of the original movie and was a recurring motif throughout the trilogies. In fact, the Star Wars saga was originally intended as a metaphor for the war in Vietnam, with a low-tech force overcoming a technological superpower. The Ewoks of "Return of the Jedi" were the living embodiment of this motif. The Kef Bir battle horses are yet another.
The Millennium Falcon, refitted once again with a rounded antenna dish, arrives with a few thousand new friends…
General Poe Dameron leads his fighter squadrons into what seems to be a suicidal battle against the hundreds of Final Order star destroyers. The battle is so utterly hopeless that Poe even offers a heartfelt apology to his pilots, until, in the best (albeit predictable) tradition of the day being saved by the cavalry riding in over the hill, Lando Calrissian flies in with the Millennium Falcon and thousands of ships that have responded to his rallying cry for help (and possibly the distress call sent in the last film at the Battle of Krayt). Things are soon matched, and the Resistance fleet overcomes the monstrous ships, which lose control when their control ship is taken down by the horseback troops. This ginormous space battle is silly and waaaayyy over-the-top, but it releases a nice dose of endorphins, nevertheless. Similar to what we saw in "Return of the Jedi"'s special edition, celebrations erupt on key planets (Bespin, Naboo, etc) throughout the galaxy, as the loss of the main fleet's control ship sends ominous star destroyers falling from the sky galaxy-wide (the effect of their impacts upon these planets will be utterly devastating, but that's another subject…). We all knew the final story of the Skywalker saga would have to end with a giant space battle, and illogically or not, TROS delivers.
The actual site where the Lars homestead was filmed in Tunisia, minus any Star Wars set dressings…
The final scene, much like the end of "Revenge of the Sith", sees Rey arriving on Tatooine at the site of Luke's boyhood home of the Lars' homestead. After a brief tour of the site (using a metal plate to sled down the sand, as she did back on Jakku), Rey then uses the Force to make a hole in the sand and gently places the wrapped lightsabers of Luke and Leia into it before covering it up again. She then ignites her own yellow-bladed lightsaber. Turning back to witness the double suns set, she notices the force-ghosts of the two Skywalker twins, smiling approvingly. An old desert scavenger then rides in on her beast of burden and greets Rey (unaware of the Skywalker ghosts, of course). The old woman mentions that the homestead hasn't been lived in for a long while. She then turns to Rey and asks her name.
"Rey… Skywalker."
"Clear your mind of questions…" –Yoda.
One of the difficult things about losing yourself in a fantasy is to turn off one's critical sense. Yes, TROS is not a perfect film. Its first act is crammed a bit too tight for comfort, with a virtual explosion of characters and information flying at you so fast you might get whiplash. Its final act goes on for a few minutes too long (at least for me, as my bladder began to quake in that final half hour). The story isn't terribly rational at times either, even for a space fantasy. For example; how did the giant pieces of Death Star II mange to impact onto the moon of Kef Bir without causing mass extinction level events? Why did it impact on Kef Bir, and not the forest moon of Endor where it was orbiting? Why was the Final Order's massive fleet of thousands of ships built underground? Who built it? How did all of those missing resources (and personnel) go unnoticed?
How pieces of Death Star II fell back onto Endor without causing mass extinction of the Ewoks remains a mystery…
One could ask these sorts of questions forever, but the simple truth is that this movie had a lot of tables to wait on, and not everyone or everything will get the same level of service. Given the Hurculean task of trying to wrap a nice, neat bow on nine Star Wars movies over 42 years (not including the standalone movies, TV and streaming spinoffs), I'm frankly astonished that it came out as enjoyable as it did.
DO (voice of JJ Abrams), Poe (Oscar Isaac), BB-8, Chewbacca (Joonas Suotamo) and Lando (Billy Dee Williams) ride again.
Image: Vanity Fair magazine.
"Some things are stronger than blood." –Luke Skywalker.
The characters also felt like themselves again. Mark Hamill's Luke Skywalker wasn't playing Clint Eastwood anymore. The skillfully resurrected General Leia managed to have a significant, meaningful role in the story despite the death of Carrie Fisher three years before. Many questions that were unceremoniously dropped previously were (more or less) answered, with enough wiggle room left for plenty of future fanfic exploration. John Williams' score was wonderfully evocative of all nine chapters. TROS also has a vibrancy and heart that felt missing from the previous film. JJ Abrams paints in a much warmer emotional palette than Rian Johnson (or even George Lucas). That warmer touch was very much needed to close out the Skywalker saga.
Seems like the offscreen bonds were equally strong…
I was particularly inspired by that final image of Rey on Tatooine choosing to be a Skywalker. That her grandfather Palpatine manipulated the Force to create Anakin in the prequels sort of makes her a Skywalker already, but it's that bold statement of hers that finally makes it real. It also a nice message for adopted children watching the film as well, or alternate family combinations. Lineage by blood isn't the defining trait of family, and is no more important than those bonds created by deep friendship or love. The bonds between these characters inhabiting that galaxy far, far away have been a driving (ahem) force behind the best of the Star Wars movies for over four decades.
#DaisyRidley#Finn#HarrisonFord#JJAbrams#JohnWilliams#MarkHamill#ReyCarrieFisherIanMcDiarmidJohnBoyegaOscarIsaacPoeDameronStarWarsTheRiseOfSkywalker
Previous Post The Mandalorian, Chapter 7: "The Reckoning" exacts a price…
Next Post The Mandalorian, Chapter 8: "Redemption" ends Season One…
sanzbozo says:
This was great, thank you Sebastian. I love Adam Driver's work, he's so talented.
Kevin McGuirk says:
Nice explication…good job!
Retro-Musings: George Pal's "The Time Machine" (1960) 60 years later… January 20, 2020
"Star Trek: Voyager" slipstreams into its silver anniversary… January 16, 2020
Doctor Who S12.3, "Orphan 55"; a worthwhile message is lost among the 'dregs'… January 13, 2020
Short Treks 2.6: "Children of Mars" glimpses things to comes… January 9, 2020
Doctor Who, "Spyfall" Parts 1 and 2: The Doctor "Bonds" with her fam… January 8, 2020
Galactica 1980: The Colonial Fleet came a calling 40 years ago… January 3, 2020
Smooth sailing for Season 2 of Netflix's "Lost In Space"… January 1, 2020
The Mandalorian, Chapter 8: "Redemption" ends Season One… December 28, 2019


The olives this year are healthy and plump, thank to, and despite (respectively), the summer draught. The new olive oil is amazing.
Le olive quest'anno sono in salute e belle gonfie, grazie, e nonostante, la siccità estiva. L'olio nuovo è fantastico.


text:
Madison Iseman Workout Routine and Diet Plan
By ZingSid | January 21, 2021
Madison Iseman Workout Routine and Diet Plan: Madison Iseman is an actress known for her movies like Jumanji, Annabelle, Goosebumps, Clouds, Nocturne, Laid In America, etc. Madison gets quite well known around the world for her acting skill and incredible toned body shape. Yeah, she has abs that can give complex to most of the… Read More »
Kaylee Bryant Diet Plan and Workout Routine
Kaylee Bryant Diet Plan and Workout Routine: Kaylee Bryant is an actress known for movies and TV shows like Legacies, Mary Loss Of Soul, Double Daddy, etc. Especially after the Legacies, Kaylee Bryant's popularity rose and made her known worldwide. She is admired mostly because of her acting skills, but many of her fans love… Read More »
Danielle Rose Russell Diet Plan and Workout Routine
Danielle Rose Russell Diet Plan and Workout Routine: Danielle Rose Russell is an actress known for her movies and TV shows like; The Originals, Measure Of a Man, Wonder, Pandemic, Aloha, A Walk Among The Tombstones, Legacies, etc. The young actress gets recognized worldwide with her acting skills and beautiful looks. I'm sure you have… Read More »
Emily Tosta Diet Plan and Workout Routine
Emily Tosta Diet Plan and Workout Routine: Emily Tosta is an actress and YouTuber known for her movies and TV shows like Party Of Five, Mayans M.C. Willy's Wonderland, Selfie Dad, and Vikes. The actress is quite a nice and calm person; I liked her attitude and habits as I researched this article. She is… Read More »
Caylee Cowan Diet Plan and Workout Routine
Caylee Cowan Diet Plan and Workout Routine: Caylee Cowan is an actress known for her movies like Sunrise In Heaven, Pleasure Of Modern Woman, The Peace Between, Year Of The Detectives, etc. Caylee Cowan gets known for the incredible performance and beautiful looks. However, let me tell you that Caylee is also quite a fit… Read More »
Lindsey Stirling Diet Plan and Workout Routine
Lindsey Stirling Diet Plan and Workout Routine: Lindsey Stirling is a violinist, dancer, and songwriter known for her YouTube channel and performances worldwide. One of the best violinists alive, period. Lindsey doesn't have a single genre of music that she likes to perform; instead of that, she goes crazy while showing her versatility. Lindsey will… Read More »
Joshua Bassett Workout Routine and Diet Plan
Joshua Bassett Workout Routine and Diet Plan: Joshua Bassett is an actor and singer known for his roles in movies and TV shows like High School Musical, Stuck In The Middle, Grey's Anatomy, etc. Joshua also mesmerizes people with his vocals and instrumental skills, and that's why he's one of the most popular young actors… Read More »
Vy Qwaint Diet Plan and Workout Routine
Vy Qwaint Diet Plan and Workout Routine: Vy Qwaint is a YouTuber and influencer known for her YouTube channel that she runs with her husband. In that channel, they post different things and even vlogs and challenges. I'm not so familiar with Vy and the stuff she posts on her YouTube channel, so I did… Read More »
Katherine McNamara Diet Plan and Workout Routine
Katherine McNamara Diet Plan and Workout Routine: Katherine McNamara is an actress known for movies and shows like Shadow Hunters, Arrow, Maze Runner, Girl Vs. Monster, The Stand, Happyland, etc. Katherine gets known for many things in her career that included doing some significant action scenes and looking like an action star. Katherine might also… Read More »


Would you try a scoop?
Houston's Red Circle Ice Cream has created an intriguing new flavor — crawfish.
It contains garlic, butter, and Cajun seasoning, and apparently tastes like a crawfish boil.
The flavor was so popular it has sold out in a few days, but Red Circle is working on getting more in stock soon.
It isn't actually topped with a crawfish.
Ever imagined what the spicy, savory, and oceanic flavors of a crawfish boil would be like in ice cream form? That concept is now a reality, thanks to Houston's Red Circle Ice Cream.
The ice cream shop is known for creating a variety of unconventional flavors, ranging from durian and Hot Cheetos to Spicy Texas Chili and even BBQ ice cream. An ice cream imbued with the effervescence of a crawfish boil definitely fits into the category, and is already eliciting a wide variety of reactions.
Red Circle representatives told Foodbeast that so far, people have responded with everything ranging from "WHOA" to "WTF" reactions when seeing the new ice cream. The curious concoction is topped with a crawfish on Instagram photos just for show, but if you're timid about eating one, it doesn't actually come served with the crustacean.
What it does contain, however, is garlic, butter, and Cajun seasoning, which, when balanced with the sweetness of ice cream and crawfish, makes for an intriguing flavor that has people lined up to try a scoop.
Red Circle was planning on just having this available for a weekend, but due to demand, they're going to keep selling it for the next few weeks (when it is back in stock) and decide where to go from there.


11:32:39 Steffen Larsen Hi, does anybody know if all have booked hotel rooms for FOSDEM/summit?
12:05:17 simon Florian works at über?
12:08:39 dwd He's a taxi driver now.
13:00:34 intosi Will just tried to book a room, and couldn't get one using the link. Would that mean we filled all rooms in the block?
13:09:59 Steffen Larsen hmmm we had a problem for a week ago where we couldn't book at all.. even though the rooms were there. It was a problem with the hotel booking site. Maybe its the same now.
13:11:52 simon Steffen - I had a similar problem last year. Ended up phoning the hotel directly and got a better rate (even less than the block booking rate).
13:19:24 ralphm simon: are you sure it was the same type of room? Including breakfast? Same cancellation policy?
13:20:37 intosi Looks like the standard rooms are sold out on booking.com.
13:21:02 dwd I can't remember how long the block deal was for, but I thought we had it longer than this.
13:22:00 simon ralphm: no breakfast. Perhaps that accounts for the difference. Does the block booking include breakfast?
13:22:21 simon Excellent. I'll be maxing out on that.
13:22:39 dwd It's the five-items-or-less breakfast, isn't it.
13:23:10 simon Sold out? Does MattJ's fan club know he might not be coming?
13:23:27 dwd He originally wasn't. He may be now.
13:24:13 intosi dwd: breakfast is about the only thing I don't like about the hotel.
13:25:51 dwd It's vaguely tempting to see if there's a café that can do a decent breakfast nearby.
13:26:15 intosi I'll have the bacon covered in bacon with bacon on the side, and add another bacon on bacon to finish it.
13:26:43 intosi Also, why is my left arm feeling numb?
13:27:00 dwd So you can pretend it's someone else's?
13:31:03 simon bread from there. bacon from A-loft.
13:32:39 ralphm simon: there is no bacon at Aloft. That's the whole problem.
19:10:20 MattJ PEPs pre-dated JEPs?
19:15:04 waqas Oh wow, apparently I'm wrong. They started back in 2000.
19:41:59 waqas How does being old feel?
20:46:40 dwd XSF Dinner booked in for the 1st Feb.
21:29:12 dwd Folks, The now-traditional XSF Dinner has been booked at the now-traditional l'Auberge Brétonne, just outside Brussels. As you're probably aware, the XSF solicits sponsorship for the dinner, so that we can carry on offering an excellent meal entirely free to our members. Sponsors will be thanked (and toasted) at the dinner, listed for all to see on the Summit 15 wiki page, and are welcome to attend in person even if not members. If your company is willing to sponsor, please don't hesitate to get in touch with me, or any other member of the Board. XSF Members and their partners can, as usual, attend for free. Don't worry about getting there - we're arranging transport from FOSDEM and back to the Aloft Hotel. Dave.
21:29:21 dwd Someone skim that before I send it?
21:29:45 dwd Then I can get on and post the first sponsor on the Wiki.
21:30:29 dwd bear, Simon ?
21:31:15 dwd Should we announce sponsors as they come in to the summit@ list as well?
21:32:47 dwd Oh, it's "Bretonne" not "Brétonne".
21:32:53 Steffen Larsen dwd: what is the normal sponsorship?
21:33:02 dwd Steffen Larsen, One MILLION Euros.
21:33:55 dwd Steffen Larsen, It varies. It's typically been proportional to the numbers of XSF members belonging to a company, but not always. There's usually a bit of a fight for the top spot.
21:35:18 Steffen Larsen dwd: ok. I might give a dime or two..
21:35:19 dwd Steffen Larsen, Nest is worth less, Dropbox is harder to say.
21:40:30 dwd Simon, What's your view on announcing sponsors to the list?
22:29:05 dwd BTW, added our first dinner sponsor to the wiki.
22:44:23 ralphm By the way, I got some practical info for our FOSDEM stand. Pretty much the same as last year.


text:
<?xml version="1.0" standalone=no>
<!-- A comment -->
<RESTART_FILE>
  <Data_dump_path> /home/pmaginot/Research/dark_arts_local/output_files/ </Data_dump_path>
  <Restart_type> MESH_REFINEMENT
    <Refinement_factor> 4 </Refinement_factor>
    <Initial_inputfile> /home/pmaginot/Research/dark_arts_local/testing/TestingInputs/2Region_Log_Spacing.xml </Initial_inputfile>
  </Restart_type>
</RESTART_FILE>


text:
Flourish Magazine
Reviving Lives and Landscapes
Creation Care 101
What the Most Popular Class at Harvard Has To Do With Creation Care
March 2, 2011 by admin 1 Comment
What do Plato and Aristotle have to do with Creation Care? More than you would think. (cc image courtesy of Image Editor via Flickr)
By John Murdock
[Ed. note: This article is part of our series of weekly reflections, called Deep Down Things, published on Wednesdays.]
Professor Michael Sandel's class "Justice: What's the right thing to do?" is the most popular class at Harvard. It was a fascinating exercise in philosophical reasoning that enthralled me for hours on a lazy, football-less Saturday afternoon when my local PBS station broadcast several episodes of his lectures back to back. (The entire series can be viewed online, and it is well worth your time to do so.)
What does this have to do with creation care? A lot, it turns out.
When Christians make claims about the way things ought to be, we are, knowingly or unknowingly, engaging with the competing worldviews and philosophies through which Sandel leads his bright, young students. In lecture after lecture Sandel examines moral decision making as seen through the lens of philosophers like Jeremy Bentham, John Stuart Mill, Immanuel Kant, John Locke, Aristotle and others. The relevance of these philosophies for creation care is especially clear where issues of resource allocation, exploitation, mixed costs and benefits—in short, justice—are unavoidable. Take, for example, coal. Clearly, something like coal has societal value, but how does one decide what the "right thing to do" is when that value is in conflict with the interests of local communities, wildlife in streams, and those far away who may be impacted by the leftover pollution. Understanding these important secular systems of thought, including where they are compatible and incompatible with the teachings of the Bible, is a vital skill if we are to address the issues of our day.
For example, the utilitarian maxim "the greatest good for the greatest number" shows little regard for the dignity of the individual created in the image of God. Nor does it account for any intrinsic value that the Creator might assign other aspects of his creation, such as rivers, whales and mountaintops. Another philosophy discussed in the class is libertarianism. Its foundation (as Sandel explains in his lectures) is that "I own myself." The Apostle Paul disagreed, teaching, "You are not your own; you were bought at a price." (I Cor. 6: 19-20)
We are all influenced by these and other philosophies to one degree or another. Too often we all, like Professor Sandel's young students, shoot from the hip without fully contemplating whether what we say we believe on Sunday actually is consistent with the decisions that we make throughout the week.
Religious reasoning is not front and center during the series, but Sandel is an intellectually honest arbiter of his classroom and does not dismiss religious arguments when, say, a brave student defends Catholic teaching in a discussion about the legal status of same-sex unions. More often, however, the Christian viewer will be saddened by the religiously rootless moral vision of the rising young elites at Harvard. As one co-ed puts it bluntly, "Religion is personal. It doesn't affect anybody." Many others see no societal role for concepts like patriotism and traditional marriage.
Thankfully, Professor Sandel does not share this view, and he himself argues instead for "a more faith-friendly idea of public reason." In the final lecture to his students, Sandel explains his view that moral reasoning cannot be value-neutral and that, instead, it is often necessary to engage the underlying questions of what makes for "the good life." Sandel (sharing much in common with Dr. Os Guinness and Yale's Stephen Carter) posits that, in the course of this necessary dialogue, one pays greater respect to deeply held religious sentiments—not by ignoring them and relegating them solely to a personal realm—but by engaging them directly and honestly.
The fact that thousands of the planet's best and brightest have exhibited a philosophical and spiritual hunger by eagerly embracing Sandel's class on justice is a sign of hope, and we should pray that, once put on this path, these students will indeed find a philosophical home in Christ. Yet, even for mature Christians, walking this road with Sandel is a useful exercise, especially since the Apostle Peter directs us to, with gentleness and respect towards others, "always be prepared to give an answer to everyone who asks you to give the reason for the hope that you have." (I Peter 3:15)
May the one true hope for humanity and a groaning creation be proclaimed well to all the world.
John Murdock works as a natural resources attorney in Washington, D.C. and is a member of The Falls Church.
Filed Under: Deep Down Things Tagged With: Deep Down Things
What the Most Popular Class at Harvard Has To Do With Creation Care | The Just Life says:
[…] Read full original post. […]
Summer skills resolution
News: Pope Francis, Life and Creation
Food Freedom, not Food Rules
Interview: Mark Linfield, Director of Disneynature Feature Chimpanzee
Connecting Kids to Creation: Everything is Interesting
agriculture Beauty books children and nature church consumerism creation Creation Care Cultivating Community Deep Down Things environmental stewardship evangelical environmentalism Family Flourish Flourish 2009 Flourish magazine Food Gardening Global Community Haiti holidays Kendra Langdon Juskus Kids local community Local Food nature appreciation Poetry prayer Quotable Creation Care Quotes recycling reflection Renewal Resources: Christianity and Technology Resources: Food and the Common Meal Response to Gift of Good Land Rusty Pritchard Scripture simple living The Flourishing Church walkability Weekly Recap Weekly Series Wendell Berry Where We Live


text:
Facebook page opens in new windowTwitter page opens in new windowLinkedin page opens in new windowInstagram page opens in new windowYouTube page opens in new window
XPresso Communications: Technology Marketing & PR experts
We write and publish content for technology vendors to build their international visibility. Specialised in broadcast, media and technology industries. Our integrated marketing communciations strategies won the EU Business Award in 2019.
XPRESSO NEWS
The capacity of brains (and VB330s) when faced with questions of objectivity and subjectivity
Monitoring the broadcast change
Dan Dennet – an American philosopher and cognitive scientist – came up with the concept of 'the self as a centre of narrative gravity'. It's a concept that you'll (probably) be familiar with; the idea that you are the centre of your own story. You are the protagonist, the people you know well are big-name actors playing central roles; antagonist, side-kick, love interest, and the person who serves you coffee is a recurring, non-speaking bit part (always the possibility of promotion to a major speaking role if they give a really good performance…).
It's an important stage of cognitive development in children when they stop thinking in this entirely egocentric manner – when they realise that the lives of their parents and friends continue even when they've walked out the door. But whilst we may come to understand the equal nature of everybody's 'lived experience' on an intellectual level, it's hard to internalize this on an emotional level. That barista doesn't exist purely to make you coffee; he too maintains a complex internal life, and for him or her, you're just the bit part. Despite knowing this on an objective level, we still structure our relationships with us at the centre.
(That is, unless we either a) suffer from crippling insecurity, or b) have become a Zen master…)
Centre of the known broadcast universe
Where are we going with this? Well – let's start with a question. What was the last thing you watched? And how did you watch it?
When TV was broadcast in a linear manner to a million homes across the country, across just a handful of channels, there was an inherent connection even to the bit-part actors in your life. The season finale of the biggest show of the year was watched by you, your Mum, your hairdresser and the guy you saw on the train three weeks ago. All at the same time. You probably all sat in living rooms, eating dinner from your lap. The sofas were different, the food was different, but the experience was largely duplicate. The nature of your narrative became a little less exclusive.
IP changes that. Watching becomes a far more insular, egocentric experience – especially when you add in OTT and streaming services. Traditional broadcast forced certain experiences across everybody's lives to reach a confluence every now and then, but IP-based watching makes it feel like an entirely unique, independent experience: accessible anywhere, and often, at any time.
Of course, each viewer isn't actually unique. Just as with the 'centre of narrative gravity', everybody is living important lives – meaning everybody is just as unique as each other. A paradox of homogeneity; all the same in being different.
This means that the nature of modern media follows the same paradox; being delivered to a singular mass of a million different parts. Modern media is delivered in a way that provides variations of the same to everybody, but makes it feel like you are the centre of the universe. At least, it should, done right. It aims to give the user what they want, when they want it, without that experience being compromised by the million other 'bit part actors', who might be inconveniently interfering with the experience by insisting on having their own narratives, and watching their own on-demand content.
At least, that's the idea.
The efforts involved in making you feel unique
If you're in the field of network delivery, then you don't need us to highlight the immense amounts of capacity needed to facilitate this level of personal service.
Delivering important parts of each person's 'daily script' to a thousand, a hundred thousand, a million different people; all protagonists at the centre of their own story – it's a big undertaking. Audiences don't care about the watching experience of every other Game of Thrones/Handmaid's Tale/West Wing fan; they care about the comfort of their sofa, the taste of their chicken wings, and the quality of their broadcast.
That means it isn't just about making sure the signal gets to them. It's about making sure it gets to them perfectly. Media delivery has become about flattering the ego of the customer by making their experience the centre of the world.
This change has been swift – both in terms of capacity demand, and quality demand. In network planning and delivery, there are now more variables to consider and monitor than ever before. There are more people, using more bandwidth, more data, more often. And they're more picky, with more options and thus more consumer power.
Monitoring the change
As consumer use grows, so too does the potential for each player in the market. But as that market potential grows, so does the potential for chaos. With every additional multicast, every additional service, every additional channel you provide – you multiply the possibility of mistake. There is more to manage. More to monitor.
It's this immense jump in demand for both capacity and quality that has influenced the development of v6 of our VB330.
We wanted to focus on three key things: accommodating the already immense capacity demands on a network, providing the scalability needed to facilitate this ongoing growth far into the future, and honouring the fact that Quality of Experience is now just as vital to the business model of a media network as its Quality of Service metrics.
That means our numbers are bigger than ever. 20 gigabit of throughput that can be field-upgradable to 50 Gigabit. Monitoring and analytics of up to 2000 multicasts. Massive numbers of monitoring metrics that move from intuitive IT-centric transmission quality analytics right through to complex ETR290 transmission stream analysis, including elements such as Gold TS reference comparison.
And then, on top of this, content check across 1000 services ensuring not just that data is getting where it needs to, but that the viewer is seeing exactly what you want them to; perfect quality, perfect experience.
A subjective approach to the objective
What this essentially means is that the v6 provides operational and subjective testing in one box.
Because that's what it comes down to. The theory of 'a centre of narrative gravity' is about using a psychological device to make sense of a complex objective world by making it as subjectively relatable as possible. It's how our brains manage to process so much and stay sane.
And that's what the VB330v6 does too; monitoring, measuring and 'understanding' the objective, but ensuring that all of that is ultimately subjectively relatable to the viewer; millions of millions of subjective individuals – all united in the 'uniqueness' of their stories.
Category: content
Tags: blogBridgeTechnologiesBroadcastDennetInnovationKnowledgetechnologyVB330v6
PreviousPrevious post:Ziggo Upgrades its Cable Network With the Help of Bridge TechnologiesNextNext post:Is the network fascination with football flagging?
Video Progetti Complete Ecosystem Installation for Retecapri
A Positive Start with a New Sense of Community
Xpresso LIVE_Tech Talk with Bridge Technologies
Off air, lights out, drop the mic and see you all for an exciting 2021
'Traveling Station', 'Radio Itinerante', Democratizes Access to Archives
Restaurants and the Improved Contactless In-store Experience
Why Marketing Communications Can't Ignore the Personality of Your Business?
XPresso Communications
Video Progetti today announces completion of a full ecosystem installation for leading Italian broadcaster Retecapri, including MAM, newsroom, playout and headend.
www.xpressocommunications.com/client-news/video-progetti-complete-ecosystem-installation-for-rete...
#technologynews #broadcast Retecapri #italy #pressrelease ...
Willem van Otterloostraat 6
2353 KR Leiderdorp
C: +31 6 20618769 CONTACT XPRESSO
© Xpresso Communications 2020. All rights reserved. Terms and conditions Privacy
+31 71 5238210 info@xpressocommunications.com


text:
Find a Grave/Service
David Shields
Family Service Advisor
dshields@ghmp.com
David grew up in the city of Carson, graduated from Carson High School and remained a resident until the age of 23. He now resides in Redondo Beach with his wife and is the father of two adult age children.
David holds a degree in History from California Polytechnic State University, Pomona. His professional career includes 24 years in the water business, all with Nestle Waters North America, aka Arrowhead. His last position with Nestle was Regional Warehouse Manager for Southern California. David changed direction and entered the automotive retail industry where he spent three years as the Pre‐Owned Sales Manager for Subaru Pacific in Hawthorne, CA.
David's decision to join Green Hills Memorial Park centered around learning about the culture of the company where employees were treated respectfully and encouraged to make the opportunity to establish a career and not just hold a position.
THE GREEN HILLS COMMUNITY
David has been with Green Hills Memorial Park for a few years and has quickly added value to the customer experience. He recognizes the cemetery is the place where friends and family can return often to reflect on their loved one, so as an Advisor he can help ensure they have a special place to remember their loved one for a long time to come.
David enjoys the added opportunity working at Green Hills since he has several family members and friends at rest in the park. He recalls how much he appreciated the care and attention received during his time of need and is inspired to do the same for others.
The many years of being an active basketball player has taken a toll on David physically so he now enjoys regular workouts, walking at the beach, watching his beloved Raiders and spending time with his family.
David has mentored two young men, now in their late 20's, as a big brother since the age of 8. Not only is it fulfilling for him, he recognizes not everyone is fortunate to have a support system to aid in being successful. He accepts this responsibility with honor and dignity.
When schedules align for his family, often the Caribbean becomes the destination of choice.
Meet Our Trusted Advisors
Email: preplan@ghmp.com
27501 South Western Avenue
>Pay Online
Life Celebrated Perfectly
Park Hours:
November 3, 2019 through March 8, 2020
March 9, 2020 through November 1, 2020
Mausoleum Hours:
Administration Office Hours:
Limited staff available 8:30 AM – 5:00 PM for interment site information. Additional staff is available by appointment.
© Copyright 2012 - | Green Hills Memorial Park | ALL RIGHTS RESERVED | Website by: Marketing Strategy Coaches & Studio 202
Request A Tour Date
Would you like to find an available space near your loved one?


text:
'use strict';

function isNothing(subject) {
    return (undefined === subject) || (null === subject);
}

function isObject(subject) {
    return ('object' === typeof subject) && (null !== subject);
}

function toArray(sequence) {
    if (Array.isArray(sequence)) {
        return sequence;
    } else if (isNothing(sequence)) {
        return [];
    } else {
        return [sequence];
    }
}

function extend(target, source) {
    var index, length, key, sourceKeys;

    if (source) {
        sourceKeys = Object.keys(source);

        for (index = 0, length = sourceKeys.length; index < length; index += 1) {
            key = sourceKeys[index];
            target[key] = source[key];
        }
    }

    return target;
}

function repeat(string, count) {
    var result = '', cycle;

    for (cycle = 0; cycle < count; cycle += 1) {
        result += string;
    }

    return result;
}

function isNegativeZero(number) {
    return (0 === number) && (Number.NEGATIVE_INFINITY === 1 / number);
}

module.exports.isNothing = isNothing;
module.exports.isObject = isObject;
module.exports.toArray = toArray;
module.exports.repeat = repeat;
module.exports.isNegativeZero = isNegativeZero;
module.exports.extend = extend;


text:
Hygrotus corpulentus är en skalbaggsart som först beskrevs av Hermann Rudolph Schaum 1864.  Hygrotus corpulentus ingår i släktet Hygrotus och familjen dykare. Inga underarter finns listade i Catalogue of Life.

Källor

Dykare
corpulentus

redpajama_set_name: RedPajamaWikipedia


text:
Born in the little Ayrshire village of Crosshouse in 1873, Andrew Law's painting skills were admired throughout his working life. In particular his portrait painting was in considerable demand.
Born in the little Ayrshire village of Crosshouse in 1873, Andrew Law's painting skills were admired throughout his working life. In particular his portrait painting was in considerable demand. All eleven Kilmarnock Provosts from 1908 to 1954 were painted by this remarkable artist and commissions of this nature became one of his main sources of income. He retained a studio in Renfrew St, Glasgow until his death. He did not exhibit widely outside of Glasgow and the West of Scotland and the only record of a one man exhibition was in 1958 when he was aged 85 and as a result his true merit as an artist was never realised. A modest and unassuming man, he has been described as "one of Scotland's unsung heroes of the art world".
His early education in the 1890's coincided with Glasgow's emergence as one of the new artistic centres of Europe. Patronage of the arts was high and with encouragement from his family it seemed the right time to enter into such a profession. Born, the son of a miner, Andrew was one of a large family, and their house at Orr's had earlier been the birthplace of Andrew Fisher, another miner's son, who had went on to become Prime Minister of Australia.
Andrew's family moved to Kilmarnock when he was still quite young, his father now working in the licence trade. Over the years his father developed his business, owning a number of public houses in the town. Andrew attended school in the town and continued his studies in the evening in the Science & Art Dept. in the old Kilmarnock Academy. In 1891 he was awarded the National Medal for Success in Art and in the same year was accepted as a student at the Art School in Glasgow where he attended until 1896. The school's Director and Andrew's tutor was Francis Newbery who encouraged him throughout his education there. During these years the 'Glasgow Style' was emerging within the Art School. Andrew, his friend Herbert MacNair and two sisters, Margaret and Frances Macdonald were became known as 'The Four' or 'Spook School' because of their ghostly images associated with the Art Nouveau style. Although he was not part of this new wave the situation seemed to reflect all that would happen in Andrew's later life. He was always on the edge of the main stream, his painting style never reflecting the artistic fashions which shifted so frequently around him. Newbery recommended Law for the Haldane Travelling Scholarship, which he was awarded in 1896. He used this to study for six months in Paris, during the day with a young American Robert Henri and in the evening at the Academie Delecluse.
After returning to Kilmarnock, he embarked on a series of private commissions including the portrait of Kilmarnock Provost Mathew Smith. It was during this time he met Elizabeth Wilson who worked as an assistant in Robertson's arts supply shop in King Street in the town. They were married in 1912 and moved to Jane Street in Glasgow, near the School of Art where their only daughter, Margaret Law was born in 1914. Andrew continued to work on commissions and he became a part time lecturer at the School of Art which supplemented his income and exhibited regularly at the Royal Glasgow's annual exhibition. By the late 1920's he had established himself as a portrait painter. Glasgow Rangers F.C. commissioned him to paint the legendary player Alan Morton, a full length portrait which was exhibited in Paris in 1930 and still hangs in the main stand at Ibrox Stadium. At this time he would still paint street scenes and rural settings in and around Kilmarnock and life studies, particularly of cut flowers, between commissions. He had a great love of fauna and would spend much of his time at Wilson's Zoo in Argyle St, Glasgow. Many of the animals and birds would be taken to his studio to study. One of his favourites was Nancy, the pet monkey who was a regular visitor, sometimes staying at the studio for weeks. She is depicted in the picture 'The Pet Shop'. In 1957 Glasgow Art Club elected him as an honorary member but was never fashionable enough for his name to be regarded as 'synonymous' with the Scottish painting tradition this century like many of his contemporaries. What he has provided is a legacy of images recording people and places painted in a style rarely seen today.
Waterloo Street, Kilmarnock
Delphimiums
Waterloo Street, Kilmarnock (1)
Lyre and Cherubs
Ram's Head
The Bailie Cartoon Supplement: The "Hangers" of This Year's Exhibition
National Medal for Success in Art
Exhibition Catalogue for An Exhibition of Paintings by Andrew Law
Academie Delacluse Medal for Art
Andrew Law at his 1958 Solo Exhibition at the Glasgow Art Club
Park Street and Gas Brae, Kilmarnock
David Stratton
Girl in a Blue Gown
Old Rome, Gatehead
Kilmarnock Cross
Gentleman in Evening Dress
Young Child Wearing White Bonnet
Mrs. David Stratton
Daniel Cairns, Provost of Kilmarnock
James Alexander Hill, Artist


text:
Welcome to our newest Fjordians!
Please join us in welcoming John Grøtting, NurGul Karadeniz, Jean-Paul Haire, Claudia Niemeyer and Richard Wilshire to our family. Our newest talent brings us creative inspiration from around the world, and you can read about them here.
John Grøtting, Group Design Director, Fjord Berlin
Image credit: André Wunstorf
John Grøtting grew up in Silicon Valley. He studied at the Art Center College of Design in Pasadena, Calif., where a professor encouraged him to learn programming skills and delve into human computer interaction. Before finishing his studies, he started a digital agency with fellow students, quickly winning contracts from Mercedes-Benz and Motorola.
As the computer industry evolved from CD-ROM and diskette-based projects to browser-based solutions in the 1990s, he went to work for legendary designer and author Clement Mok in San Francisco. He then served as a creative leader at Sapient, marchFIRST and top agencies in Germany. His passion for cooking drove him to start Caramelized, a platform for digital cookbooks.
John is looking forward to bringing the attitude of a lean startup to Fjord through focus on user research, driving rapid iteration on digital products and services that excite users.
NurGul Karadeniz, Service Design Director, Fjord Istanbul
Nur is a user-centred design specialist with a human-computer interaction background. She has worked as a product and UX designer at various agencies in London and lastly was the head of UX at Signal Noise.
After earning a Master of Science in Human-Computer Interaction Design at University College London, she continued working with her professors and participated in a long-term project that aimed to update the design curriculum for UK schools. As a result, the A-level design module includes user-centered design methodologies.
Nur has a special love for information architecture, interaction design, service design and user research, being particularly passionate about contextual design and designing for the next web. She has created award-winning products and services in digital news, interactive TV, financial services, health and e-commerce, and worked for companies such as the BBC, JP Morgan, HCBC, Investec, Ustwo and Microsoft.
Nur also loves to get involved with UX and service design communities, and regularly talks at international conferences and participates in design jams.
A frequent traveller, scuba diver and Neapolitan pizza lover, she enjoys spending her weekends exploring Istanbul and taking photos of street cats and historic houses.
Jean-Paul Haire, Group Design Director, Fjord Paris
Jean-Paul brings extensive agency and in-house design experience to Fjord Paris. Throughout his career, he has researched, defined and designed the human side of digital products and services for industries including automotive, luxury, financial, human resources, legal and internet technology.
He has worked as an information architect, product designer, art director, UX director, creative director for organisations such as BBDO, Organic, Frog Design, Sapient, Yahoo! and AOL. Most recently, Jean-Paul led a hands-on effort to create scalable design languages and systems for LexisNexis.
As VP and head of design at Deutsche Bank, Jean-Paul worked on FX trading platforms, connected alerts and cash-management tools. He also helped to develop the bank's partnership with North Carolina State University's School of Design and School of Engineering, where he co-led graduate-level, collaborative design studios.
With a Master in Industrial Design from the NC State design school and an undergraduate degree in French Literature, Jean-Paul still believes that the best education is the one we get outside of the classroom. He is known for his attention to detail, a keen ability to forge collaborative partnerships, and his love for simplicity and refined aesthetics.
Claudia Niemeyer, Group Design Director, Fjord Sao Paulo
Claudia has worked in strategy design and brand management at leading agencies in Brazil such as Tatil, Ana Couto, Pharus and Saatchi & Saatchi X, where her clients included Procter & Gamble, Vale, Eletrobras, Coca-Cola, Nokia, Total Information Management (TIM), British American Tobacco, Ambev, Brazilian Olympic Committee, Petrobras, MeadJohnson, Claro, Oi, ANP, Xerox and start-ups.
She graduated with a degree in industrial design in Rio de Janeiro. After earning her first MBA 10 years ago, she is now getting her Executive MBA at the Berlin School of Creative Leadership. She learns from different cultures and perspectives while taking classes all over the world, from Berlin to New York to Shanghai.
Claudia is known for her global networking, as someone who searches for and shares inspiration while encouraging designers to create solutions that make contextual sense and meet people's needs. She has visited more than 32 countries and is passionate about Berlin. She loves to be surrounded by people, practice radical sports and be in contact with nature.
Richard Wilshire, Principal Design Director, Fjord EALA Regional Team
As a creative leader with 20 years of digital experience, Richard is based in London and the newest member of the European leadership team. He has worked with many of the world's leading brands across a range of industry sectors, from start-ups to multimillion pound e-commerce platforms.
During the last nine years he played a central role in the evolution of SapientNitro's creative reputation and grew its experience studio to become one of the largest and most respected in the UK.
Richard has a special interest in all forms of digital interfaces and the interaction they create between brands and consumers. Throughout his career, he has worked with many technologies and navigated countless trends, but his personal design philosophy remains the same:
Making the complex appear simple and the intimidating seem easy.
Richard has joined our Design Strategy Group to help accelerate the definition and establishment of a leading design realisation offering and capability to not only keep up with client demands but also lead them in building digital products that inspire, inform and engage at scale.