text:
.. _grid_user_guide:

******************************************
Introduction to Landlab's Gridding Library
******************************************

When creating a two-dimensional simulation model, often the most time-consuming and
error-prone task involves writing the code to set up the underlying grid. Irregular
(or "unstructured") grids are especially tricky to implement. Landlab's **ModelGrid**
package makes this process much easier, by providing a set of library routines for
creating and managing a 2D grid, attaching data to the grid, performing common input
and output operations, and  providing library functions that handle common numerical
operations such as calculating a field of gradients for a particular state variable.
By taking care of much of the overhead involved in writing grid-management code,
**ModelGrid** is designed to help you build 2D models quickly and efficiently, freeing you
to concentrate on the science behind the code.

Some of the things you can do with **ModelGrid** include:

- Create and configure a structured or unstructured grid in a one or a few lines of code
- Create various data arrays attached to the grid
- Easily implement staggered-grid finite-difference/finite-volume schemes
- Calculate gradients in state variables in a single line
- Calculate net fluxes in/out of grid cells in a single line
- Set up and run "link-based" cellular automaton models
- Switch between structured and unstructured grids without needing to change the rest of
  the code
- Develop complete, 2D numerical finite-volume or finite-difference models much more
  quickly and efficiently than would be possible using straight C, Fortran, Matlab, or
  Python code

Some of the Landlab capabilities that work with **ModelGrid** to enable easy numerical modeling include:

- Easily read in model parameters from a formatted text file
- Write grid and data output to netCDF files for import into open-source visualization
  packages such as ParaView and VisIt
- Create grids from ArcGIS-formatted ascii files
- Create models by coupling together your own and/or pre-built process components
- Use models built by others from process components

This document provides a basic introduction to building applications using Landlab's
**ModelGrid**. It covers: (1) how grids are represented, and (2) a set of tutorial examples
that illustrate how to build models using simple scripts.

How a Grid is Represented
-------------------------

.. _basic_grid_elements:

Basic Grid Elements
-------------------

.. figure:: images/grid_schematic_ab.png
    :figwidth: 80%
    :align: center

    *Figure 1*: Elements of a model grid. The main grid elements are nodes, links, cells,
    and faces.
    Less commonly used elements include corners, patches, and junctions. In the
    spring 2015 version of Landlab, **ModelGrid** can implement raster (a) and
    Voronoi-Delaunay (b) grids. Ordered subtypes of Voronoi-Delaunay grids—radial
    and hexagonal—are also available.
    (Note that not all links and patches are shown, and only one representative cell is
    shaded.)

:ref:`Figure 1 <basic_grid_elements>` illustrates
how **ModelGrid** represents a simulation grid. The
grid contains a set of *(x,y)* points called **nodes**. In a typical
finite-difference or finite-volume model, nodes are the locations at which one tracks
scalar state variables, such as water depth, land elevation, sea-surface elevation,
or temperature.

Each adjacent pair of nodes is connected by a line segment known as
a **link**. A link has both a position in space, denoted
by the coordinates of the two bounding nodes, and a direction: a link
runs from one node (known as its **from-node** or **tail-node**) to another node
(known as its **to-node** or **head-node**).

Every node in the grid interior is associated with a polygon known as a **cell** (illustrated,
for example, by the shaded square region in :ref:`Figure 1a <basic_grid_elements>`). Each cell is
bounded by a set of line segments known as **faces**, which it shares with its neighboring
cells.

In the simple case of a regular (raster) grid, the cells are square, the nodes
are the center points of the cells (:ref:`Figure 1 <basic_grid_elements>`), and the links and faces have
identical length (equal to the node spacing). In a Voronoi-Delaunay grid, the
cells are Voronoi polygons (also known as Theissen polygons)
(:ref:`Figure 1a <basic_grid_elements>`). In this case, each cell represents the surface area that
is closer to its own node than to any other node in the grid. The faces
represent locations that are equidistant between two neighboring nodes. Other grid
configurations are possible as well. The spring 2015 version of Landlab includes
support for hexagonal and radial grids, which are specialized versions of the
Voronoi-Delaunay grid shown in :ref:`Figure 1a <basic_grid_elements>`. Note that the node-link-cell-face
topology is general enough to represent other types of grid; for example, one could use
**ModelGrid's** data structures to implement a quad-tree grid,
or a Delaunay-Voronoi grid in which cells are triangular elements with
nodes at their circumcenters.

Creating a Grid
---------------

Creating a grid is easy.  The first step is to import Landlab's
:py:class:`RasterModelGrid <landlab.grid.raster.RasterModelGrid>` class (this
assumes you have :ref:`installed Landlab <install>`
and are working in your favorite
:ref:`Python environment <python_installation>`):

.. code-block:: python

    >>> from landlab import RasterModelGrid

Now, create a regular (raster) grid with 10 rows and 40 columns, with a node spacing (dx) of 5:

.. code-block:: python

    >>> mg = RasterModelGrid((10, 40), 5.)

*mg* is now a grid object with 400 ``( 10*40 )`` nodes and 750 ``( 40*(10-1) + 30*(10-1) )`` links.

.. code-block:: python

    >>> mg.number_of_node_columns
    40
    >>> mg.number_of_nodes
    400
    >>> mg.number_of_links
    750

.. _fields:

Adding Data to a Landlab Grid Element using Fields
--------------------------------------------------

Landlab has a data structure called *fields* that will store data associated with different types
of grid elements. Fields are convenient because 1) fields create data arrays of the proper length for
the associated grid element, and 2) fields attach these data to the grid, so that any piece of code that has
access to the grid also has access to the data stored in fields.

Suppose you would like like to
track the elevation at each node. The following code creates a data field
(array) called *elevation*. In this case, we'll use the grid method
*add_zeros* to create a field that initially sets all values in the field to
zero (we'll explain how to read in elevation values from a file in the section
on :ref:`DEMs below <importing_a_dem>`). The *add_zeros* method takes
two arguments: the name of the grid element (in this case, *node*, in the
singular) and a name we choose for the value in the data field (here we'll just
call it *elevation*). Each *elevation* value in the data field is then
associated with a specific grid node. The data field is just a NumPy array
whose length is equal to the number of nodes in the grid.

.. code-block:: python

    >>> z = mg.add_zeros("elevation", at="node")

Here *z* is an array of zeros. We can verify that *z* has the same length as the number of nodes:

.. code-block:: python

    >>> z.size  # or len(z)
    400

Note that *z* is a reference to the data stored in the model field. This means that if you change z, you
also change the data in the ModelGrid's elevation field. Therefore, you can access and manipulate data in the field either through the variable *z* or through the grid, as in the following examples:

.. code-block:: python

    >>> mg.at_node["elevation"][5] = 1000.0

or the alternative notation:

.. code-block:: python

    >>> mg['node']['elevation'][5]
    1000.

Now the sixth element in the model's elevation field array, or in *z*, is equal to 1000.  (Remember that the first element of a Python array has an index of 0 (zero)).

You can see all of the field data available at the nodes on *mg* with the following:

.. code-block:: python

    >>> mg.at_node.keys()
    ['elevation']

You may recognize this as a dictionary-type structure, where
the keys are the names (as strings) of the data arrays.

There are currently no data values (fields) assigned to the links, as shown by the following:

.. code-block:: python

    >>> mg.at_link.keys()
    []

It is also possible, and indeed, often quite useful, to initialize a field from an
existing NumPy array of data. You can do this with the
:py:func:`add_field <landlab.field.grouped.ModelDataFields.add_field>` method.
This method allows slightly more granular control over how the field gets
created. In addition to the grid element and field name, this method takes an
array of values to assign to the field. Optional arguments include: ``units=``
to assign a unit of measurement (as a string) to the value, ``copy=`` a boolean
to determine whether to make a copy of the data, and ``clobber=`` a boolean
that prevents accidentally overwriting an existing field.

.. code-block:: python

    >>> import numpy as np
    >>> elevs_in = np.random.rand(mg.number_of_nodes)
    >>> mg.add_field("elevation", elevs_in, at="node", units="m", copy=True, clobber=True)

Fields can store data at nodes, cells, links, faces, patches, junctions, and corners (though the
latter two or three are very rarely, if ever, used). The grid element you select is
described in Landlab jargon as that field's *centering* or *group*, and you will
sometimes see these terms used as input parameters to various grid methods.

To access only the core nodes, core cells, active links, or some other subset of node values using the
properties available through the ModelGrid, you can specify a subset of the field data array. For example, if we wanted to determine the elevations at core nodes only we can do the following:

.. code-block:: python

    >>> core_node_elevs = mg.at_node["elevation"][mg.core_nodes]

The first set of brackets, in this case *elevation*, indicates the field data array, and the second set of brackets, in this case *mg.core_nodes* (itself an array of core node IDs), is a NumPy filter that specifies which *elevation* elements to return.

Here is another example of initializing a field with the *add_ones* method. Note that when initializing a field, the singular of the grid
element type is provided:

.. code-block:: python

    >>> veg = mg.add_ones("percent_vegetation", at="cell")
    >>> mg.at_cell.keys()
    ['percent_vegetation']

Here *veg* is an array of ones that has the same length as the number of cells. Because there are
no cells around the edge of a grid, there are fewer cells than nodes:

.. code-block:: python

    >>> mg.at_cell['percent_vegetation'].size
    304

As you can see, fields are convenient because you don't have to keep track of how many nodes, links, cells, etc.
there are on the grid. It is easy for any part of the code to query what data are already associated with the grid and operate on these data.

You are free to call your fields whatever you want. However, field names are
more useful if standardized across components. If you are writing a Landlab component
you should use :ref:`Landlab's standard names <component_standard_names>`.
Standard names for fields in a particular component can be
accessed individually through the properties
*component_instance._input_var_names* and *component_instance._output_var_names*
(returned as dictionaries), and are listed in the docstring for each component.

.. code-block:: python

    >>> from landlab.components.flexure import Flexure
    >>> flexer = Flexure(rg)
    >>> flexer._input_var_names
    {'lithosphere__elevation',
     'lithosphere__overlying_pressure',
     'planet_surface_sediment__deposition_increment'}
    >>> flexer._output_var_names
    {'lithosphere__elevation', 'lithosphere__elevation_increment'}

We also maintain this list of all the
:ref:`Landlab standard names <component_standard_names>`.

