text:
package org.valkyriercp.widget.table;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.util.comparator.ComparableComparator;
import org.valkyriercp.application.support.MessageResolver;
import org.valkyriercp.util.MessageConstants;
import org.valkyriercp.util.ValkyrieRepository;

import javax.swing.*;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.List;

/**
 *

 * PropertyColumnTableDescription is the default implementation of {@link TableDescription} which uses class
 * introspection to create columns. Each column is based on a property of the class and thus should be
 * accessible through an isXXX or getXXX method.
 *

 *
 *

 * Additionally writing capabilities are available by providing a specific {@link javax.swing.table.TableCellEditor}. When
 * using this table description with a detail form and a backing formModel, take a look at the
 * {@link ValueModelTableCellEditor}.
 *

 *
 *

 * Nested properties can be accessed using the dot notation: 'propertyA.propertyB'. At any point in this
 * chaining getting a null value will stop evaluating the expression and returns null.
 *

 *
 * Typical usage of a {@link PropertyColumnTableDescription}:
 *
 *

 * PropertyColumnTableDescription tableDesc = new PropertyColumnTableDescription("id", MyType.class);
 * tableDesc.addPropertyColumn("propertyA");
 * tableDesc.addPropertyColumn("propertyB").addRenderer(MySpecificTableCellRenderer);
 * tableDesc.addPropertyColumn("propertyC").addMinWidth(25).addMaxWidth(100);
 *

 *
 *

 * More possibilities and additional addXXX methods can be found in the {@link PropertyColumn} class.
 *

 *
 * NOTE: this class provides a number of addPropertyColumn(...) methods to add columns. As there are many
 * features on a column, this led to a huge number of these constructions. To simplify the
 * {@link PropertyColumnTableDescription} class and the adding of new features, a new way of column creation
 * has been implemented with the addXXX methods on the {@link PropertyColumn} class. New features will be
 * exclusive to the addXXX methods.
 *
 */
public class PropertyColumnTableDescription implements TableDescription
{

    /** Logging facility. */
    static Log log = LogFactory.getLog(PropertyColumnTableDescription.class);

    /** Expected number of columns, used to create the backing collections. */
    private static final int DEFAULT_SIZE = 10;

    /** List of columns for this table description. */
    private List<PropertyColumn> columns;

    /** Id for this table description used to create message keys. */
    private final String id;

    /** Type of a row item. Used to fetch the get/set methods. */
    private final Class entityClass;

    /** Comparator to use as default (when list is set or other specific sorting is removed). */
    private Comparator defaultComparator;

    /**
     * A table can contain one column with checkboxes that holds a selection. At the moment the specific table
     * implementation is responsible of filtering the table rows and checking which rows are selected.
     */
    private boolean hasSelectColumn = false;

    /**
     * @see #PropertyColumnTableDescription(String, Class, int, Comparator)
     */
    public PropertyColumnTableDescription(Class forEntityType)
    {
        this(null, forEntityType);
    }

    /**
     * @see #PropertyColumnTableDescription(String, Class, int, Comparator)
     */
    public PropertyColumnTableDescription(Class forEntityType, Comparator defaultComparator)
    {
        this(null, forEntityType, defaultComparator);
    }

    /**
     * @see #PropertyColumnTableDescription(String, Class, int, Comparator)
     */
    public PropertyColumnTableDescription(final String id, Class forEntityType, Comparator defaultComparator)
    {
        this(id, forEntityType, DEFAULT_SIZE, defaultComparator);
    }

    /**
     * @see #PropertyColumnTableDescription(String, Class, int, Comparator)
     */
    public PropertyColumnTableDescription(final String id, Class forEntityType)
    {
        this(id, forEntityType, new ComparableComparator());
    }

    /**
     * @see #PropertyColumnTableDescription(String, Class, int, Comparator)
     */
    public PropertyColumnTableDescription(final String id, Class forEntityType, int numberOfColumns)
    {
        this(id, forEntityType, numberOfColumns, new ComparableComparator());
    }

    /**
     * Constructor creating a {@link PropertyColumnTableDescription} based on the given type. Each column
     * created will need to have a corresponding property path on this type.
     *
     * @param id
     *            id used to fetch messages for the column headers.
     * @param forEntityType
     *            type of the row item.
     * @param numberOfColumns
     *            expected number of columns.
     * @param defaultComparator
     *            comparator for the default sorting. Initial table will be sorted according to this
     *            comparator as well as when all other specific sorting is removed.
     *
     */
    public PropertyColumnTableDescription(final String id, Class forEntityType, int numberOfColumns,
            Comparator defaultComparator)
    {
        this.id = id;
        this.entityClass = forEntityType;
        this.defaultComparator = defaultComparator;
        this.columns = new ArrayList<PropertyColumn>(numberOfColumns);
    }

    private MessageResolver getMessageResolver() {
        return ValkyrieRepository.getInstance().getApplicationConfig().messageResolver();
    }

    /**
     * @see #addPropertyColumn(String, Class)
     */
    public PropertyColumn addPropertyColumn(String propertyName)
    {
        return addPropertyColumn(propertyName, (Class<?>) null);
    }

    /**
     * Create and add a column for the given property. Property type is passed or determined (when
     * null) by examining the {@link Accessor} and headerKeys are added based upon the id of
     * the {@link PropertyColumnTableDescription}, the propertyName and the postfix "HEADER".
     *
     * @param propertyName
     *            name of the property.
     * @param propertyType
     *            type of the property. If null a type will be determined by examining the
     *            accessor method.
     */
    public PropertyColumn addPropertyColumn(String propertyName, Class<?> propertyType)
    {
        String[] headerKeys = getMessageResolver().getMessageKeys(this.id, propertyName, MessageConstants.HEADER);
        Accessor accessor = ClassUtils.getAccessorForProperty(entityClass, propertyName);
        if (propertyType == null)
            propertyType = accessor.getPropertyType();
        PropertyColumn propertyColumn = new PropertyColumn(propertyName, accessor, propertyType);
        if (String.class.isAssignableFrom(propertyColumn.getType()))
            propertyColumn.setFilterColumn(true);
        propertyColumn.setHeaderKeys(headerKeys);
        columns.add(propertyColumn);
        return propertyColumn;
    }

    public void setPropertyColumns(Collection<PropertyColumn> propertyColumns)
    {
        this.columns = new ArrayList<PropertyColumn>(propertyColumns);
        for (PropertyColumn propertyColumn : columns)
        {
            Accessor accessorForProperty = ClassUtils.getAccessorForProperty(entityClass, propertyColumn.getPropertyName());
            propertyColumn.setAccessor(accessorForProperty);
            if(propertyColumn.getComparator() == null)
                propertyColumn.setComparator(getDefaultComparator());
            propertyColumn.setHeaderKeys(getMessageResolver().getMessageKeys(this.id, propertyColumn.getPropertyName(), MessageConstants.HEADER));
        }
    }

    /**
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withComparator(Comparator)
     * @see PropertyColumn#withFixedWidth(int)
     */
    public PropertyColumn addPropertyColumn(String propertyName, int width, Comparator comparator)
    {
        return addPropertyColumn(propertyName).withFixedWidth(width).withComparator(comparator);
    }

    /**
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withRenderer(javax.swing.table.TableCellRenderer)
     */
    public PropertyColumn addPropertyColumn(String propertyName, TableCellRenderer renderer)
    {
        return addPropertyColumn(propertyName).withRenderer(renderer);
    }

    /**
     * WARNING: propertyType is discarded, it should be fetched from the entityType through introspection.
     *
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withEditor(javax.swing.table.TableCellEditor)
     */
    public void addPropertyColumn(String propertyName, Class propertyType, TableCellEditor editor)
    {
        addPropertyColumn(propertyName).withEditor(editor);
    }

    /**
     * WARNING: propertyType is discarded, it should be fetched from the entityType through introspection.
     *
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withRenderer(TableCellRenderer)
     */
    public void addPropertyColumn(String propertyName, Class propertyType, TableCellRenderer renderer)
    {
        addPropertyColumn(propertyName).withRenderer(renderer);
    }

    /**
     * WARNING: propertyType is discarded, it should be fetched from the entityType through introspection.
     *
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withMinWidth(int)
     * @see PropertyColumn#withMaxWidth(int)
     */
    public void addPropertyColumn(String propertyName, Class propertyType, int minWidth, int maxWidth)
    {
        addPropertyColumn(propertyName).withMinWidth(minWidth).withMaxWidth(maxWidth);
    }

    /**
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withFixedWidth(int)
     */
    public void addPropertyColumn(String propertyName, int width)
    {
        addPropertyColumn(propertyName).withFixedWidth(width);
    }

    /**
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withFixedWidth(int)
     * @see PropertyColumn#withVisible(boolean)
     */
    public void addPropertyColumn(String propertyName, int width, boolean visible)
    {
        addPropertyColumn(propertyName).withFixedWidth(width).withVisible(visible);
    }

    /**
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withFixedWidth(int)
     * @see PropertyColumn#withRenderer(TableCellRenderer)
     * @see PropertyColumn#withVisible(boolean)
     */
    public void addPropertyColumn(String propertyName, int width, TableCellRenderer renderer, boolean visible)
    {
        addPropertyColumn(propertyName).withFixedWidth(width).withRenderer(renderer).withVisible(visible);
    }

    /**
     * WARNING: propertyType is discarded, it should be fetched from the entityType through introspection.
     *
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withFixedWidth(int)
     * @see PropertyColumn#withRenderer(TableCellRenderer)
     * @see PropertyColumn#withVisible(boolean)
     */
    public void addPropertyColumn(String propertyName, Class propertyType, int width,
            TableCellRenderer renderer, boolean visible)
    {
        addPropertyColumn(propertyName).withFixedWidth(width).withRenderer(renderer).withVisible(visible);
    }

    /**
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withFixedWidth(int)
     * @see PropertyColumn#withRenderer(TableCellRenderer)
     */
    public void addPropertyColumn(String propertyName, int width, TableCellRenderer renderer)
    {
        addPropertyColumn(propertyName).withFixedWidth(width).withRenderer(renderer);
    }

    /**
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withMinWidth(int)
     * @see PropertyColumn#withMaxWidth(int)
     */
    public void addPropertyColumn(String propertyName, int minWidth, int maxWidth)
    {
        addPropertyColumn(propertyName).withMinWidth(minWidth).withMaxWidth(maxWidth);
    }

