text:
package org.drools.core.reteoo;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.ArrayDeque;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Queue;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;

import org.drools.core.common.BaseNode;
import org.drools.core.common.DroolsObjectInputStream;
import org.drools.core.common.DroolsObjectOutputStream;
import org.drools.core.common.InternalWorkingMemory;
import org.drools.core.common.MemoryFactory;
import org.drools.core.common.NetworkNode;
import org.drools.core.definitions.rule.impl.RuleImpl;
import org.drools.core.impl.InternalKnowledgeBase;
import org.drools.core.phreak.AddRemoveRule;
import org.drools.core.rule.InvalidPatternException;
import org.drools.core.rule.WindowDeclaration;
import org.kie.api.definition.rule.Rule;

import static org.drools.core.impl.StatefulKnowledgeSessionImpl.DEFAULT_RULE_UNIT;

/**
 * Builds the Rete-OO network for a Package.
 *
 */
public class ReteooBuilder
        implements
        Externalizable {
    // ------------------------------------------------------------
    // Instance members
    // ------------------------------------------------------------

    private static final long           serialVersionUID = 510l;

    /** The RuleBase */
    private transient InternalKnowledgeBase  kBase;

    private Map<String, BaseNode[]>     rules;
    private Map<String, BaseNode[]>     queries;

    private Map<String, WindowNode>     namedWindows;

    private transient RuleBuilder       ruleBuilder;

    private IdGenerator                 idGenerator;

    // ------------------------------------------------------------
    // Constructors
    // ------------------------------------------------------------

    public ReteooBuilder() {

    }

    /**
     * Construct a Builder against an existing Rete
     * network.
     */
    public ReteooBuilder( final InternalKnowledgeBase  kBase ) {
        this.kBase = kBase;
        this.rules = new HashMap<>();
        this.queries = new HashMap<>();
        this.namedWindows = new HashMap<>();

        //Set to 1 as Rete node is set to 0
        this.idGenerator = new IdGenerator();
        this.ruleBuilder = kBase.getConfiguration().getComponentFactory().getRuleBuilderFactory().newRuleBuilder();
    }

    // ------------------------------------------------------------
    // Instance methods
    // ------------------------------------------------------------

    /**
     * Add a Rule to the network.
     *
     * @param rule
     *            The rule to add.
     * @throws InvalidPatternException
     */
    public synchronized void addRule(final RuleImpl rule) {
        final List<TerminalNode> terminals = this.ruleBuilder.addRule( rule,
                                                                       this.kBase );

        BaseNode[] nodes = terminals.toArray( new BaseNode[terminals.size()] );
        this.rules.put( rule.getFullyQualifiedName(), nodes );
        if (rule.isQuery()) {
            this.queries.put( rule.getName(), nodes );
        }
    }

    public void addEntryPoint( String id ) {
        this.ruleBuilder.addEntryPoint( id,
                                        this.kBase );
    }

    public synchronized void addNamedWindow( WindowDeclaration window ) {
        final WindowNode wnode = this.ruleBuilder.addWindowNode( window,
                                                                 this.kBase );

        this.namedWindows.put( window.getName(),
                               wnode );
    }

    public WindowNode getWindowNode( String name ) {
        return this.namedWindows.get( name );
    }

    public IdGenerator getIdGenerator() {
        return this.idGenerator;
    }

    public synchronized BaseNode[] getTerminalNodes(final RuleImpl rule) {
        return getTerminalNodes( rule.getFullyQualifiedName() );
    }

    public synchronized BaseNode[] getTerminalNodes(final String ruleName) {
        return this.rules.get( ruleName );
    }

    public synchronized BaseNode[] getTerminalNodesForQuery(final String ruleName) {
        BaseNode[] nodes = this.queries.get( ruleName );
        return nodes != null ? nodes : getTerminalNodes(ruleName);
    }

    public synchronized Map<String, BaseNode[]> getTerminalNodes() {
        return this.rules;
    }

    public synchronized void removeRules(Collection<RuleImpl> rulesToBeRemoved) {
        // reset working memories for potential propagation
        Collection<InternalWorkingMemory> workingMemories = this.kBase.getWorkingMemories();

        for (RuleImpl rule : rulesToBeRemoved) {
            if (rule.hasChildren() && !rulesToBeRemoved.containsAll( rule.getChildren() )) {
                throw new RuntimeException("Cannot remove parent rule " + rule + " without having removed all its chikdren");
            }

            final RuleRemovalContext context = new RuleRemovalContext( rule );
            context.setKnowledgeBase( kBase );

            BaseNode[] rulesTerminalNodes = rules.remove( rule.getFullyQualifiedName() );
            if (rulesTerminalNodes == null) {
                // there couldn't be any rule to be removed if it comes from a broken drl
                continue;
            }

            for ( BaseNode node : rulesTerminalNodes ) {
                removeTerminalNode( context, (TerminalNode) node, workingMemories );
            }

            if ( rule.isQuery() ) {
                this.queries.remove( rule.getName() );
            }

            if (rule.getParent() != null && !rulesToBeRemoved.contains( rule.getParent() )) {
                rule.getParent().removeChild( rule );
            }
        }
    }

    public void removeTerminalNode(RuleRemovalContext context, TerminalNode tn, Collection<InternalWorkingMemory> workingMemories)  {
        AddRemoveRule.removeRule( tn, workingMemories, kBase );

        BaseNode node = (BaseNode) tn;
        removeNodeAssociation(node, context.getRule(), new HashSet<>());

        resetMasks(removeNodes((AbstractTerminalNode)tn, workingMemories, context));
    }

    private Collection<BaseNode> removeNodes(AbstractTerminalNode terminalNode, Collection<InternalWorkingMemory> wms, RuleRemovalContext context) {
        Map<Integer, BaseNode> stillInUse = new HashMap<>();
        Collection<ObjectSource> alphas = new HashSet<>();

        removePath(wms, context, stillInUse, alphas, terminalNode);

        Set<Integer> removedNodes = new HashSet<>();
        for (ObjectSource alpha : alphas) {
            removeObjectSource( wms, stillInUse, removedNodes, alpha, context );
        }

        return stillInUse.values();
    }

    /**
     * Path's must be removed starting from the outer most path, iterating towards the inner most path.
     * Each time it reaches a subnetwork beta node, the current path evaluation ends, and instead the subnetwork
     * path continues.
     */
    private void removePath( Collection<InternalWorkingMemory> wms, RuleRemovalContext context, Map<Integer, BaseNode> stillInUse, Collection<ObjectSource> alphas, PathEndNode endNode ) {
        LeftTupleNode[] nodes = endNode.getPathNodes();
        for (int i = endNode.getPathIndex(); i >= 0; i--) {
            BaseNode node = (BaseNode) nodes[i];

            boolean removed = false;
            if ( NodeTypeEnums.isLeftTupleNode( node ) ) {
                removed = removeLeftTupleNode(wms, context, stillInUse, node);
            }

            if ( removed ) {
                // reteoo requires to call remove on the OTN for tuples cleanup
                if (NodeTypeEnums.isBetaNode(node) && !((BetaNode) node).isRightInputIsRiaNode()) {
                    alphas.add(((BetaNode) node).getRightInput());
                } else if (node.getType() == NodeTypeEnums.LeftInputAdapterNode) {
                    alphas.add(((LeftInputAdapterNode) node).getObjectSource());
                }
            }

            if (NodeTypeEnums.isBetaNode(node) && ((BetaNode) node).isRightInputIsRiaNode()) {
                endNode = (PathEndNode) ((BetaNode) node).getRightInput();
                removePath(wms, context, stillInUse, alphas, endNode);
                return;
            }
        }
    }

    private boolean removeLeftTupleNode(Collection<InternalWorkingMemory> wms, RuleRemovalContext context, Map<Integer, BaseNode> stillInUse, BaseNode node) {
        boolean removed;
        removed = node.remove(context, this);

        if (removed) {
            stillInUse.remove( node.getId() );
            // phreak must clear node memories, although this should ideally be pushed into AddRemoveRule
            for (InternalWorkingMemory workingMemory : wms) {
                workingMemory.clearNodeMemory((MemoryFactory) node);
            }
        } else {
            stillInUse.put( node.getId(), node );
        }

        return removed;
    }

    private void removeObjectSource(Collection<InternalWorkingMemory> wms, Map<Integer, BaseNode> stillInUse, Set<Integer> removedNodes, ObjectSource node, RuleRemovalContext context ) {
        if (removedNodes.contains( node.getId() )) {
            return;
        }
        ObjectSource parent = node.getParentObjectSource();

        boolean removed = node.remove( context, this );

        if ( !removed ) {
            stillInUse.put( node.getId(), node );
        } else {
            stillInUse.remove(node.getId());
            removedNodes.add(node.getId());

            if ( node.getType() != NodeTypeEnums.ObjectTypeNode &&
                 node.getType() != NodeTypeEnums.AlphaNode ) {
                // phreak must clear node memories, although this should ideally be pushed into AddRemoveRule
                for (InternalWorkingMemory workingMemory : wms) {
                    workingMemory.clearNodeMemory( (MemoryFactory) node);
                }
            }

            if (parent != null && parent.getType() != NodeTypeEnums.EntryPointNode) {
                removeObjectSource(wms, stillInUse, removedNodes, parent, context);
            }
        }
    }

    private void removeNodeAssociation(BaseNode node, Rule rule, Set<Integer> removedNodes) {
        if (node == null || !removedNodes.add( node.getId() ) || !node.removeAssociation( rule )) {
            return;
        }
        if (node instanceof LeftTupleNode) {
            removeNodeAssociation( ((LeftTupleNode)node).getLeftTupleSource(), rule, removedNodes );
        }
        if ( NodeTypeEnums.isBetaNode( node ) ) {
            removeNodeAssociation( ((BetaNode) node).getRightInput(), rule, removedNodes );
        } else if ( node.getType() == NodeTypeEnums.LeftInputAdapterNode ) {
            removeNodeAssociation( ((LeftInputAdapterNode) node).getObjectSource(), rule, removedNodes );
        } else if ( node.getType() == NodeTypeEnums.AlphaNode ) {
            removeNodeAssociation( ((AlphaNode) node).getParentObjectSource(), rule, removedNodes );
        }
    }

    private void resetMasks(Collection<BaseNode> nodes) {
        NodeSet leafSet = new NodeSet();

        for ( BaseNode node : nodes ) {
            if ( node.getType() == NodeTypeEnums.AlphaNode ) {
                ObjectSource source = (AlphaNode) node;
                while ( true ) {
                    source.resetInferredMask();
                    BaseNode parent = source.getParentObjectSource();
                    if (parent.getType() != NodeTypeEnums.AlphaNode) {
                        break;
                    }
                    source = (ObjectSource)parent;
                }
                updateLeafSet(source, leafSet );
            } else if( NodeTypeEnums.isBetaNode( node ) ) {
                BetaNode betaNode = ( BetaNode ) node;
                if ( betaNode.isInUse() ) {
                    leafSet.add( betaNode );
                }
            } else if ( NodeTypeEnums.isTerminalNode( node )  ) {
                RuleTerminalNode rtNode = ( RuleTerminalNode ) node;
                if ( rtNode.isInUse() ) {
                    leafSet.add( rtNode );
                }
            }
        }

        for ( BaseNode node : leafSet ) {
            if ( NodeTypeEnums.isTerminalNode( node ) ) {
                ((TerminalNode)node).initInferredMask();
            } else { // else node instanceof BetaNode
                ((BetaNode)node).initInferredMask();
            }
        }
    }

    private void updateLeafSet(BaseNode baseNode, NodeSet leafSet) {
        if ( baseNode.getType() == NodeTypeEnums.AlphaNode ) {
            for ( ObjectSink sink : ((AlphaNode) baseNode).getObjectSinkPropagator().getSinks() ) {
                if ( ((BaseNode)sink).isInUse() ) {
                    updateLeafSet( ( BaseNode ) sink, leafSet );
                }
            }
        } else  if ( baseNode.getType() ==  NodeTypeEnums.LeftInputAdapterNode ) {
            for ( LeftTupleSink sink : ((LeftInputAdapterNode) baseNode).getSinkPropagator().getSinks() ) {
                if ( sink.getType() ==  NodeTypeEnums.RuleTerminalNode ) {
                    leafSet.add( (BaseNode) sink );
                } else if ( ((BaseNode)sink).isInUse() ) {
                    updateLeafSet( ( BaseNode ) sink, leafSet );
                }
            }
        } else if ( baseNode.getType() == NodeTypeEnums.EvalConditionNode ) {
            for ( LeftTupleSink sink : ((EvalConditionNode) baseNode).getSinkPropagator().getSinks() ) {
                if ( ((BaseNode)sink).isInUse() ) {
                    updateLeafSet( ( BaseNode ) sink, leafSet );
                }
            }
        } else if ( NodeTypeEnums.isBetaNode( baseNode ) && ( baseNode.isInUse() )) {
            leafSet.add( baseNode );
        }
    }

    public static class IdGenerator implements Externalizable {
        private InternalIdGenerator defaultGenerator = new InternalIdGenerator( 1 );
        private Map<String, InternalIdGenerator> generators = new ConcurrentHashMap<>();

        public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
            defaultGenerator = (InternalIdGenerator) in.readObject();
            generators = (Map<String, InternalIdGenerator>) in.readObject();
        }

        public void writeExternal(ObjectOutput out) throws IOException {
            out.writeObject( defaultGenerator );
            out.writeObject( generators );
        }

        public int getNextId() {
            return defaultGenerator.getNextId();
        }

        public int getNextId(String topic) {
            return generators.computeIfAbsent( topic, key -> new InternalIdGenerator( 1 ) ).getNextId();
        }

        public synchronized void releaseId(NetworkNode node) {
            defaultGenerator.releaseId( node.getId() );
            if (node instanceof MemoryFactory) {
                generators.get( DEFAULT_RULE_UNIT ).releaseId( ( (MemoryFactory) node ).getMemoryId() );
            }
        }

        public int getLastId() {
            return defaultGenerator.getLastId();
        }

        public int getLastId(String topic) {
            InternalIdGenerator gen = generators.get( topic );
            return gen != null ? gen.getLastId() : 0;
        }
    }

    private static class InternalIdGenerator implements Externalizable {

        private static final long serialVersionUID = 510l;

        private Queue<Integer>    recycledIds;
        private int               nextId;

        public InternalIdGenerator() { }

        public InternalIdGenerator(final int firstId) {
            this.nextId = firstId;
            this.recycledIds = new ArrayDeque<>();
        }

        @SuppressWarnings("unchecked")
        public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
            recycledIds = (Queue<Integer>) in.readObject();
            nextId = in.readInt();
        }

        public void writeExternal(ObjectOutput out) throws IOException {
            out.writeObject( recycledIds );
            out.writeInt( nextId );
        }

        public synchronized int getNextId() {
            Integer id = this.recycledIds.poll();
            return ( id == null ) ? this.nextId++ : id;
        }

        public synchronized void releaseId(int id) {
            this.recycledIds.add( id );
        }

        public int getLastId() {
            return this.nextId - 1;
        }
    }

    public void writeExternal(ObjectOutput out) throws IOException {
        DroolsObjectOutputStream droolsStream;
        ByteArrayOutputStream bytes;

        if ( out instanceof DroolsObjectOutputStream ) {
            bytes = null;
            droolsStream = (DroolsObjectOutputStream) out;
        } else {
            bytes = new ByteArrayOutputStream();
            droolsStream = new DroolsObjectOutputStream( bytes );
        }
        try {
            droolsStream.writeObject( rules );
            droolsStream.writeObject( queries );
            droolsStream.writeObject( namedWindows );
            droolsStream.writeObject( idGenerator );
        } finally {
            if ( bytes != null ) {
                droolsStream.flush();
                droolsStream.close();
                bytes.close();
                out.writeInt( bytes.size() );
                out.writeObject( bytes.toByteArray() );
            }
        }
    }

    public void readExternal(ObjectInput in) throws IOException,
                                                    ClassNotFoundException {
        DroolsObjectInputStream droolsStream;
        ByteArrayInputStream bytes;

        if ( in instanceof DroolsObjectInputStream ) {
            bytes = null;
            droolsStream = (DroolsObjectInputStream) in;
        } else {
            bytes = new ByteArrayInputStream( (byte[]) in.readObject() );
            droolsStream = new DroolsObjectInputStream( bytes );
        }
        try {
            this.rules = (Map<String, BaseNode[]>) droolsStream.readObject();
            this.queries = (Map<String, BaseNode[]>) droolsStream.readObject();
            this.namedWindows = (Map<String, WindowNode>) droolsStream.readObject();
            this.idGenerator = (IdGenerator) droolsStream.readObject();
        } finally {
            if ( bytes != null ) {
                droolsStream.close();
                bytes.close();
            }
        }
    }

    public void setRuleBase( InternalKnowledgeBase kBase ) {
        this.kBase = kBase;

        this.ruleBuilder = kBase.getConfiguration().getComponentFactory().getRuleBuilderFactory().newRuleBuilder();
    }

}