Our fields also offer direct compatibility with `CSDMS's standard naming system for
variables <https://csdms.colorado.edu/wiki/CSDMS_Standard_Names>`_.
However, note that, for ease of use and readability, Landlab standard
names are typically much shorter than CSDMS standard names. We anticipate that future
Landlab versions will be able to automatically map from Landlab standard names to CSDMS
standard names as part of Landlab's built-in `Basic Model Interface for CSDMS
compatibility <https://csdms.colorado.edu/wiki/BMI_Description>`_.

The following gives an overview of the commands you can use to interact with the grid fields.

Field initialization
^^^^^^^^^^^^^^^^^^^^

* ``grid.add_empty(name, at="group", units="-")``
* ``grid.add_ones(name, at="group", units="-")``
* ``grid.add_zeros(name, at="group", units="-")``

"group" is one of 'node', 'link', 'cell', 'face', 'corner', 'junction', 'patch'

"name" is a string giving the field name

"units" (optional) is a string denoting the units associated with the field values.

Field creation from existing data
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* ``grid.add_field(name, value_array, at="group", units="-", copy=False, clobber=True)``

Arguments as above, plus:

"value_array" is a correctly sized numpy array of data from which you want to create the field.

"copy" (optional) if True adds a *copy* of value_array to the field; if False, creates a reference to value_array.

"clobber" (optional) if `False`, raises an exception if a field called name already exists.

Field access
^^^^^^^^^^^^

* ``grid.at_node`` or ``grid['node']``
* ``grid.at_cell`` or ``grid['cell']``
* ``grid.at_link`` or ``grid['link']``
* ``grid.at_face`` or ``grid['face']``
* ``grid.at_corner`` or ``grid['corner']``
* ``grid.at_junction`` or ``grid['junction']``
* ``grid.at_patch`` or ``grid['patch']``

Each of these is then followed by the field name as a string in square brackets, e.g.,

.. code-block:: python

    >>> grid.at_node['my_field_name'] #or
    >>> grid['node']['my_field_name']

You can also use these commands to create fields from existing arrays,
as long as you don't want to take advantage of the added control ``add_field()`` gives you.

.. _getting_info_about_fields:

Getting information about fields
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Landlab offers a command line interface that lets you find out about all the fields that are in use across all the Landlab components. You can find out the following:

``$ landlab used_by [ComponentName]``  # What fields does ComponentName take as inputs?

``$ landlab provided_by [ComponentName]``  # What fields does ComponentName give as outputs?

``$ landlab uses [field__name]``  # What components take the field field__name as an input?

``$ landlab provides [field__name]``  # What components give the field field__name as an output?

``$ landlab list``  # list all the components

``$ (landlab provided_by && landlab used_by) | sort | uniq``  # some command line magic to see all the fields currently used in components

Representing Gradients in a Landlab Grid
----------------------------------------

Finite-difference and finite-volume models usually need to calculate spatial
gradients in one or more scalar variables, and often these gradients are
evaluated between pairs of adjacent nodes. ModelGrid makes these calculations
easier for programmers by providing built-in functions to calculate gradients
along links and allowing applications to associate an array of gradient values
with their corresponding links or edges. The `tutorial examples
<https://mybinder.org/v2/gh/landlab/landlab/release?filepath=notebooks/welcome.ipynb>`_
illustrate how this capability can be used to create models of processes
such as diffusion and overland flow.

Here we simply illustrate the method for
calculating gradients on the links.  Remember that we have already created the
elevation array z, which is also accessible from the elevation field on *mg*.

.. code-block:: python

    >>> gradients = mg.calculate_gradients_at_active_links(z)

Now gradients have been calculated at all links that are active, or links on which
flow is possible (see boundary conditions below).

Other Grid Elements
-------------------

The cell vertices are called *corners* (`Figure 1, solid squares <basic_grid_elements>`).
Each face is therefore a line segment connecting two corners. The intersection
of a face and a link (or directed edge) is known as a *junction*
(:ref:`Figure 1, open diamonds <basic_grid_elements>`). Often, it is useful to calculate scalar
values (say, ice thickness in a glacier) at nodes, and vector values (say, ice
velocity) at junctions. This approach is sometimes referred to as a
staggered-grid scheme. It lends itself naturally to finite-volume methods, in
which one computes fluxes of mass, momentum, or energy across cell faces, and
maintains conservation of mass within cells.  (In the spring 2015 version of Landlab,
there are no supporting functions for the use of junctions, but support is imminent.)

Notice that the links also enclose a set of polygons that are offset from the
cells. These secondary polygons are known as *patches* (:ref:`Figure 1,
dotted <basic_grid_elements>`). This means that any grid comprises two complementary tesselations: one
made of cells, and one made of patches. If one of these is a Voronoi
tessellation, the other is a Delaunay triangulation. For this reason, Delaunay
triangulations and Voronoi diagrams are said to be dual to one another: for any
given Delaunay triangulation, there is a unique corresponding Voronoi diagram.
With **ModelGrid,** one can
create a mesh with Voronoi polygons as cells and Delaunay triangles as patches
(:ref:`Figure 1b <basic_grid_elements>`). Alternatively, with a raster grid, one simply has
two sets of square elements that are offset by half the grid spacing
(:ref:`Figure 1a <basic_grid_elements>`). Whatever the form of the tessellation, **ModelGrid** keeps
track of the geometry and topology of the grid. patches can be useful for processes
like calculating the mean gradient at a node, incorporating influence from its
neighbors.

Managing Grid Boundaries
------------------------

An important component of any numerical model is the method for handling
boundary conditions. In general, it's up to the application developer to manage
boundary conditions for each variable. However, **ModelGrid** makes this task a bit
easier by tagging nodes that are treated as boundaries (*boundary nodes*)
and those that are treated as regular nodes belonging to the interior
computational domain (*core nodes*). It also allows you to de-activate ("close")
portions of the grid perimeter, so that they effectively act as walls.

Let's look first at how ModelGrid treats its own geometrical boundaries. The
outermost elements of a grid are nodes and links (as opposed to corners and
faces). For example, :ref:`Figure 2 <raster4x5>` shows a sketch of a regular
four-row by five-column grid created by RasterModelGrid. The edges of the grid
are composed of nodes and links. Only the inner six nodes have cells around
them; the remaining 14 nodes form the perimeter of the grid.

.. _raster4x5:

.. figure:: images/example_raster_grid.png
    :figwidth: 80%
    :align: center

    Figure 2: Illustration of a simple four-row by five-column raster grid created with
    :py:class:`landlab.grid.raster.RasterModelGrid <landlab.grid.raster.RasterModelGrid>`.
    By default, all perimeter
    nodes are tagged as open (fixed value) boundaries, and all interior cells
    are tagged as core. An active link is one that connects either
    two core nodes, or one core node and one open boundary node.

All nodes are tagged as either *boundary* or *core*. Those on the
perimeter of the grid are automatically tagged as boundary nodes. Nodes on the
inside are *core* by default, but it is possible to tag some of them as
*boundary* instead (this would be useful, for example, if you wanted to
represent an irregular region, such as a watershed, inside a regular grid). In the example
shown in :ref:`Figure 2 <raster4x5>`, all the interior nodes are *core*, and all
perimeter nodes are *open boundary*.

Boundary nodes are flagged as either *open* or *closed*, and links are tagged as
either *active* or *inactive* (Figure 3).

.. _raster4x5openclosed:

.. figure:: images/example_raster_grid_with_closed_boundaries.png
    :figwidth: 80 %
    :align: center

    Figure 3: Illustration of a simple four-row by five-column raster grid with a
    combination of open and closed boundaries.

A closed boundary is one at which no flux is permitted enter or leave, ever.
By definition, all links coming into or out of a closed boundary node must be inactive.
There is effectively no value assigned to a closed boundary; it will probably have a
grid.BAD_INDEX_VALUE or null value of some kind.
An open boundary is one at which flux can enter or leave, but whose value is controlled
by some boundary condition rule, updated at the end of each timestep.

An *active link*
is one that joins either two core nodes, or one *core* and one
*open boundary* node (Figure 3). You can use this
distinction in models to implement closed boundaries by performing flow
calculations only on active links, as seen in `this tutorial
<https://mybinder.org/v2/gh/landlab/landlab/release?filepath=notebooks/tutorials/fault_scarp_notebook/landlab-fault-scarp.ipynb>`_.

.. _bc_details:

Boundary condition details and methods
--------------------------------------

A call to mg.node_status returns the codes representing the boundary condition
of each node in the grid. There are 5 possible types, they are stored on the
model grid:

* mg.BC_NODE_IS_CORE (Type 0)
* mg.BC_NODE_IS_FIXED_VALUE (Type 1)
* mg.BC_NODE_IS_FIXED_GRADIENT (Type 2)
* mg.BC_NODE_IS_LOOPED (Type 3, used for looped boundaries)
* mg.BC_NODE_IS_CLOSED (Type 4)

A number of different methods are available to you to interact with (i.e., set and
update) boundary conditions at nodes. Landlab is smart enough to automatically
initialize new grids with fixed value boundary conditions at all perimeters and core
nodes for all interior nodes, but if you want something else, you'll need to modify
the boundary conditions.

If you are working with a simple Landlab raster where all interior nodes are core and
all perimeter nodes are boundaries, you will find useful the set of commands:

* ``mg.set_closed_boundaries_at_grid_edges(right, top, left, bottom)``
* ``mg.set_fixed_value_boundaries_at_grid_edges(right, top, left, bottom)``
* ``mg.set_fixed_link_boundaries_at_grid_edges(right, top, left, bottom, link_value=None)``
* ``mg.set_looped_boundaries(top_bottom_are_looped, left_right_are_looped)``

Where right, top, left, bottom are all booleans. See the relevant docstring for each
method for more detailed information.

If you are working with an imported irregularly shaped raster grid, you can close nodes
which have some fixed NODATA value in the raster using:

* ``mg.set_nodata_nodes_to_closed(node_data, nodata_value)``

Note that all of these commands will treat the status of node links as slave to the
status of the nodes, as indicated in Figure 3.
Links will be set to active or inactive according to what you set the node boundary
conditions as, when you call each method.

If you are working on an irregular grid, or want to do something more complicated
with your raster boundary conditions, you will need to modify the
``grid.status_at_node`` array by hand, using indexes to node IDs. Simply import the
boundary types from landlab then set the node statuses. The links will be updated
alongside these changes automatically:

.. code-block:: python

    >>> grid = RasterModelGrid((5,5))
    >>> grid.set_closed_boundaries_at_grid_edges(False, True, False, True)
    >>> grid.number_of_active_links
    18
    >>> grid.status_at_node[[6, 8]] = mg.BC_NODE_IS_CLOSED
    >>> grid.status_at_node.reshape((5,5))
    array([[4, 4, 4, 4, 4],
           [1, 4, 0, 4, 1],
           [1, 0, 0, 0, 1],
           [1, 0, 0, 0, 1],
           [4, 4, 4, 4, 4]], dtype=int8)
    >>> grid.number_of_active_links  # links were inactivated automatically when we closed nodes
    12

Note that while setting Landlab boundary conditions on the grid is straightforward, it
is up to the individual developer of each Landlab component to ensure it is compatible
with these boundary condition schemes! Almost all existing components work fine with
core, closed, and fixed_value conditions, but some may struggle with fixed_gradient,
and most will struggle with looped. If you're working with the component library, take
a moment to check your components can understand your implemented boundary conditions!
See the :ref:`Component Developer's Guide <dev_contributing>` for more information.

Using a Different Grid Type
---------------------------

As noted earlier, Landlab provides several different types of grid. Available grids
(as of this writing) are listed in the table below. Grids are designed using Python
classes, with more specialized grids inheriting properties and behavior from more
general types. The class hierarchy is given in the second column, **Inherits from**.

+-------------------------+-------------------------+--------------------+-------------------+
| Grid type               | Inherits from           | Node arrangement   | Cell geometry     |
+=========================+=========================+====================+===================+
| ``RasterModelGrid``     | ``ModelGrid``           | raster             | squares           |
+-------------------------+-------------------------+--------------------+-------------------+
| ``VoronoiDelaunayGrid`` | ``ModelGrid``           | Delaunay triangles | Voronoi polygons  |
+-------------------------+-------------------------+--------------------+-------------------+
| ``FramedVoronoiGrid``   | ``VoronoiDelaunayGrid`` | Delaunay triangles | Voronoi polygons  |
+-------------------------+-------------------------+--------------------+-------------------+
| ``HexModelGrid``        | ``VoronoiDelaunayGrid`` | triagonal          | hexagons          |
+-------------------------+-------------------------+--------------------+-------------------+
| ``RadialModelGrid``     | ``VoronoiDelaunayGrid`` | concentric         | Voronoi polygons  |
+-------------------------+-------------------------+--------------------+-------------------+
| ``NetworkModelGrid``    | ``ModelGrid``           | ad libitum         | No cells          |
+-------------------------+-------------------------+--------------------+-------------------+

:py:class:`landlab.grid.raster.RasterModelGrid <landlab.grid.raster.RasterModelGrid>`
gives a regular (square) grid, initialized
with *number_of_node_rows*, *number_of_node_columns*, and a *spacing*.
In a :py:class:`landlab.grid.voronoi.VoronoiDelaunayGrid <landlab.grid.voronoi.VoronoiDelaunayGrid>`,
a set of node coordinates
is given as an initial condition.
Landlab then forms a Delaunay triangulation, so that the links between nodes are the
edges of the triangles, and the cells are Voronoi polygons.
A :py:class:`landlab.grid.framed_voronoi.FramedVoronoiGrid <landlab.grid.framed_voronoi.FramedVoronoiGrid>`
is Voronoi grid where nodes coordinates are randomly moved from an initial rectangular regular grid.
A :py:class:`landlab.grid.hex.HexModelGrid <landlab.grid.hex.HexModelGrid>` is a
special type of VoronoiDelaunayGrid in which the Voronoi cells happen to be
regular hexagons.
In a :py:class:`landlab.grid.radial.RadialModelGrid <landlab.grid.radial.RadialModelGrid>`, nodes are created in concentric
circles and then connected to
form a Delaunay triangulation (again with Voronoi polygons as cells).

.. _importing_a_dem:

Importing a DEM
---------------

Landlab offers the methods
:py:func:`landlab.io.esri_ascii.read_esri_ascii <landlab.io.esri_ascii.read_esri_ascii>` and
:py:func:`landlab.io.netcdf.read_netcdf <landlab.io.netcdf.read_netcdf>` to allow ingestion of
existing digital elevation models as raster grids.

**read_esri_ascii** allows import of an ARCmap formatted ascii file (.asc or .txt)
as a grid.
It returns a tuple, containing the grid and the elevations in Landlab ID order.
Use the *name* keyword to add the elevation to a field in the imported grid.

.. code-block:: python

    >>> from landlab.io import read_esri_ascii
    >>> (mg, z) = read_esri_ascii("myARCoutput.txt", name="topographic__elevation")
    >>> mg.at_node.keys()
    ['topographic__elevation']

**read_netcdf** allows import of the open source netCDF format for DEMs. Fields will
automatically be created according to the names of variables found in the file.
Returns a :py:class:`landlab.grid.raster.RasterModelGrid <landlab.grid.raster.RasterModelGrid>`.

.. code-block:: python

    >>> from landlab.io.netcdf import read_netcdf
    >>> mg = read_netcdf("mynetcdf.nc")

After import, you can use :py:func:`landlab.grid.base.ModelGrid.set_nodata_nodes_to_closed
<landlab.grid.base.ModelGrid.set_nodata_nodes_to_closed>`
to handle the boundary conditions in your imported DEM.

Equivalent methods for output are also available for both esri ascii
(:py:func:`landlab.io.esri_ascii.write_esri_ascii <landlab.io.esri_ascii.write_esri_ascii>`)
and netCDF
(:py:func:`landlab.io.netcdf.write_netcdf <landlab.io.netcdf.write_netcdf>`) formats.

.. _plotting_and_vis:

Plotting and Visualization
--------------------------

Visualizing a Grid
------------------

Landlab offers a set of matplotlib-based plotting routines for your data. These exist
in the landlab.plot library. You'll also need to import some basic plotting functions
from pylab (or matplotlib) to let you control your plotting output: at a minimum **show**
and **figure**. The most useful function is called
:py:func:`landlab.plot.imshow.imshow_node_grid <landlab.plot.imshow.imshow_node_grid>`, and is imported
and used as follows:

.. code-block:: python

    >>> from landlab.plot.imshow import imshow_node_grid
    >>> from pylab import show, figure
    >>> mg = RasterModelGrid((50, 50), 1.)  # make a grid to plot
    >>> z - mg.node_x * 0.1  # Make an arbitrary sloping surface
    >>> mg.add_field("topographic_elevation", z, at="node", units="meters", copy=True)  # Create the data as a field
    >>> figure('Elevations from the field')  # new fig, with a name
    >>> imshow_node_grid(mg, 'topographic_elevation')
    >>> figure('You can also use values directly, not fields')  # ...but if you, do you'll lose the units, figure naming capabilities, etc
    >>> imshow_node_grid(mg, z)
    >>> show()

Note that :py:func:`landlab.plot.imshow.imshow_node_grid <landlab.plot.imshow.imshow_node_grid>`
is clever enough to examine the grid object you pass it,
work out whether the grid is irregular or regular, and plot the data appropriately.

By default, Landlab uses a Python colormap called *'pink'*. This was a deliberate choice
to improve Landlab's user-friendliness to the colorblind in the science community.
Nonetheless, you can easily override this color scheme using the keyword *cmap* as an
argument to imshow_node_grid. Other useful built in colorschemes are *'bone'* (black
to white), *'jet'*, (blue to red, through green), *'Blues'* (white to blue), and
*'terrain'* (blue-green-brown-white) (note these names are case sensitive).
See `the matplotlib reference guide
<https://matplotlib.org//examples/color/colormaps_reference.html>`_ for more options.
Note that imshow_node_grid takes many of the same keyword arguments as, and is designed
to resemble, the standard matplotlib function `imshow
<https://matplotlib.org//users/image_tutorial.html>`_. See also the method help for more
details.
In particular, note you can set the maximum and minimum you want for your colorbar using
the keywords *vmin* and *vmax*, much as in similar functions in the matplotlib library.

**Note if using Anaconda**: there have been documented issues with resolution with default inline plotting within the Spyder IDE iPython console. To generate dynamic plots (e.g. Matlab-like plots), change the graphics settings in Spyder by following this work flow:

In *Spyder -> Preferences -> iPython console -> Graphics -> Graphics Backend -> Automatic -> Apply -> OK -> Make sure to restart Spyder to update the preferences.*

Visualizing transects through your data
---------------------------------------

If you are working with a regular grid, it is trivial to plot horizontal and vertical
sections through your data. The grid provides the method
:py:func:`landlab.grid.raster.RasterModelGrid.node_vector_to_raster <landlab.grid.raster.RasterModelGrid.node_vector_to_raster>`,
which will turn a Landlab 1D node data array into a two dimensional rows*columns NumPy array,
which you can then take slices of, e.g., we can do this:

.. code-block:: python

    >>> from pylab import plot, show
    >>> mg = RasterModelGrid((10, 10), 1.)
    >>> z = mg.node_x * 0.1
    >>> my_section = mg.node_vector_to_raster(z, flip_vertically=True)[:,5]
    >>> my_ycoords = mg.node_vector_to_raster(mg.node_y, flip_vertically=True)[:,5]
    >>> plot(my_ycoords, my_section)
    >>> show()

Visualizing river profiles
--------------------------

See the :py:class:`ChannelProfiler <landlab.components.profiler.ChannelProfiler>`
component.

Making Movies
-------------

Landlab does have an experimental movie making component. However, it has come to the
developers' attention that the matplotlib functions it relies on in turn demand that
your machine already has installed one of a small set of highly temperamental open
source video codecs. It is quite likely using the component in its current form is
more trouble than it's worth; however, the brave can take a look at the library
:py:mod:`landlab.plot.video_out <landlab.plot.video_out>`. We intend to improve
video out in future Landlab releases.

For now, we advocate the approach of creating an animation by saving separately
individual plots from, e.g., **plot()** or
:py:func:`landlab.plot.imshow.imshow_node_grid <landlab.plot.imshow.imshow_node_grid>`,
then stitching them together
into, e.g., a gif using external software. Note it's possible to do this directly from
Preview on a Mac.