    /**
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withMinWidth(int)
     * @see PropertyColumn#withMaxWidth(int)
     * @see PropertyColumn#withResizable(boolean)
     * @see PropertyColumn#withRenderer(TableCellRenderer)
     */
    public void addPropertyColumn(String propertyName, int minWidth, int maxWidth, boolean resizable,
            TableCellRenderer renderer)
    {
        addPropertyColumn(propertyName).withMinWidth(minWidth).withMaxWidth(maxWidth).withResizable(resizable)
                .withRenderer(renderer);
    }

    /**
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withMinWidth(int)
     * @see PropertyColumn#withMaxWidth(int)
     * @see PropertyColumn#withResizable(boolean)
     * @see PropertyColumn#withRenderer(TableCellRenderer)
     * @see PropertyColumn#withComparator(Comparator)
     */
    public void addPropertyColumn(String propertyName, int minWidth, int maxWidth, boolean resizable,
            TableCellRenderer renderer, Comparator comparator)
    {
        addPropertyColumn(propertyName).withMinWidth(minWidth).withMaxWidth(maxWidth).withResizable(resizable)
                .withRenderer(renderer).withComparator(comparator);
    }

    /**
     * WARNING: propertyType is discarded, it should be fetched from the entityType through introspection.
     *
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withMinWidth(int)
     * @see PropertyColumn#withMaxWidth(int)
     * @see PropertyColumn#withResizable(boolean)
     * @see PropertyColumn#withRenderer(TableCellRenderer)
     */
    public void addPropertyColumn(String propertyName, Class propertyType, int minWidth, int maxWidth,
            boolean resizable, TableCellRenderer renderer)
    {
        addPropertyColumn(propertyName).withMinWidth(minWidth).withMaxWidth(maxWidth).withResizable(resizable)
                .withRenderer(renderer);
    }

    /**
     * WARNING: propertyType is discarded, it should be fetched from the entityType through introspection.
     *
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withComparator(Comparator)
     * @see PropertyColumn#withMinWidth(int)
     * @see PropertyColumn#withMaxWidth(int)
     * @see PropertyColumn#withResizable(boolean)
     * @see PropertyColumn#withRenderer(TableCellRenderer)
     */
    public void addPropertyColumn(String propertyName, Class propertyType, int minWidth, int maxWidth,
            boolean resizable, TableCellRenderer renderer, Comparator comparator)
    {
        addPropertyColumn(propertyName).withMinWidth(minWidth).withMaxWidth(maxWidth).withResizable(resizable)
                .withRenderer(renderer).withComparator(comparator);
    }

    /**
     * WARNING: propertyType is discarded, it should be fetched from the entityType through introspection.
     *
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withMinWidth(int)
     * @see PropertyColumn#withMaxWidth(int)
     * @see PropertyColumn#withResizable(boolean)
     */
    public void addPropertyColumn(String propertyName, Class propertyType, String[] headerKeys, int minWidth,
            int maxWidth, boolean resizable, Boolean isInTextFilter)
    {
        addPropertyColumn(propertyName).withHeaderKeys(headerKeys).withMinWidth(minWidth).withMaxWidth(maxWidth)
                .withResizable(resizable).withFilterColumn(isInTextFilter);
    }

    /**
     * WARNING: propertyType is discarded, it should be fetched from the entityType through introspection.
     *
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withMinWidth(int)
     * @see PropertyColumn#withMaxWidth(int)
     * @see PropertyColumn#withResizable(boolean)
     * @see PropertyColumn#withRenderer(TableCellRenderer)
     */
    public void addPropertyColumn(String propertyName, Class propertyType, String[] headerKeys, int minWidth,
            int maxWidth, boolean resizable, TableCellRenderer renderer, Boolean isInTextFilter)
    {
        addPropertyColumn(propertyName).withHeaderKeys(headerKeys).withMinWidth(minWidth).withMaxWidth(maxWidth)
                .withResizable(resizable).withRenderer(renderer).withFilterColumn(isInTextFilter);
    }

    /**
     * WARNING: propertyType is discarded, it should be fetched from the entityType through introspection.
     *
     * @deprecated
     * @see #addPropertyColumn(String)
     * @see PropertyColumn#withComparator(Comparator)
     * @see PropertyColumn#withMinWidth(int)
     * @see PropertyColumn#withMaxWidth(int)
     * @see PropertyColumn#withResizable(boolean)
     * @see PropertyColumn#withRenderer(TableCellRenderer)
     */
    public void addPropertyColumn(String propertyName, Class propertyType, String[] headerKeys, int minWidth,
            int maxWidth, boolean resizable, TableCellRenderer renderer, Boolean isInTextFilter,
            Comparator comparator)
    {
        addPropertyColumn(propertyName).withHeaderKeys(headerKeys).withMinWidth(minWidth).withMaxWidth(maxWidth)
                .withResizable(resizable).withRenderer(renderer).withComparator(comparator).withFilterColumn(
                        isInTextFilter);
    }

    public void addSelectPropertyColumn(String propertyName)
    {
        addSelectPropertyColumn(propertyName, PropertyColumn.UNSPECIFIED_WIDTH);
    }

    public void addSelectPropertyColumn(String propertyName, Comparator<?> comparator)
    {
        addSelectPropertyColumn(propertyName, PropertyColumn.UNSPECIFIED_WIDTH,
                PropertyColumn.UNSPECIFIED_WIDTH, comparator);
    }

    public void addSelectPropertyColumn(String propertyName, int width)
    {
        addSelectPropertyColumn(propertyName, width, width);
    }

    public void addSelectPropertyColumn(String propertyName, int minWidth, int maxWidth)
    {
        addSelectPropertyColumn(propertyName, minWidth, maxWidth, null);
    }

    public void addSelectPropertyColumn(String propertyName, int minWidth, int maxWidth, Comparator comparator)
    {
        addSelectPropertyColumn(propertyName, getMessageResolver().getMessageKeys(this.id, propertyName,
                MessageConstants.HEADER), minWidth, maxWidth, true, comparator);
    }

    public void addSelectPropertyColumn(String propertyName, String[] headerKeys, int minWidth, int maxWidth,
            boolean resizable, Comparator comparator)
    {
        if (hasSelectColumn)
            throw new IllegalArgumentException("Already a selectColumn specified, cannot set " + propertyName
                    + " as selectColumn");
        this.hasSelectColumn = true;
        Accessor propertyAccessor = ClassUtils.getWriterForProperty(entityClass, propertyName);
        JCheckBox cellEditorComponent = new JCheckBox();
        cellEditorComponent.setHorizontalAlignment(SwingConstants.CENTER);
        columns.add(0, new PropertyColumn(Boolean.class, propertyAccessor, propertyName, headerKeys,
                minWidth, maxWidth, resizable, null, new DefaultCellEditor(cellEditorComponent), comparator,
                true, true));
    }

    public void addSelectPropertyColumn(String propertyName, String[] headerKeys, int minWidth, int maxWidth,
            boolean resizable, Comparator comparator, boolean visible)
    {
        if (hasSelectColumn)
            throw new IllegalArgumentException("Already a selectColumn specified, cannot set " + propertyName
                    + " as selectColumn");
        this.hasSelectColumn = true;
        Accessor propertyAccessor = ClassUtils.getWriterForProperty(entityClass, propertyName);
        JCheckBox cellEditorComponent = new JCheckBox();
        cellEditorComponent.setHorizontalAlignment(SwingConstants.CENTER);
        columns.add(0, new PropertyColumn(Boolean.class, propertyAccessor, propertyName, headerKeys,
                minWidth, maxWidth, resizable, null, new DefaultCellEditor(cellEditorComponent), comparator,
                true, visible));
    }

    /**
     * @inheritDoc
     */
    public Class<?> getDataType()
    {
        return entityClass;
    }

    /**
     * @inheritDoc
     */
    public Comparator<?> getDefaultComparator()
    {
        return defaultComparator;
    }

    /**
     * Set the comparator to use as default (when table is filled or other specific sorting is removed).
     */
    public void setDefaultComparator(Comparator<?> defaultComparator)
    {
        this.defaultComparator = defaultComparator;
    }

    /**
     * @inheritDoc
     */
    public boolean hasSelectColumn()
    {
        return hasSelectColumn;
    }

    /**
     * {@inheritDoc}
     */
    public String[] getPropertiesInTextFilter()
    {
        List<String> filterProperties = new ArrayList<String>(getColumnCount());
        for (PropertyColumn column : columns)
        {
            if (column.isFilterColumn())
                filterProperties.add(column.getPropertyName());
        }
        return filterProperties.toArray(new String[filterProperties.size()]);
    }

    /**
     * {@inheritDoc}
     */
    public int getColumnCount()
    {
        return this.columns.size();
    }

    /**
     * Returns the column at the provided index.
     *
     * @param propertyIndex
     *            column index.
     * @return PropertyColumn the corresponding column.
     */
    private PropertyColumn getPropertyColumn(int propertyIndex)
    {
        return this.columns.get(propertyIndex);
    }

    /**
     * {@inheritDoc}
     */
    public Object getValue(Object rowObject, int propertyIndex)
    {
        try
        {
            return getPropertyColumn(propertyIndex).getAccessor().getValue(rowObject);
        }
        catch (Exception e)
        {
            log.warn("Error reading property " + propertyIndex + " from object " + rowObject, e);
            throw new RuntimeException("Error reading property " + propertyIndex + " from object "
                    + rowObject, e);
        }
    }

    /**
     * {@inheritDoc}
     */
    public void setValue(Object rowObject, int propertyIndex, Object newValue)
    {
        try
        {
            Accessor accessor = getPropertyColumn(propertyIndex).getAccessor();
            if (accessor instanceof Writer)
                ((Writer) accessor).setValue(rowObject, newValue);
        }
        catch (Exception e)
        {
            log.warn("Error writing property " + propertyIndex + " to object " + rowObject
                    + " new value: " + newValue, e);
            throw new RuntimeException("Error writing property " + propertyIndex + " to object " + rowObject
                    + " new value: " + newValue, e);
        }
    }

    public String getHeader(int propertyIndex)
    {
        return getPropertyColumn(propertyIndex).getHeader();
    }

    /**
     * {@inheritDoc}
     */
    public Class getType(int propertyIndex)
    {
        return getPropertyColumn(propertyIndex).getType();
    }

    /**
     * @inheritDoc
     */
    public int getMinColumnWidth(int propertyIndex)
    {
        return getPropertyColumn(propertyIndex).getMinWidth();
    }

    /**
     * @inheritDoc
     */
    public int getMaxColumnWidth(int propertyIndex)
    {
        return getPropertyColumn(propertyIndex).getMaxWidth();
    }