redpajama_set_name: RedPajamaGithub


Breaking up having a person on the web is alright but you must be truthful concerning the reason. As talking on the web is the principal type of communication it's absolutely fine to send an email to this man that has the backup motives. When you speak to a Chinese girl online be sure to highlight your own wisdom and abilities.
Internet dating is really amazing if you see the proper direction. Internet dating is in an all-time large among singles now. Internet dating makes it easy to connect with people from all around the Earth, and it is one of the many explanations for why women and men go online each day. A lot of such online dating sites like Mirabela Executive Dating also provide elite single dating options for men and women who are searching for a selective and top-notch therapy.
By definition, dating on the world wide web is the association of two people throughout the web. It may mean meeting people of different cultures and backgrounds so remember to know how to respect them. Internet dating is extremely handy. Internet dating protects your personal space. Internet dating is a great venue for timid types. Internet dating has been shown to be a prosperous procedure for meeting people and setting up dates.
Dating online could be equally tricky for men because it is for you. Another motive online dating is an outstanding alternative is that you're able ethiopian brides to meet men and women in light of some thing apart from their own appearances. Internet dating programs in India are intended to spark a relationship, and they allow you to locate individuals with the exact interests, hobbies, etc.. Internet dating really isn't the normal dating so it's just normal to talk with more than 1 person as you're not dating any person entirely just yet. It's a real blessing for us. It's played an essential part in improving human life.
If a site isn't user friendly, members more frequently than notcheck out other dating websites that may give a more straightforward navigation, accuracy and simplicity of use. Dating websites are primarily meant for one individual to satisfy another. Internet dating websites are the ideal place to discover friends, for you can search for men and women having the exact interests . The totally free online dating site is much more popular because it is not just convenient but is highly economic. You do not have to be too suspecting concerning the folks which are in the relationship site. A lot of people might think that the senior population would not participate in any online dating website. Internet dating websites supply you with matchmaking cases that are not monitored, via the usage of your notebook, Internet link and also in latter days, your cell phone.
There are several internet dating services all around the world that assists senior citizens all over the world in looking the ideal option in their view. In addition, there are lots of services for internet matchmaking in Australia. Dating is not running a marathon, but it's about fun and enjoying somebody else's company. In the event you believe internet dating services can assist you just from how it's helped many people, you would have to produce a online profile and search profile for relationship. Maybe by now you will have registered with your own first internet dating service.