This head-scratching answer reflects an earlier 1907 law: the Expatriation Act. That law said that when an American-born woman married a non-American citizen, she lost her citizenship and was considered by the U.S. to hold the same citizenship as her foreign-born husband.
Prior to 1922, you are less likely to find naturalization papers for a female ancestor. The reason why has to do with derivative citizenship. The idea was that a non-U.S. citizen woman who married a husband who had U.S. citizenship received U.S. citizenship herself as a result of that marriage. If he naturalized, she was included in that naturalization. From 1855 to 1922 immigrant women who married American citizen men became American citizens. But in 1907, the Expatriation Act stated that derivative citizenship would not only affect the immigrant woman, but also the woman who was an American citizen by birth. This meant that American women who married a non-U.S. citizen lost their U.S. citizenship.
Now this loss of citizenship may not seem like a problem when weighed against women's general lack of rights during this time period. But in 1920 when women received the national right to vote, women who had married foreign nationals were not eligible. On top of that, should they travel to other countries they risked not being allowed entry back into the U.S. because of immigration quotas. As women's citizenship status increasingly related to a denial of legal rights and benefits, the loss of that citizenship was a problem that needed to be solved.
How many women did this law affect? It's hard to come up with a precise number, but according to Ann Marie Nicolosi's article, We Do Not Want Our Girls to Marry Foreigners: Gender, Race, and American Citizenship, a look at the 1920 U.S. Census suggests that around 89 of every 1,000 children were born to American mothers and foreign-born men. In the 1910 U.S. Census, nearly six million children had one native-born parent and one foreign-born parent.
The 1922 Cable Act signaled the end of women's derivative citizenship and gave women the right to apply for their own naturalization. The Cable Act, also known as the Married Women's Independent Nationality Act, was a big step forward – but it would still take additional legislation before all women who had lost their citizenship could be repatriated.
Initially, the Cable Act allowed women who lost their citizenship to go through the naturalization process just as if they were never U.S. citizens. However, this did not include all women. Women who had married men ineligible for citizenship were still not allowed to apply for citizenship.
In 1936 women were finally allowed to forgo the lengthy naturalization process and repatriate by taking an oath of allegiance if – and only if – their husbands were dead or they had divorced. It wouldn't be for another four years, until 1940, when women could repatriate no matter what their current marital status was.
When I give genealogy talks on the topic of women's repatriation, I find a few people who are aware of this law because it affected a female ancestor. These family historians may have found out by accident that their U.S.-born ancestress lost her citizenship. My initial interest in this topic began decades ago when I was researching at the Family History Library and found American-born women listed in naturalization indexes. Later I uncovered the story of one of these women while doing some client research.
A few years ago, I began researching at my local branch of the National Archives in my quest to learn more about these repatriations. Since then, I've gathered oaths of allegiance from women at the National Archives and other repositories. Probably one of the more surprising lessons I learned is that these women were still repatriating well into the 1970s and beyond!
So, what do the repatriations of women teach family historians who do not have an affected female ancestor? It emphasizes the importance of learning about the current laws for the time and place you're researching. While you don't need to go to law school, it can be helpful to know a little about laws that affected our ancestors – like military conscription, homesteading, and naturalization.
The other lesson to take away from this is to be curious. I first learned about a client's ancestor losing her citizenship by finding her in the 1920 U.S. Census with "Al" written in the immigration column. I wondered what kind of mistake the census taker had made by claiming a woman born in Colorado was an alien. I soon realized the answer. It's important, when we come across things that don't seem right, that we follow our curiosity.
Are you curious about laws that impacted your female ancestors? My favorite resource that provides detailed state synopses of laws is the book by Christina K. Schaefer, The Hidden Half of the Family: A Sourcebook for Women's Genealogy.
Do you have a female ancestor that lost her U.S. citizenship because of her marriage? I'd love to hear her story. Please share it in the comments section below.
* "9 Facts about Jeanette Rankin, the First Woman elected to Congress," Mental Floss (http://mentalfloss.com/article/93596/9-facts-about-jeannette-rankin-first-woman-elected-congress: accessed 14 Spetember 2017).
My Gma, Irish lass, married American guy in 1919. Divorced him 1927. What then was her nationality?
Great question Dan! If your Irish grandma married an American citizen before 1922 she was an American citizen. That's because women had derivative citizenship until the Cable Act of 1922. Which basically meant that married women shared whatever citizenship their husband's held. After 1922, married women had to apply for their own US citizenship.
My grandmother was born in Grass Valley, CA, in 1888 and moved to South Africa with her parents in 1898. She met my grandfather, who was born in England in 1883, and we thought that they were married in 1907. We have finally found a marriage cert dated 1917, by which time they had had 4 children and were living out of wedlock. Seems totally out of character. She did have a birth cert. Any ideas on why they waited so long to get married????
What an interesting question. I would need more information to even venture a guess. There can be quite a few factors involved in not marrying right away. Money and availability of a nearby minister are a few reasons I can think of. Was one of your grandparents previously married?
It's not unusual to find that our ancestors had children and lived as a married couple years before actually getting married. Sounds like you have more research to do! Good luck!
This is fantastic information. It happened to my Great Grandma when she wed her husband in 1917. We discovered this upon her son's death in 2017 (he never knew — the repatriation papers were buried in a box of "stuff"). I am NOW in the process of writing my thesis for my MA in history on this subject.
My grandmother lost her citizenship when she married my grandfather in 10/1921. She and her parents were all born in Michigan. My grandfather, a Canadian, had served honorably in the U.S. Army during WWI. She finally went through the naturalization process in 1940.
Thanks for sharing your grandmother's story Cynthia.
My grandmother was born in Manhattan, New York City, in 1897. In around 1918, she married my grandfather who had been born in Germany and had lived in the United States since around 1918. In 1926, they traveled with their young son to visit family in Germany, and when they were to return home, they were made to travel as "Alien Passengers." No nationality was listed on the ship's manifest for my grandfather, my infant uncle was shown to have correctly been born in the United States, and my grandmother's nationality was listed as German! By the 1930 census, however, her correct birth place of New York City was listed. (Whether she had to prove this or just tell the enumerator her immigration status, I do not know.) I had heard stories she had to become a naturalized citizen. I cannot find the record showing this naturalization. I know she voted throughout my childhood, so I believe she had to have been a citizen by the 1960s. At the time of their passage to Germany, my grandmother lived in New Brunswick, NJ. Where can I find her naturalization documents? Thank you.
Kathleen, while your grandparent's trip to Germany was after the passage of the Cable Act she may not have tried to naturalize yet. In fact she may not have realized she wasn't a US citizen. But without naturalizing she was indeed a German citizen according to the US since she married during the time that women derived citizenship from their husbands.
Prior to 1936 she would have had to go through the naturalization process, after she could have taken an oath if she was divorced or widowed. However, after 1940 any woman, regardless of her marital status could take the oath which meant they didn't have to go through a lengthy naturalization process. These oaths can be found at NARA. You would need to consult the NARA that has repatriation records for where she lived (most likely NARA at New York City). They should be a part of RG 21. I have seen women repatriating using those oats well into the 1970s.
If you don't find a naturalization, contact NARA. They may have an index for that Record Group. I've also found those repatriation records at a county archive.
Just another twist…even though she voted, that doesn't necessarily mean she naturalized or repatriated. Many of these women didn't know they lost their citizenship, and they didn't have any identification showing they weren't a citizen. So it wouldn't be unusual to find someone voted.–Good luck!


text:
Q: scanf("%d") works correctly with character The code is:
int main() {
    scanf("%d");
    puts("hello!");
    getch();
    return 0;
}

If I input a number like 7, the program crashes but if I input a character like h, the program executes successfully.
Could you please explain me the reason behind it?
I am using MinGW on Windows XP.

A: Access specified %d won't get other character except number.
If you give other character the scanf get executed and nothing will store.
When you give numeric character the scanf get executed and try to store the value.
Due to storage location is unavailable the program get crashed.
Try to use the storage location in the scanf like
scanf("%d",&a);

The every version say warning to storage location.
So try to check warnings.

A: *

*Compile with the warnings.

*Read the manual page you will not that scanf("%d"); will require an address to put the number into if there is one

Try
int x;

scanf("%d", &x);

You should also check the return value from scanf as per the manual page. I leave that as an exercise to the reader to do with as he will.

A: Try
   check = scanf("%c %d",&a, &b);
   printf("check = %d \n",check);

redpajama_set_name: RedPajamaStackExchange


This book focuses on essential synaptic plasticity emulations and neuromorphic computing applications realized with the aid of three-terminal synaptic devices based on ion-coupled oxide-based electric-double-layer (EDL) transistors.
Stran: 107 stran, 60 Tables, color; 70 Illustrations, color; 7 Illustrations, èernobílé; XXI, 107 p.
Illustrace: 60 Tables, color; 70 Illustrations, color; 7 Illustrations, èernobílé; XXI, 107 p. 77 illus., 70 illus. in color.


text:
SIX at 6: Negative Capability, Lincoln's Policy, Antifragility, Will Ferrell, Bets, and Maintaining Attitude
Negative Capability
In 1817, a 22-year-old poet named John Keats wrote a letter to his brothers to catch them up on what he'd been doing and thinking about. He saw a play, wrote a review for a newspaper, dined with a friend whose company and conversation he very much enjoyed, and dined with some friends whose company and conversation he not so much enjoyed. From all of this, Keats wrote, "several things dove-tailed in my mind, and at once it struck me what quality went to form a Man of Achievement." It was the quality "which Shakespeare possessed so enormously…Negative Capability, that is, when a man is capable of being in uncertainties, mysteries, doubts, without any irritable reaching after fact and reason." In Courage is Calling, Ryan Holiday writes that courage is like a rare gem—"something we must hold up to inspect from many angles." I'd like to inspect Negative Capability from many angles…
Steer From Point To Point
I first came across Keats' idea of Negative Capability in Lincoln by David Herbert Donald. Abraham Lincoln, particularly in times of great uncertainty and doubt, liked to quote these lines from Shakespeare's Hamlet, "There's a divinity that shapes our ends, / Rough-hew them how we will." He believed that everyone's life was shaped largely by chance and accident, and therefore, that it's a good idea to not have fixed plans. "My policy is to have no policy" became his motto. He'd sometimes elaborate with the analogy he used to explain his course on Reconstruction: "The pilots on our Western rivers steer from point to point as they call it—setting the course of the boat no farther than they can see; and that is all I propose to myself in this great problem." Lincoln would have liked how the novelist and playwright E.L. Doctorow thought about steering his course on writing: "Writing is like driving at night in the fog. You can only see as far as your headlights, but you can make the whole trip that way." To cultivate the quality of Negative Capability, just steer from point to point—particularly in times of great uncertainty, doubt, and fog.
The Central Illusion In Life
Yesterday, I moved boxes out of a storage unit. One box was stamped "fragile" because if it were handled without care, its contents would break. In Antifragile: Things That Gain from Disorder, Nassim Nicholas Taleb writes that anything—ideas, cultures, empires, economies, recipes, humans—that survives is the opposite of fragile: antifragile. An antifragile box would have "please handle carelessly" written on it because if it were, its contents would not just not break, but would benefit. Beyond resilience or robustness, to be antifragilie is to get more upside than downside from volatility, randomness, stressors, setbacks, uncertainties. For example, the body. Whether it's weightlifting, fasting, ice baths, or saunas: the body gets stronger from stressors and uncertainties. "Crucially," Taleb writes, "if antifragility is the property of all those natural (and complex) systems that have survived, depriving these systems of volatility, randomness, and stressors will harm them." Later, he adds that the central illusion in life is thinking "that randomness is risky, that it is a bad thing—and that eliminating randomness is done by eliminating randomness." The Stoic philosopher Seneca said no one has it worse than the person who is deprived of randomness: "You are unfortunate [if] you have never been unfortunate. You have passed through life with no antagonist to face you; no one will know what you were capable of, not even you yourself."
It's All A Crapshoot
Will Ferrell went to college with the dream of being a sportscaster. But at some point, he took a comedy class and three years later, he got a job at Saturday Night Live. He was asked about auditioning for SNL. Since he didn't have much comedy experience up to that point, why weren't you terrified? Where did your confidence as a performer come from? "I had the best conversation with my dad," he said. His dad was a lifelong working musician who never made it big. When Will told his dad he was going to pursue a comedy career, he asked if he had any advice. "You know what? I think you have the skill, but it takes a lot of luck," Will's dad said. "If you don't make it, don't worry about it. You can just try something else." Will said he interpreted the advice as, "don't worry if you fail, because it's a crapshoot anyway. And so, from that point, I was like, Oh, I'm just playing the lottery here so I might as well just go have fun."
They're All Bets
Matt Damon once said something similar. He was asked, what's the most surprised you've been that a movie you've been in didn't work? Damon thinks for a few seconds. It'd be impossible to pick one, he then says. The reception is almost always not what he expected. "They're all bets to a certain degree…I always tell people, 'you don't see the movie before you make it.' You get the ingredients for whatever you're cooking, you get to see what ingredients you have to work with, and then you, 'alright, with all these ingredients, we should be able to make something pretty good.' But some of them just don't work." It's all a crapshoot.
Maintaining Attitude, Maintaining Direction
When I think about how every career is a crapshoot, I think about An Astronaut's Guide To Life On Earth. In it, astronaut Chris Hadfield writes about keeping a pessimistic view of ever going to space. Because many of the variables and circumstances that contribute to which astronauts get to leave the planet are random. For instance, after thirty years in service, The Shuttle was retired and replaced with The Soyuz, a much smaller vehicle. "Some astronauts hired during Shuttle era are simply too tall to fly in the tiny Soyuz. The possibility that they'll leave Earth is currently zero." Government funding shifts. Programs get canceled. Rockets blow up and space flight gets put on hold for years. A health problem, a family crisis, a new qualification requirement. Astronauts use the word "attitude" when referring to orientation: a vehicle's direction relative to the Sun, Earth and other spacecrafts. Astronauts use every available technology to monitor and control their attitude. "We never want to lose attitude," Hadfield writes, "since maintaining attitude is fundamental to success." The same is true on Earth, he adds. "Ultimately, I don't determine whether I arrive at the desired professional destination. Too many variables are out of my control. There's really just one thing I can control: my attitude during the journey, which is what keeps me feeling steady and stable, and what keeps me headed in the right direction." From point to point, as Lincoln said the pilots on our Western rivers call it.

redpajama_set_name: RedPajamaCommonCrawl


text:
Strange & The Familiars Create A Mesmerizing Trip Into The Bizarre With New Video "Agent Strange!"
PORTLAND, OR, USA, April 22, 2022 /EINPresswire.com/ — After successfully teaming up in 2021 to create the grim & gritty video for the title-track "Pretty Deadly" from their debut EP, it was a foregone conclusion that the right person to take on the brand-new single by Strange & The Familiars this year, would once again be none other than Jordan Henline of 88.8 Films.
With an otherworldly concept shot in the heart of Portland in the Pacific Northwest, "Agent Strange" is a bold introduction to the persona of Stephanie Strange, an "impartial observer" tasked with documenting the bizarre events & people of planet Earth. Attempting to uncover the details of her own origin story while witnessing the shocking horrors of extremely real issues faced in daily human life – what Strange has absorbed has warped the mechanics of her mind, rendering her into an unreliable narrator whose perspective is askew and untethered to any kind of recognizable reality that would provide any comfort.
She hears voices, she both sees & talks with ghosts, she finds solace in nature, and is genuinely mortified by the way humanity abuses such beauty without sparing a second thought towards the impact of global warming, social inequities, or the pure butchery of Earth's uniquely special, yet finite, natural resources. Dancing as the world is ending and the atmosphere is closing in, Strange & The Familiars take viewers & listeners on a final tour of a dying planet, done in by its own erratic indifferences & callous carelessness.
From mythical & magical forest scenes & imagery laden with the true majesty of nature, to the furthest reaches of outer space & aliens monitoring our every move "Agent Strange" is as insightfully artistic & compelling as it is authentically fun & entertaining. With the X-factor talents & soulful vocals of Strange alongside the exquisite instrumentation and musicianship of The Familiars, combined with the visionary expertise of Jordan's direction & the proud support of the entire 88.8 Films crew – "Agent Strange" has become a groundbreaking video & single capable of taking them all straight to the next-level & beyond.
"Agent Strange" is the lead cut & gateway into the new album Strange World by Strange & The Familiars – it's a wildly unforgettable experience & officially available on every major music platform online now!
Watch the Music Video https://youtu.be/HEpTZn8UvX8
Listen to the Single https://open.spotify.com/track/1GJNavX499pEkKj8mTsVeW?si=35abefd4b031445f
Visit Strange & The Familiars Home Page https://www.strangeandthefamiliars.com/
Strange & The Familiars
April 22, 2022, 17:29 GMT
EIN Presswire's priority is source transparency. We do not allow opaque clients, and our editors try to be careful about weeding out false and misleading content.
As a user, if you see something we have missed, please do bring it to our attention. Your help is welcome. EIN Presswire, Everyone's Internet News Presswire ,
tries to define some of the boundaries that are reasonable in today's world. Please see our


text:
"Quality Sales and Serivce Since 1978"
Magnaflux Authorized Service
What Is Non Destructive Testing?
To Place An Order Or For Any Questions Please Call 330-659-6422 Or Email UnitedTestingSystems@gmail.com
What is Nondestructive Testing?
Simply what the name implies! Testing without destroying the part or material. Inspectors evaluate parts and materials for internal or external defects that could result in failure. Listed below are some of the industries that utilize Nondestructive Testing.
Amusement parks, roller coaster and other rides
Aerospace (NASA)
Bridge and building construction and maintenance
Oil refining and pipelines
Railroad tracks and rolling stock
Steel mills and casting houses producing the raw stock for industry
Magnetic Particle Inspection
By magnetizing a ferromagnetic material, areas of cracks or other disruptions of the continuity at or near the surface of the material will produce a leakage of the magnetic field. If fine iron particles are applied to the part, these areas of leakage will attract and hold the iron particles producing an indication on the surface of the part. Learn more about Magnetic Particle inspection.
Is the study of the interaction of x and gamma rays with industrial materials. X-rays and gamma rays are much like light waves, difference being x and gamma rays are extremely short wave length. Consequently they penetrate materials easily. A film is placed beneath the object and an image is captured on the film. The radiographer then processes (develops) the film and produces an image of the part and any defects it may contain. To view radiographs visit Iowa State University.
Ultrasonic Inspection
Is much like radiography except high frequency sound waves are passed through the material. No image capturing media is used. When the sound meets a void or a material with a dissimilar acoustic property all or a portion of the sound will be reflected revealing the void or foreign material in the part. With ultrasound defects can be located and defined within part, or part thickness can be determined. Visit Iowa State University for more information on ultrasonic inspection.
Liquid Penetrant Inspection
Liquid Penetrant is considered one of the more simple inspection methods. The part is immersed in a Penetrant (much like WD40 with a dye added). The penetrant pulls the dye into any defects open to the surface. After removing the excess penetrant, a developer, similar to talcum powder, is applied. This helps draw the penetrant to the surface of the part and provides a contrasting background for the penetrant. Penetrant dyes come in either a visible red dye or a fluorescent dye. Visit to see penetrant materials entering a defect.
Eddy Current Inspection
By generating high frequency alternating electrical current through a coil, the associated expanding and collapsing magnetic fields will produce, in a conductive material, a weak electrical current and its associated magnetic fields. If the electrical currents are disrupted by a crack, change in material properties, or nonconductive coating, an indication will be produced on a meter or Cathode Ray Tube. Eddy current inspections are performed on aircraft to locate cracks or to determine paint coating thickness. Eddy current inspections also are used in electrical generating plants to locate thinning and cracks in tubing. Visit the Center for Nondestructive Evaluation.
Quick Links Homepage Products Calibrations Repairs Training Contact Us Whats New
© 2010 United Testing Systems


You need to see this remarkably remodeled home!! Sitting on 0.37acre this home has a brandnew kitchen with quarz countertops and designer light fixtures and an oversized kitchen island with additional cabinet space, a 2nd full dining, huge walk-in pantry and laundry room and an additional bedroom. The large living room has a beautiful electric fireplace and is prewired for surround system. The upstairs greets you with a big master bedroom and 2 good sized walk-in closets as well as an completely remodeled master bath to include a jetted tub and an oversized walk-in shower. There are 2 more bedrooms upstairs, one of them is oversized with an office area or additional play area and access to the balcony. The backyard has so much to offer, to include an oversized covered patio, a fish pond, storage shed, vegetable flower bed and a heated pool plus room for so much more !!!


text:
Entertainment, Music, Music style
8 Amazing Yacht Rock Music Youtube Channels
When it comes to finding the best YouTube channels for yacht rock music, there are a few things to keep in mind. First, make sure to look for channels that feature live performances, as this will give you a better sense of the music. Second, look for channels that feature classic rock and pop hits from the 80s and 90s, as these will be the most likely to feature yacht rock music. Finally, be sure to check out channels that feature DJ sets from the 90s, as these will likely have the best selection of yacht rock music. With these tips in mind, you'll be sure to find the best YouTube channels for yacht rock music.
Yacht rock music: Top Youtube Channels
Yacht Rock Music
Channel Views: ~838k Channel Subscribers: ~2k Channel Videos: ~26
The Yacht Rock Music YouTube channel is the perfect place to go to sail away on a musical journey. Featuring classic yacht rock artists like Michael McDonald, Kenny Loggins, and The Doobie Brothers, this channel has everything you need to get your groove on. So pull up a chair, grab a drink, and get ready to enjoy some of the smoothest tunes around. Ahhh, now that's what I call yacht rock!
Yacht Rock Revue
Channel Views: ~620.4k Channel Subscribers: ~2.3k Channel Videos: ~136
The Yacht Rock Revue YouTube channel features a wide variety of yacht rock music videos, as well as other pop and rock music videos. The channel is a great resource for fans of yacht rock music, as well as for those who simply enjoy good music.
Yacht Rock Crew
Channel Views: ~95.9k Channel Subscribers: ~527 Channel Videos: ~19
The Yacht Rock Crew YouTube channel is all about yacht rock music. You can find videos of performances, interviews, and more. The channel also features Rock music, Rhythm and blues, Music, and Pop music. If you're a fan of any of these genres, then you'll definitely want to check out the Yacht Rock Crew YouTube channel.
YachtyByNature
Yacht rock music is the perfect way to relax and unwind. The YachtyByNature YouTube channel features a mix of music from the 70s and 80s, as well as some modern pop and rock tunes. If you're a fan of smooth, easy-going music, this is the channel for you. You'll find a variety of music to suit your mood, whether you're looking for something to help you relax or something to get you moving.
Villa Vybes Vinyl
Channel Views: ~402.9k Channel Subscribers: ~3.5k Channel Videos: ~88
The Villa Vybes Vinyl YouTube channel is devoted to the smooth sounds of yacht rock music, and features a record collection that would make any vinyl collector jealous. The dj family behind the channel spins their vinyl dj set live, and also offers up reaction videos and the occasional live stream. Everything on the channel is vinyl only, and they use Denon dj equipment, including the Denon Prime.
fierce angel
Channel Views: ~2.5m Channel Subscribers: ~3.9k Channel Videos: ~332
Fierce Angel is a YouTube channel created by Mark Doyle that features yacht rock music from himself and other artists. The channel also features videos of Doyle's house parties and Hed Kandi events. Having grown up in the UK, Mark's taste in music stemmed from the soul, disco, and funk sounds of the late 70s and early 80s. You can hear these influences in his music today.
Fake Fan
Channel Views: ~4m Channel Subscribers: ~4.3k Channel Videos: ~985
The Fake Fan channel on YouTube is a great place to find music videos from the yacht rock genre. The channel features a wide variety of artists, including some from the pop and rock music genres. The videos are all well-made and provide a great way to enjoy the music of this genre.
Allan Cartwright
Channel Views: ~617.3k Channel Subscribers: ~941 Channel Videos: ~1k
Allan Cartwright's YouTube channel is a amazing place to go for anyone who loves yacht rock music. There are videos of live concerts and tributes to 80's music, as well as original songs. The channel is a great way to get a closer look at the life and work of Allan Cartwright and his band.
This entry was posted in Entertainment, Music, Music style. Bookmark the permalink.
Veronika M. Andrews
My name is Veronika and I am a passionate learner of all things entertainment, hobby, music, and lifestyle related. I have a wide range of interests, from playing the piano to scuba diving, and I'm always excited to learn something new. I'm an avid reader and music enthusiast, with a never-ending list of movies, albums, and books to explore.
Top 10 Space Disco Music Youtube Channels Top 10 Rap Rock Music Youtube Channels for Music Lovers 10 Great Christian Rock Music Channels on Youtube Top 11 Punk Rock Music Youtube Channels to Follow 11 Perfect Deathcore Music Youtube Channels 10 Excellent Sufi Rock Music Youtube Channels 11 Great Freestyle Music Youtube Channels 10 Best Punk Pathetique Music Youtube Channels 10 Great Psychedelic Rock Music Youtube Channels 10 Amazing Garage Rock Music Channels on Youtube
🔥 Popular Posts
9 Best Quantitative Aptitude and Reasoning YouTube channels
8 Best Youtube Channels That Have Zumba Workout Videos + Free Classes
10 Best Cricket Channels on YouTube + Videos
8 Best channels to Learn AutoCAD on YouTube + Tutorials
10 Best Youtube Channels To Learn How to Drive a Car+ Videos
Top 10 History Of Czech Republic Youtube Channels
Top 12 Splunk Enterprise Training Youtube Channels
7 Best Shell Script Training Youtube Channels
Top 7 Symantec Software Training Youtube Channels
11 of the Best History Of China Youtube Channels


text:
Tourism revenue up nearly 110 trillion VND in 2018
Vietnam's tourism revenue is estimated at 620 trillion VND (26.5 billion USD) in 2018, an increase of nearly VNĐ110 trillion against the previous year.
According to statistics from the Vietnam National Administration of Tourism, the country welcomed about 15.6 million international visitors and 80 million domestic tourists this year, an increase of 2.7 million and 6.8 million visitors respectively over 2017.
HCM City led the country once again with 36.5 million visitors, including 7.5 million international visitors and 29 million domestic tourists. Hanoi welcomed about 28 million visitors, including 5.5 million international tourists.
Notably, the northern province of Quang Ninh emerged as an attractive new destination this year. It attracted 12.5 million visitors, including 5.3 million international visitors, surpassing the central city of Da Nang with 7.7 million tourists, including nearly three million international visitors.
With a constantly growing number of tourists, Vietnam's tourism industry expects to serve a total of 103 million visitors in 2019.
VNA/VNP


Vorhnge Fr Schlafzimmer Modern. Hello precious reader. Searching for new thoughts is probably the exciting activities however it can be also exhausted when we can not have the expected ideas. Like you now, You are looking for new ideas about Vorhnge Fr Schlafzimmer Modern right?
Truly, we have been realized that Vorhnge Fr Schlafzimmer Modern is being just about the most popular issue right now. So we attempted to find some terrific Vorhnge Fr Schlafzimmer Modern photo to suit your needs. Here it is. we found it from reputable on line source and that we enjoy it. We feel it deliver interesting things for Vorhnge Fr Schlafzimmer Modern niche. So, what about you? Do you love it too? Do you totally agree that this graphic will likely be one of good reference for Vorhnge Fr Schlafzimmer Modern? Please leave a feedback for us, we hope we can present much more helpful information for next content.
This unique Vorhnge Fr Schlafzimmer Modern graphic has submitted in [date] by admin. We thank you for your visit to our website. Make sure you get the information you are looking for. Do not forget to share and love our reference to help further develop our website.


In naming Mark Hurd to become its new chief executive officer, Hewlett-Packard Co. has made a bold bet on a low-key technology boss with little name recognition -- but one with a track record of pulling a struggling firm out of a tough spot.
Some analysts say that's precisely what the technology giant needs to bounce back from years of uncertainty under the glitzy leadership of ousted CEO Carly Fiorina.
"In contrast to the marketing whirlwind that was Carly Fiorina, Mark is very methodical," said George F. Colony, chairman of the oard and CEO of Forrester Research. "He is an operational genius."
The question now is: Can the 48-year-old executive do for HP what he did for NCR, a company with about a tenth of the Palo Alto behemoth's annual revenue and a fifth of its size?
Industry experts and people who know Hurd describe him as an efficient manager with a competitive streak and keen eye for getting the best deals. At NCR, he turned around a venerable company that had fallen on seriously hard times by 2001. He mostly achieved the turnaround through cost-cutting measures, a skill he'll have to combine with a strategic vision for boosting revenue to make things right at HP.
Hurd earned a degree in business administration in 1979 from Baylor University in Texas, where one of his former fraternity brothers remembered him for his frugal ways.
"When we were at Baylor, it was during the gas crises," said Dr. Tandy Freeman of Dallas, who shared an apartment with Hurd in the 1970s.
"Mark was always the guy who knew where the best deals were in terms of meal tickets," he added. "If you were short on cash, and you need to get something to eat, and there was nothing in the fridge, Mark can tell you where to get a full meal for a $1.89 or whatever."
He was a nationally ranked tennis player in college and later turned pro. Although he never made a name for himself on the circuit, Colony said tennis, in a way, helped define his business philosophy.
"He once told me the key to tennis is angles, the geometry of tennis," said Colony. "It was a telling analysis. He saw it in a scientific and systematic way, and that reflects somehow on how he sees business."
Hurd spent 25 years at NCR, the Dayton, Ohio, company known for making cash registers and later ATM machines and data storage systems.
Founded in 1884, the company is older than HP, which is revered as a Silicon Valley icon.
Some observers believe that makes Hurd better prepared to make the shift to another established firm with a strong culture.
"What he has proven is he can play well in a very old culture, in a company town which is Dayton," Colony said. "I think there are definite parallels at HP."
As a veteran technology executive, Hurd has lived through the ebbs and flows of the industry over the past two decades. Because of that, analysts say he has a sense of balance when it comes to cutting cost and pushing a company to explore new arenas.
"Many companies are taking the 1970s business school approach to operating in this difficult economic environment, hoarding cash and reducing or delaying capital expenditures," he wrote last year in the Baylor Business Review. "The sad fact, though, is that companies that think this cautious approach will allow them to 'live to fight another day' may already be doomed."
He stressed what many other tech CEOs have echoed: Computer technology will become even more widespread in the business world.
Hurd spent three years as head of Teradata, an NCR division that makes high-end business systems, which underscored the near-critical role that information technology plays in the corporate world.
"They sold souped-up software for analyzing how many people bought sweaters in Topeka on Tuesday," said Frank E. Gillett, principal analyst with Forrester.
Hurd was named NCR president in 2001. By the following year, the company was struggling, reporting a $220 million loss.
Hurd was promoted to CEO the following year, and many analysts credit him with turning the firm around.
A key part of his strategy was cutting NCR's cost, which helped the firm post a net income of $290 million in 2004, a fivefold increase from the previous year. In a letter to NCR shareholders last year, Hurd said the company had slashed $200 million in "cost inefficiency," with an additional $50 million expected to be taken out this year. It's not clear how much of that cost saving came from lost jobs or restructuring.
He said the firm planned to cut $100 million more through 2006, for a total of $350 million.
Analyst Martin Reynolds of Gartner said Hurd managed to cut costs without wreaking havoc on his organization.
"Even though he has been out there with the ax, he is still liked at the company," he said. "The way you get that when you make these changes is people recognize the changes you have to make, and it is done in a surgical and professional fashion."
Analyst Jeffrey Embersits of Shareholder Value Management said Hurd always had a clear view of where to take the company.
"There are very few senior executives who can cover the span of issues from the 100,000-foot level to the 10-foot level," he said. "Hurd did an excellent job at NCR."
With HP, Hurd will have to steer a bigger ship with an even broader and more complex portfolio.
"That was a smaller company with a whole different scale than Hewlett- Packard, and that can be a very tough jump to make," said analyst Ted Schadler of Forrester. "My personal belief is he can do it."
Embersits does too, saying concerns over HP being a bigger company are overstated.
"The only difference between a $6 billion company and a $60 billion company is the number of senior executives you have to deal with and weed through," he said.
Analysts also cite Hurd's personality as a plus.
"He is the kind of a person who looks you in the eye, is engaging and personable," Gillett said. "I think that's the kind of touch HP employees would appreciate after what they've been through. Having someone with a warm spot is going to be helpful to get them out of that spot."


Paula's Dollyland: The Porthole B & B is open for business!
My lovely new house finally arrived today!! It arrived safe and sound which is always a relief a tiny bit of repair needed to the top of the porthole window but its all sorted now! Its a gorgeous cottage even more so as I was really not going to buy another one so its a real bonus to have it and it be so lovely I think it was meant to be! It has 5 really good sized room and would of made a fabulous house and maybe one day it will be but for now its the Porthole B & B run by Maddie who lives next door in Seashell cottage.
Bethany made my lovely signage for me and of course its 4 star!!
The hallway will be the reception area with a nice desk and the hall stand needs to be painted and dressed.
The dining room is laid up for breakfast and the dresser fitted after a little sanding of the feet as it was a tad too tall!! Think I may distress the tables but totally sure and not sure about the chairs so durys out on those at the mo!
The 1st floor bedroom is a lovely fresh seaside B & B double room. Its all a bit basic at the moment and needs lots of little things added. Some nice driftwood pictures and lamps and finishing touches will bring it to life.
The ensuite bathroom to the ground floor bedroom is again very bare and needs an all important lav but it all fits well into the space. It will be a good size luxurious ensuite fit for its 4 stars!
The attic is the honeymoon suite which was my friend Carol's suggestion and it works well in the space. I need to make a room divider the one I bought was too tall so may add a wall instead. The bed is one I got with another house and was broken so I took the headboard off to make it a low one and will add a new headboard and paint it white and shabby it up. The same goes for the tea tray and it needs a little chest of drawers too. Just borrowed the dress from the bridal shop but will be on the the lookout for something a bit more dramatic. Will also add more to the bridal theme to pretty it all up!
Its a gorgeous house and fits the space like it was meant to be there. I love the brick effect outside it makes it a little different to all my other house and have to say its I think its one of my favourites I just love the amount of rooms it has there so many different things I can do with it. Who knows what it will become in the future lol!!!
Its great to see your other properties alongside it too.
Cant wait to see how the entrance hall comes along.
Wow fantastic house. I love the dining room. Cant wait to see more.


text:
The voice of the global staffing industry | Wednesday, January 20, 2021|
The Global Recruiter - The voice of the global staffing industry
The Digital Recruiter
IR35 Hub
Report shows employees likely to leave if employers do nothing on diversity.
The importance of D&I.
By Newsdesk	 On Jan 20, 2019
A report from the Boston Consulting Group has revealed that almost half of UK workers say their employer has failed to make any progress on D&I in the past three years. The research also revealed one cost of ignoring D&I is that people who do not believe their company is committed to diversity are three times more likely to leave their job in the next three years than those who do.
"What this report makes clear is that anyone connected to an organisation in any capacity wants to hear how their employer feels about D&I and what they're doing about it,' says Sarah Kaiser, employee experience, Diversity & Include lead at Fujitsu EMEIA. "The time has passed for apologising, organisations need to urgently take action and ensure they are facilitating an entirely diverse and inclusive workforce.
"It is only by engaging a diverse array of people in business that we can hope to protect the future competitiveness of the UK economy," she adds, "and from enhancing agility to innovation and customer relationships, Diversity and Inclusion (D&I) programmes are crucial for improving business performance, continued growth and success. After all, when we get D&I right, everyone – from individuals and teams to the broader business – benefits. And in a progressively diverse and digital world, if we fail to foster a whole group of talent properly it will prevent the UK from seeing a prosperous economy."
Sheila Flavell, Chair of the Institute of Coding's Industry Advisory Board and Chief Operating Officer at FDM Group says: "It's encouraging to see that employees recognise the benefits of diversity in the workplace and these findings should inspire business leaders to do more in this area. "The first step forward is for companies to view diversity as a business strategy and not a HR tick-box exercise," she says. "Bringing together a workforce from different cultures and backgrounds not only creates a more dynamic working environment, it strengthens company morale and boosts productivity. A key aspect of this approach should be tackling pay gaps in terms of ethnicity and gender, two all too common issues that send the wrong signal to prospective and existing employees. It's not about favouritism, it's about creating a level playing field for every staff member, whatever their background."
Don't forget to register FREE to attend The Global Recruiter's UK Summit on Diversity, March 6th, London: https://www.theglobalrecruiter.com/summit-2019/
diversityrecruitmenttrends
Share LinkedinTwitterWhatsAppEmail
The Global Recruiter Newsdesk bringing you balanced journalism, accuracy, news and features for all involved in the business of recruitment from around the world
More in this category From the Newsdesk
Surviving the triple threat
The Right Balance
'Double Dip' emerges
World of Potential
Established in 2002, formerly known as Recruitment Consultant Magazine until our November 2011 rebrand, this leading monthly title prides itself on providing balanced journalism, accuracy and news and features for all involved in the business of recruitment from around the world
LinkedinFollow Us Join us on Linkedin
TwitterFollow Us Join us on Twitter
The Global Recruiter UK Industry Awards 2020
The Global Recruiter Corporate Golf Day 2020
Update Subscription
© 2021 The Global Recruiter - All Rights Reserved | Terms and Conditions | Privacy Policy
Website: Chess Business Group


text:
The Beliefs of the Enlightenment Philosophers and Writers
By Lynn Blanch
••• Photos.com/Photos.com/Getty Images
The Enlightenment, also known as The Age of Reason, marked a departure from the domination of the church and monarchies in the 17th and 18th centuries in favor of principles such as social progress, equality, liberty and personal responsibility. Many writers and philosophers such as Spinoza, Voltaire, Rousseu, Descartes, Kant and Wollstoncraft worked to push these principles to the forefront. Enlightenment ideas influenced the American, French and even Haitian revolutions. The American Declaration of Independence is infused with Enlightenment principles.
Spinoza's Ethics and the Idea of Unity
Baruch Spinoza, born of Portuguese immigrants living in Amsterdam, believed in religious tolerance and his most famous work, "Ethics," is a metaphysical philosophy based on the principle that God is actually one unifying energy and not the anthropomorphic, authoritative figure presented by religious institutions. He believed that through study, rational observance and ultimately, informed intuition, one could perceive the interconnectedness of all things. This idea was a radical notion at the time, for which he was excommunicated from the Jewish community. It also formed the foundation for many Enlightenment ideas of equality, democracy and religious tolerance.
A Push for Democracy and Freedom of Expression
In Jean Jacque Rousseau's "Social Contract," he challenges the idea that a monarch's power comes directly from God. Instead, he proposed that any leader's power comes from the people, therefore, who really holds the power are the people themselves, giving rise to the ideas on which democracy is based. French writer Francois-Marie Arouet, who used the pen name Voltaire, filled his books, including his most famous, "Candide," with satirical criticisms of the Catholic Church and the monarchy, criticizing the corruption of those institutions. Voltaire's own life was an example of the fight for freedom of expression, having been exiled and imprisoned for many years because of his criticisms.
The Age of Personal Responsibility
Descartes' famous statement "cogito, ergo sum" or "I think therefore I am" put responsibility in the hands of each individual to create his own understanding of reality, rather than be told what to think by the church or a king. In the later years of the Enlightenment, German philosopher Immanuel Kant published "An Answer to the Question: What is Enlightenment?" in 1784. In it, Kant summarizes the drive of Enlightenment thinkers to break free from the limitations imposed by religious and political institutions with the statement: "immaturity is the inability to use one's own understanding without the guidance of another."
Equality for All, Women Included
Though many of the Enlightenment thinkers and philosophers wrote about equality among men, many of them were behind when it came to ideas concerning equal rights for women. Women's role in Europe at the time was mainly as a householder, mother and wife. Education was extremely limited for women and participation in professional realms and in politics was practically nonexistent. In 1792, Mary Wollstoncraft wrote her famous treatise "A Vindication of the Rights of Women," insisting that women have the same rights to education as men and urging women to participate in traditionally male professions such as science and medicine. If the Enlightenment thinker Francis Bacon's statement that "knowlege is power" was true, then Wollstoncraft's treatise was accurately aimed at education for women.
The Literature Network: The Enlightenment
SmartHistory: 1700-1800 Age of Enlightenment
History: Enlightenment
Liberty, Equality, Fraternity: Exploring the French Revolution: Rousseau's The Social Contract
The Literature Network: Francois-Marie Arouet Voltaire
Spinoza: God, Nature and Freedom
CBC Radio: Ideas with Paul Kennedy: Spinoza
Stanford Encyclopedia of Philosophy: Enlightenment
Lynn Blanch is a writer, translator and educator. She is the co-founder of an educational/cultural nonprofit in Brazil, speaks fluent Portuguese and has published a travel blog. She holds a bachelor's degree in liberal arts from Sarah Lawrence College.


text:
Justin Thomas in the hunt at Wells Fargo with help from Rickie Fowler's putter
By Steve Reed
Published on Saturday, May 5, 2018
CHARLOTTE, N.C. (AP) — Justin Thomas will be playing this weekend at the Wells Fargo Championship, thanks in part to a little help from his good buddy Rickie Fowler.
After struggling with his putter during an opening-round 73 on Thursday, a frustrated Thomas went to his backup putter on the practice green. When that didn't feel right in his hands, he sought out more desperate measures — calling his playing partner Fowler to ask if he'd brought an extra putter to Quail Hollow.
He was in luck. Fowler had two spares.
"Even my backup felt so bad in my hands, I just had to do something else," Thomas said.
WELLS FARGO LEADERBOARD | PHOTOS
So, using a Scotty Cameron Newport 2 putter that reads "Rickie Fowler" on it, Thomas shot 69 on Friday, leaving him safely inside the cut line. He was even par for the tournament, seven strokes behind leader Peter Malnati entering the final 36 holes.
"I didn't actually see him until about 10 minutes before our tee time and he said he was going with it," Fowler said. "I told him after he hit his first tee shot, 'Well, you're kind of stuck now.'"
Fowler said he noticed Thomas had more confidence.
"It was good to see him roll it better with it," Fowler said. "I thought he made some good strokes out there. I never want to get in the way of his putting or whatever he's doing, but we always try and help each other out. He made a lot better strokes."
Thomas won the PGA Championship at Quail Hollow last year and figured to be among the favorites to take home the $1.2 million prize.
He's still a factor entering the weekend along with Fowler, who is one shot ahead of him.
Thomas plans to use the putter the rest of the tournament if he continues to putt well, which is just fine with Fowler.
But what if he wants to keep it for good?
"Keep it?" Fowler said with a laugh. "Well, he only lives a few hundred yards down the street (in Jupiter, Florida), so it won't be too far away. But if he keeps making putts, I might have to take it back. ... If he wants to keep using it, keep using it, but he's stuck with having my name on the back of it."
That's just fine with Thomas, as long as he's holing putts.
"I putted so terribly" in the first round, Thomas said. "It was that desperate in terms of how I was feeling over the putter."
This article was written by Steve Reed from The Associated Press and was legally licensed through the NewsCred publisher network. Please direct all licensing questions to legal@newscred.com.


Reckon I'm going to become a hoarder in my older years as I can't seem to throw anything away. I feel that every photo and screenshot I take needs it's own special folder as it's bound to come in use eventually. What actually happens is that I live perpetually in the past, editing photos and videos taken many moons ago. What I decided is that August is going to be my 'clean out' month. You'll see lots of posts that may not reach my self imposed high standard but I need to clear some headspace.
The latest 'New Faces' post went down a treat so I started looking through my drive to see what other snaps I've taken since then. A fair whack of them was basically me helping take some polaroids for Cesar at Unsigned so they're not the finished products but hey, gotta practice, practice, practice!


text:
Home Ports of Entry Airports/Aviation FlyersRights.org Calls for New Airport Security Measures
FlyersRights.org Calls for New Airport Security Measures
Passengers should be able to count on TSA and local and state law enforcement authorities to protect them.
The principal lessons from Lockerbie, 9/11 attacks, and the Brussels, Istanbul and now Fort Lauderdale airport massacres are that air transportation continues to be a prime target for terrorism and mass murder.
Airports are now clearly the No. 1 soft target, and are naked and totally unprotected.
No act of terrorism and mass murder in history has not been repeated without effective defensive measures in place.
FlyersRights.org has called for TSA and Congress to provide for stronger airport security after a shooting attack at LAX airport in 2013, and again in July 2016 after the Brussels and Istanbul airport massacres, but nothing was done.
(LAX Police Beef Up Security Following Massacre At Ft Lauderdale Airport, courtesy of CBS Los Angeles and YouTube)
Now emergency measures must be imposed to prevent more lives from being lost and the US air transportation system is paralyzed as occurred after 9/11 terrorist attacks.
Calling out the National Guard for temporary armed airport security.
Installing airport perimeter security to detect weapons and explosives on persons entering major airports.
Banning the carrying of live ammunition in checked baggage.
Increasing canine patrols to detect explosives.
Placing anyone who is deemed a security threat by a law enforcement agency on the TSA Watch or No Fly list, but with due process means for removal from such lists.
Paul Hudson, president of FlyersRights.org, former member of the TSA Aviation Security Advisory Committee and father of a Lockerbie victim, noted, "Those victims at Ft. Lauderdale should not have died, and should certainly not have died in vain."
"Blood on the ground is unfortunately too often the price for government officials to act."
Flyersrights.org previously supported the application of the Whistle Blower statute to TSA and Homeland Security Dept. in a successful amicus brief to the US Supreme Court in (MacLean v Dept. of Homeland Security) in 2014, and successfully opposed the reintroduction of knives on planes in 2013 by the TSA.
FlyersRights.org
US air transportation system
Previous articleTextron Awarded $206M for Shadow TUAS Sustainment (Video)
Next articleIntergraph (IGF) Becomes Hexagon US Federal (See CEO Video)
Securiport Competes in AST Homeland Security Awards (Learn More)
Tammy Waitt - October 26, 2016


text:
Vandœuvre-lès-Nancy-Ouest is een voormalig kanton van het Franse departement Meurthe-et-Moselle. Het kanton maakte deel uit van het arrondissement Nancy en omvatte uitsluitend een deel van de gemeente Vandœuvre-lès-Nancy.

Op 22 maart 2015 zijn de kantons Vandœuvre-lès-Nancy-Est en -Ouest opgeheven en samengevoegd tot een kanton dat overeenkomt met de gemeente Vandœuvre-lès-Nancy.

Vandœuvre-lès-Nancy
Vandouvre-les-Nancy-Ouest

redpajama_set_name: RedPajamaWikipedia


text:
Novell (pronounced [ noʊ'vɛl ] ) is a US-based high-tech company that specializes in network and Internet software products and the Linux distribution, SUSE Linux and the NetWare server operating system developed.
The company began in 1979 in Provo, Utah under the name Novell Data Systems Inc., a hardware manufacturer for CP / M- based systems. In January 1983, it was renamed in Novell Inc., and Ray Noorda ( 1924-2006 ) was appointed Managing Director. In 1983, Novell introduced also in front of the multi-platform network operating system NetWare. The manufacturer Novell Inc. was listed on the Nasdaq as NOVL.
The network protocols developed Novell, based on the Xerox network services ( XNS ) were from Internet Datagram Protocol ( IDP) and Sequenced Packet Protocol ( SPP) developed and hot Internetwork Packet Exchange ( IPX) and Sequenced Packet Exchange ( SPX). File and print services running on the NetWare Core Protocol (NCP ) over IPX as the routing information (RIP) and service information (SAP).
Novell acquired Digital Research, makers of DR DOS (and GEM), an MS- DOS -like, but multitasking -capable operating system and distribution of this under the name of Novell DOS (which is later than OpenDOS and then as DR- DOS by Caldera was expelled ).
During the 80 years it went Novell very good. The company had with its network operating system hardly any competition and practically a monopoly position for networked PCs, thereby Novell could sell its products expensive. But that changed in the 1990s, particularly as Microsoft in 1993 for the first time brought out a server version of Windows, including Windows NT Advanced Server version 3.1.
Building on Unix SVR4, you started at Novell in cooperation with the Unix System Laboratories, under the name Univel, with the development of its Unix - derivative, which was released in November 1992 under the name of UnixWare.
With the purchase of various companies Novell tried to maintain its market position against the new competitor. 1993 Unix System Laboratories were purchased including Univel for 350 million U.S. dollars from AT & T. In the same year, Novell acquired also the WordPerfect Corporation and Borland Quattro Pro spreadsheet.
1995 Unix was sold to the SCO Group. The volume of sales is strongly disputed between Novell and SCO Group, particularly with respect to the copyright (Novell won a lawsuit on the issue, see below). See also: SCO against Linux.
Digital Research moved to Caldera. With the Novell WordPerfect Office was quite unfortunate; it increasingly lost market share. During the corresponding groupware GroupWise is sold as a standalone product from Novell, walked the rest of the WordPerfect Office, consisting of WordPerfect, Quattro Pro and Presentations, Corel.
In July 2001, Novell acquired the consulting firm Cambridge Technology Partners, to make it to his sales department. The CEO of this company, Jack Messman, soon became chief of Novell.
On 4 August 2003, Novell announced the acquisition of Ximian software manufacturer founded in 1999. Ximian was with open source software on the market and offered including a desktop for various Linux distributions on.
Novell announced on 4 November 2003, the acquisition of SUSE Linux AG at a price of 210 million U.S. dollars known. The transaction was completed in February 2004. Suse Linux AG was thereby converted into a limited company and operates as a fully subsidiary in the partner and distribution network from Novell. Allow Novell was one of the largest providers of solutions to the free operating system Linux.
In March 2005, Novell announced the release OES ( Open Enterprise Server). This includes both NetWare and Suse Enterprise Server and Novell offers existing customers the possibility of a gradual migration to Linux. Furthermore, in July 2005 there was a massive support from the open source community by Novell. Due to the operating system-independent. NET development environment Mono and Novell Evolution offers further migration solutions for Linux. Novell is also involved in the development of OpenOffice.org. At the end of fiscal year 2005, however, Novell had a drop in sales and announced extensive restructuring that included layoffs of employees. Furthermore, one of the founders of Suse left the company, but now returned again to Novell.
Since 2007, Microsoft partners with Novell, which sells the Suse Linux distribution. Microsoft may recommend to its customers Suse Linux Enterprise Server ( SLES), if a customer wants to. In August 2007 Novell won a lawsuit against SCO. Novell was awarded the copyright to Unix. In summer 2011 this judgment became final, because SCO lodged no objection.
November 22, 2010, Attachmate announced the almost complete takeover of Novell for 2.2 billion U.S. dollars. Which is organized by Microsoft and founded with Apple, EMC and Oracle business Cptn Holdings LLC took over 882 patents from Novell. On April 28, 2011 Attachmate completed the takeover. Novell has since no longer listed on Nasdaq.
2012 have appeared some new products: Novell Vibe, Novell Groupwise 2012 Zenworks Mobile Management, Novell and Novell iPrint Filr.
Novell offers and offered a range of software products for businesses. These include:
The collaboration solution, Novell Vibe
The enterprise solution Filr
The pressure solution iPrint
The Directory Services eDirectory, formerly Novell Directory Services (NDS )
Identity management (IDM, Identity Manager ), which can associate the directory with other applications ( in competition, inter alia, to IBM's Tivoli or Microsoft's MIIS )
The computer system management suite Novell ZENworks ZENworks Mobile Management ZENworks App Virtualization
The server operating system Open Enterprise Server, formerly NetWare
The server operating system SUSE Linux Enterprise Server
SUSE Linux Enterprise Desktop
The e-mail and groupware program GroupWise
The community Linux distribution openSUSE
Called peer-to -peer network software Personal NetWare, NetWare Lite also, for the direct exchange of data between workstations
The client -server system Novell iFolder to easily keep files on multiple computers in sync
While in the past the focus was on the server NetWare operating system, it is now on the Linux products on the directory service and the Identity Management ( now NetIQ ).
Types of business entity Waltham (Massachusetts) Service Advertising Protocol Graphical Environment Manager MS-DOS Windows NT 3.1 UNIX System V SCO-Linux controversies Novell Open Enterprise Server .NET Framework EMC Corporation Oracle Corporation Novell eDirectory Tivoli Software