    /**
     * @inheritDoc
     */
    public boolean isResizable(int propertyIndex)
    {
        return getPropertyColumn(propertyIndex).isResizable();
    }

    /**
     * {@inheritDoc}
     */
    public boolean isVisible(int propertyIndex)
    {
        return getPropertyColumn(propertyIndex).isVisible();
    }

    /**
     * @inheritDoc
     */
    public TableCellRenderer getColumnRenderer(int propertyIndex)
    {
        return getPropertyColumn(propertyIndex).getRenderer();
    }

    /**
     * @inheritDoc
     */
    public TableCellEditor getColumnEditor(int propertyIndex)
    {
        return getPropertyColumn(propertyIndex).getEditor();
    }

    /**
     * @inheritDoc
     */
    public boolean isSelectColumn(int propertyIndex)
    {
        return getPropertyColumn(propertyIndex).isSelectColumn();
    }

    /**
     * @inheritDoc
     */
    public Comparator getColumnComparator(int propertyIndex)
    {
        return getPropertyColumn(propertyIndex).getComparator();
    }
}


This pretty Greek princess is such a fashionista! Dress her up as you see it in the original picture choosing from a wide range of clothes and colours! Or you may phantasize and create a new style for this young and wonderful lady!


text:
Q: Generic method T type is the constraint type, not the real type of the passed object I have this generic method with a constraint for ILogicPointContext.
This method calls other generic methods with the same constraint, but the code throws exception since I need the type to be the correct one, not the interface type.
public void DoSomething<TContext>(TContext ctx)
    where TContext : ILogicPointContext
{
    var typeOfCtx = ctx.GetType();  // CcpContex
    var typeOfT = typeof(TContext); // ILogicPointContext
    ...

I have another similar method where the generic type of the method is the generic type of the object I pass to him and this works fine
private void InsertStepDefinition<TContext>(PipelineStepDefinition<TContext> stepInfo)
    where TContext : ILogicPointContext

In this case TContext is not the interface but the correct type.
What am I missing?

A: The generic resolves automatically when called with variable types (not calling the method with <>).
Example:
void Main()
{
    Foo var1 = new Foo();
    ILogicPointContext var2 = var1;

    DoSomething(var1); //outputs Foo: generic resolution is automatically done on variable type
    DoSomething(var2); //outputs ILogicPointContext, for the same reason
}

interface ILogicPointContext{}
class Foo:ILogicPointContext{}

void DoSomething<TContext>(TContext ctx)
    where TContext : ILogicPointContext
{
    Console.WriteLine(typeof(TContext).Name);
}

The second output is the actual type of TContext, the type the generic is 'created' with and is used within the method.

redpajama_set_name: RedPajamaStackExchange


text:
Q: Change specific row color in javaFX Here is the code i write to change row color where leather's meter < 200 but i face null pointer exception in if condition. First i get all data from database and add them all to table view so i don't expect null pointer exception. What is the problem?
    @FXML
    TableView<Leather> tableView;
    ObservableList<Leather> data = FXCollections.observableArrayList();

    @Override
    public void initialize(URL location, ResourceBundle resources) {
        tableView.setEditable(true);
        codeCol.setCellValueFactory(new PropertyValueFactory<>("code"));
        colorCol.setCellValueFactory(new PropertyValueFactory<>("color"));
        meterCol.setCellValueFactory(new PropertyValueFactory<>("meter"));

        indexCol.setCellFactory(col -> new TableCell<Task, String>() {
            @Override
            public void updateIndex(int index) {
                super.updateIndex(index);
                if (isEmpty() || index < 0) {
                    setText(null);
                } else {
                    setText(Integer.toString(index+1));
                }
            }
        });

        data.addAll(storeService.getAll());
        tableView.setItems(data);

        tableView.setRowFactory(tv -> new TableRow<Leather>(){
            @Override
            protected void updateItem(Leather item, boolean empty) {
                super.updateItem(item,empty);
                if (item.getMeter()<200){
                    setStyle("-fx-background-color: #DB8A6B");
                }
            }
        });
     }

A: You need to handle all cases in your rowFactory (in the same way you do in your cellFactory):
    tableView.setRowFactory(tv -> new TableRow<Leather>(){
        @Override
        protected void updateItem(Leather item, boolean empty) {
            super.updateItem(item,empty);
            if (empty || item == null) {
                setStyle("");
            } else if (item.getMeter()<200){
                setStyle("-fx-background-color: #DB8A6B");
            } else {
                setStyle("");
            }
        }
    });


Our "Family Mouse" designs are available in unisex and slim fit styles. This tee delivers the look and feel of organic cotton with wick ability of advanced poly-performance fibers. Tees have two needle double-stitch seams for extra strength.
***Kids designs available in our children pull down.


TGS Forklift Training Kent provides ITSSAR Accredited Bendi/pivot steer/flexi Forklift Training in Kent for novices that have never used a Bendi/pivot steer/flexi Forklift before or experienced Bendi/pivot steer/flexi Forklift operators who require refresher Forklift Training in Kent. We train on all makes and models of Bendi/pivot steer/flexi Forklifts and offer conversion training courses to to allow an operator to operate several fork lift truck types.
The Pivot Steer truck is also referred to as Bendi, Flexi, Swing Mast and Turret truck. These trucks are designed to work in very narrow aisles less than 6'. The Pivot Steer truck resembles a standard forklift with the exception that there is an additional function to swing the mast to a 90 degree angle to either side by way of the truck being articulated.
The Pivot Steer is much like a Reach truck and are commonly used inside warehouses with narrow aisles and high racking systems.
Please see below for operator experience descriptions.
A Bendi/pivot steer/flexi Forklift Truck comes in many shapes, sizes and lifting capacities whether it's a 3 wheeled Diesel to LPG powered machines with a lifting capacity up to 50 tonne. Most common Bendi/pivot steer/flexi Forklift types have a lifting capacity of up to 3000kgs.
Most Forklift Training in Kent can take place at customers' premises which often makes for better training due to using the actual machine in the real working environment.
When conducting training at customers' premises we will require the following: an open area either indoors or outdoors, a number of pallets both empty and loaded, the use of any racking if available and a room in which to carry out the theory training.


text:
Hamas Official claims Iran ordered rocket attack on Central Israel
Mar 26, 2019 | 0 |
(JP) – A senior Hamas official, speaking anonymously to Israel Hayom on Tuesday, claimed that the rocket which struck a moshav in central Israel on Monday was ordered by Iran. Hamas reportedly gave its blessing for the rocket attack in hopes of disrupting Prime Minister Benjamin Netanyahu's election campaign. The rocket attack on Mishmeret, which hit and destroyed a home, left seven family members
injured, including two infants, as well as a neighboring child. He claimed that Iran "went over the heads" of Hamas leadership and ordered an Islamic Jihad cell operating out of the Gaza Strip to carry out the attack. While senior officials in both Egypt and Gaza confirmed that Iran had ordered the attack, they claimed that the Hamas leadership was aware of the plans to fire a rocket deep into Israeli territory. READ MORE
The Jerusalem Post is a broadsheet newspaper based in Jerusalem, founded in 1932 during the British Mandate of Palestine by Gershon Agron as The Palestine Post. In 1950, it changed its name to The Jerusalem Post.

redpajama_set_name: RedPajamaCommonCrawl


text:
layout: post
title: Growing OO Software, Guided by Tests - An Introduction to the Tools
comments: true
---

The book is about techniques to guide the development of OO software using tests, and it's not about specific technologies, but to demonstrate some techniques in action the book uses some technologies, such as JUnit 4, Hamcrest and jMock2 frameworks.

##A Minimal Introduction to JUnit 4

I believe that everybody that got an OO course, has some experience with JUnit framework, in this section we can see some features this framework provide for us, such as expected exceptions and test fixtures.

###Expecting Exceptions

The @Test annotation supports an optional parameter `expected` that declares that this test case expect an exception, with this the test fails if it doesn't throw an exception or if throws a different exception than the expected one.

###Test Fixtures

This is a great feature but under used many times, which provides a fixed state at the start of a test, this ensures that a test is repeatable, so every time a test run it starts with the same state so it can produce the same results. A fixture must be set up before the test runs and torn down after it. The fixture is managed by the class that defines the test. JUnit use the @Before to set the things up, and @After to tear down the fixture.

###Hamcrest Matchers and assertThat()

Hamcrest is a framework for writing declarative match criteria, it's used by others testing frameworks such as JUnit and jMock. A Hamcrest matcher reports whether an object matches or not some criteria. In practice those matchers are used in combination with JUnit's assertThat(), which uses matchers to say if a assertion fails. The most useful feature of Hamcrest is defining new criteria by combining existing matchers. The not() method is a factory function that creates a matcher that reverses the sense of any matcher passed to it. Matchers are designed so that when they're combined, both the code and the failure messages are self-explanatory. The Hamcrest is also extensible, you can write your own matcher if you need.

###jMock2: Mock Objects

jMock2 plugs into JUnit (and other test frameworks) providing support for mock objects. This framework creates mock objects dinamically, so you don't have to write your own implementations of the types you want. The core concepts of the jMock are the mockery, mock objects and expectations. A mockery represents the context of the object under test, its neighboring objects, the mock objects stand in for the real neighbors of the object under test while it runs and a expectations decribes how the object under test should invoke its neighbors during the test.

##Conclusion

Although the book introduce only tools from the Java world, all this kinds of frameworks can be found in all the common programming language, its good to know the first then when you need something like this in other languages you already know where to look, since most of the implementations are based on this.

redpajama_set_name: RedPajamaGithub


text:
Home : Power Pop Log In | Create an Account | Cart Contents | Checkout | Contact Us
Lucy In The Sky With Diamonds/ One Day At A Time by Elton John
Featuring Dr. Winston O'Boogie and His Reggae Guitars (John Lennon). Like "Philadelphia Freedom," this recording didn't appear on any Elton John album (except for compilations). Note that the B side is a previously unreleased John Lennon song. Note: This beautiful 45 record has no notable flaws, grading Mint across the board (Labels, Vinyl, Audio), and the picture sleeve is nearly flawless!
Condition Detail:Label: M | Vinyl: M | Audio: MWritten by: J. Lennon-P. McCartney (A), J. Lennon (B)Produced by: Gus DudgeonChart info: #1p in November 1974Track time(s): A: 5:58 | B: 3:47Mix: StereoOther info: Contains 45-only, non-LP track(s).
More 45's by Elton John
A Word In Spanish (M), MCA 53408 , 1988: $12.00
A Word In Spanish/ Heavy Traffic (M), MCA 53408, 1988: $11.00
Ball & Chain (M), Geffen 29846 , 1982: $18.00
Ball & Chain/ Where Have All The Good Times Gone? (M), Geffen 29846, 1982: $12.00
Believe/ The One (Live) (M), Rocket 856014, 1995: $10.00
Blue Eyes/ Hey Papa Legba (M-), Geffen 29954, 1982: $6.00
Candle in the Wind 1997/ Something About the Way You Look Tonight (M), Rocket 81087, 1997: $8.00
Ego (M), MCA 40892 , 1978: $15.00
Ego/ Flinstone Boy (M-), MCA 40892, 1978: $5.00
Ego/ Flinstone Boy (M), MCA 40892, 1978: $7.00
Empty Garden (Hey Hey Johnny)/ Take Me Down To The Ocean (M), Geffen 50049, 1982: $10.00
Grow Some Funk Of Your Own/ I Feel Like A Bullet (In The Gun Of Robert Ford) (M-), MCA 40505, 1976: $10.00
Healing Hands/ Dancing In The End Zone (M), MCA 53692, 1989: $5.50
I Don't Wanna Go On With You Like That/ Rope Around A Fool (M), MCA 53345, 1988: $10.00
In Neon (M-), Geffen 29111 , 1984: $6.00
Kiss The Bride (M), Geffen 29568 , 1983: $11.00
Kiss The Bride/ Choc Ice Goes Mental (M), Geffen 29568, 1983: $10.00
Lady Samantha/ It's Me That You Need (M), MCA 60172 , 1969: $8.00
Mama Can't Buy You Love/ Are You Ready For Love? (M), Collectables 4920 , 1979: $4.50
Mama Can't Buy You Love/ Three Way Love Affair (M), MCA 41042, 1979: $6.50
Nobody Wins/ Fools In Fashion (M), Geffen 49722, 1981: $10.00
Runaway Train/ Understanding Women (M), MCA 54452, 1992: $5.00
Simple Life/ The North (M), MCA 54581, 1993: $3.50
Sorry Seems To Be The Hardest Word/ Shoulder Holster (M-), Rocket 40645, 1976: $8.00
The Bitch Is Back/ Cold Highway (M-), MCA 40297 , 1974: $25.00
The Bitch Is Back/ Cold Highway (M), DJM 322, 1974: $8.00
The One/ Suit Of Wolves (M-), MCA 54423, 1992: $6.50
Who Wears These Shoes (M), Geffen 29189 , 1984: $12.00
Wrap Her Up (M), Geffen 28873 , 1985: $6.00
Wrap Her Up/ The Man Who Never Died (M), Geffen 28873, 1985: $11.00
Ball & Chain/ Where Have All The Good Times Gone? by Elton John (M), Geffen 29846, 1982: $12.00
Cath/ Patriots Game by The Bluebells (M-), Sire 29426, 1984: $10.00
Darling, It's True/ There's A Love - Talk To Me by Locksley (M), Wicked Cool 1367, 2009: $10.00
Fool Moon Fire by Walter Egan (M), Backstreet 52200 , 1983: $10.00
Fool Moon Fire/ Tammy Ann by Walter Egan (M), Backstreet 52200, 1983: $9.00
Gates of The West/ Groovy Times by The Clash (M-), Epic 1178 , 1979: $15.00
Georgia Pines/ Movies In My Mind by The Candymen (M-), ABC 10995, 1967: $14.00
Girl of My Dreams/ Sarah Smiles by Bram Tchaikovsky (M), Polydor 14575, 1979: $10.00
Hearts In Her Eyes by The Records (M), Virgin 67008 , 1980: $12.00
I Could Be So Good To You/ And It's So Good by Don & The Goodtimes (M), Epic 10145, 1967: $45.00
I'm On Fire/ Did You See What Happened by Dwight Twilley (M), Shelter 40380, 1975: $14.00
Instant Karma (We All Shine On) by John Lennon (M), Apple 1818, 1970: $60.00
Lamplight/ We All Insane by David Essex (M), Columbia 10005, 1974: $12.00
Let's Pretend/ Every Way I Can by Raspberries (M), Capitol 3546, 1973: $10.00
Little Bit O'Soul/ I See The Light by The Music Explosion (M-), Laurie 3380, 1967: $18.00
Long Green/ Light in the Window by The Fireballs (M-), Atco 6651, 1969: $12.00
Love's Made A Fool Of You/ Don't Ever Let Me Know by Bobby Fuller Four (M-), Mustang 3016, 1966: $25.00
Nowhere Man/ What Goes On by The Beatles (M-), Capitol 5587, 1966: $70.00
Sex With An X/ Roaster by The Vaselines (M), Sub Pop 901, 2010: $7.00
She's Walking Away/ Big Brother by Dickey Lee (M-), Hall 1924, 1964: $35.00
Smile/ The Party Broke Up by Was (Not Was) (M), Geffen 29477, 1983: $12.00
Star Baby by The Guess Who (M-), RCA 0217 , 1974: $10.00
Suck It And See/ Evil Twin by Arctic Monkeys (M-), Domino 919, 2011: $35.00
Switchin' To Glide by The Kings (M-), Elektra 47006 , 1980: $12.00
Turn on a Dream/ Together by The Box Tops (M-), Mala 12042, 1969: $11.00
Walk Like An Egyptian/ Angels Don't Fall In Love by Bangles (M-), Columbia 06257, 1986: $8.00
You Win Again/ Backtafunk by The Bee Gees (M), WB 28351, 1987: $8.00
I'm Gonna Let My Heart Do The Walking by The Supremes


text:
Q: Create post request with data from html table rows and save each row separately Order-Products can someone give me tip how to slove problem. Am building Order Managment System app using PHP, MYSQL, HTML and JS.
Order information is stored in one db table and
Order Products is sotred in second db table which cointains two foreign key (order_id and product_id). Order can have many products!
What is problem
The problem is that I don't know how to get html table rows and put that rows in array, and that array i need to send via ajax to php where i will process.
I was thinking the following:

*

*When the user selects a product from the drop-down list, enters the quantity and presses the "ADD PRODUCT" button.

*In javascript, I create an event for a button ('click') where after event is triggered I will dynamically create a new row in the table using js insertRow().

*In the columns of the rows I saved the values in the form fields. Maybe I was wrong there.
`id.innerHTML = '<input type="text" value="'+data[0]['id']+'" id="id-'+data[0]['id']+'";

*Products is successfully added as rows with values to the table.
I'm not asking you to do my job. I just want you to advise me how it should be done in the right way.
HTML

         #
         Šifra
         Naziv
         Količina
         JM

JavaScript
 // add item to document
$("#btn_add_document_item").on('click', function(e) {

     var data = $('#select2-proizvodi').select2('data');

     // add table row

     var table = document.getElementById('document_items_table');
     var row = table.insertRow(-1);

     var id = row.insertCell(0);
     var code = row.insertCell(1);
     var name = row.insertCell(2);
     var qty = row.insertCell(3);

    row.setAttribute('id', 'row-'+table.rows.length);

    id.innerHTML = '<input type="text" value="'+data[0]['id']+'" id="id-'+data[0]['id']+'"  name="item[]["id"]" ;
    code.innerHTML = '<input type="text" value="'+data[0]['code']+'" name="item[]["code"]";
   name.innerHTML = '<input type="text" value="'+data[0]['text']+'"  name="item[]["name]";
  qty.innerHTML = '<input type="text" class="form-input"  value="'+$("#kolicina_input").val()+'" name="kolicina[]["kolicina"]" ;

});

PHP is not a problem.
Check image

A: This is how I would have done it personally :
What I understand : You want to be able to save mutiple lines in the same time (because each line is a diffrent product of the same order for exemple)

*

*You create a table where each line is a product and each cell of this line is the product info (name, qty, price, etc...)

*When you click "save" button it has to trigger an ajax request that will call a php page, this page will cretate a new order and return the id as a response to the request.

*Now you can loop throw your table rows, for each row you send an ajax request to a php page (data of this request is row cells + order_id you got previously)

*Your php will recieved data from the ajax request and store it in your db table (order product)
I hope it answer your question, if you need help to write a part of this code feel free to ask me ;)
Maxime

A: How to get data froms table rows :
HTML :

        Label
        Qty
        Price

        Product 1
        4
        35

        Product 2
        8
        12

        Product 3
        2
        99

JS :
let table = document.querySelector('#table-products');

let headers = [...table.rows[0].cells].map(th => th.innerText);
for(let row of [...table.rows].slice(1, table.rows.length)) {
    let product = Object.fromEntries(new Map([...row.cells].map((cell, i) => [headers.at(i), cell.innerText])));
    console.log(product);
}


Instructions: This Empirical Rule calculator will show you how to use the Empirical Rule to compute some normal probabilities. Please type the population mean and population standard deviation, and provide details about the event you want to compute the probability for. Observe that not all events can have their probability computed with these technique. For a general normal probability calculator, please check here.
The Empirical Rule states that the area under the normal distribution that is within one standard deviation of the mean is approximately 0.68, the area within two standard deviations of the mean is approximately 0.95, and the area within three standard deviations of the mean is approximately 0.997.
It needs to be observed that these are approximations only. Using the exact normal distribution tables, for example, the area within two standard deviations of the mean is more like 0.954500, instead of 0.95, although 0.95 is a simpler to remember number.


text:
Tyvriv (; ) is an urban-type settlement in Vinnytsia Oblast, Ukraine. Geographically it is in eastern Podolia on the shore of Southern Bug, southeast of Vinnytsia. It was formerly the administrative center of the Tyvriv Raion, and is now administered within Vinnytsia Raion. Population:

History

Tywrów was granted Magdeburg rights in 1744. Until the Partitions of Poland it was part of the Bracław Voivodeship of the Lesser Poland Province of the Polish Crown. It was a small town, owned by Polish nobility. In the 18th century the two landmarks of the town were built: Michał Jan Klityński founded the Baroque St. Michael's church, and Zachariasz Jaroszyński built a palace complex.

In 1900, there were around 1,000 Jews living there. The city was under German, then Romanian occupation from 1941 to 1944. In 1941 in Tyvriv was created one of the greatest ghetto's in region.

The most of Jews were killed during two different actions in a forest close to the city, in 1941, when it was still under German occupation. There was several hundred victims.

References

Urban-type settlements in Vinnytsia Raion
Vinnitsky Uyezd
Holocaust locations in Ukraine

redpajama_set_name: RedPajamaWikipedia


During my four-day excursion to north Italy with the arsviva travel agency, we visited the picturesque town of Bassano del Grappa, located 65 kilometers from Venice. It is known not only for its vineyards and Venetian villas but also for its Palladian wooden bridge and for the impressive collection of paintings by Jacopo Bassano (also referred to as Jacopo dal Ponte) in its Civic Museum.
First, a bit about the town: Bassano del Grappa was first mentioned in writing as far back as 998 AD. The symbol of the city, the Ponte Vecchio was designed by the renowned architect Palladio in 1569. A wartime casualty and a victim of floods, the bridge has been rebuilt several times, but the current structure remains faithful to Palladio's original design.
The town does not lack a castle or a cathedral, either. Ezzelini Castle has not been in use for six centuries. Hailing from 998 A.D., the cathedral now boasts a 17th century appearance, Two of Jacopo's paintings adorn the interior. Historical monuments abound. The Civic Tower was constructed around 1312. The Loggia of the Mayor dates back to the 15th century. The elegant blue clock has decorated its façade since 1430, though the current one was built in 1747. The loggia features frescoes. The squares of the town are picturesque, though there was a large market on the main square while we were there. Intriguing churches of various architectural styles also dot the town.
The Civic Museum captured my undivided attention for more than two hours. The museum boasts the largest collection of renditions by Jacopo in the world. There was much more to see than Bassano's masterpieces, however. The art gallery displays some 500 paintings from the 13th to 20th century. Sculptures also delight. There is a 17th century cloister, too.
Jacopo Bassano lived from 1510 or 1515 to 1592. He was a Renaissance Venetian painter whose later works fall into the category of Mannerism. Born in Bassano del Grappa, he resided in Venice during the 1530s before returning to his hometown for good in 1539. Often experimenting with various styles, Jacopo was influenced by Titian, Tintoretto, Durer, Raphael and Roman art, for example. The painting guru is known for his religious paintings rendered in natural landscapes. He also studied the role of light and created significant nocturnal scenes.
Here are some examples of the artwork in the Civic Museum that kept me entranced for two hours. Some of the paintings, but not all of them, are by Jacopo Bassano.


Details: Sou do brasil e adorei sua menina guajiro!
Details: Ei suzana,vc peida molhado?
Details: Pls what is the name of the pornster in this video (Link below ? ?
Originally Posted by Heave Hi Guys, Just want to ask if anyone of you has been through a similar incident and how you coped with it? I need some advice here. I was in a relationship with my girlfriend for 3 years before this, and were pretty much your average couple. She's 25 and I'm 27 and we're both working. I wouldn't claim to have a perfect relationship and we did have our disagreements and fights from time to time. However, we always made it work up till now and I feel that we did have something special with each other. Recently we had a big disagreement regarding the direction of our relationship and eventually decided to take a break to figure things out. We agreed that it wouldn't be permanent and we would meet again to talk about this in about weeks. It's been a week since the break up by the way. She's someone I love very much and I do want to settle down with her.
And while you are still trying to understand what happened and pick up the shattered pieces of your life, your ex has started another relationship. However, you are still not convinced.
LinkedIn Shares After a break up, many people feel the need or the desire to get over their ex quickly. Many people feel that having a rebound is simply the best method for getting over an ex. You see, after a breakup, you need to feel the loss of the other person, you need to mourn the relationship, and you need to heal and work on yourself. Being emotionally available is imperative when hoping to start something new.


Jonathan Leon Rosen MD completed his General Surgery Internship at Mt. Sinai Medical Center in Miami Beach. He then went on to complete an Ophthalmology residency, and Oculoplastics fellowship training at the world renowned New York Eye and Ear Infirmary under the tutelage of Drs. Robert and David Della Rocca. He continued at New York Eye and Ear Infirmary following his fellowship as a Voluntary Assistant Clinical Professor of Ophthalmology with responsibilities that included clinical and surgical training of residents within the General Ophthalmology and Oculoplastics divisions.
At Ocean Ophthalmology Group, Dr. Leon Rosen MD heads the Oculoplastics Service with experience treating many types of oculoplastics moribidities including thyroid eye disease, dermatologic pre-malignant and malignant lesions of the eyelids, orbital lesions, neurologic deficits of the cranial nerve system, functional and anatomical deficits of the nasolacrimal system, ocular surface reconstruction for trauma and autoimmune patients, as well as functional eyelid deficits such ptosis, ectropion and entropion/trichiasis of the eyelids, including reconstruction of previously operated eyelids. Given his Reconstructive Surgery training, Dr. Leon Rosen, MD is well versed in Cosmetic/Aesthetic procedures such as Botox, Fillers and Cosmetic Upper and Lower Lid surgery.
In addition to his training as an Oculoplastics Specialist, Dr. Leon Rosen, MD has continued to practice within the realm of General Ophthalmology over the past 12 years. With the use of advanced diagnostic and therapeutic delivery technology at Ocean Ophthalmology, he continues to clinically and surgically treat ocular morbidities including cataracts, pterygium, glaucoma, dry eye/keratoconjunctivitis sicca, diabetic eye disease, and macular degeneration.
Dr. Leon Rosen MD is a consulting expert in the medical and surgical treatment of Oculoplastic disease in the Miami-Dade and Broward counties on a limited basis through neighboring Ophthalmic practices. He also works in the US Virgin Islands, where he performs Oculoplastics and General Ophthalmic surgery for the un- and under-insured on a monthly basis. In 2017, Dr. Leon Rosen, MD received the "10 Best Corrective Eye Surgeons in Exceptional and Outstanding Patient Service Award by the American Institute of Medical Professionals.
Dr. Leon Rosen MD is a Board Certified Diplomate of the American Board of Ophthalmology. He is on staff at Coral Gables Hospital in Miami, as well as Roy Schneider Regional Medical Center and Juan Luis Medical Center in the US Virgin Islands. Dr. Leon Rosen, MD is fluent in English and Spanish.


text:
Haryana starts Psycho-Social helpline number 1075, to cope the stress
Apr 10, 2020 18:30 | Haryana
Chandigarh, April 10 – The Psycho-Social helpline 1075 launched by the Haryana government for giving aid to persons affected by the ongoing coronavirus pandemic has received a tremendous response from the volunteers as around 110 volunteers have offered their services for tele-counselling.
Giving information in this regard, an official spokesman of the Department of Health and Family Welfare said that it is for the first time such a helpline has been launched by the Health Department. He informed that with the persistent efforts of Additional Chief Secretary, Health Department, Mr. Rajeev Arora, this helpline has been started with the aim of providing psychiatric support to the people affected by the corono virus pandemic.
Also, to help ease the stress and anxiety amongst migrant labour, presently staying in camps throughout the state, teams of counsellors from different departments like Health, Education, Women and Child Development and Social Justice and Empowerment Department are carrying out counselling and other psychological support activities on a daily basis.
The fact that so many volunteers have stepped in to help the needy in these testing times is an indication of the innate good nature of human beings who help each other in the time of need and boosts the morale of the health and other workers on the frontline during this war against this virus.
The health department is making all out efforts to contain the spread of the virus. The department has set up a separate cell for mental health professionals who can be contacted by dialling the helpline number 1075. A meeting was conducted by the Health Department today in this regard where two students, Ms. Ujwala and Ms. Shreya gave a presentation on Psychological First Aid based on John Hopkins Rapid Model. All Counsellors and Clinical Psychologists of Panchkula were present in the meeting. They were sensitized on COVID – 19 situation and motivated to become volunteers for the helpline No. 1075.
He said that the counselling and therapy will not only help people in this moment of distress but also help them learn to grow beyond that stress.


text:
RSC dream of Cordelia
For fans of King Lear the RSC's new production The Cordelia Dream will seem familiar.
For fans of King Lear the RSC's new production The Cordelia Dream will seem familiar. The challenging play looks at the complex relationships between fathers and daughters and takes inspiration from Shakespeare's iconic work.
The story centres on the unnamed woman and man, who at first seem to have a weight of sexual tension hanging over them, but slowly their relationship is unravelled to reveal their family ties.
Both characters are composers, however the daughter has had more success than her father, which has driven a wedge between the two. The play centres on their relationship as the woman confronts her elderly father in an attempt to reconcile with him before he dies.
Like Cordelia in Shakespeare's work the woman is overlooked by her father and resented for her success and honesty.
The start of the play is puzzling and it is not until the second act that the father and daughter conflict becomes clear. David Hargreaves with his wild hair and booming voice dominates the stage as the man, whenever he is talking it is difficult to tear your eyes away from his performance.
However Michelle Gomez, who known for her work in The Green Wing, manages to bring real emotion to the character of the woman.
When she asks: "Have you listened to a word I have said?", her cry is so fraught with anguish its easy to see this scene playing out in family homes. She adds realism to the play and is subtle yet powerful in her delivery.
Michelle Gomez has a battle to draw attention away from David Hargreaves and at times she almost succeeds.
However it is difficult to warm to either character, both seem selfish and they both deserve the comeuppance that is served to them at the end.
Marina Carr's writing is sharp and at times extremely witty, but even after seeing the whole production it makes you wonder what happened to the man's wife and what event caused the characters to hate each other so intensely.
The minimalist set and the rustic setting of the Wilton's Music Hall is perfect for the play, as it does not distract from the moving acting.
At a time of year when pantomimes dominate the stage, this play is disturbing and thought-provoking. It makes you examine your own familial relationships in a harsher light.
The Cordelia Dream is at Wilton's Music Hall, in Graces Alley, London, until January 10. For more information visit www.rsc.org.uk
ElthamEltham residents in hysterics after embarrassing blunder sees sex toys and kids toys on same aisle in PoundlandThe reactions from residents were rather varied
Genius £19.99 Aldi product that will help potty train your child
AldiShoppers say 'it looks so good'
Martin Lewis warning that HSBC, First Direct, M&S Banks and John Lewis Finance customers may get a cheque in the post - and it's not a scam
Your MoneyOne man nearly binned an envelope containing £50 after presuming it was a scam
Teenager fighting for his life in hospital after stabbing in North London
North London NewsA crime scene remains in place following the incident


In a new study published today in Science Translational Medicine, Stage III human melanoma cells from 20 patients were implanted into specially selected mice with compromised immune systems. Using this xenograft model, in which tissue is transplanted from one species to another, the institute's team observed reproducible differences in the rate at which the cancer spread in the mice, or metastasized, that correlated with clinical outcomes in patients.
Dr. Morrison said human melanomas that metastasized efficiently in the mice eventually progressed to advanced, Stage IV disease in patients – spreading to distant organs, such as the brain, liver, or lungs. When the melanoma did not metastasize efficiently in the mice, it also did not form distant metastases in patients.
This xenograft model will make it possible to study the mechanisms that regulate disease progression and distant metastasis of melanomas in patients. The researchers said they hope that their system will lead to new prognostic markers that identify patients at highest risk of disease progression as well as new therapies.
Previous studies of cancer metastasis were limited by a lack of workable models in which scientists could study the progression of a patient's cancer cells in laboratory animals in a way that correlated with clinical outcomes, he said.
But such correlation was clear in this study by the research institute, an innovative collaboration that melds the leading clinical resources of Children's Medical Center with the outstanding research resources of UT Southwestern. Melanomas that spread slowly and could not be detected in the blood of mice did not form distant tumors within 22 months in patients. Melanomas that spread rapidly in mice did form distant tumors in patients within the same time frame, giving rise to circulating melanoma cells in the blood of the mice. This finding suggests that entry of melanoma cells into the blood is a step that limits the rate of distant metastasis.
The research arose from the Morrison laboratory's innovative techniques for studying neural crest stem cells – work that was recognized in 2004 with a Presidential Early Career Award for Scientists and Engineers. Neural crest stem cells make melanocytes, a type of cell that can mutate into melanoma if exposed, for example, to excessive sunlight.
The Children's Research Institute focuses on the interface of stem cell biology, cancer, and metabolism and will eventually include approximately 150 scientists in 15 laboratories. The work of Dr. Morrison, who also leads the Hamon Laboratory for Stem Cell and Cancer Biology, focuses on adult stem cell biology and cancers of the blood, nervous system, and skin.
Other UTSW researchers involved in the study were Drs. Elena Piskounova and Ugur Eskiocak, both postdoctoral researchers in the Children's Research Institute. This work originated with lead author Dr. Elsa Quintana and Dr. Mark Shackleton in Dr. Morrison's former lab at the University of Michigan. Other key collaborators from the University of Michigan were Dr. Douglas R. Fullen, director of dermatopathology, and Dr. Timothy Johnson, director of the Multidisciplinary Melanoma Clinic.
Research support came from the Howard Hughes Medical Institute, the Melanoma Research Foundation, the Allen H. Blondy Research Fellowship at the University of Michigan, and the Cancer Prevention and Research Institute of Texas.


text:
Home » Celebrities » Rihanna sets Twitter on fire dressed as the Pope to Met Gala
Rihanna sets Twitter on fire dressed as the Pope to Met Gala
Rihanna sets Twitter on fire dressed as the Pope to Met Gala…and Jared Leto arrives as Jesus
This year's Met Gala theme is overtly religious in nature.
And two stars proved to be the most heavenly bodies at the star-studded Catholic-themed bash in New York – and Twitter took notice.
Dominating fans attention on Monday night was none other than the Pope and Jesus Christ – or in this case Rihanna and Jared Leto – at the gala which was themed this year as Heavenly Bodies: Fashion and the Catholic Imagination.
Scroll for video…
Truly blessed: Rihanna dressed as the Pope while Jared Leto went as Jesus to this year's Catholic themed Met Gala, which sent fans into overdrive on Twitter
Fans went wild over RiRi's choice in attire, declaring her their personal Pope. One fan wrote: 'I believe in a God now. Her name is Rihanna. She can have my wig and my life if she so chooses.'
Many simply wrote, 'the Pope has arrived', as images popped up online of her; others wrote of the pop star, 'All hail Rihanna'.
While Leto got the popular vote on Twitter as the 'officially best dressed male at the Met Gala.' With many even declaring, 'Jesus has resurrected and you can't tell me otherwise.'
Dominating fans attention on Monday night was none other than the Pope and Jesus Christ — or in this case Rihanna and Jared Leto — at the gala which was themed this year as Heavenly Bodies: Fashion and the Catholic Imagination
Prince of peace: Fans compared the 30 Seconds to Mars singer to Jesus Christ, due to his likeness to popular American versions of the Christian savior (the singer and actor's outfit was compliments of Gucci)
The Bajan beauty arrived to the annual fashion party dressed in a dazzling take on the classic uniform worn by The Bishop of Rome.
The 30-year-old singer donned a head-piece reminiscent of the holy office and a gleaming dress designed by Maison Margiela.
While Leto, 46, paid homage to many of his fans who believe he looks like the Prince of Peace. The singer and actor's outfit was compliments of Gucci.
Calling in the big shots! Fans declared the two the best dressed as they arrived in saintly attire
Oops! However, not everyone was a fan as some compared the Oscar winning actor to the Burger King mascot
Divine union: Later in the evening he posed with Alessandro Michelea and Lana Del Rey who were similarly attired in religious garb leading fans to declare them 'the holy trinity'
In fact, a viral joke meme has spread recently throughout the internet comparing the 30 Seconds to Mars singer to Jesus Christ, due to his likeness to popular American versions of the Christian savior.
However, not everyone was a fan as some compared the Oscar winning actor to the Burger King mascot.
Later in the evening he posed with Alessandro Michelea and Lana Del Rey who were similarly attired in religious garb leading fans to declare them 'the holy trinity'.
Having some fun! With all the Catholic imagery fans began creating memes mocking the affair
Wakanda forever! Black Panther star Chadwick Boseman proved to be the fan favorite as well
Personal Jesus: Fans were hard pressed to see the difference between the religious icon and Jared's look for the night
Can't take it! One fan posted a snap himself weeping at the beauty of Rihanna's choice of evening wear
Always the hottest ticket in New York, this year the gala takes on a religious theme: Heavenly Bodies: Fashion and the Catholic Imagination.
With a dress code of Sunday Best, the red carpet is bound to be memorable.
The annual gala is always tied to an exhibit at the Costume Institute at the Metropolitan Museum of Art.
Rihanna along with Amal Clooney and Donatella Versace joined Vogue editor Anna Wintour in chairing this year's star-studded Met Gala.
The Met Gala: Previous Themes
2017: Rei Kawakubo/Comme des Garçons Art of the In-Between
Oh Ri Ri! Last year's exhibition focused on the work of designer Rei Kawakubo and her creations for her fashion house, Comme des Garçons, with Rihanna's ensemble acting as a showstopping tribute to the designer
Theme: Last year's exhibition focused on the work of designer Rei Kawakubo and her creations for her fashion house, Comme des Garçons. Head curator at the Met, Andrew Bolton revealed why he chose to exhibit the work: 'Just look at the clothes. They speak for themselves'
Dress code: The event called for 'avant-garde', leading to what Vogue described as a 'wonderfully dichotomous' red carpet display
Most memorable ensemble: Rihanna's typically wild ensemble was a particular stand-out look, as she trod the famed stairs before the venue in a sculptural laser-cut jacquard piece from the Comme des Garçons autumn/winter 2016 collection – which eventually featured in the exhibit
Missed the mark: Kendall Jenner's sizzling sheer La Perla number was met with a lukewarm response, alongside a host of other stars, as many were accused of missing the point of the tribute to the boundary-breaking designer
Sheer delight: Kendall Jenner's sizzling sheer La Perla number was met with a luke warm response, alongside a host of other stars, as many were accused of missing the point of the tribute to the boundary-breaking designer
2016: Manus x Machina: Fashion In An Age Of Technology
Nude ambition: The 2016 theme was described as a exploration of 'how fashion designers are reconciling the handmade and the machine-made in the creation of haute couture and avant-garde ready-to-wear' and saw Beyonce opt for sizzling Latex
Theme: The 2016 theme was described as an exploration of 'how fashion designers are reconciling the handmade and the machine-made in the creation of haute couture and avant-garde ready-to-wear'
Dress code: Branded 'the trickiest Met dress code ever', the evening simply called for stars to nod to 'technology' in their ensembles
Most memorable ensemble: Beyonce took a break from her Formation World Tour to attend the Gala, where she stopped the world's press while sporting a nude latex gown from Givenchy by Riccardo Tisci. The event came in the midst of her 'Becky' drama, in which she hinted on her Lemonade album that husband Jay Z had cheated, and hot on the heels of the lyrics: 'I can wear her skin over mine. Her hair over mine. Her hands as gloves. Her teeth as confetti', many speculated the dress was supposed to signify 'Becky's' skin
Missed the mark: When Gigi Hadid announced via Tommy Hilfiger's Snapchat that she had partly designed her gown, fans were excited – however she was panned for the lack of imagination in her dress as she stormed the red carpet with boyfriend Zayn Malik – who was lauded for his armour-inspired look
Not so good… Gigi Hadid was panned for the lack of imagination in her dress as she stormed the red carpet with boyfriend Zayn Malik – who was lauded for his armour-inspired look
2015: China: Through the Looking Glass
The dress to end all dresses: Rihanna made Met Gala history in 2015 at the exhibition which explored 'the impact of Chinese design on Western fashion' when she tore the famous stairs in the iconic vast yellow coat dress designed by Chinese designer Guo Pei
Theme: The exhibition explored 'the impact of Chinese design on Western fashion over the centuries'. The stunning collection meant the exhibit drew record amount of visitors – knocking 2011's Savage Beauty off the top
Dress code: The oriental theme saw many stars take on an array of extremely varied interpretations of the dress code
Most memorable ensemble: Rihanna made Met Gala history in 2015, when she tore the famous stairs in the iconic yellow coat dress designed by Chinese designer Guo Pei. The moment she emerged on to the red carpet the fur-trimmed, intricately embroidered masterpiece became an Internet sensation – with memes, fan accounts and unbridled glee being born worldwide
Missed the mark: Kris Jenner's bold ensemble was widely-panned, with the Eighties-inspired shoulder pads and huge waist belt meaning she was lost in the gown. Lucky magazine editor-in-chief Eva Chen said at the time: 'The fit of dress was not good on her. She just got lost in the dress a bit. The shoulder pads were kind of big and clunky and the dress just overwhelmed her'
Not so much: Kris Jenner's bold ensemble was widely panned, with the Eighties-inspired shoulder pads and huge waist belt meaning she was lost in the gown
2014: Charles James: Beyond Fashion
A vision: The 2014 gala was a nod to British fashion designer Charles James, who was widely known as America's First Couturier and Sarah Jessica Parker was widely considered to have stolen the show in her exquisite Oscar de la Renta gown
Theme: The 2014 gala was a nod to British fashion designer Charles James, who was widely known as 'America's First Couturier'. The exhibition was the opening collection for the Anna Wintour Costume Center wing of the Met
Dress code: Vogue described the year's theme as a homage to 'the technologically advanced couturier Charles James and white tie'
Most memorable ensemble: The red carpet was indisputably stolen by Sarah Jessica Parker's Oscar de la Renta masterpiece, which saw the Sex And The City legend's famously petite frame exquisitely clad in a perfectly cut black bustier trimmed with acres of monochrome skirt and a checked train – with the gown rounded out with the late designer's signature drawn out in a delicate red scribble
Missed the mark: Lena Dunham's Giambattista Valli Couture dress was deemed 'too cocktail' for an event as decadent the Met Gala. The mullet-hemmed dress appeared to clash with her smokey eye and choppy bob due to its frothy style contrasting against her cutting edge beauty regimen
Far off the mark: Lena Dunham's Giambattista Valli Couture dress was deemed 'too cocktail' for an event as decadent the Met Gala
2013: Punk: Chaos to Couture
Rock out! The wildly popular exhibit acted as a homage to the punk movement and illustrate how the era impacted on the fashion industry, with Sarah Jessica Parker's Philip Treacy mohawk being the perfect tribute to the time
Theme: The wildly popular exhibit acted as a homage to the punk movement and illustrate how the era impacted on the fashion industry. The show featured pieces from punk pioneer Vivienne Westwood alongside Marc Jacobs and Alexander Wang. A stand-out piece featured was the legendary Gianni Versace safety-pin dress worn by Elizabeth Hurley in 1994
Dress code: The clue was in the name for the year's dress code – with some stars taking Punk too literally and others barely giving a nod to the look at all
Most memorable ensemble: Again, Sarah Jessica Parker stole the crown when she trod the red carpet while rocking a mohawk hat designed by milliner Philip Treacy. Speaking of that particular night, she said: 'Me, literally sitting on the floor of the car in order to accommodate my Mohawk was pretty freaking amusing'. She perfected the look with her edgy Giles Deacon gown
Missed the mark: While she stayed true to the theme, Madonna's 2013 Met Gala look was veering on the side of fancy dress as she dressed up in a choppy black wig, a blazer, no trousers, suspenders and staggering pink heels. The Givenchy Haute Couture by Riccardo Tisci look was extremely divisive yet in true Madonna-style – widely-discussed
Not so much… While she stayed true to the theme, Madonna's 2013 Met Gala was veering on the side of fancy dress
« La La Anthony Reveals How She Deals With Challenges Of Being A Mom: 'Lead By Love'
Logan Paul's Ad's Are Restored On YouTube »


Municipal Corporations - Ordinances - Construction - Applicable Rules. The same rules of construction apply to municipal ordinances as apply to statutes.
 Criminal Law - Statutes - Vagueness - Test. A legislative definition of a crime is unconstitutionally vague if it does not provide adequate notice to citizens of the prohibited conduct or adequate standards to prevent arbitrary enforcement.
 Animals - Dogs - Criminal Liability for Barking - Vagueness of Definition of Crime. A criminal prohibition against permitting a dog's frequent or habitual barking which "disturbs or annoys" another person in the neighborhood is unconstitutionally vague insofar as it makes criminal liability dependent on the subjective determination of any person who hears the barking.
NATURE OF ACTION: The defendant was charged with violating a municipal ordinance prohibiting a dog owner from allowing frequent or habitual barking that disturbs or annoys any person in the neighborhood. Municipal Court: The Spokane Municipal Court, No. P860007, Christine Cary, J., entered a judgment of guilty on March 11, 1986.
Superior Court: The Superior Court for Spokane County, No. 86 2-00975-7, James M. Murphy, J., REVERSED the conviction on August 1, 1986.
Supreme Court: Holding that the definition of the crime was unconstitutionally vague, the court AFFIRMS the superior court judgment.
COUNSEL: JAMES C. SLOANE, CITY ATTORNEY, and STANLEY M. SCHWARTZ, ASSISTANT, for petitioner.
SARA B. DERR, for respondent.
by frequent or habitual howling, yelping or barking.
Whoever harbors such a dog maintains a nuisance.
Fischer received a 3-day suspended sentence, was fined $40, including court costs, and placed on probation for a period of 1 year.
Fischer appealed to the Spokane County Superior Court, asserting the statute in question was unconstitutional. The court found SMC 10.03.030 void for vagueness under the Fourteenth Amendment and Const. art. 1, 3 and reversed the conviction. The City appealed to the Court of Appeals which certified the case to this court pursuant to RCW 2.06.030(2), (c). We accepted certification and granted direct review.
 The same rules of statutory construction apply to municipal ordinances as to state statutes. PUYALLUP v. PACIFIC NORTHWEST BELL TEL. CO., 98 Wn.2d 443, 448, 656 P.2d 1035 (1982). They are presumed constitutional, and a party claiming otherwise has the burden of proving them unconstitutional beyond a reasonable doubt. HABERMAN v. WPPSS, 109 Wn.2d 107, 139, 744 P.2d 1032, 750 P.2d 254 (1987); CONVENTION CTR. COALITION v. SEATTLE, 107 Wn.2d 370, 378, 730 P.2d 636 (1986); STATE v. MACIOLEK, 101 Wn.2d 259, 263, 676 P.2d 996 (1984).
 To meet its burden of proof, a plaintiff must show an ordinance does not satisfy the requirements of due process. "The test for evaluating the vagueness of legislative enactments contains two components: adequate notice to citizens and adequate standards to prevent arbitrary enforcement." STATE v. MACIOLEK, SUPRA at 264; SEE KOLENDER v. LAWSON, 461 U.S. 352, 75 L. Ed. 2d 903, 103 S. Ct. 1855 (1983).
Fischer contends SMC 10.03.030 is void for vagueness on its face. To support his contention, he argues the terms "frequent", "habitual", "disturb", and "annoy", which are elements of the crime, have no legal definition either legislatively or judicially. Therefore, as common usage terms, they must be defined by their dictionary meanings. Under their ordinary usage, Fischer claims the terms in the ordinance are too subjective. Any term not defined within the statute must be accorded its plain and ordinary meaning unless a contrary intent appears. DENNIS v. DEPARTMENT OF LABOR & INDUS., 109 Wn.2d 467, 479-80, 745 P.2d 1295 (1987); IN RE ESTATE OF LITTLE, 106 Wn.2d 269, 283, 721 P.2d 950 (1986). "An ordinance is unconstitutional when it forbids conduct in terms so vague that persons of common intelligence must guess at its meaning and differ as to its application." BURIEN BARK SUPPLY v. KING CY., 106 Wn.2d 868, 871, 725 P.2d 994 (1986).
The City claims a person of ordinary intelligence can understand what conduct is proscribed by the ordinance. Comparing SMC 10.03.030 to a similar ordinance in STATE v. COLE, 18 Ariz. App. 237, 501 P.2d 413 (1972), the City argues the terms "frequent" or "habitual" are not vague and their meaning is known to the average person of common intelligence.
STATE v. COLE, at 238 (quoting CCP 8-2).
STATE v. COLE, at 239.
Citing EVERETT v. O'BRIEN, 31 Wn. App. 319, 641 P.2d 714 (1982), the City argues "disturb or annoy" are not unconstitutionally vague terms. There the court held "[a] person of ordinary understanding is capable of determining when noise from his motorcycle is unreasonably disturbing the peace, comfort, and repose of others." O'BRIEN, at 323.
Neither case is controlling to the matter before us. The Phoenix ordinance, in contrast to SMC 10.03.030, does not allow ANY person, on the basis of subjective annoyance or disturbance, to make a determination as to an element of the crime. Furthermore, the Arizona case only addressed the term "habit", not the other terms contained in the Spokane ordinance. O'BRIEN is distinguished in that the standard of reasonableness is contained in the ordinance. SEE ALSO SEATTLE v. EZE, 45 Wn. App. 744, 727 P.2d 262 (1986), REVIEW GRANTED, 107 Wn.2d 1026 (1987), which upheld a disorderly conduct ordinance using the phrase "unreasonably disturbs others". No standard of reasonableness appears in the Spokane ordinance.
 The ordinance before us proscribes CRIMINAL conduct for a natural canine act- barking. The scope of the ordinance is broad, extending generally to any dog owner or landowner allowing "frequent or habitual" barking which "disturbs or annoys" any other person or neighborhood. The crux of the ordinance is that it gives to ANY person who feels a dog's frequent or habitual barking is annoying or disturbing the power to make a subjective determination a crime has been committed. While under most circumstances, "frequent or habitual" may be understood by ordinary persons of common intelligence, it is impossible to know whether this barking "disturbs or annoys" another person or neighborhood. Rather than owners being able to determine readily their compliance with the ordinance, it is any person or neighbor's threshold tolerance for barking which determines lawful conduct by the owner or harborer of a dog.
While numerous examples can be cited to demonstrate the potential for neighborhood abuse, some common examples illustrate the point. Many persons, especially the elderly and single women, purchase dogs for protection and security. This ordinance could penalize the owner whose dog barks whenever strangers or postal carriers approach the house or barks briefly every time it is let out of the house for a walk. Whether this behavior is lawful or unlawful will depend solely on the subjective feeling of annoyance or disturbance by a particular person or neighborhood. Conceivably, strangers walking by the same residence every day could file a complaint if the dog always barks at them.
SMC 10.03.030 provides neither adequate notice to citizens of unlawful conduct nor adequate standards to prevent its arbitrary enforcement. It violates both the Fourteenth Amendment and Const. art. 1, 3, and is void.
CONCURRING JUDGES: Pearson, C.J., and Utter, Brachtenbach, Dore, Andersen, Callow, Goodloe, and Durham, JJ., concur.


text:
game & watch series
game boy gallery: on the value of games, part 2 of 2
Posted by geozeldadude on August 7, 2011
Posted in: game & watch series, nintendo, nintendo 3DS, nintendo DSiware, nintendo game boy, nintendo software, reviews.	1 Comment
my last post recounted my first forays into the world of smartphone gaming and in it i sided with nintendo CEO satoru iwata in his claim that such games were really not affecting nintendo's business in any significant way due to the huge difference in quality between these, what i call, "disposable" games and ones that are much more considered and worthwhile. it so happened that around this same time i've also been playing game & watch gallery, an original game boy game that collects four of the original game & watch games, each paired with a more-modern remake featuring mario and co. i've been interested in the G&W games ever since i saw mr. G&W in the smash bros. series, and i was interested in seeing how these primitive games, a significant number of which were developed and released even before nintendo's first big arcade success, donkey kong, was created.
i have to admit that at first i was a bit unimpressed. i enjoy arcade-type games (great favorites being galaga and the pac-man games), but although i thoroughly enjoyed the minimalist LCD visuals and basic beep 'n boops, i couldn't see myself being interested enough in the gameplay itself to even bother trying for the 1,000 points required to completely earn all the game's stars, i.e. in-game achievements, one given for each 200 points earned.
my initial lukewarm reaction was quickly superseded by appreciation and enjoyment, which were followed soon by levels of enjoyment i only feel when playing some of the greatest games of all time. individually each of the games have their own, distinct appeal (even when comparing the classic and modern versions of the same game, the latter featuring variations that are incredibly well-designed riffs of the originals that at the same time keep the core gameplay intact), and no doubt picking favorites can be a matter of preference. but as a collection the game is a great, very well-balanced package and has an excellent amount of variety. when considering the games in comparison to the throwaway smartphone games i tried out, the differences are tremendous. in particular, despite their age the game & watch games have a sophisticated level of pacing. the action gets progressively more and more frantic as you near every additional 100-point mark and then eases up once you pass it so that it can start ramping up the difficulty again, and most of the games also feature a certain level of decision-making and having to constantly choose between pursuing a larger, riskier bonus or sticking to the slower, safer route.
although octopus and oil panic weren't my favorites, i became fairly addicted to the modern version of fire (although the classic version is enjoyable as well), and the classic version of manhole. the modern version of fire, in which you have to catch falling toads, yoshis, and DK jrs with a trampoline, is pure twitch-action bliss. the classic version of manhole features a steep learning curve that perhaps could have been alleviated by slightly clearer design (being able to see the shadows of the figures as on the original LCD screens and in the post-game boy rereleases may help) but once the patterns are learned, recognizing them and keeping cool under the onslaught of pedestrians is wholly hypnotizing and satisfying.
which brings me back again to the question of the value of games. many of these G&W games have been rereleased on DSiware as standalone versions for $2, and although i can't yet speak for the others, manhole is clearly worth the price. that release has become a bit obsolete, though, with the very recent release of game & watch gallery on 3DS's virtual console for just a dollar more, but even as a standalone release manhole is miles away in quality from any of the smartphone games i've played thus far. at best the smartphone games feel like they're about on the level of microgames (not even minigames!) from the warioware series, with very little of the accompanying charm, wit, or polish. the comparison isn't quite fair, however, as the game & watch games were originally released for far more than their current price (i haven't been able to find the exact original retail prices, but they seem to have been around $15-$20), but it's always been clear to me, anyway, that as long as nintendo-level quality games remain exclusive to nintendo hardware i'll stay loyal to them. even aside from that, until smartphones can support games at the level of sophistication of the best handheld console games (of which i've seen very little evidence thus far), there's absolutely no reason that i can see why any even mildly serious gamer would replace a handheld console with a smartphone as his/her gaming platform of choice. this is all based on the current state of the gaming world which could easily change in the near future. i'm not making any bets, but i'm sure that nintendo is doing their research and will survive this period of uncertainty and will continue their long history of doing what they do best, even since their game & watch days: providing outstanding video game experiences. i'm looking forward to working my way through additional G&W games, and i continue to wear my nintendo fanboyism with pride. 😉
game & watch these links!
– there's a lot of info about G&W games scattered around the web. wikipedia has a nice listing of all the games and a handy chart showing which games have been rereleased on which compilations.
– text from the instruction manual at world-of-nintendo.com and PDFs of the manuals of many of the G&W games at replacementdocs.com
– club nintendo recently made a version of the original ball G&W device available, and there was an accompanying iwata asks interview with the original G&W developers. awesome. i'm amazed at how limited the technology was at the time and how great the games still are today. incidentally, i hadn't realized that there's an iwata asks hub site, at iwataasks.nintendo.com; these interviews are often essential reading and are full of fascinating behind-the-scenes info.
– retroconsolegames.net has a listing of all the games with their release dates and rough estimates of current values as of 2009
– there's some good info and photographs on nindb.net, gameandwatch.com, intheattic.co.uk, and game & watch information archive


When I first came across the suggestions presented in this article, I laughed. I mean honestly, do people need to be reminded not to leave valuable items like cash, jewelry, and guns in an unlocked car? The evidence here in Sioux Falls would lead one to respond loudly, "Yes, yes they do!".
What about leaving things in a locked car? The contention is that leaving these things in your vehicle can compromise your health and security.
Glasses - Your frames can warp in the heat or get so hot they'll burn your face!
The rest of this list contains items I thought too ridiculous to mention and yet, statistics indicate otherwise.


text:
Cardinals get Paul Goldschmidt from Diamondbacks
By - Associated Press - Wednesday, December 5, 2018
PHOENIX — The St. Louis Cardinals have struck gold in their search for a big hitter, getting All-Star first baseman Paul Goldschmidt from the Arizona Diamondbacks in a multiplayer trade.
The Cardinals sent pitcher Luke Weaver, catcher Carson Kelly, minor league infielder Andy Young and a 2019 draft pick to Arizona in the deal Wednesday.
A six-time All-Star at 31, Goldschmidt was among the top players available in the trade market. He hit .290 with 33 home runs and 83 RBIs last season and has often finished high in the NL MVP voting.
St. Louis has missed the playoffs for three straight years, its longest absence since 1997-99. Goldschmidt has a $14.5 million salary next year, receives a $1 million assignment bonus for the trade and will be eligible for free agency after next season. The Cardinals believed they needed a boost in the middle of their lineup to compete with the likes of Milwaukee and the Cubs in the NL Central.


text:
Realtors Give Credence to Higher Mortgage
The rise in housing loan ceiling is a step forward in helping the people buy their own homes, the head of Tehran's Association of Realtors said.
"The 600-million-rial ($19,800 at market exchange rate) loans barely covered 12% of an average apartment's total price. The ceiling for first-time homebuyers, who had applied for housing savings account, has been doubled in Tehran and increased in other towns," Hesam Oqbaei was quoted as saying by the IRIB website on Wednesday.
The Money and Credit Council agreed last week to double the ceiling of Bank Maskan's Housing Saving Account mortgage for newlyweds.
According to the directive, home loans for the newly married will be raised to 1.6 billion rials ($52,900) from the previous 800 million rials in Tehran.
In urban areas other than Tehran, young couples will receive 1.2 billion rials ($39,700), up from 600 million rials in the past. Those in towns with a population of less than 200,000 will qualify for 800 million rials ($26,400), twice the 400 million rials.
The official, however, noted that restricting the new ceiling to young couples undermines its overall positive impact on the sluggish property market.
"Those at the lower rung of the ladder are mostly left out of this scheme. The new scheme does not cover a high percentage of homebuyers," he said.
According to Oqbaei, the ceiling for the housing premium fund—mortgages that do not need deposits—has also been raised and is an effective step in helping lift the housing market out of recession.
"The MCC has also authorized the granting of housing loans that do not require deposits. This measure can have a very positive effect on the housing sector."
Oqbaei, however, called for the 20% lending rate for loans to be lowered for the scheme to augment its healing effect on the market.
The realtor claimed that the long recession besetting the housing sector has been unprecedented in the past three decades and hoped that the property market would be energized in the first half of the coming fiscal year (starting March 20).
Financial Reform Necessary
Oqbaei said reforming monetary and financial policies can also help stabilize the real-estate market.
"The root of the housing market problems lies in defective monetary and financial policies undertaken by successive governments. A better prospect for the housing market depends on reforming these policies," IRNA quoted him as saying.
Past administrations have largely given lip service to the need for reforms in monetary and financial policies, but they "have done nothing in practice".
The realtor warned against banks' speculative ventures in the housing market.
"An end to the lenders' activities in the property market can help give the private sector the much-needed impetus to take steps toward reenergizing the housing market," he said.
Oqbaei noted that land prices comprise an average 70% of a housing unit's total cost and proposed a mechanism for better management and regulation of land prices, especially in major cities.


You have to pick ONE GENRE that you frequently read about… and then, you can't use ANY books from that genre while answering the questions!
The genre I read the most is mystery/thriller, and at the outset it feels like it might be difficult not to immediately think of these books upon reading the questions!
I don't normally go for science-fiction, but this book was recommended to me a few years ago and I quite liked it. The writing style was witty and fast-paced, while the plot was creative and absorbing.
Time for a major book blogger confession! It took me a VERY long time to start reading YA, because I partly convinced myself I probably would not like the genre.
I could hardly have been more wrong – after reading The Fault In Our Stars and loving it, I had read and enjoyed loads more YA!
This is an autobiographical novel with a unique writing style, and I didn't like it one bit. As well as being distinctly uninteresting, the quality of the writing was poor and I skimmed through most of it.
4. Pick A Friend Who Motivates You To Pick Up Books You Might Not Normally Be Interested In – Is There A Book They Convinced You To Give A Try?
I don't read much non-fiction anymore, but my friend Gem suggested this book as one that we could buddy read. I really liked it – as well as being beautifully written, the story it tells is remarkable.
The idea behind this book sounds so intriguing! I have read a lot of interesting thoughts on it, and I am fascinated to see how Elizabeth Acevedo combines poetry with storytelling.
I think it is unlikely that I will read much romance, but I certainly don't think I will ever read erotica.
Great answers, Stephen! I'm glad you loved The Fault In Our Stars! I still haven't read anything by John Green and this is on my TBR.
Thank you, Shaz! I had thought about reading The Fault in our Stars for a long time and I am glad I eventually did!
I was the same with TFIOS, I recently read it and was impressed.
Genres I don't read are hard crime, romance and high fantasy (dragons etc). Just doesn't appeal.
I can't stand erotica – I've tried and it just makes me cringe while reading it!
Great job with this tag, Stephen. I love going out of my comfort zone with books. I have The Cleaner on my list and will check out more of these thanks to you.
Thank you, Jenn! Going out of my comfort zone has helped me discover some fantastic books. Happy reading!
You're very welcome, Allie! I am so intrigued by The Poet X and am looking forward to reading it!
I'm planning to read Fault in our Stars this year 🙂 I'm experimenting with YA books too. Like quite a few from what i read, but overall it's still not that many.
It was hard to stay interested while reading On The Road, I do kind of regret not choosing to DNF it!
I would have probably picked The Fault in Our Stars for this category too! I used to step away from YA but I think that this is the first YA book that I read that really made me step back and reflect on the genre. Thanks for the tag, I'm looking forward to posting my choices!
That's great – The Fault in our Stars definitely made me view YA in a new light. And you're welcome, Darina. I look forward to seeing your answers!
You're welcome, Sahi. I look forward to reading your answers!