I am trying to extract an archive using the paths in the archive.
The path has a leading '.', so it looks like this ".rockbox\rocks>". This dot is visible in PA and the extracting files dialogue.
In this build, the leading dot is missed off on extracting so the extracted path becomes "\rockbox\rocks>".
Apologies for missing that, it's a ZIP file.
When are the graphical issues under XP to be fixed? I posted a screen shot in another thread.


text:
A tramini könnyű, friss, aromás fehérbort adó szőlőfajta. A muskotály fajta rokonának tartják. Nevét a dél-tiroli (alto-adige-i) Tramin (1919 óta Termeno) községről kaphatta, de a szőlőfajta akár francia eredetű is lehet, vagy egyes vélemények szerint észak-görögországi.

Elterjedése

Termesztik Németországban, Franciaországban, az Amerikai Egyesült Államokban (főleg Kaliforniában), Ausztriában és Romániában is. Spanyolország északnyugati borrégiójában (Galicia autonóm közösségben) albariño néven jelentős.

Magyarországon főleg a pannonhalma-sokoróaljai, a mátraaljai, az egri és a móri borvidékeken termesztenek. Magyarországon általában a piros tramini és a fűszeres tramini ismert, de az alacsony terméshozam miatt egyik sem igazán elterjedt.

Jellemzése

Tőkéje középerősen nő, sűrű vesszőkkel. Fürtje kicsi, szabálytalan, tömött vagy közepesen tömött. Bogyói kicsik vagy közepesek, kissé megnyúlt gömbölydedek, húspirosak és hamvasak. A héjuk vastag, ropogósak, édesek és lédúsak, de a sok mag miatt viszonylag kevés levet adnak.

Viszonylag hűvös éghajlaton érzi jól magát. Szeptember vége felé érik.

Felhasználása

Savai a Somlón termett tramini kivételével lágyak. Bora aranysárga, rózsa és licsi illatú, kissé muskotályos, fűszer, gyümölcs, fahéj és mézízű. Általában fiatalon fogyasztják, de egyes fajtáinak 2-4 év érés használ. Öt évnél tovább ritkán él.

A nemzetközi piacon legismertebbek a francia Elzász tartományban előállított traminik. Magyarországon ismert például a Bátaapáti Tramini.

Gewürztraminer

A traminit gyakran azonosítják a Gewürztraminer szőlőfajtával (amit Gewürz, illetve Traminer neveken is emlegetnek), bár az Office Internationale de la Vigne et du Vin szerint nagyon hasonló, de mégis külön fajták.

Épp ezért a tramini és a Gewürztraminer hasonnevei, mint például Tramin cervené és Traminer Rosso is keverednek.
Egyéb hasonnevei a Traminer, Traminac, Traminer Musqué, Traminer Parfumé, Traminer Aromatico, Roter Traminer, Edel Traube, Rousselet, Savagnin és a Savagnin Rosé.

Gasztronómiai ajánlat

A száraz traminit fehér húsú szárnyasokhoz, az édes traminit gyümölcsös édességekhez ajánlják .

A tramini a Gewürztraminerrel együtt a kevés fehérborok egyike, amely kellemes curryvel és egyéb ázsiai ételekkel. Fogyasztható zsíros vadhúshoz is.

A fűszeres tramini késői szüretelésű borai gyakran viselik magukon többek között a fahéj aromajegyeit, ami összhangot teremt a fahéjas fogásokkal. Jól harmonizál a gyömbérrel, s például a licsivel készült ételekkel is.

10-12 C hőmérsékleten szolgálják fel.

Jegyzetek

Források

Nemespenészes borok a világban

Szőlőfajták

redpajama_set_name: RedPajamaWikipedia


A spectacular study of optical effects created by exterior color, pattern and texture reflected onto an interior surface. A facet is cut through the color revealing the clear bubble within. (There is no interior color, just the reflection on the bubble's surface.) Amazing!
Available in 3 sizes in any of the vortex color mixes, frosting also available.
Height: 4.5", 5.5" or 7"


text:
Publish in this journal
Ethics in publishing
August 2018 Device entrapped in subvalvular apparatus: A surprising result
Revista Portuguesa de Cardiologia (English edition)
The Portuguese Journal of Cardiology, the official journal of the Portuguese Society of Cardiology, was founded in 1982 with the aim of keeping Portuguese cardiologists informed through the publication of scientific articles on areas such as arrhythmology and electrophysiology, cardiovascular surgery, intensive care, coronary artery disease, cardiovascular imaging, hypertension, heart failure and cardiovascular prevention. The Journal is a monthly publication with high standards of quality in terms of scientific content and production. Since 1999 it has been published in English as well as Portuguese, which has widened its readership abroad. It is distributed to all members of the Portuguese Societies of Cardiology, Internal Medicine, Pneumology and Cardiothoracic Surgery, as well as to leading non-Portuguese cardiologists and to virtually all cardiology societies worldwide. It has been referred in Medline since 1987.
Index Medicus/Medline, Science Citation Index Expanded/Journal of Citation Reports, Scopus
The Impact Factor measures the average number of citations received in a particular year by papers published in the journal during the two receding years.
Impact Factor 2018
CiteScore measures average citations received per document published. Read more
SRJ is a prestige metric based on the idea that not all citations are the same. SJR uses a similar algorithm as the Google page rank; it provides a quantitative and qualitative measure of the journal's impact.
SNIP measures contextual citation impact by wighting citations based on the total number of citations in a subject field.
See more Hide
Open Access Option
Vol. 37. Issue 8.
Pages 719-721 (August 2018)
More article options
Image in Cardiology
DOI: 10.1016/j.repc.2017.05.015
Device entrapped in subvalvular apparatus: A surprising result
Dispositivo retido no aparelho subvalvular: um resultado surpreendente
Marta Madeiraa,b,
marta.jesus.madeira@gmail.com
Corresponding author.
, Liliana Reisa, Rogério Teixeiraa,b, Paulo Dinisa, Marco Costaa, Lino Gonçalvesa,b
a Centro Hospitalar e Universitário de Coimbra, Coimbra, Portugal
b Faculdade de Medicina da Universidade de Coimbra, Coimbra, Portugal
This item has received
Additional material (2)
A 72-year old woman with a history of mechanical aortic prosthesis since 2010 and early infective prosthetic endocarditis (medical treatment) was hospitalized for acute heart failure in February 2015. Transesophageal echocardiography showed a severe paravalvular leak in the posterior portion of the aortic prosthesis (Figure 1A, arrow) and a pseudoaneurysm with fistulization to the left ventricle (LV) and aorta (Figure 1B, arrow), moderate mitral regurgitation and mild LV systolic dysfunction. Surgery was considered high risk and percutaneous closure of the paravalvular leak was attempted. The procedure was guided by fluoroscopy and transesophageal echocardiography. After confirming the stability of the device (Amplatzer® Vascular Plug II 12 mm/9 mm) and reduction of the paravalvular leak without functional compromise of the mechanical prosthesis (Figures 2A and 2B, arrow), the device was released. Minutes after deployment, the device migrated into the LV (Figure 3A, arrow and Supplementary data online, Movie S1). The device could not be retrieved (Figure 3B, arrow). Echocardiography images showed the device lodged beneath the posterior mitral leaflet, entrapped in the subvalvular mitral apparatus, with no significant compromise of mitral valve function (Figures 4A, arrow and 4B, arrow and Supplementary data online, Movie S2). Follow-up echocardiographies showed the device still in the same position. The patient died of sepsis due to a Clostridium difficile infection 58 days after admission (one month after the procedure). This case illustrates a rare and dramatic complication of percutaneous leak closure, but without significant hemodynamic impact on mitral valve and LV function.
Severe paravalvular leak in the posterior portion of the aortic prosthesis (A, arrow) and pseudoaneurysm with fistulization to the left ventricle and aorta (B, arrow).
(0.22MB).
Reduction of paravalvular leak without functional compromise of mechanical prosthesis and confirmation of its stability (A: fluoroscopy; B: transesophageal echocardiography).
Migration of the device into the left ventricle (A) and attempt to retrieve it with a snare (B).
Device entrapped in the subvalvular mitral apparatus (A), with no significant compromise of mitral valve function (B).
(0.2MB).
The authors have no conflicts of interest to declare.
The following are the supplementary material to this article:
Copyright © 2018. Sociedade Portuguesa de Cardiologia
Export reference
Registry of left atrial appendage closure and initial...
Rev Port Cardiol 2018;37:763-72
Device entrapped in subvalvular apparatus: A surprising...
Inotropes and cardiorenal syndrome in acute heart failure...
Publish in
Revista Portuguesa de Cardiologia
Revista Portuguesa de Cardiologia (English edition) is a member and subscribes the principles of, the Committee on Publication Ethics (COPE)
www.publicationethics.org.
Most Often Read
Reproduction terms
© Copyright 2019. Sociedade Portuguesa de Cardiologia
Elsevier España S.L.U. © 2019. Todos los derechos reservados
en	pt
Cookies policy	Política de cookies
To improve our services and products, we use "cookies" (own or third parties authorized) to show advertising related to client preferences through the analyses of navigation customer behavior. Continuing navigation will be considered as acceptance of this use. You can change the settings or obtain more information by clicking here.	Utilizamos cookies próprios e de terceiros para melhorar nossos serviços e mostrar publicidade relacionada às suas preferências, analisando seus hábitos de navegação. Se continuar a navegar, consideramos que aceita o seu uso. Você pode alterar a configuração ou obter mais informações aqui.

redpajama_set_name: RedPajamaCommonCrawl


text:
Global warming DEBUNKED: Study predicts Europe to get COLDER over the next 15 to 20 years
Friday, January 13, 2023 by: Belle Carter
Tags: badclimate, badscience, big government, Climate, climate alarmism, climate change, climate emergency, climate science, CO2, conspiracy, environment, fake science, global warming, global warning, green tyranny, junk science, propaganda, science deception, science fraud
(Natural News) A scientific paper showed that Europe's temperature will drop slightly for the next 15 to 20 years. It also pointed out that the next warming phase will begin by 2050, contradicting the doomsday predictions of climate alarmists.
The study published July 13 last year in NPJ Climate and Atmospheric Science explained that this temperature drop is a consequence of the diminishing strength of the North Atlantic Oscillation (NAO).
Fritz Vahrenholt, former chairman of the German Wildlife Foundation (DWS) and erstwhile environment senator of Germany's Hamburg state, put in his two cents on the study's finding. According to him, this natural cycle of the NAO's weakening has nothing to do with carbon dioxide. Global warming is going to pause as the North Atlantic cools.
"The unusually mild weather at the turn of the year in Central Europe has strengthened the belief of many in Germany that CO2-induced global warming is in full swing," Vahrenholt said.
Vahrenholt noted that the last solar cycle from 2008 to 2019 was the weakest in 100 years. "The current cycle so far is shaping up to be just as weak. The one-dimensionality of the climate and energy debate, culminating in the claim that CO2 emissions alone determine our climate, is quite frightening."
The former environment senator for Hamburg lamented that not a single German daily newspaper reported on the good news that the climate is actually not going to fry the Earth. According to Vahrenholt, the reason why hardly anyone questions the false "global warming" narrative – something he called the "apocalyptic delusion of the last generation" – is because funds from U.S. foundations are bankrolling it.
"Those who suppress such news about an impending cooling are making themselves complicit in the politically induced destruction of our community," he added.
Climate alarmists demonizing CO2, the "elixir of life"
Contrary to what the climate alarmists claim, CO2 is actually the elixir of life. It makes virtually all life on Earth possible, and has supported the growth of plants for hundreds of millions of years. In fact, high CO2 levels can actually help alleviate many of the stresses plants experience during heat waves. (Related: Carbon dioxide isn't a "pollutant" causing global warming, it's the elixir of life itself.)
"Heat stress can cause a multitude of challenges to plant growth and survival, including dehydration and oxidative damage to bio-membranes from elevated reactive oxygen species. Elevated levels of CO2 have been shown to lessen the severity of this stress," said Craig Idso, founder and CEO of the Center for the Study of Carbon Dioxide and Global Change.
"I am celebrating CO2 not just for the greenhouse produce it feeds, but for enabling and enriching life on our planet," said Vijay Jayaraj, a research associate at the CO2 Coalition in Arlington, Virginia. "To demonize this elixir of practically all living things is pure insanity."
Meanwhile, a peer-reviewed paper found that the sun could be the main cause of warmer temperatures in recent decades. Its finding contradicted assessments by the United Nations' Intergovernmental Panel on Climate Change (IPCC) that CO2 from human emissions are to blame for higher temperatures. The scientists behind the paper dubbed the IPCC's condemnation of CO2 as "premature," adding that blaming human emissions for global warming was based on narrow and incomplete data about the sun's total irradiance.
Dr. Ronan Connolly, the study's lead author, told the Epoch Times in a video interview: "Depending on which published data and studies you use, you can show that all of the warmings are caused by the sun. But the IPCC uses a different data set to come up with the opposite conclusion,"
Visit ClimateAlarmism.news for more news related to false claims and predictions by climate alarmists.
Watch political scientist Jerome Corsi discuss the truth about energy, global warming and climate change below.
This video is from the GalacticStorm channel on Brighteon.com.
Global warming statistically insignificant: Climate emergency is imaginary.
ALL official climate models radically over-predict warming, analysis reveals.
CO2 is not causing "global warming" – the sun is.
U.S. following in Europe's footsteps: "Bout of cold weather" this winter could result in BLACKOUTS due to energy shortages, expert warns.
Expose-News.com 1
Previous :New Zealand government to prohibit use of natural health products
Next : Katie Petrick and David Fiorazo laud Gov. Ron DeSantis for demanding information on diversity initiatives in Florida's higher education system
More news on badclimate
Climate cult wants every person's carbon dioxide emissions to be regulated – no more breathing … for the planet!
Scotland proposing nationwide "20-minute neighborhoods" where citizens are limited how far they can travel from home in order to save Earth from global warming
CLIMATE FANTASIES: Al Gore claims oceans are "boiling" and that rain events are now "BOMBS" due to presence of carbon dioxide in the atmosphere
Biden climate envoy John Kerry goes on bizarre rant at WEF meeting, says "extra-terrestrial" forces brought globalists to Davos to "save the planet"
Davos: Gates, Schwab, global elites face growing criticism of their 'master the future' agenda
"Record participation" expected at upcoming WEF globalist summit in Davos – 52 heads of state scheduled to appear
Top 8 inventions and interventions to "save" planet Earth and the population that are most likely DETRIMENTAL to the environment and human health in the long run
https://www.naturalnews.com/2023-01-13-study-predicts-europe-temperatures-to-get-colder.html
Global warming DEBUNKED: Study predicts Europe to get COLDER over the next 15 to 20 years


Eiji Nishihata of Calgary, AB, passed away on Tuesday, December 4, 2018 at the age of 90 years.
Eiji Nishihata is survived by his wife, Chiyoko Nishihata; Son Jimmy Nishihata; Grandsons Corey and Jasey Nishihata.
Eiji was predeceased by brothers, Sam, Kiyoshi, Ian.
Funeral Services will be held at Calgary Buddhist Temple (658 – 1st Avenue N.E., Calgary, AB.) on Saturday, December 8th, 2018 at 2:00 p.m. Reception to follow in the Lower Hall. Condolences may be forwarded through www.mcinnisandholloway.com.
In living memory of Eiji Nishihata, a tree will be planted at Fish Creek Provincial Park by McINNIS & HOLLOWAY FUNERAL HOMES, Park Memorial, 5008 Elbow Drive S.W., Calgary, AB, T2S 2L5, Telephone: 403-243-8200.


YUI Gallery is very pleased to present Dawei Wang solo exhibition—City Poetry, which chronicles the artist's experience in the United States over the past few years with the exception of Square, a piece that preceded his arrival.
Wang's artistic practice draws heavily on his observational tendencies. In earlier work, Wang depicted banal activities tied to daily life in Shanghai. Upon his arrival to the US, Wang suddenly found himself a foreigner and retreated into an introverted lifestyle as he grappled with feelings of alienation in a new environment. As an artist, he addresses the silence and isolation of contemporary urban life in the West. In this series of work, human figures are blurred and literally insecure in their occupation of physical space, reinforcing the tenuous quality of human existence. In terms of color, Wang employs multitudes of cool greys, blues, and greens in the background while utilizing hints of bright reds and oranges to suggest a false balance. This dramatic comparison of color represents Wang's exploration of unity and the tension between falsehood and reality, action and stillness, the physical and waking world.
Through material experimentation, Wang similarly investigates another dichotomous tension. In this series, Wang incorporates elements from both Eastern and Western painting traditions, using bold acrylic paint to offset the ephemeral ink washes found in traditional Chinese painting. For instance, in Early Spring, the conflict between nature and modern life is captured through this contrast in media. In Two Securities, Wang employs collage techniques on security figures to dissolve the oppressive uniformed constraints on the body, imbibing a poetic sense of childishness in the overall picture. Technical experimentation and the artist's playful spirit are intertwined. Through the distortion and "childish" reduction of individuals and environment into playful elements, Wang reconstructs urban life as dream like fragments of poetry.
Dawei Wang, born in 1984 in Shanghai, graduated from the Academy of Fine Arts at Shanghai Normal University in 2015. He has already participated in group exhibitions like the FQ Projects New Generation Art Group Exhibition, FQ Projects Monologue Group Exhibition,Shanghai Museum of Contemporary Art "In Between Reality and Fiction" Animamix Biennale, FQ Projects "Loners" solo show, group show of The Avant Grade Diaries Project Space in New York, as well as the Shanghai International Contemporary Art Fair, Art Stage Singapore, Art021 and Sixteenth Annual Los Angeles Art Show Los Angeles.


text:
Q: Vectors in 3D and area of a triangle I have three points with coordinates: $A (5,-1,0),B(2,4,10)$, and $C(6,-1,4)$.
I have the following vectors $\overrightarrow {CA} = (-1, 0, -4)$ and $\overrightarrow{CB} = (-4, 5, 6)$.
To find the area of the triangle I used the dot product between these vectors to get the angle and then applied the formula $A=0.5ab\sin{C}$ to find the area of the triangle which gave me $15.07(2dp)$.
However in the given solutions the answer is given as $(3*\sqrt(102))/2$
I think they have used the trig identity $\cos^2(\theta) + \sin^2(\theta) = 1$ to find the value of $\sin(\theta)$ rather than $\arccos(\theta)$ to find the angle ACB. However I don't understand why there would be such a discrepancy between the two answers; one using $\arccos$ and the other using the trig identity.

A: Note that $a=\sqrt{17}$, $b=\sqrt{77}$ and $\cos C= -\frac{20}{ab}$, which yields the area
$$A= \frac12 ab \sqrt{1-\cos^2C}=\frac12 \sqrt{17\cdot77-400}=\frac{3\sqrt{101}}2$$

A: If you calculate the angle, you introduce numerical errors. The most elegant way to calculate the area is to use the cross product. You will not need any trigonometric functions:
$$A=\frac12|\vec{CA}\times\vec{CB}|$$
So all you need will be some multiplications, additions(subtractions), and a square root. Let me know if you can follow this path.
By the way, the answer should be $\frac32\sqrt{101}$, if I did the math right, which is closer to your calculations

A: Your book got a typo: it's $101$ and not $102$. And that's it, that is approximately your answer.
Hope this helps. Ask anything if not clear :)

redpajama_set_name: RedPajamaStackExchange


Love the way she (LF) passes and sees the court, she has passed up some shots in earlier games, just needs some confidence, after making the first three the 2nd came easy.
With so many good players on this team its hard to get into the flow of the game, I don't understand subbing out C-Smith and not letting her get into a flow when its proved she is likely one of the best scorers on the team. I think when playing the top tier teams you will see she's one who can create her own shot.
When is Jessie going to start, just like the Spokane paper said she's changes the game like no other, against good teams I think you need your best players starting, getting off to a slow start could cost games at tourney time.
If your going to play ten plus players maybe it helps to have best players mixed in with each group, not so sure this would be a good strategic move against top teams.
Are the Zags that good or are conf. teams that bad, can't believe more teams aren't making games interesting.
You have opened not one but several "cans of worms", that many people (when they used to post) have discussed in the past. I will give you my thoughts and opinions and see if we can coax some of the old-timers out of their posting cave for their opinions.
I agree last night LF looked much more fluid in the game and both of her 3 pt shots were very smooth and in rhythm. She looked more comfortable last night than in previous appearances. This is what happens when a freshman gets more time on the court. The question all year, since LF has apparently been healthy, why she is not getting more minutes, particularly in the blow-out games. We have seen the improvement of the Wirth Twins and JT when given court time, why has LF been held out? Good question.
While it was not the case last night, Chandler typically has the most minutes on court of all of the players. Chandler was not shooting particularly well last night but her presence on the defense side of the ball was, as it has been all year, excellent. While many people look at points scored as a defining statistic, other statistics like steals, blocks, rebounds, etc. provide a better overall picture. Chandler is the glue which holds the entire team together on both sides of the ball. She has been my MVP of the team so far this year. I think CLF freely trades out LS, ES, CS with JL, JT, KC and maybe soon LF. You want people to be able to inject in any combination and not see much of a drop off. I think that CLF has done a good job creating a team which has a very good mix of 10 players who are essentially interchangeable.
I personally have never figured out CLFs subbing strategy. Many times it seems just as a player gets hot or in the groove, she is taken out. I don't always agree with CLF on subbing, but she has been pretty successful this year, at least so far.
Don't hold your breath. CLF has in the past and so far this year, appears to be very supportive of her upperclassman and her starting line-up rarely changes no matter who is playing better. Typically, only injuries to a starting player affect CLF and her starting five. Rightfully or not, this is her way.
Historically speaking you are correct. As tournament time approaches, coaches around the country tend to shorten their benches and run 7-8 player rotations. With this team, I don't see that happening. I think you will continue to see the Wirths interchange freely with JB and ZR and I think you will see JL, JT and KC freely substituted for LS, ES and CS and maybe, if she gets more time LF will get in the rotation. We know that JB and ZR can both be point producing machines but they do need to rest and our only alternatives today are the Wirth twins (and occasionally JT). At the guards, LS has been off offensively this year, but Cs, JL and ES and KC have all lead the guards in scoring this year so whoever has the "hot" hand or who provides the most disruptive defense will get the minutes.
Yes and occasionally yes. If GU plays a compete game (see the 40 pt. second quarter) when they score from everywhere and play solid, harassing defense, they can be very good. We are still weak, defensively in the post area. We simply do not have a player on the team that can contend with a 6'4"+, 200+ lbs opposing center. Remember Vionise Pierre-Louis of Oklahoma last year. She just dominated JB/ZR and we could do nothing about it. Things are no better this year, if we have to face someone like Pierre-Louis. Thankfully, the teams in the WCC have either bigger players or very talented players but not players with both qualities. However, watch out for BYU. They have a 6'7" freshman that has just begun starting and while not "gifted" like Pierre-Louis, she is a load in the middle. Next week will be interesting. The other issue is our inconsistency in shooting. Yesterday we were good overall and good from 3pt but we were terrible from the free throw line. If we get our shooting percentages to be consistently good across the board, we should beat every WCC team.
Speaking of the bench... I'm with you ZD in I like the breaks they're giving the starters and the way the coaches are filling the bench in that seems to show very little let down.
It will be a good learning experience and challenge that the team will need to compete in the dance.
The size of our players goes with the our type of play... and skill will trump.
Looking at the team at the first of the season, I thought there could be times where getting the players court time could be a challenge. The coaches have a problem that many coach would love to have... to many great players. I looked at the minutes in the Portland game and the starters were running between 19 and 25 minutes. The bench was between 7 and 22 minutes. The nice thing this week is with traveling on Saturday, the starters got plenty of rest which hopefully helps.
Next week will be different with SD and BYU... will see the strength of the starters... but hopefully CLF continues to give them the breaks and the bench the experience they need.
As far the starters... like the consistency. We are seeing bench players getting more minutes the better they play... which you are seeing in JL. With her coming in... the other team is seeing a different gear and game. I like that. You will see JL starting at the 2 next year with she and LS swapping during the game. What a challenge for the other team when your three starting guards can play point and fill in at the 2 and 3. I would use it to change things up.
Anyway... we are so blessed to have a team of great kids that play their hearts out and do a great job of representing their school and community.
I hope you are right, but after spending a weekend watching Texas, Connecticut, Oklahoma and Missouri Wbb play, they frequently played high-low, with the "high" position setting up above the 3pt line at the top of the key and then the center simply moved the opposition's center out almost to the free throw line leaving lots of space to simply toss the ball over the top leading to lay-ups. Can't stop the "over the top" passing lane. Just like Vionise Pierre-Louis of OU did to us last year. Maybe a year more of experience will help JB and ZR is certainly better but let's hope we get the chance to find out.
This year may be a problem... with the youth. The Wirths have the frames that with another year on the weights, will give them the strength needed to hold their ground. Think of Kayla Standish FR to SR.
When Kayla was around, we had the fun and gun offense so if we could not stop the opposition we just out scored them and we do not have that kind of offense, YET.
Under CLF we have always been a inside out type of team, which is kind of hard to argue with given CLF's record. I think that we have the players with the skills that could make a good effort at the fun and gun offense. We don't have to look outside the box in the WCC, but when you simply don't match up with the opposition, running them into the ground is an option and I think we have the players and stamina to give it a go.
Running a half court offense against a bigger, stronger, highly skilled team does not seem like a recipe for success.
If we can win the next three games, all on the road, we probably will just about have locked up the WCC title and maybe we can experiment a little bit with the fun and gun.
Just for giggles, I went back and look at the individual points for the players during the fun and gun years.
While there was a year or two of overlap, we had Courtney Vandersloot, Heather Bowman, Kayla Standish and Katelan Redmond among the many stars on those teams. Today the league and individual teams celebrate when a player hits the 1,000 points for a career milestone. During our fun and gun years, look at the career point totals for the above four players.
I did not realize that Bowman had outscored CV and in fact, Bowman lead the team in scoring for 3 straight years over CV. The only year Bowman did not lead the team in scoring was her freshman year when she finished 2nd behind Stephanie Hawk (a frequent color commentator on GU Wbb games).
CV finished 2nd on the team in scoring her first three (3) years all to Bowman. CV lead the team in scoring her senior year over Standish and Redmon. To give you some perspective, if Jill Barta continues at her current rate of scoring for the remaining games this year, her best scoring year, (assuming 33 games total like last year) she would score 600 points this year. A very good year by any standards.
The Lady Zags, during the 2010-2011 had three (3) players (CV, Standish and Redmon) all score over 600 points that year and CV had over 700.
While we have some very good players, I don't know if we have three (3) offensive players who could put up those kind of offensive numbers.
Just reminiscing about good times in the past.
I didn't go back and replay the Oklahoma game, but what I remember is we had guards shoot the first few shots of the game and miss, they came down and drained threes on us, within three or four minutes we were behind the eight ball.
The players you mentioned were great team players and with CV feeding the ball quick and when the players were in position, there wasn't a lot of half court play. I also didn't remember a lot of 3 point shooting. A lot of elbow on in... without a lot of passing around. Think about the 40 point quarter... when open and your shot...shoot!
Yeah, I had those numbers as well, but did not want to mix up the thread.
CV had an average assists per game of 5.6, 7.5, 9.4 and 10.2 for each of her four seasons at GU. She ended up with a total of 1118 assists for an average assists per game number of 8.22 for her four years. What is even more impressive is that over her four year career she played in 136 games, started 128 games and had a total number of turnovers of 487 for a career assist to turnover ratio of 2.3.
When you take in the fact that GU is one of the top assist teams in the WCC, look at the total numbers. Our highest assist person (JL) only has 75 assists per game while LS is second with 53 assists. The "team" has a total of 285 assists for an average of 14.25 assists per game. Unfortunately the "team" also has 279 turnovers for an assist to turnover ratio of 1.02 which is not very good at all. The bigs (JB and ZR) really drag down that number as they have almost half of the turnovers between them and very few assists. Of our four primary guards, ES is not very good at an assist/turnover ratio of 1.35, LS at 1.5, CS at 1.72 and Jessie as the best at 2.20. As upperclassmen, LS and ES should be taking care of the ball much better than they are, CS is probably about average and Jessie is most likely near the top of the league. Good for her. Probably another reason why she should be starting rather than LS or ES.
In addition to not scoring anywhere near where we did during the fun and gun days, we are not sharing the ball as well and we certainly are turning the ball over more.
So we do have some offensive areas we can work on.
I think most of us agree that JL is the much better defensive person and she certainly is a better 3-point shooter, but I was amazed that the overall shooting percentage, points/game, turnovers and rebounds are essentially the same between the ladies.
I believe that LS drives the lane (in the half-court set) better than JL.
I do agree that JL is the better overall player (slightly) but the difference (at least in conference schedule) is not near as far as I initially thought.
Was very pumped to see Louise or Lou, as she is referred to on the radio, get her first buckets. And then she plays zip against San Francisco the next night out! She comes in for 6 plus minutes and gets "her groove on" so to speak. Then barely an after thought the next game.
ZagDad when we have a discussion about LS and JL would you share some insight into the eye test comparison. Your numbers were very very interesting, but I watch LS's entry passes to ZR and JB and just wonder what the heck. She'll throw a bullet from 6 feet away or bounce the ball off the post's foot or not make a pass at all. I'm a fan and not a naturally gifted basketball x's and o's guy. I can't tell you what good basketball is but I can tell you when I see it. Do you see any thing that separates the two other than numbers?
Coaching Styles Coach Kelly Graves motto play your best players thats what is best for the team. He made a power house out of nothing at Gonzaga and Oregon. The Ducks were only ones that started 3 Freshman in 2017 NCAA tournament last year Mallory McGuire, Sabrina Ionesco, Ruthy Hebard. Lexi Bando stared 28 games as a freshman, Maite Cazorla started all 35 games as a freshman as Ducks for Graves.
Barta Recruited under Graves sat as a Red Shirt. First time I saw her play in the kennel it was clear to me that she was the best player on the court IMO, yet she could not crack the starting lineup until other players were injured and out for the year if I remember correctly. Rice showed great natural talent but could not crack lineup until this year due to graduation now she our #2 scorer. Coach Lisa Fortier sticks with her starters unless they go down with injuries.
Townsend who has been healthy all year and who one can clearly see her talent when she plays is getting very limited minutes so far even in blowouts. Forsyth who I was wondering out loud earlier in the year why she was not red shirted since injured anyways. She was not redshirted and gets on court a minute in blowouts.
Next year Kylee Griffien and Melody Kempton come in as Freshman what will coach LF do with them?
I like coach Graves Philosophy get the most talented players on the court and get them minutes, so if a player goes down to injury the next player can step up. Its hard to do that cold turkey. Also thought LF comparing Jenn Wirth to JB was as bad as a comparison as you can make. Jill Barta its a reward to me every time I get to see her play, she can back up her fire!
CLF team is doing great undefeated in WCC so far. Just would like to see her have under classman more prepared to step up when needed. The time to win and go deep is now with Jill Barta the next two years. But the better the supporting cast, the deeper your team will go.
Jill Barta is a winner 104-0 in high school. Jill Barta put up 22 shots in the last game. Jill will carry this team as far as she can but as Chandler Smith, Zykera Rice are showing this year your better with help. Emma Stach is hitting some 3s. Wouldn't be great to have additional weapons Townsend and Forsyth contributing 3s or clutch 2s also. You can never have two many weapons in your arsenal.
Lady Zags you have two tough Road games next week, show them why your the best in the WCC.
Do have to say CLF is putting the nail in the coffin on other teams so far this year, hammering them when their down not letting them stand back up.
Last edited by ZAGS ATTACK BASKET; 01-30-2018 at 08:52 PM.
IMO: JL has something you cannot 'teach' SPEED AND QUICKNESS. LS has unbelievable confidence and 'fearlessness'! [LS is a true 'bulldog'] They both compliment each other...you need them at their best! I don't think either of them 'care' who starts...they are team players...they both WANT TO WIN! I personally do not know either of them, only opinions from watching GU games. My background having played h.s. ball and as a freshman @ Pacific in 1961-62. I shot better than 50 % from what is now 3 pt land. Only a bucket back then! I love watching GU teams...they usually bring excellent and spirited basketball play....as a fan, I enjoy this! Also, your community supports both programs...which also is pleasing to view!!!!
Isn't it wonderful to have enough talent that you can't get them all in to contribute to a win.
I see it where the JRs and SRs have put their time in on the bench as FR and SOs. When it comes to who is getting the most minutes, it's who is playing the best. Every player will have their game yet will have an off night. It's great to have someone to fill in.
What I have seen with this team is... while starting out slow, they figure things out and play hard.
While not always consistent, I haven't seen the team as a whole have a bad game since league play. Credit the coaching staff... I always put that on the coaches.
As for our starters... they are smart and understand the game. That's what juniors and seniors give you.
One last thing... I have been watching the games on WTV and I can't say enough about ZR... from her frosh year to now, what a great job. Congrats Z ... your hard work is paying off for yourself and your team.
Comparing JL and LS, If you take out the games when LS was hurt, JL has not got equal min. in most games, her ave. jumped way up when she had to carry the load. I really like the look when JL is at point, this may push LS to the 2 spot where I think she can be more effective. Coaching involves putting players in a position to take advantage of their strengths. JB playing post is not her strength, but lack of true post players has forced her there, commend her for making the best of less than an ideal situation. Wish we had Emma or the big gal who left, but that's water under the bridge now.
Thanks for question. Sorry for not responding sooner, but believe it or not, I do have deadlines on occasion. Per your request, here is my opinion on JL & LS.
As far as the eye test goes, many of us watch different aspects of the game and as such many of us may have different opinions based on what we see. I think that the posters above have done a very good job of summarizing the strengths and weaknesses of both JL and LS, but I think you need to look at this in context.
We know that CLF is very unlikely (like no chance) to change her starting line-up unless forced to do so (ie injury). Thus any discussion of who should be starting is essentially a non-starter (pun intended) because it is not going to happen. Secondly, there has been times that JL and LS are both on the floor at the same time so because of our plethora of guards, it is not necessarily an either or situation. This is a totally different situation than when CLF attempted to put both Georgia Stirton & LS on the court at the same time when it was an utter failure. While Georgia and LS did not function well together at all, currently all of our guards seem willing to play any position from #1 to #3 and do so mostly seamlessly. Finally, CLF has publicly stated that JL brings a change of pace when she comes into the game which makes it more difficult for the opposition to adjust on the fly to the two different styles of play of JL and LS and she likes having that option to go to. Onward to the analysis.
LS is the vocal leader on the floor. There is nobody more demonstrative than LS on the court. Some lead by example, LS leads by vocally cheer-leading, taking charges, high 5s and so on. Somebody mentioned the entire team patting each other's backsides for support. LS is slapping high 5s, pumping fists, etc. She is without a doubt the vocal leader on the floor. LS is at her best when playing around the key. She has a good dribble drive, stop and pop jumper. In the half-court offense, LS takes the ball to the hoop better than JL. LS switches in the key better than JL and is more likely too take a charge in the key. LS is of larger height and stature than JL which leads her to have a more physical level of play and better suits her playing in and around the key. On the not so good side, LS tends to play too fast for her that occasionally puts her in bad situations and/or leads to poor passes. LS tends to unnecessarily pick up her dribble, leaving her with few or no options. LS is not fleet of foot, so when she faces up an opponent on defense, she can easily be beat off the dribble. When she plays off the opponent by 2-3' it gives her time to move her feet. While her 3-pt shooting this year has been abysmal her overall shooting has been pretty good.
JL is the energizer bunny. As the WCC/USF announcers said during the USF game last week, it is one thing to watch JL on video, but when you see her in person, she is so much faster. JL is typically the fastest player on the court. She has the ability to simply drive by the opposition when bringing the ball up the court and if you don't stop her progression, she will take it to the hoop. Defensively, because of her foot speed, she is much better than LS when playing man-to-man defense. While LS tends to get her steals from double teams in the key, JL gets the majority of her steals from pure hand speed on perimeter. I think that JL sees the court a little better and knows (anticipates) where her teammates are going to be which results in more accurate passing. Of course JL has a slightly better overall shooting percentage and a much better 3pt shooting percentage. I think that there is less standing around when JL is at the point than when LS is at the point.
Take a close look at the USF highlights (on Youtube or at Zag Wbb twitter). It demonstrates much of what the people posting have said. LS does a dribble drive with a stop and pop shot. LS slides over in the key and takes a charge from a USF big with the appropriate fist pump. LS feeds JB for an assist and one and LS gives a fist pump and high five to Barta. JL gets the ball from LS at the top of the key and throws a bullet pass to a Wirth (LW??) for a lay-up on the backdoor cut. Note how many times in the highlights that both LS and JL are on the court at the same time.
My favorite single highlight of the USF game is right near the end when Chandler hits Zee in stride for a lay-up. Watch it closely, and you will see that CS throws the pass where ZR is going to be (not where she is) and Zee is not really open at any time. Zee was looking for the ball and the USF defender was running trying to catch up and CS simply threw the ball right over her shoulder. Cool stuff. This is the kind of pass that CS and JL frequently make and LS not so much.
In summary, the numbers I presented above simply reflect that LS and JL are doing a similar job but are getting it done in different ways. There is no right way or better way, just different. Coach CLF is lucky to have a team (maybe because of her leadership) that works so well together that it does not matter who is at point, whether it be LS, JL, CS or even KC. Just my $0.02 and remember that you get what you pay for.
Its Gameday, Let's go beat up on some Toreros.
Thanks Zagdad for the response and everyone else who chimed in. I guess when you step back and look at the season so far it's hard to argue with success. Congrats on the win tonight ladies.


Re:Zoom FP-01 okay for VF-1 and mxp-500?
Subject: Re:Zoom FP-01 okay for VF-1 and mxp-500?
> Subject: Re:Zoom FP-01 okay for VF-1 and mxp-500?
> it doesn't have an even response.
> The FP02 has non-standard wiring, and isn't a standard expression pedal.
> then this won't help at all.
Prev by Date: Anybody have PSP 608? Any impressions?
Previous by Thread: Re:Zoom FP-01 okay for VF-1 and mxp-500?
Next by Thread: report fraudmails like this! Re: Please reach me asap.


text:
CNES web scraper
================

[![Build Status](https://travis-ci.org/transparenciasjc/datasus_node_scrap.svg)](https://travis-ci.org/transparenciasjc/datasus_node_scrap)
[![Coverage Status](https://coveralls.io/repos/transparenciasjc/datasus_node_scrap/badge.svg)](https://coveralls.io/r/transparenciasjc/datasus_node_scrap)
[![bitHound Score](https://www.bithound.io/github/transparenciasjc/datasus_node_scrap/badges/score.svg?)](https://www.bithound.io/github/transparenciasjc/datasus_node_scrap/master)
[![Dependency Status](https://david-dm.org/transparenciasjc/datasus_node_scrap.svg "Dependencies Checked & Updated Regularly (Security is Important!)")](https://david-dm.org/transparenciasjc/datasus_node_scrap)

## Table of Contents
<!-- toc -->
* [How to debug:](#how-to-debug)
* [How to run:](#how-to-run)
* [Limitations:](#limitations)
* [How to export](#how-to-export)
  * [To CSV:](#to-csv)
  * [To Database dump:](#to-database-dump)

<!-- toc stop -->
<!--
	ps: table of contents generated by [readme-toc](https://www.npmjs.com/package/readme-toc) plugin.
-->

You have to use nodejs version 0.10.x

Download the dependencies:

	npm install

Install MongoDB:

	sudo apt-get install mongodb

# How to debug:

	node-inspector
	node --debug-brk crawler.js

Then, go to http://localhost:8080/debug?port=5858

# How to run:

	node --max-old-space-size=8192 --expose-gc crawler.js

# Limitations:

The script consumes a lot of memory in order of their execution time. On the first minute of their execution, about 150 registers are downloaded, netherless, this measure is going down in order of the memory consumption.

A real fixes to this problem is to study how the V8 garbage collector works, and pay attention to remove the closure variables to improve less memory consumption.

So, an work around to this problem is to kill and reopen the script in determined cycle of time using CRON. To do that, run the following instructions:

create a file with the following content on `/etc/cron.d/crawler` (without the extension '.sh')

	#!/bin/sh
	pkill node
	cd "<PATH_OF_SOURCE>/node_scrap/"
	<YOUR_NODE_PATH>/node --max-old-space-size=8192 index.js > /tmp/crawler.log &

run:

	crontab -e

add this on the last line of the file:

	*/2 * * * * /bin/sh /etc/cron.d/crawler

This will run automatically the script `/etc/cron.d/crawler` on the interval of 2 in 2 minute, It would be kill and re-execute the crawler script.

# Running the crawler
## First Step

First of all you need to change the function "initialize" of the class index.js, which the content is something like that:

```js
downloadModule.processStates();
//downloadModule.processEntities();
```

The first step is to execute the function `processStates()` this function will download all the urls of the entities, in order to make the process synchronous, and it will maintain the control of what register was downloaded.

More of 300.000 url's will be downloaded. You can check It on database:

```shell
 mongo
 use cnes2015
 show collections
 db.entitytodownloads.count();
```

## Second step

You must backup the collection `entityurls` to `entityurls_bak` by using the following command:

`db.entityurls.copyTo('entityurls_bak')`

Then, you have to change the function `initialize` in order to make it call the function that download the entity details:

```js
//downloadModule.processStates();
downloadModule.processEntities();

```

You can now check your log with tail: `tail -f /tmp/crawler.log`

# How to export

## To a Unique CSV:

	cd output
	mongoexport --db cnes --collection entities --csv --fieldFile entities_fields.txt --out entities.csv

## To a separated CSV file with the UF as a file name (like SP, RJ, MG etc)

	rm -rf output/*.csv && node crawler/exporter.js

## To Database dump:

to generate the dump:

	mongodump -d cnes -o output

to restore:

	mongorestore cnes