text:
rotate-backups: Simple command line interface for backup rotation
=================================================================

.. image:: https://travis-ci.org/xolox/python-rotate-backups.svg?branch=master
   :target: https://travis-ci.org/xolox/python-rotate-backups

.. image:: https://coveralls.io/repos/xolox/python-rotate-backups/badge.svg?branch=master
   :target: https://coveralls.io/r/xolox/python-rotate-backups?branch=master

Backups are good for you. Most people learn this the hard way (including me).
Nowadays my Linux laptop automatically creates a full system snapshot every
four hours by pushing changed files to an `rsync`_ daemon running on the server
in my home network and creating a snapshot afterwards using the ``cp -al``
command (the article `Easy Automated Snapshot-Style Backups with Linux and
Rsync`_ explains the basic technique). The server has a second disk attached
which asynchronously copies from the main disk so that a single disk failure
doesn't wipe all of my backups (the "time delayed replication" aspect has also
proven to be very useful).

Okay, cool, now I have backups of everything, up to date and going back in
time! But I'm running through disk space like crazy... A proper deduplicating
filesystem would be awesome but I'm running crappy consumer grade hardware and
e.g. ZFS has not been a good experience in the past. So I'm going to have to
delete backups...

Deleting backups is never nice, but an easy and proper rotation scheme can help
a lot. I wanted to keep things manageable so I wrote a Python script to do it
for me. Over the years I actually wrote several variants. Because I kept
copy/pasting these scripts around I decided to bring the main features together
in a properly documented Python package and upload it to the `Python Package
Index`_.

The `rotate-backups` package is currently tested on cPython 2.7, 3.5+ and PyPy
(2.7). It's tested on Linux and Mac OS X and may work on other unixes but
definitely won't work on Windows right now.

.. contents::
   :local:

Features
--------

**Dry run mode**
  **Use it.** I'm serious. If you don't and `rotate-backups` eats more backups
  than intended you have no right to complain ;-)

**Flexible rotation**
  Rotation with any combination of hourly, daily, weekly, monthly and yearly
  retention periods.

**Fuzzy timestamp matching in filenames**
  The modification times of the files and/or directories are not relevant. If
  you speak Python regular expressions, here is how the fuzzy matching
  works::

   # Required components.
   (?P<year>\d{4}) \D?
   (?P<month>\d{2}) \D?
   (?P<day>\d{2}) \D?
   (
      # Optional components.
      (?P<hour>\d{2}) \D?
      (?P<minute>\d{2}) \D?
      (?P<second>\d{2})?
   )?

**All actions are logged**
  Log messages are saved to the system log (e.g. ``/var/log/syslog``) so you
  can retrace what happened when something seems to have gone wrong.

Installation
------------

The `rotate-backups` package is available on PyPI_ which means installation
should be as simple as:

.. code-block:: sh

   $ pip install rotate-backups

There's actually a multitude of ways to install Python packages (e.g. the `per
user site-packages directory`_, `virtual environments`_ or just installing
system wide) and I have no intention of getting into that discussion here, so
if this intimidates you then read up on your options before returning to these
instructions ;-).

Usage
-----

There are two ways to use the `rotate-backups` package: As the command line
program ``rotate-backups`` and as a Python API. For details about the Python
API please refer to the API documentation available on `Read the Docs`_. The
command line interface is described below.

Command line
~~~~~~~~~~~~

.. A DRY solution to avoid duplication of the `rotate-backups --help' text:
..
.. [[[cog
.. from humanfriendly.usage import inject_usage
.. inject_usage('rotate_backups.cli')
.. ]]]

**Usage:** `rotate-backups [OPTIONS] [DIRECTORY, ..]`

Easy rotation of backups based on the Python package by the same name.

To use this program you specify a rotation scheme via (a combination of) the
``--hourly``, ``--daily``, ``--weekly``, ``--monthly`` and/or ``--yearly`` options and the
directory (or directories) containing backups to rotate as one or more
positional arguments.

You can rotate backups on a remote system over SSH by prefixing a DIRECTORY
with an SSH alias and separating the two with a colon (similar to how rsync
accepts remote locations).

Instead of specifying directories and a rotation scheme on the command line you
can also add them to a configuration file. For more details refer to the online
documentation (see also the ``--config`` option).

Please use the ``--dry-run`` option to test the effect of the specified rotation
scheme before letting this program loose on your precious backups! If you don't
test the results using the dry run mode and this program eats more backups than
intended you have no right to complain ;-).

**Supported options:**

.. csv-table::
   :header: Option, Description
   :widths: 30, 70

   "``-M``, ``--minutely=COUNT``","In a literal sense this option sets the number of ""backups per minute"" to
   preserve during rotation. For most use cases that doesn't make a lot of
   sense :-) but you can combine the ``--minutely`` and ``--relaxed`` options to
   preserve more than one backup per hour.  Refer to the usage of the ``-H``,
   ``--hourly`` option for details about ``COUNT``."
   "``-H``, ``--hourly=COUNT``","Set the number of hourly backups to preserve during rotation:

   - If ``COUNT`` is a number it gives the number of hourly backups to preserve,
     starting from the most recent hourly backup and counting back in time.
   - Alternatively you can provide an expression that will be evaluated to get
     a number (e.g. if ``COUNT`` is ""7 \* 2"" the result would be 14).
   - You can also pass ""always"" for ``COUNT``, in this case all hourly backups are
     preserved.
   - By default no hourly backups are preserved."
   "``-d``, ``--daily=COUNT``","Set the number of daily backups to preserve during rotation. Refer to the
   usage of the ``-H``, ``--hourly`` option for details about ``COUNT``."
   "``-w``, ``--weekly=COUNT``","Set the number of weekly backups to preserve during rotation. Refer to the
   usage of the ``-H``, ``--hourly`` option for details about ``COUNT``."
   "``-m``, ``--monthly=COUNT``","Set the number of monthly backups to preserve during rotation. Refer to the
   usage of the ``-H``, ``--hourly`` option for details about ``COUNT``."
   "``-y``, ``--yearly=COUNT``","Set the number of yearly backups to preserve during rotation. Refer to the
   usage of the ``-H``, ``--hourly`` option for details about ``COUNT``."
   "``-t``, ``--timestamp-pattern=PATTERN``","Customize the regular expression pattern that is used to match and extract
   timestamps from filenames. ``PATTERN`` is expected to be a Python compatible
   regular expression that must define the named capture groups 'year',
   'month' and 'day' and may define 'hour', 'minute' and 'second'."
   "``-I``, ``--include=PATTERN``","Only process backups that match the shell pattern given by ``PATTERN``. This
   argument can be repeated. Make sure to quote ``PATTERN`` so the shell doesn't
   expand the pattern before it's received by rotate-backups."
   "``-x``, ``--exclude=PATTERN``","Don't process backups that match the shell pattern given by ``PATTERN``. This
   argument can be repeated. Make sure to quote ``PATTERN`` so the shell doesn't
   expand the pattern before it's received by rotate-backups."
   "``-j``, ``--parallel``","Remove backups in parallel, one backup per mount point at a time. The idea
   behind this approach is that parallel rotation is most useful when the
   files to be removed are on different disks and so multiple devices can be
   utilized at the same time.

   Because mount points are per system the ``-j``, ``--parallel`` option will also
   parallelize over backups located on multiple remote systems."
   "``-p``, ``--prefer-recent``","By default the first (oldest) backup in each time slot is preserved. If
   you'd prefer to keep the most recent backup in each time slot instead then
   this option is for you."
   "``-r``, ``--relaxed``","By default the time window for each rotation scheme is enforced (this is
   referred to as strict rotation) but the ``-r``, ``--relaxed`` option can be used
   to alter this behavior. The easiest way to explain the difference between
   strict and relaxed rotation is using an example:

   - When using strict rotation and the number of hourly backups to preserve
     is three, only backups created in the relevant time window (the hour of
     the most recent backup and the two hours leading up to that) will match
     the hourly frequency.

   - When using relaxed rotation the three most recent backups will all match
     the hourly frequency (and thus be preserved), regardless of the
     calculated time window.

   If the explanation above is not clear enough, here's a simple way to decide
   whether you want to customize this behavior or not:

   - If your backups are created at regular intervals and you never miss an
     interval then strict rotation (the default) is probably the best choice.

   - If your backups are created at irregular intervals then you may want to
     use the ``-r``, ``--relaxed`` option in order to preserve more backups."
   "``-i``, ``--ionice=CLASS``","Use the ""ionice"" program to set the I/O scheduling class and priority of
   the ""rm"" invocations used to remove backups. ``CLASS`` is expected to be one of
   the values ""idle"" (3), ""best-effort"" (2) or ""realtime"" (1). Refer to the
   man page of the ""ionice"" program for details about these values. The
   numeric values are required by the 'busybox' implementation of 'ionice'."
   "``-c``, ``--config=FILENAME``","Load configuration from ``FILENAME``. If this option isn't given the following
   default locations are searched for configuration files:

   - /etc/rotate-backups.ini and /etc/rotate-backups.d/\*.ini
   - ~/.rotate-backups.ini and ~/.rotate-backups.d/\*.ini
   - ~/.config/rotate-backups.ini and ~/.config/rotate-backups.d/\*.ini

   Any available configuration files are loaded in the order given above, so
   that sections in user-specific configuration files override sections by the
   same name in system-wide configuration files. For more details refer to the
   online documentation."
   "``-C``, ``--removal-command=CMD``","Change the command used to remove backups. The value of ``CMD`` defaults to
   ``rm ``-f``R``. This choice was made because it works regardless of whether
   ""backups to be rotated"" are files or directories or a mixture of both.

   As an example of why you might want to change this, CephFS snapshots are
   represented as regular directory trees that can be deleted at once with a
   single 'rmdir' command (even though according to POSIX semantics this
   command should refuse to remove nonempty directories, but I digress)."
   "``-u``, ``--use-sudo``","Enable the use of ""sudo"" to rotate backups in directories that are not
   readable and/or writable for the current user (or the user logged in to a
   remote system over SSH)."
   "``-S``, ``--syslog=CHOICE``","Explicitly enable or disable system logging instead of letting the program
   figure out what to do. The values '1', 'yes', 'true' and 'on' enable system
   logging whereas the values '0', 'no', 'false' and 'off' disable it."
   "``-f``, ``--force``","If a sanity check fails an error is reported and the program aborts. You
   can use ``--force`` to continue with backup rotation instead. Sanity checks
   are done to ensure that the given DIRECTORY exists, is readable and is
   writable. If the ``--removal-command`` option is given then the last sanity
   check (that the given location is writable) is skipped (because custom
   removal commands imply custom semantics)."
   "``-n``, ``--dry-run``","Don't make any changes, just print what would be done. This makes it easy
   to evaluate the impact of a rotation scheme without losing any backups."
   "``-v``, ``--verbose``",Increase logging verbosity (can be repeated).
   "``-q``, ``--quiet``",Decrease logging verbosity (can be repeated).
   "``-h``, ``--help``",Show this message and exit.

.. [[[end]]]

Configuration files
~~~~~~~~~~~~~~~~~~~

Instead of specifying directories and rotation schemes on the command line you
can also add them to a configuration file.

.. [[[cog
.. from update_dotdee import inject_documentation
.. inject_documentation(program_name='rotate-backups')
.. ]]]

Configuration files are text files in the subset of `ini syntax`_ supported by
Python's configparser_ module. They can be located in the following places:

=========  ============================  =================================
Directory  Main configuration file       Modular configuration files
=========  ============================  =================================
/etc       /etc/rotate-backups.ini       /etc/rotate-backups.d/\*.ini
~          ~/.rotate-backups.ini         ~/.rotate-backups.d/\*.ini
~/.config  ~/.config/rotate-backups.ini  ~/.config/rotate-backups.d/\*.ini
=========  ============================  =================================

The available configuration files are loaded in the order given above, so that
user specific configuration files override system wide configuration files.

.. _configparser: https://docs.python.org/3/library/configparser.html
.. _ini syntax: https://en.wikipedia.org/wiki/INI_file

.. [[[end]]]

You can load a configuration file in a nonstandard location using the command
line option ``--config``, in this case the default locations mentioned above
are ignored.

Each section in the configuration defines a directory that contains backups to
be rotated. The options in each section define the rotation scheme and other
options. Here's an example based on how I use `rotate-backups` to rotate the
backups of the Linux installations that I make regular backups of:

.. code-block:: ini

   # /etc/rotate-backups.ini:
   # Configuration file for the rotate-backups program that specifies
   # directories containing backups to be rotated according to specific
   # rotation schemes.

   [/backups/laptop]
   hourly = 24
   daily = 7
   weekly = 4
   monthly = 12
   yearly = always
   ionice = idle

   [/backups/server]
   daily = 7 * 2
   weekly = 4 * 2
   monthly = 12 * 4
   yearly = always
   ionice = idle

   [/backups/mopidy]
   daily = 7
   weekly = 4
   monthly = 2
   ionice = idle

   [/backups/xbmc]
   daily = 7
   weekly = 4
   monthly = 2
   ionice = idle

As you can see in the retention periods of the directory ``/backups/server`` in
the example above you are allowed to use expressions that evaluate to a number
(instead of having to write out the literal number).

Here's an example of a configuration for two remote directories:

.. code-block:: ini

   # SSH as a regular user and use `sudo' to elevate privileges.
   [server:/backups/laptop]
   use-sudo = yes
   hourly = 24
   daily = 7
   weekly = 4
   monthly = 12
   yearly = always
   ionice = idle

   # SSH as the root user (avoids sudo passwords).
   [server:/backups/server]
   ssh-user = root
   hourly = 24
   daily = 7
   weekly = 4
   monthly = 12
   yearly = always
   ionice = idle

As this example shows you have the option to connect as the root user or to
connect as a regular user and use ``sudo`` to elevate privileges.

Customizing the rotation algorithm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Since publishing `rotate-backups` I've found that the default rotation
algorithm is not to everyone's satisfaction and because the suggested
alternatives were just as valid as the choices that I initially made,
options were added to expose the alternative behaviors:

+-------------------------------------+-------------------------------------+
| Default                             | Alternative                         |
+=====================================+=====================================+
| Strict rotation (the time window    | Relaxed rotation (time windows are  |
| for each rotation frequency is      | not enforced). Enabled by the       |
| enforced).                          | ``-r``, ``--relaxed`` option.       |
+-------------------------------------+-------------------------------------+
| The oldest backup in each time slot | The newest backup in each time slot |
| is preserved and newer backups in   | is preserved and older backups in   |
| the time slot are removed.          | the time slot are removed. Enabled  |
|                                     | by the ``-p``, ``--prefer-recent``  |
|                                     | option.                             |
+-------------------------------------+-------------------------------------+

Supported configuration options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Rotation schemes are defined using the ``minutely``, ``hourly``, ``daily``,
  ``weekly``, ``monthly`` and ``yearly`` options, these options support the
  same values as documented for the command line interface.

- The ``timestamp-pattern`` option can be used to customize the regular
  expression that's used to extract timestamps from filenames. The value is
  expected to be a Python compatible regular expression that must contain the
  named capture groups 'year', 'month' and 'day' and may contain the groups
  'hour', 'minute' and 'second'. As an example here is the default regular
  expression::

    # Required components.
    (?P<year>\d{4} ) \D?
    (?P<month>\d{2}) \D?
    (?P<day>\d{2}  ) \D?
    (?:
        # Optional components.
        (?P<hour>\d{2}  ) \D?
        (?P<minute>\d{2}) \D?
        (?P<second>\d{2})?
    )?

  Note how this pattern spans multiple lines: Regular expressions are compiled
  using the `re.VERBOSE`_ flag which means whitespace (including newlines) is
  ignored.

- The ``include-list`` and ``exclude-list`` options define a comma separated
  list of filename patterns to include or exclude, respectively:

  - Make sure *not* to quote the patterns in the configuration file,
    just provide them literally.

  - If an include or exclude list is defined in the configuration file it
    overrides the include or exclude list given on the command line.

- The ``prefer-recent``, ``strict`` and ``use-sudo`` options expect a boolean
  value (``yes``, ``no``, ``true``, ``false``, ``1`` or ``0``).

- The ``removal-command`` option can be used to customize the command that is
  used to remove backups.

- The ``ionice`` option expects one of the I/O scheduling class names ``idle``,
  ``best-effort`` or ``realtime`` (or the corresponding numbers).

- The ``ssh-user`` option can be used to override the name of the remote SSH
  account that's used to connect to a remote system.

How it works
------------

The basic premise of `rotate-backups` is fairly simple:

1. You point `rotate-backups` at a directory containing timestamped backups.

2. It will scan the directory for entries (it doesn't matter whether they are
   files or directories) with a recognizable timestamp in the name.

   .. note:: All of the matched directory entries are considered to be backups
             of the same data source, i.e. there's no filename similarity logic
             to distinguish unrelated backups that are located in the same
             directory. If this presents a problem consider using the
             ``--include`` and/or ``--exclude`` options.

3. The user defined rotation scheme is applied to the entries. If this doesn't
   do what you'd expect it to you can try the ``--relaxed`` and/or
   ``--prefer-recent`` options.

4. The entries to rotate are removed (or printed in dry run).

Contact
-------

The latest version of `rotate-backups` is available on PyPI_ and GitHub_. The
documentation is hosted on `Read the Docs`_ and includes a changelog_. For bug
reports please create an issue on GitHub_. If you have questions, suggestions,
etc. feel free to send me an e-mail at `peter@peterodding.com`_.

License
-------

This software is licensed under the `MIT license`_.

© 2020 Peter Odding.

.. External references:

.. _changelog: https://rotate-backups.readthedocs.org/en/latest/changelog.html
.. _Easy Automated Snapshot-Style Backups with Linux and Rsync: http://www.mikerubel.org/computers/rsync_snapshots/
.. _GitHub: https://github.com/xolox/python-rotate-backups
.. _MIT license: http://en.wikipedia.org/wiki/MIT_License
.. _per user site-packages directory: https://www.python.org/dev/peps/pep-0370/
.. _peter@peterodding.com: peter@peterodding.com
.. _PyPI: https://pypi.python.org/pypi/rotate-backups
.. _Python Package Index: https://pypi.python.org/pypi/rotate-backups
.. _re.VERBOSE: https://docs.python.org/3/library/re.html#re.VERBOSE
.. _Read the Docs: https://rotate-backups.readthedocs.org
.. _rsync: http://en.wikipedia.org/wiki/rsync
.. _virtual environments: http://docs.python-guide.org/en/latest/dev/virtualenvs/

redpajama_set_name: RedPajamaGithub


text:
V1-Media
Eijournal
Asian Surveying and Mapping
Informed InfasctructureS&S
Geospatial Stream/span>
Flooding in Southern Iran
Rating12345Heavy rainfall has triggered flooding in southern Iran, particularly...
Rating12345 Immersive Tour and Map Platform Receives "Vanguards of...
Rating12345Vaughan, Ontario, January 21, 2020 — Teledyne Optech, a...
Matt Ball
gis, history, perspective
Preparing to Integrate Industrial Internet of Things (IIoT) Technologies
GIS to the Rescue: Unleashing the Power of Geospatial Technology to Plan for and Respond to Natural Disasters
Vertical Images: From Film Making to Inspection, and Why the Future of Drones Doesn't Lie in Flying
Does GIS have a history?
Rating12345
There are a number of ways to read this question of history. In terms of a record of its evolution, incremental innovations and leading minds, that history is rich and well documented. The meaning here is two-fold for both the ability of GIS to catalog and present the insights that have been gleaned from the system over time as well as the ability of the system to explore geographic information in a temporal sense.
The idea that GIS can catalog the changes on our planet is fundamental to its identity and value. The need to detect patterns, discern differences and understand change is of pressing importance. Factoring hugely into this ability to detect nuanced changes over time is our ability to rely on past data and discoveries, both in their accuracy as well as their integrity. In order for the system to be of greatest value, we must be able to go backward to gain understanding as well as forward with the prescient benefits of predictive analytics.
Lasting Legacy
With systems dating back to the late 1960s, GIS is of legacy age, with early iterations signifying major disruptions that instilled awe. The first GIS in Canada was tasked with land suitability analysis for all of that country in what was largely untamed and unmapped land, involving a herculean task of data capture and analysis that lead to a great many policy decisions that still shape the country today. Similarly, other systems formed, and still form, a backbone of decision making at national, regional and local scales.
These legacy GIS systems are key to the mission of a great many organizations large and small for a whole host of different applications. They are central to decision making and engrained in their role. They have proven themselves of value and have a long history of insight and maintenance that continues to enhance performance. GIS returns insights that no other system can offer and ongoing innovations continue to add to its capabilities.
Very few systems retain their legacy inputs and iterations in order to open and explore that punch-card file or load that floppy disk. There have been some attempts to catalog and record how such systems performed and how we interacted with them. There's certainly an interest in the data that legacy GIS systems contained, but very little interest in the pen-plotted magical maps that they output. Data are the value.
We continue to leap forward in ease of use and insight from GIS and it's remarkable how far the systems have come in their ability to store data, query and explore that data through spatial analysis as well as map and visualize. Thankfully, there are far fewer fears these days about whether our systems can keep pace with format changes and storage mediums. Those issues are fading to the past with interoperability advancements and the ease of integration and conflation inherent with the cloud. There is a concern, however, in our ability to weed out bad inputs and ensure system integrity as the number of inputs continue to expand.
The Hard Map
At this time, the rise of the convenient and accessible map has taken over in the public consciousness and threatens to degrade the hard work that goes into GIS maintenance, where a map is only one output. Yes, it's easy to take maps for granted when they are so well integrated into how we interact with the world but GIS provides a bigger means of mapping outside of the individual view, and it's a far more difficult pursuit.
GIS requires a significant commitment, however, that commitment gets a compound return as more users are exposed, apply its power to their work and add their inputs. Instead of a small department we now see whole organizations with access and more and more engaged with creating maps and apps that display data, provide insight and provide a means to collect more and more accurate data. The greatest rewards are gleaned when GIS scales to an everyday tool across an enterprise and of course when the data can be explored not just for current conditions and results but historically to glean trends and aid decisions.
For multiple reasons, GIS has lost a bit of luster of late. The news of innovations and participation by the GIS community have contracted as the technology has matured. The silver of these legacy systems still shines brightly in some corners, but in others, it has become tarnished with age. Let's not forget why we polish these systems—for their legacy impact as well as the impact of their legacy. The more we maintain, increase our inputs and integrate with other systems, the more we'll make history.
How Drone Data Delivers Real Bottom Line Value for SMBs in Construction
11:48 am USA: 4th Annual Energy Drone & R... @ The Woodlands Waterway Marriott
USA: 4th Annual Energy Drone & R... @ The Woodlands Waterway Marriott
Jun 10 @ 11:48 am – Jun 11 @ 12:48 pm
4th Annual Energy Drone & Robotics Summit is set for June 10-11, 2020 at The Woodlands Waterway Marriott in the great State of Texas.

redpajama_set_name: RedPajamaCommonCrawl


November 2015: The Chapter had its meeting in a restaurant in Sacramento. JoAnn Fites-Kaufman was our presenter. She discussed the recent research on wildfires. Her presentation shared experience in monitoring and research on the effectiveness of fuels treatments in changing fire behavior and effects. Dr. Fites-Kaufman shared her experience on the King Fire as a member of the Fire Behavior Assessment Team. 20 people attended this meeting from the Chapter membership and an interested private landowner.
December 2015 and January 2016: The Chapter did not hold meetings in December and January. Several Chapter members attended the joint Northern California and Southern California Societies Winter meeting in Santa Rosa. I represented the Chapter during the Executive Committee meeting. The 2016 Golden Members included Chapter members: Ronald Cunnington, William Knispek, Donald Perkins and Dale Wierman. Mr. Wierman was able to attend the winter meeting and was presented with recognition from SAF President Clark Seely.
February 18, 2016: This month's meeting had Rich Wade as the guest speaker in a restaurant in Sacramento. Mr. Wade is a member of the Board of Forestry and he presented a summary of the history of the Board of Forestry, highlighted the duties of the Board and discussed current issues that the Board is dealing with. The meeting was attended by 21 people. Thanks to Joanne Drummond for bringing an Americorps Crew of 9 people to meeting. The Americorps crew members shared the projects they are working on and explained the goals of Americorps.
March 17, 2016: The March meeting featured Wildlife Biologist, Monica Bond. She has done research on high severity fires and the effects on wildlife. Ms. Bond's presentation centered on the recent research that studied the effects of wildfire and post-fire logging on the spotted owl species and on black-backed woodpeckers. Her research indicates that there are benefits to the wildlife habitat from the high severity wildfires and asked for a paradigm shift for how foresters, the media and the public view large wildfires like the Rim Fire. 13 people attended this meeting.
April 21, 2016: Ken Pimlott, Chief of Cal Fire was the presenter. Ken had an informal conversation with the 10 members in attendance. Chief Pimlott gave an overview of the issues facing Cal Fire ranging from rebuilding Best Management Practices program, budget to financial resources from the Cap and Trade program. He described ways to leverage funding through partnerships with other agencies, local government and non-profit organizations. The ongoing drought and build-up of insect populations have created high hazard zones that require coordination with utilities, Cal Trans and local governments. Emergency coordination is an ongoing activity. Cal Fire is outreaching to Colorado and work done in southern California to learn the lessons from past actions to deal effectively with California's current and developing situation with large areas of forest dying. Cal Fire has acquired 40 pieces of equipment to help start managing the dead trees.
May 19, 2016: Sandy Derby will be our guest speaker to provide information about the status of Project Learning Tree. The meeting location will be at the Loomis Chinese Restaurant in Loomis. Keep an eye out for the upcoming email for the meeting announcement in the next few days.
We would like to see if there is interest in having a Chapter field trip in June. Please send suggestions to Jon Jue at jonora@sbcglobal.net. Some possible suggestions are a field trip at Sagehen Research Station near Truckee.
The Sacramento-Tahoe Chapter will continue efforts to advertise a scholarship for forestry or natural resource students attending Universities in California. Brian Barrette will be leading our Chapter's scholarship program in 2016.
On July 21, 2016, the Chapter will be staffing the Forestry Center at the State Fair. Please reserve that date to help educate the public about forestry in California. A sign up notice will be coming out soon.
In August 14, 2016, the Chapter will be assisting in a forestry and logging exhibit at the Nevada County Fair. A sign up notice will be coming out soon.


We all want what is best for our furry friends of the family. At Nutri-Vert we offer you different pet nutrition products for your cat and dog, starting from regular dry dog food to grain free dog food and cat food at an affordable price. We also have at our Nutri-Vert location dog and cat treats and the best cat toys, dog training devices, pet flea products and pet shampoo products.
At Nutri-Vert we have The Great Canadian 22-10 Canine Maintenance dry dog food is recommended for dogs with moderate exercise regime of 30 min or less per day, and are not under extreme work conditions.
At Nutri-Vert, The Great Canadian Dog Food 23-14 Lamb & Rice dry dog food is formulated for adult dogs getting moderate exercise. It is without corn which may be beneficial for dogs who suffer from allergies.
The Great Canadian 26-15 Premium Canine dry dog food is recommended for dogs with mild work regime, lactating females This dog food has extra fortification enabling the product to be feed to puppies from 8 weeks of age to 1 year old.
At Nutri-Vert we have The Great Canadian 30-20 Performance dry dog food is a high energy diet for dogs with high work regimes. Also recommended for puppies, lactating females and dogs that endure environmental challenges such as cold weather.


text:
Clouds were a 1960s Scottish rock band that disbanded in October 1971. The band consisted of Ian Ellis (bass and lead vocals), Harry Hughes (drums) and Billy Ritchie (keyboards).

Biography

Early days: The Premiers
In early 1964, Ian Ellis and Harry Hughes were playing in a band called The Premiers. The band itself consisted of Bill Lawrence (bass guitar), James 'Shammy' Lafferty (rhythm guitar), Derek Stark (lead guitar), Harry Hughes (drums) (born 5 August 1944) and Ian Ellis (vocals) (born Ian John Ellis, 7 October 1943). It was decided that an organ would help the sound of the band, and Billy Ritchie (born 20 April 1944) joined.

Cyril Stapleton took the band to London to record some demos, but nothing came of that, and Derek Stark, Bill Lawrence, and James Lafferty decided to leave. It seemed that Ritchie joining the band had prompted more changes than had been intended. Ian Ellis decided that he would take up the position of bass guitarist as well as lead vocalist. The group decided to move in a new musical direction, and changed their name from The Premiers to 1-2-3.

1-2-3
1-2-3 had a very different sound from the previous band, or from almost any other band at that time. After achieving little success in Scotland, the band moved to London, England where they hoped that their original music would catch on, but early audiences were confused by the lack of a guitarist.

The band were given a now-legendary headlining residency performing at the Marquee Club, attended by future prog-rock icons such as Rick Wakeman and Keith Emerson. That an unknown band was chosen to headline at the Marquee was unusual, as they hadn't first performed the customary support spots. Although Clouds did support Yes at the Marquee on at least one occasion,  At the time, they were described as "a unique group...who have created an entirely new sound in pop group music". The same publication referred to "the truly exciting nature of 1-2-3". Tamla Motown was the order of the day, but this band offered up a potent mix of blues, classics, pop, and scat-jazz, wrapped in arrangements that defied categorisation. Their set consisted of original songs and standards, but these latter pieces were studiously reshaped to become, in essence, new. It anticipated the techniques later used by America's Vanilla Fudge, but where the US group slowed their creations down for melodramatic emphasis, 1-2-3 were more concerned with swing, and used the pieces as stepping stones to self-expression, rather than a means in themselves. Yet they balanced this esoteric desire with a conspicuous focus on melody. There was nothing remotely like it around.

During the time the group performed at the club during 1967, they were signed by NEMS management company and Brian Epstein of The Beatles fame. This event was heralded in the national press, complete with photograph and accompanying article.

Among the Marquee audience was future superstar David Bowie, who said, when interviewed by Record Mirror in 1967, that they were "three thistle and haggis voiced bairns [who] had the audacity to face a mob of self-opinionated hippies with a brand of unique pop music which, because of its intolerance of mediocrity, floated, as would a Hogarth cartoon in Beano". It was around this time Ritchie introduced the then-unknown Bowie to Jimi Hendrix. Later, in 1994, speaking about the 1-2-3 treatment of his own song ("I Dig Everything"), Bowie said that "the song was radically altered, yet retained its heart and soul". He said he regarded Billy Ritchie as "a genius". Pete Townshend, in his 2012 autobiography Who I Am, cites 1-2-3 as one of the bands he most wants to see.

The death of Brian Epstein, founder of NEMS, left the band in the care of Robert Stigwood, his successor. But Stigwood had just signed The Bee Gees, fellow Australians, and was preoccupied with making them a success. This brought an end to the management relationship shortly afterwards. After parting company with NEMS, the band kept busy playing in the local London club circuit. At a club in Ilford, east London, the band were seen by Terry Ellis who quickly signed them to his new agency, and renamed the band Clouds.

Clouds
Originally known as the Ellis-Wright agency, the organisation grew and became Chrysalis. Clouds had also risen in prominence, playing many major tours, and appearing at the Royal Albert Hall and many of the headlining concert venues in the world, including the Fillmore East in New York. The band released a number of albums during this period. The recordings were generally very well received by the critics, with respectable sales.  Concert reviews were also favourable. A Billboard magazine review of a 1970 concert at the Arragon ballroom, Chicago, began by saying 'This band will be a giant.'

But despite some initial success for the band, Chrysalis increasingly focused its attention on Jethro Tull, and the momentum that began with 1-2-3 was lost. Though the later incarnation, Clouds, was still interesting, invention was now part of the mainstream, and the group disbanded in October 1971, unable to find a niche in an overcrowded progressive rock scene. As years passed, however, it was the band's earlier incarnation as 1-2-3 that became the subject of a critical reappraisal. Ritchie, the organist, was credited as being the first of his kind, standing and taking a lead role, paving the way for others, such as  Keith Emerson and Rick Wakeman. With accolades from the likes of David Bowie and others, the band's distinctive guitar-less, organ-driven sound is now viewed as a definitive precursor to the progressive rock movement.

Discography

{|class="wikitable"
!Date of release
!Title
!Record label
|-
|1969
|Make No Bones About It b/w "Heritage" (single)
|Island WIP6055
|-
|1969
|You Can All Join In (compilation)
|Island IWPS2
|-
|1969
|The Clouds Scrapbook (album)
|Island ILPS9100
|-
|1969
|Scrapbook b/w Carpenter (single)
|Island WIP6067
|-
|1969
|Scrapbook b/w Old Man (single)
|Island (European continent only)
|-
|1969
|The Best of Island (compilation)
|Island 88418Y (Netherlands only)
|-
|1969
|London Pop News (compilation)
|Island 88514UFY(Germany only)
|-
|1969
|Bumpers (compilation)
|Island  IDP1
|-
|1970
|Up Above Our Heads (album)
|Deram Records DES18044 (USA/Canada only)
|-
|1970
|Take Me To Your Leader b/w "Old Man" (single)
|Island (European continent only)6014017
|-
|1971
|Watercolour Days (album)
|Island/Chrysalis ILPS9151, Deram18058
|-
|1992
|Nice enough to Join in (CD reissue)
|Island IMCD150
|-
|1996
|Scrapbook/Watercolour Days (reissue)
|BGO/EMI BGOCD317
|-
|1999
|Coda
|Sunrise Records (private collection)
|-
|2002
|The Birth of Prog (1-2-3)
|Sunrise Records (private collection)
|-
|2005
|Strangely Strange but Oddly Normal (compilation box set)
|Island-Universal Records 9822950
|-
|2008
|The Clouds Scrapbook (reissue CD & Download)
|Island-Universal Records
|-
|2009
|Strangely Strange but Oddly Normal(compilation box set reissue)
|Universal UMC8472
|-
|2010
|Up Above our Heads(Clouds 1966-71) (2CD anthology)
|BGO/EMI BGOCD966
|-
|2017
|The Clouds Scrapbook (mini CD reissue)
|Belle172832
|-
|2017
|Up Above our Heads (mini CD reissue)
|Belle172833
|-
|2017
|Watercolour Days" (mini CD reissue)
|Belle172834
|-
|2017
|Scrapbook (box set of 3 albums)
|Belle
|-
|2018
|The Clouds Scrapbook (digital release 20/4)
|Blue Raincoat
|-
|2018
|Up Above our Heads (digital release 20/4)
|Blue Raincoat
|-
|2018
|Watercolour Days (digital release 20/4)
|Blue Raincoat
|-
|2018
|Up Above our Heads [Clouds 1966-71]'' (digital release 20/4)
|Blue Raincoat
|}

References

External links

Scottish rock music groups
British progressive rock groups
Musical groups established in 1968
Island Records artists
Deram Records artists
Chrysalis Records artists

redpajama_set_name: RedPajamaWikipedia


Please review the pdf supplied to access our latest Special Educational Needs (SEN) policy.
The SEND Policy will next be reviewed in December 2019.
As a local authority school the LA SEND local offer is available by clicking here. Our own school SEND local offer is detailed in the pdfs on this page.


Really surprised at how well this fits. It stayed on during a storm where we had 110 km gusts. The vinyl material is waterproof and much sturdy than expected for the price. Really pleased with my purchase. The only con was that it took longer to ship to Canada than expected. The tracker doesn't really change status for sometime and then its here.
I am very happy with the covers. They fit well and the thickness feels substantial enough to withstand wind, which we get a lot of. I haven't used the clips the covers are long enough that they don't seem necessary.
this fits perfectly on my outdoor loveseat. easy on & off, light weight, stays soft & pliable & keeps the loveseat dry. i love it!
a little concerned with the measurements, but it fit great.
Love it!Ordered a little bigger than the size of the loveseat, so I can fit other cushions and pillows. Worked perfectly!
Quick and easy service......very pleased with quality and price of love seat cover....will order again.
This cover looks nice, fits snug and the quality is good.
Perfect fit as per the measurements.
Can't speak to durability since I've only had it a couple of weeks but seems to be sturdy and fits great!
So far, only one of the three ordered covers have been delivered and that one was fine. To be fair, the other two were listed as "OUT OF STOCK' when I ordered them and I think they will be here in another week.
Fits great and the quality is great. Excellent customer service and was shipped to our home in record time.
These outdoor furniture covers are great - from the fit to the material used. Very happy with them.
covering a bicycle. Perhaps you should look into making a bike specific durable cover.
Great quality,fits wicker love seat well and keeps cushions dry during rainy weather.
Hi received my love seat & two chairs covers right on time & very nicely packed, seems like a very good product. I live in California & the furniture that needed to be covered sits completely outside. When I called & ordered this I was going to just order the 1st grade but after talking to the customer service girl, I told her this would be in full sun & rain, she suggested that I go up one grade as the basic cover is for furniture that is under a patio cover. Well, we just had our first little rain & this morning I did lift up one on the chair covers & noticed that there was some water on my cushions. So, it appears that the 2nd grade is not fully water proof. I guess I will have to put the cushions in my garage in the winter.
I order the classic loveseat cover and was quite pleased when I received it. It fit perfectly and was just as durable as it was described. Quick delivery time was a pleasant surprise. I will order other covers from the COVER store as I need my old ones replaced.
We required an odd size cover for an outdoor bench/swing and this was the best subsitute we could find. The size is actually longer than needed and not as "tall" as needed, but we are thrilled with the quality of the cover. We'll see how our adjustment handles the winter months.
These are our first purchases from The Cover Store and we couldn't be happier. Shipping was fast and the items were packed in nicely in individual boxes with one larger box. The quality of the covers were great and they look exceptional in our small back yard. We will be sure to purchase from The Cover Store in the future should we need any more covers.
I've ordered from Cover Store before and I was so pleased with that first purchase that i ordered another one to use on the loveseat. It fits perfect and so easy to put over the furniture, No fuss, just slip it on and the elastic bottom holds it in place. Just perfect! Service is outstanding. My order came just as promised. Even with the shipping cost, this purchase cost less than what I could have bought at the box store without shipping cost!
The product is well built and fitted perfectly.
Quality is fine. It does not quite fit as well as I would like. Apparently I should have measured my love seat and checked dimensions more acutely.
This cover for our settee is perfect. The quality is top-notch and the color we chose is just right for our location here in the Adirondack Mountains. I would recommend the Cover store" to everybody!"
Great fit and easy to put on. Great quality fabric.
Was very pleased with this cover. I also purchased 2 chair covers and I am very pleased with them also. If I should need more, I will definitely order from the Cover store again.
Very good quality and price. Arrived in good time. It is pouring rain right now so I am thankful that I have them.The fit is perfect as they are easy to get on and off.
The quality of the covers were as advertised, and are exactly what I expected to receive.
Very pleased with this company, and their products. There is a wide selection of styles, sizes, and durability. Customer service representatives were knowledgeable, and professional. The order was processed, shipped, and delivered promptly. The quality and fit of the covers is excellent. I expect to make future purchases, and will recommend "the COVER store" to family and friends!
Cover fit well and arrived very quickly. Matches the other covers I bought previously.
Love it! It's exactly what I need to protect my new patio set - keeps things dry during our Florida afternoon summer storms. The size was accurate, the product is very nice.
Good quality. Well made. Would buy from again.
Great product, quality material, fits as described and meets our needs.
Good quality, heavy material, fits perfectly and protects from moisture and sun.


text:
Generis Global Legal Services
Cost-effective. Simple. Fast.
Electronic Discovery
China has launched an intellectual property offensive
Foreign businesses must be prepared to face litigation as a result of increased intellectual property regulations.
The Japanese capital is undergoing a resurgence. Foreign firms operating in China are increasingly becoming the focus of an increasing number of intellectual property lawsuits brought by Chinese corporations. Increased intellectual property law, which has resulted in large sums of damages being awarded by courts for breaches, has opened the floodgates to litigation.
In recent years, Chinese companies have grown increasingly defensive of their own intellectual property rights, with the number of IP-related cases filed in China in 2020 more than trebling that of 2016.
Japan's firms are being forced to modify their China intellectual property strategies, which have historically centred on dealing with infringements involving Chinese businesses, in order to be better prepared for the possibility of being sued by Chinese rivals as a result of this trend.
Ryohin Keikaku, the Tokyo-based business that operates the Muji network of home goods shops, is one example of a Japanese company that has been involved in intellectual property legal battles with Chinese corporations.
As a result of the company's victory in a trademark lawsuit filed against it by Beijing Cottonfield Textile Corporation and another Chinese company established in July, Kenko Kikuchi, head of the company's legal and intellectual property affairs department, stated, "We will continue to keep our eyes on the ball." For more than two and a half years, the parties engaged in legal warfare.
In China, the Japanese company Ryohin Keikaku, which operates the Muji shops, is continuing its legal battle to preserve its 'Mujirushi Ryohin' (no brand, high-quality products) trademark. Reuters is a news agency that reports on international affairs.
In spite of this, Ryohin Keikaku is embroiled in more than a dozen court battles with other businesses over the use of its trademarked "Mujirushi Ryohin" (meaning "no brand, high quality goods") printed in Chinese characters on some of its woven fabric items, such as bed coverings and towels. The Japanese company's battle to preserve its trademark in the nation seems to have no end in sight at this point.
Ryohin Keikaku is one of a rising number of international businesses that have been targeted by intellectual-property-related litigation in China. Apple has been sued by a Chinese artificial intelligence firm, which alleges that the company's voice-recognition technology, Siri, infringes on a patent owned by the U.S. technology giant.
The majority of Intellectual Property (IP) disputes between Chinese and international businesses have traditionally included allegations of infringements by the Chinese parties, according to Japanese attorney Yoshifumi Onodera. "However, the number of instances in which the reverse is true is rising. We are getting an increasing number of requests for legal assistance from Japanese businesses that are doing business in China " he explains.
The number of intellectual property cases filed in China has been increasing. In 2020, Chinese courts of first instance heard a total of 28,528 intellectual property infringement lawsuits including sectors such as patents, utility models, and designs, representing a 28 percent increase over the previous year. The number of copyright and trademark lawsuits is also on the rise.
There are two major reasons contributing to the rising tide of intellectual property lawsuits. One example is the increasing quantity of intellectual property (IP) held by Chinese companies. In the past, China was infamous for the widespread availability of counterfeit goods, earning the nickname "Copycat Heaven." Although there is no shortage of counterfeit goods in China, Chinese businesses now have a greater number of their own intellectual property rights to defend.
The country of China was the world's leading source of foreign patent applications for the second consecutive year in 2020, with a total of 68,720 filings. IP security is becoming more important to a growing number of Chinese technology-oriented businesses as part of their overall business strategy.
The second element is strengthened intellectual-property laws. In 2019 and 2020, the Chinese government updated the country's trademark, patent, and copyright legislation. The changes have increased the maximum amount of damages that may be awarded by courts in these types of situations. As a result of the amendments, punitive damages are now available, which may be awarded in addition to real damages under specific situations. In instances involving severe infringements of intellectual property rights, awards of five times the actual damages may now be made.
The burden of evidence for plaintiffs in patent infringement proceedings has been lowered as a result of the revisions to the patent law. According to attorney Makoto Endo, bringing patent infringement lawsuits will become more advantageous as a result of this. In other words, Chinese businesses are more likely than ever before to file lawsuits against international rivals for intellectual property infringement.
Five-generation wireless communication technology, as well as artificial intelligence, are two technological domains where this development has especially significant ramifications. The Chinese government is encouraging technological advancements in these sectors as part of a national technology development initiative.
Many Chinese firms are developing 5G and artificial intelligence technologies that are world-beating. Specifically, Onodera expects an increase in the number of Chinese litigation filed against international businesses using these technology.
According to Rieko Michishita, a U.S.-registered lawyer who works out of China, "Japanese businesses tend to be sluggish in strengthening their defence against possible litigation threats." According to Michishita, many Japanese firms, even those with prior experience suing Chinese corporations for intellectual property infringement, find themselves in a difficult position to defend themselves in court in IP matters in which they are being sued.
When individuals are the ones who are suing, they have the freedom to gather evidence and create tactics for court fights at their own speed. When they are sued, on the other hand, they are required to respond quickly to the acts made by the plaintiffs in the lawsuit. Japanese businesses, on the whole, are not very adept at this.
In many instances, Japanese corporations delegate little or no power to their Chinese affiliates in their home country. These businesses may find themselves at a competitive disadvantage as a result of the time they spend consulting with their Japanese headquarters.
"It is very uncommon for a Japanese business to panic when it is sued in China and fail to respond in a timely manner in accordance with the law," explains Michishita.
It is likely that in such an instance, the Japanese firm would go on a frenzied wild goose hunt in order to locate a local politician or business person who can assist it in the lawsuit.
Companies should at the very least perform internal simulations and create guides to cope with litigation filed against them, Michishita advises. "It is imperative that companies undertake internal simulations and develop manuals." It is essential to get familiar with the Chinese legal processes that are involved. It is essential to assign shared responsibility for checking issues that need internal approval as well as providing the required time to deal with them, according to the Japanese head office and local units, she argues.
The patent infringement cases against its Chinese competitors have been filed by a large Japanese company with no prior experience in Chinese courtrooms, against its Chinese competitors. According to the Japanese company's executive in charge of intellectual property problems, the action is partially meant to serve as a learning step in order to become better prepared for being sued. By collaborating with local attorneys who are well-known for their expertise in intellectual property disputes, the business hopes to become more familiar with the legal processes as well as the fast legal answers required by Chinese corporations.
China has earned a reputation as a litigious culture, and this trend has now extended to intellectual property issues as well. If foreign businesses have a tendency to be too willing to make concessions in commercial conflicts or seek financial settlements in order to avoid escalating them, they may find themselves as preferred targets of litigation.
Whether they are the plaintiffs or the defendants in intellectual property litigation in China, it is becoming more essential for Japanese and other international businesses to have effective and feasible plans and strategies for dealing with IP cases in China. This includes clearly defining the responsibilities performed by the headquarters and local units, which is an essential component of the overall strategy.
Explore more from Generis Global:
This is how you can do business in China through Cayman Islands China has issued a new framework for international aid The stock of SOHO China has fallen as a result of the failure of a takeover transaction Growing Indications That China May Implement a Nationwide Property Tax
Published 22/09/2021 By Generis Legal Intelligence
Categorized as Chinese Law, Knowledge Hub, Legal News, 🇨🇳
Abuse of a Power of Attorney, here is what you need to know
A new organisation has been established to manage the security of Dubai's borders


text:
Memorials Of The Great War
Our sites use cookies to improve your experience as a user. By using our sites you agree to our use of cookies in accordance with our Privacy Policy
War Memorial of the Month - July 2018
Royal Artillery Memorial, London
click on the images to enlarge
To protect and promote the spirit and substance of the work of Sir Edwin Lutyens OM
Location: Hyde Park Corner, London, SW1X 7TA
Criticised by many when it was first unveiled for its stark depiction of warfare, the Royal Artillery memorial at Hyde Park Corner is one of the most distinctive of the country's war memorials. It is not widely known however that Lutyens was originally asked to prepare the design and, in May 1920, he submitted three alternatives to the Royal Artillery War Commemoration Fund. However the Fund was not impressed, and four months later the architect was asked to produce an alternative proposal incorporating a howitzer. He approached the sculptor Derwent Wood, with whom he head worked upon previous commissions including the Cenotaph in Whitehall. Unfortunately the fresh design (see left) was disliked by the committee, one commenting that the depiction of the gun crew by Wood was unrealistic and showed "far too many people sort of hanging around short of a job".
Instead the Committee decided to invite the sculptor Charles Sargeant Jagger to design something more suitable and it is his scheme, in an architectural setting by Lionel Pearson, was unveiled on 18 October 1925. However the alignment of the memorial was influenced by Lutyens who, together with Sir Reginald Blomfield, who suggested that it should be turned so that, instead of facing the Wellington Arch, it faced south to form a pleasing silhouette from the park nearby.


text:
Mickhail Gorbachev was born on the 2nd of March 1931 into a peasant family. His early life was filled with hardship as he experienced the Soviet famine, and saw many family members starve to death, including two of his sisters. He also saw his grandparents get arrested under false charges. During his teenage years he worked on the family farm until he went to university to study law where he developed an interest in politics, and joined the Communist Party. He became very interested and active within the party, and when he graduated in 1970 he was appointed as a First Party Secretary.
After a number of years within the Soviet Union, during which time he implemented a number of important policies such as improving workers' living conditions, Gorbachev was elected as general secretary of the Soviet Union in 1985 and had the primary goal of improving and reviving the Soviet economy. At the time, the Soviet Union was struggling to provide basic services to all of its citizens and Gorbachev sought to improve prosperity in the country. However, he found it near impossible as a result of the political and social issues within the country. Gorbachev was elected as the 8th and last leader of the Soviet Union in 1988. He remained in power until the Soviet Union dissolved in 1991.
During Gorbachev's time in power his policies made a big contribution to ending the Cold War, with his policies of glasnost and perestroika. For example, his policy of glasnost (openness) which he implemented in 1988 reduced the secrecy within the Soviet Union and helped to limit the secrecy between countries. Also his policy of perestroika which was all about restructuring the country resulted in a number of radical reforms and led to social and economic progress. Gorbachev also removed the constitutional role of the party and all of these changes helped to lead to the parties' destruction.


text:
This document contains guidelines and best practices for front-end development using HTML and CSS.

Something off, or missing?  Contribute to this document by submitting your questions using the [issues feature](https://github.com/theaccordance/web-design/issues) within this repo.

## Table of Contents
1. [Project](#Project)
  1. [Naming Convention](#naming-convention)
  1. [Organization](#project-organization)
1. [HTML](#html)
  1. [Syntax](#html-syntax)
  1. [HTML5 Doctype](#html5-doctype)
  1. [Character Encoding](#character-encoding)
  1. [Including Stylesheets](#including-stylesheets)
  1. [Attributes](#attributes)
    1. [Naming](#naming)
    1. [Order](#attribute-order)
  1. [Reducing Markup](#reducing-markup)
1. [CSS](#css)
  1. [Syntax](#css-syntax)
  1. [Selectors](#selectors)
  1. [Declarations](#declarations)
    1. [Single Declarations](#single-declarations)
    1. [Multiple Declarations](#multiple-declarations)
    1. [Order](#declaration-order)
  1. [Organization](#organization)
1. [References](#references)

## Project

### Naming Convention
Names for your project, files, and folders should be short, lowercase, and use dashes instead of spaces.
```
\\ Incorrect
My Really Awesome Project/
Facebook Profile Picture.jpg

\\ Not Ideal
my-really-awesome-project/
facebook-profile-picture.jpg

\\ Ideal
my-project/
avatar.jpg
```

Organization

Keep your files organized using the *File-By-Type* approach.  Files kept in the following folders:

| Path | Types of Files | File Types
| :---: | :---: | :---:
| `my-project/` | HTML Documents | `.html`
| `my-project/css` | Stylesheets | `.css`
| `my-project/fonts` | Web Fonts | `.eot` `.ttf` `woff`
| `my-project/img` | Images | `.jpg` `.gif` `.png` `.svg`
| `my-project/js` | Scripts | `.js`

>**Tip:** Avoid adding sub-folders to buckets with less than 25 files.

## HTML

Syntax

If an element has no nested elements, its closing tag can remain on the same line as the opening tag.
```html
<!-- Incorrect -->
<div><p>Foo</p></div>

<!-- Not Ideal -->
<div>
</div>

<!-- Correct -->
<div></div>

```

Nested elements should start on a new line and be indented within the parent element.
```html
<!-- Incorrect -->
<div><p>Foo</p></div>

<!-- Incorrect -->
<div>
<p>Foo</p>
</div>

<!-- Correct -->
<div>
    <p>Foo</p>
</div>
```

Always use "double" quotes, never 'single' quotes, on attributes.
```html
<!-- Incorrect -->
<div class='single-quote'></div>

<!-- Correct -->
<div class="double-quote"></div>
```

Include a trailing slash in self-closing elements
```html
<!-- Incorrect -->
<img src="foo.jpg" class="bar" >

<!-- Correct -->
<img src="foo.jpg" class="bar" />
```

Do not omit optional closing tags:
```html
<!-- Incorrect -->
<ul>
    <li>Foo
    <li>Bar
    <li>Baz
</ul>

<!-- Correct -->
<ul>
    <li>Foo</li>
    <li>Bar</li>
    <li>Baz</li>
</ul>
```

### HTML5 Doctype
Every html document should start with the DOCTYPE tag.
```html
<!-- Incorrect -->
<html>
    <head>...</head>
    <body>...</body>
<html>

<!-- Correct -->
<!DOCTYPE html>
<html>
    <head>...</head>
    <body>...</body>
<html>
```

> **Note:** Doctype does not have a closing tag

### Character Encoding
Quickly and easily ensure proper rendering of your content by declaring an explicit character encoding. When doing so, you may avoid using character entities in your HTML, provided their encoding matches that of the document (UTF-8).
```html
<head>
  <meta charset="UTF-8">
</head>
```

### Including Stylesheets
Stylesheets are nested in the `<head>` section of your HTML document.
```html
<!-- Incorrect -->
<!DOCTYPE html>
<html>
    <head>...</head>
    <body>
        <link rel="stylesheet" href="css/style.css">
    </body>
<html>

<!-- Correct -->
<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" href="css/style.css">
    </head>
    <body>...</body>
<html>
```

### Attributes

#### Naming
For unique attributes like `id` & `name` should follow the `camelCasing` convention.
```html
<!-- Incorrect -->
<section id="foo-bar">...</section>

<!-- Correct -->
<section id="fooBar">...</section>
```

>**Tip:** Avoid excessive use of Ids by applying them only to elements which represent major sections or unique components of your document.

Class names should be formatted using lowercase and dashes.
```html
<!-- Incorrect -->
<img class="fooBar" src="img/baz.jpg" />

<!-- Incorrect -->
<img class="foo_bar" src="img/baz.jpg" />

<!-- Correct -->
<img class="foo-bar" src="img/baz.jpg" />
```

Order

HTML attributes should come in this particular order for easier reading of code:
- `id`, `name`
- `class`
- `src`, `for`, `type`, `href`, `value`
- `data-*`
- `title`, `alt`
- `role`, `aria-*`

Attributes which uniquely identify an element (`id`, `name`) should come first for ease of readability, followed by classes, which are typically the most common attribute found across all elements in an HTML document.
```html
<!-- Incorrect -->
<img src="img/foo.jpg" id="foo" class="bar baz" />

<!-- Correct -->
<img id="foo" class="bar baz" src="img/foo.jpg" />
```

### Reducing Markup
Whenever possible, avoid superfluous parent elements when writing HTML. Many times this requires iteration and refactoring, but produces less HTML.
```html
<!-- Not so great -->
<section>
    <div class="row">
        <div class="col-left category">...</div>
        <div class="col-right category">...</div>
    </div>
    <div class="row">
        <div class="col-left category">...</div>
        <div class="col-right category">...</div>
    </div>
</section>

<!-- Better -->
<section>
    <div class="row">
        <div class="col-left category">...</div>
        <div class="col-right category">...</div>
        <div class="col-left category">...</div>
        <div class="col-right category">...</div>
    </div>
</section>
```

## CSS

Syntax

Include one space before the opening brace of declaration blocks for readability.
```css
// Incorrect
.foo{display: block;}

// Correct
.foo {display: block;}
```

For each declaration within a declaration block:
- Include one space after `:` for each declaration
- Do not include one space before `:` for each declaration
- End all declarations with a semi-colon
```css
// Incorrect
.foo {display:block;}

// Incorrect
.foo {display : block;}

// Incorrect
.foo {display: block}

// Correct
.foo {display: block;}
```

Declarations with multiple property values should include a space after each comma
```css
// Incorrect
.foo {box-shadow: 0 1px 2px #ccc,inset 0 1px 0 #fff;}

// Correct
.foo {box-shadow: 0 1px 2px #ccc, inset 0 1px 0 #fff;}
```

Avoid specifying units for zero values
```css
// Incorrect
.foo {margin: 0px;}

// Correct
.foo {margin: 0;}
```

### Selectors
Keep selectors short and strive to limit the number of elements in each selector to three.
```css
// Incorrect
section ul.nav li a {text-decoration: none;}

// Correct
ul.nav a {text-decoration: none;}
```

### Declarations

#### Single Declarations
Selectors with a single declaration can be kept on a single line.
```css
// Less ideal
.foo {
    margin: 0px;
}

// More ideal
.foo {margin: 0;}
```

#### Multiple Declarations
For selectors with multiple declarations:
- Each declaration should appear on its own line
- Declarations are nested within the selector block
- Place closing braces of declaration blocks on a new line
```css
// Incorrect
.foo {display: block; position: relative;}

// Incorrect
.foo {
display: block;
position: relative;
}

// Incorrect
.foo {
    display: block;
    position: relative;}

// Correct
.foo {
    display: block;
    position: relative;
}
```

Order

Declarations should be arranged alphabetically within selectors since in-browser developer tools will list declarations this way.
```css
// Incorrect
.foo {
    position: relative;
    top: 0;
    left: 12px;
    display: block;
}

// Correct
.foo {
    display: block;
    left: 0;
    position: relative;
    top: 0;
}
```

### Organization
Organize sections of code by component.
```css
// Incorrect
header {
    background-color: #034f80;
    display: block;
}

footer {
    background-color: #000000;
}

header nav ul {list-style: none;}

// Correct
header {
    background-color: #034f80;
    display: block;
}

header nav ul {list-style: none;}

footer {
    background-color: #000000;
}
```

- - -

Heavily inspired by [@mdo's Code Guide](http://codeguide.co/). Made with :heart: in Chicago.

Open Source under MIT.  Copyright 2016 [Joe Mainwaring](http://joemainwaring.com).


In addition to the Old Harbour in Rotterdam, the City Hall Square is the most important nightlife area of Rotterdam. On this square facing the Coolsingel main street and the marvellous Rotterdam City Hall you can go out, have a drink or dine at the outdoor terraces seven days per week.
You'll find lots of bars with outdoor eating facilities at the City Hall Square. When the weather is fine, this square is really crowded with people who are enjoying their lunch, dinner or just having a drink. When it's cold outside, you can still sit outside due to the terrace heaters! Stadhuisplein is a tourist magnet and the menus are basic. Don't expect haute-cuisine here, but mainly pub food like salads and spare ribs. This square is located in the middle of the shops in the city centre so shoppers can cool down here at one of the Stadhuisplein terraces.
At Stadhuisplein, lots of bars are open seven days per week until the early hours. During the day time the outdoor terraces are visited by city dwellers, but at night you'll find many party people who go out at the Apres-Skihut, Get Back, Coconuts, Café 't Fust, Café Plein or Big Ben. Just behind Stadhuisplein you'll find the well-known club Thalia. Also on weekdays there's always some party going on at City Hall Square in Rotterdam.
Major sports events like the European or World Cup soccer and important matches of Feyenoord Rotterdam are broadcasted live on large screens at Stadhuisplein. During these public viewing events and on Kings Day in Rotterdam, the number of visitors of Stadhuisplein gets regulated to make sure the square doesn't get overcrowded. Unfortunately Stadhuisplein is also associated with some disorder now and then, so when its getting too busy it's time for you to go!
Brand new restaurant with lake side terrace at Kralingen Park in Rotterdam.
Have lunch or dinner on the sandy beach of Hoek van Holland and party at night.
Enjoy lunch or dinner at this restaurant with a pretty street terrace in the Meent shopping area.
From their pretty terrace you are face to face with the iconic Erasmus Bridge in Rotterdam. Open all day, every day.
One of the best panorama's of Rotterdam with a view at river Maas and the Erasmus Bridge.
Posh terrace located in the Euromast park next to a beautiful villa!


text:
Q: DOS xcopy command to move files that have been restored ending with (1) In error, I restored a large amount of files, and selected if the file exists restore with a different file name. All the files restored end in (1) . For example  test.pdf would be restored as test(1).pdf.  The result is two identical files with different names
Is there a XCOPY command or other DOS command that will search the drive and its subfolders for file names that end in (1),  and move those files into a temp folder.  If so, it would be greatly appreciated if you could give me the command line info
Thanks

A: you can try this:
for /f "delims=" %%a in ('dir /b /a-d /s "*(*)*" ^| findstr "([0-9][0-9]*)\."') do ECHO MOVE "%%~fa" "c:\temp"

It searches recursively in the start folder and all subfolders and moves "([0-9][0-9]*)\." files to c:\temp. Look at the output and remove ECHO if it looks good.

redpajama_set_name: RedPajamaStackExchange


text:
Q: Dict as a model field I want to add a dict field to a model, display the dict on the admin, and be able to edit it from the admin.
For example, I have a relationship
dict = { 'sister' : rel_score, 'mother' : rel_score, 'father': rel_score}
where rel_score (default = 0) is the score for each relationship. I want to store this dict to my model and display it in admin, so that I can assign these rel_score for each relationship on my admin.
Also, any example of how to assign scores (prioritize) to different elements, and return values according to these assigned scores would be really helpful.

A: It's not really possible to have a DictField since the underlying database won't support that type of data structure.
You could have a RelationshipScore model to store your relationships and a ForeignKey from it to your existing model (I'll use user as an example). eg:
Class RelationshipScore(models.Model):
    user = models.ForeignKey(User)

    relationship = models.CharField(max_length=50, primary_key=True)
    score = models.IntegerField()

You could then add functions to your existing model to get the values:
class User(models.Model):
    def get_relationship(self, rel):
        return RelationshipScore.objects.get(relationship=rel, user=self)
    def get_lowest_relationship(self):
        return RelationshipScore.objects.filter(user=self).order_by("-score")[0]

A: As of Django 1.8, postgres users also have the option of using an HStore field.
A field for storing mappings of strings to strings. The Python data type used is a dict.

A: Postgres user can use the jsonfield easely :
from django.db import models

from django.contrib.postgres.fields import JSONField
import json

class Yourmodel(models.Model):
    name = models.CharField()
    dict_json = JSONField(blank=True, null=True)
    def __str__(self):
        return self.name

and within your app :
the_dict = {'a':1,'b':2}
Yourmodel.dict_json = json.dumps(the_dict)
Yourmodel.save()

https://docs.djangoproject.com/es/1.9/ref/contrib/postgres/fields/#jsonfield


But even with low top speeds, accidents are always possible and it's best to make sure you are covered before you get behind the wheel. At Business Insurance Center, we offer Golf Cart insurance to clients in Orlando, Lakeland, Clearwater and all surrounding communities.
Figuring out the proper golf cart insurance isn't a simple task. Before you hit the grass (or asphalt), get in touch with the team at Business Insurance Center to find a golf cart insurance policy that works for you.


text:
Q: Action Listeners and inner classes java So I have a nested class in my public static void main. It seems to compile and be correct but the function it is supposed to perform doesn't seem to execute.  Here is the method.
public static void main(String[]args)
{

  LevelOne l = new LevelOne();
  //Level Two not made yet just a place holder to show constructor with a different type
  LevelTwo l2 = new LevelTwo();
  //I make l2 first because the front frame is the last one created
  Main m = new Main(l2);
  Main m2 = new Main(l);
  //To switch levels i am going to load them all in advance and then when the beat the level it will close the frame

  class ChoiceListener implements ActionListener
  {
      Timer tm = new Timer(5, this);
      //timer is used for the actionlistener
      public void actionPerformed(ActionEvent e)
   {
    if(l.checkWin())
   {
     m2.setVisible(false);
     m2.dispose();
    }
   }

    }

  }

And here is the variable it is supposed to access form level l in the other class.
public void setWin()
{
   this.checkWin = true;
}

public boolean checkWin()
{
  return this.checkWin;
}

checkWin is a private instance field for the other class. For some reason when checkWin is set to true it still wont execute. Any help would be appreciated!

A: Add below line in main method
Timer tm = new Timer(5, new ChoiceListener());
tm.start();

and remove
Timer tm = new Timer(5, this);

from ChoiceListener. Also move ChoiceListener out of main method in the class so that it can be instantiated using class instance or make it static so that it can be directly instantiated.


Shred to avoid penalties. Your business could be subject to financial penalties if you don't take the proper measures to protect the personal information of your employees, clients, and vendors. Shredding (especially cross-cut shredding) is the gold standard for the disposal of paper documents to prevent fines.
Shred to meet compliance. Federal and industry-specific regulations dictate how businesses must protect personal data. Depending on the industry you're in, shredding documents could be required by law. In healthcare, HIPAA dictates certain privacy standards, and in the legal world, it's the Gramm–Leach–Bliley Act and Sarbanes-Oxley. Shred your business documents to ensure compliance.
Shred to save space and costs. Paper documents often clutter up valuable workspaces and can cost big bucks if you pay for document storage. Shredding is a better solution that saves space and financial resources. By combining a scanning solution with document shredding, you can convert your paper archives to digital documents and shred the paper ones—greatly reducing mounting storage costs and greatly increasing office organization.


Dr Paul Calladine (Chiropractor) and his team provide corrective chiropractic care and commonly help with back pain, neck pain, headaches, migraines, sciatica (nerve pain), scoliosis, family care, posture and more.
Do You Want to Book Your Regular Adjustment?
Welcome back to our website. You know you can phone the clinic any time - if we are not able to answer please leave a message. Alternatively, please click the Book/Contact button below and your booking request will be sent to us via email. Looking forward to hearing from you again.
If you can relate to any of these problems, we may be able to help you - back pain, headaches and migraines, sciatica (nerve pain), sports injuries and scoliosis. We've been helping people in Drummoyne, the Inner West, Five Dock, Lilyfield, Russell Lea, Haberfield, Abbotsford, Rodd Point, Rozelle and throughout Sydney. We've had the privilege of caring for some patients for over 20 years.
So many people have success with chiropractic. We're lucky enough to see and hear inspirational stories on a daily basis, as patients move towards optimal health and healing.
Chiropractic is a primary form of health care with over 200,000 Australians visiting their local chiropractor each week. Chiropractic aims to remove interference to your nervous system, reduce pain, realign your spine, improve posture and boost performance.
If you're a new patient, welcome. We'll provide you with a full assessment of your case to determine if chiropractic can help you. A comprehensive chiropractic examination, assessment and testing will be performed to gather information. If required, the Chiropractor may recommend diagnostic imaging (X-rays) to complete a thorough diagnosis.
We accept the following payment methods including: HiCaps (major health fund rebates), EFTPOS, VISA, Mastercard, American Express, Medicare (for some X-ray services), Allied Health EPC and Veterans' Affairs referrals.
If someone in your family needs help, you can count on us. Make your appointment today.
Contact our clinic today on (02) 9819 6182 to book your next appointment.


This one is very obvious, the first place you would think of for out the house study. All Saints library has plenty of space for you to be getting on with work across 5 floors. If you need complete silence then there are quiet study zones on the ground, first, second and fourth floors. Alternatively, on the first and fifth floors there are 'group study' zones, in these areas talking is allowed. Personally, I prefer to work in these areas, as I like to have background noise while doing my work. These zones are also perfect for when you have group work as indicated in the name. All these zones have an abundance of desks and computers for whatever study space you require.
Right next door to the Library is the Business School and the top floor has a large study space.
If your course is a part of the Manchester Fashion Institute, like mine is, then there is a Mac Suite located on the second floor of the Cavendish building. This is a good place to go after lectures and seminars to continue with work. It is also great if your preference is to work on Apple computers.
For a more relaxed atmosphere you could try studying at the Student's Union. With big comfy chairs and lots of USB points and plugs to charge your laptop it's the perfect place to do some relaxed study. There is even a Starbucks and a shop inside at arms-length for drinks and snacks to keep you going.
When the sun is out and it's not raining, All Saints Park is a really nice place to sit and do some work. It's handily located in the heart of the campus. The ideal place to go when revising for the summer exams.


These large 16x16" wash cloths are excellent for home use or businesses such as child care, elderly care, cleaning services, auto detailing, and car washes. A great deal at $1.00 each! We offer them in a five pack for $5!
Great utility cloth for washing cars too!
Makes my day every morning to have this oversize wash cloth.
These are just great! Just the perfect size. Bigger than a wash cloth but smaller than a hand towel. The best for cleaning! Try them - you won't be sorry!


text:
MNDOT Asks For Survey Input On Teleworking Project
Steve Tanko Published: July 30, 2021
Vadym Pastukh
One thing that changed for many people both during and since the pandemic has been the ability (or the demand) to work from home. That changing workplace will translate into changes in our roads and highways as well. That's why the Minnesota Department of Transportation is compiling information so that they can formulate their long-range plans for highway infrastructure in the future.
The Minnesota Department of Transportation and the University of Minnesota Tourism Center have partnered together to better understand Minnesota workers' experience with telecommuting before, during, and after the COVID-19 Pandemic. They've put together two different surveys to poll information from the general public.
Yuliya Apanasenka
The two different surveys specifically target both workers and employers. The reasoning behind the specifically-targeted surveys allows them to see what items are shared by both demographics and also how they differ.
Each of the surveys takes about 10 to 15 minutes to complete. The Minnesota Department of Transportation has shared that they feel that all contributions to the project are vital to the understanding that will be gained and the ways that it will be used in the future to drive transportation projects throughout the State of Minnesota.
Right now, the project window is open and MNDOT and the University of Minnesota Tourism Center are looking for active participants to take the survey(s). Once the project is complete, results will be made available through a report on the websites for both agencies.
To take the worker-focused survey, click here.
To take the employer-focused survey, click here.
Ten Businesses We'd Like To See In The Twin Ports
CHECK IT OUT: See the 100 most popular brands in America
Filed Under: COVID-19 Coronavirus, Duluth, MNDot, Superior, Twin Ports
Minnesota Citizen Helps Extinguish House Fire With Snow
An Open Letter To Duluth Drivers Regarding Merging Onto The Freeway
Comedian Whitney Cummings Is Bringing Her Show To Duluth
WATCH: Man Tries To Outrun Minnesota State Trooper, Gets Tased Twice
Learn About The Central Entrance Redesign Project In Duluth, December 20
Can You Deck Out Your Car With Christmas Lights In Minnesota?
MNDOT + WISDOT Offer Blatnik Bridge Replacement Updates At Upcoming Meeting In Superior


text:
Binance Removes $639 Million Worth of BNB From Circulation in its 17th Quarterly Burn
By David BoldOctober 19, 2021 No Comments
17th quarterly burn was the largest in terms of dollar value, surpassing 15th burn by over $44 million
Binance plans to eventually remove half of BNB supply from circulation and decrease total supply to 100 million BNB
Over its four-year-long life span, BNB has grown to become the 3rd largest digital asset
Binance has announced the successful completion of the 17th quarterly token burn, which forever removed 1,335,888 BNB (equivalent to $639,462,868) from circulation. The largest cryptocurrency exchange has burned more than 30 million BNB via its token burning program, worth approximately $14.7 billion at current market rates.
BNB burn program will continue until 50% of the total supply is removed from circulation
When BNB was created in 2017, 40% of the total BNB supply was reserved for the Binance team. The team's 80 million BNB allocation has been used exclusively for scheduled quarterly burns and nothing else. Binance's goal is to remove all of the team's BNB from circulation and decrease BNB's total supply to 100 million coins, down from the initial figure of 200 million.
More than 1.33 million BNB have been burned in the latest quarterly burn. Image source: Binance
The 17th token burn was more significant than the 16th one, both in terms of BNB burned and dollar value. Additionally, the latest BNB burn was the largest quarterly event in USD figures, ahead of the previously largest 15th burn by more than $44 million. In terms of BNB tokens destroyed, the 14th burn still reigns supreme, with over 3.6 million tokens removed from circulation.
Binance Coin was launched via an initial coin offering (ICO) in July 2017. Out of 200 million tokens, 50% was allocated for public sale, 40% to the founding team, and the final 10% went to so-called angel investors. Binance uses a fifth of its quarterly profits to buy and burn its native tokens, which increases scarcity and ups the value of BNB.
On this day four years ago, BNB was trading near its all-time low, at $1.33 per coin. Since then, the price of BNB has increased by a staggering 36,616%. BNB is the 3rd largest digital asset with a market cap dominance of 3.19% and a market valuation of $83 billion.
While many centralized exchange tokens were hit hard by the news of China banning crypto, Binance's BNB has shown its resiliency and remained mostly unaffected. Furthermore, the recently launched Binance Smart Chain Growth Fund has contributed to BNB's stellar performance this year. Despite BNB losing almost 30% since its ATH in mid-May, it remains one of the best-performing crypto assets of 2021, up 1,223% YTD at the time of this writing.
Create Binance Account
Previous PostPolkadot Plans to Allocate $770 Million Worth of DOT for Ecosystem Development
Next PostChimeras Play-to-Earn Metaverse Raised Over $2 Million During Successful Funding Round


Can freezer jam be any easier? Yes!
Emergency Preparedness: Do You Have a Food Storage Supply?
Where Do I Store This Stuff?
Copyright © 2019 All About Food Storage All rights reserved. Amazing Grace theme by Vladimir Prelovac.


Funky DL returns with another outing on his own WC imprint. Built around a Real Roxanne sample, and a catchy jazz piano, it provides simple but effective platform for DL to drop some lyrics. He could never be accused of having an intricate style, preferring instead to concentrate on simply rocking the mic. This means that a lot of the rhymes are pretty generic, but enjoyable nonetheless. The flipside 'Prediction' is a rallying call to acknowledge genuine UK talent, over a set of horns that sound like they'd be at home during the changing of the guard at Buckingham Palace. Dope chicken burger line though.
PUTS are often lumped into the same category as Jurassic 5 and Ugly Duckling – alternative west coast acts who offer a change from the the normal G-funk scene that permeates that coast. A fair statement but one that often results in groups like this being overlooked for the new Snoop and Dre cut. And thats a shame because this is a blinding slice of Hiphop featuring the funkiest bass guitar and some fantastic work on the 1's and 2's by Thes One and Double K. A homage of sorts to Boyz-N-The-Hood, is paid on 'i15', which again features another funky bassline, while 'Hang Loose' is an old school tribute which brings a smile to the face with its fun lyrics and summery feel. Guess what provides the bassline again here though. I need to know where the guys are digging for samples!
Flatbush native Tah represents with 'Middle Finga', a strangely hynoptic cut due to its harmonica-influenced samples, and its simple but effective chorus. Coming off vocally like a cross between Fat Joe and DMX, but with a ton more skills, Tah impressed me a lot with this, his debut released. The B-side 'Blown Owt' is a fast paced cut with a dark, brooding bassline, which gives Tah a chance to flip some genuinely impressive battle lyrics. Worth keeping an eye on.


text:
Dorcadion condensatum är en skalbaggsart som beskrevs av Heinrich Carl Kuster 1852. Dorcadion condensatum ingår i släktet Dorcadion och familjen långhorningar. Inga underarter finns listade i Catalogue of Life.

Källor

Långhorningar
condensatum


Below are descriptions of type 2, type 1, and gestational diabetes. This website focuses on the prevention of type 2 diabetes, which is the most common and preventable type of the disease.
Some women who do not have diabetes before pregnancy have high blood sugar levels while pregnant and develop gestational diabetes. With this condition, the body is not able to make or use all of the insulin needed for pregnancy. If a mother does not seek treatment and control this condition during pregnancy, the baby may have problems with excess body fat and insulin at birth, which can increase the risk of breathing problems and diabetes later in life.
The prevalence of gestational diabetes varies widely throughout Asia. However, certain portions of India, such as Chennai, have consistently high rates of gestational diabetes, as high as 16% among pregnant women. Moreover, in recent times, the prevalence of gestational diabetes has been increasing in China, Hong Kong, and Thailand.4 Read more about the effects of gestational diabetes at our sister site, The Obesity Prevention Source.
1 Chan JC, Malik V, Jia W, et al. Diabetes in Asia: epidemiology, risk factors, and pathophysiology. JAMA. 2009;301(20):2129-40.
3 National Diabetes Statistics, 2011. National Diabetes Information Clearinghouse. http://diabetes.niddk.nih.gov/dm/pubs/statistics/. Published February 2011. Accessed August 12, 2013.
4 Hirst JE, Raynes-Greenow CH, Jeffery HE. A systematic review of trends of gestational diabetes mellitus in Asia. Journal of Diabetology. 2012;3:4.


text:
Essential Wales
This is how much money you could save by not buying coffee at work every day
It's easy to pick up a cuppa on the morning commute
Katie-Ann Gupwell
Eat. Sleep. Coffee. Repeat. That pretty much sums up most people's routine for the working day.
But have you ever wondered how much a daily visit to the coffee shop is costing you?
You may not notice but picking up a cup of your favourite brew every morning could be setting you back up to £51 a month, or more.
A few quid may not seem much to you each morning but all those extra pennies soon add up.
Each person, on average, works 47 weeks of the year.
If you buy a coffee at the start of every working day this means you could be spending nearly £600 a year alone on your morning pick-me-up.
For the same price you could buy a seven-day holiday to Zante, bag yourself 49inch HD TV or you could even treat yourself to an Xbox One X and still have some change left over.
Here's a breakdown of the total amount of money you're spending every day at some popular coffee shops.
Starbucks is one of the world's most famous coffee brands
Obviously it depends what size coffee you buy, so these are the average prices of a 'tall' coffee.
Earlier this year the retailer also introduced a 5p charge if you need a paper cup to take the coffee away.
The price of a tall cappuccino is £2.55.
That means you're looking at spending £12.75 a week and £51 a month if you pick one up five days a week.
A tall latte will also set you back the same amount.
The Americano comes in at £2.25 at the same size.
This means for five Americanos a week you're looking at spending £11.25 which equates to £45 a month.
What about food? Picking up a croissant at Starbucks will cost you £1.50 a time. That's £7.50 a week if you grab one every day before work.
At the least you're looking at paying £2.35 for a latte or a cappuccino.
If you visit Costa five days a week you're looking at paying £11.75 within that period - and up to £47 a month.
You won't find an Americano at Costa for less than £2. So for a standard cup of coffee you're looking at £10 a week and £40 a month.
What about food? At Costa you can pick up a croissant for £1.15 which means you're adding an extra £5.75 to your weekly bill if you buy one every morning before work.
If you like something more filling, a bacon roll comes in at the price of £2.95 which will add an extra £14.75 onto your weekly bill if you buy one every day.
Cafe Nero cup
For a standard cappuccino or latte to go you're looking at around £2.60 a time.
That's £13 spent over five days and £52 spent over a month.
A take-away Americano comes in at the slightly cheaper rate of £2.30 - which can set you back around £11.50 a week and £46 a month.
And breakfast? You can pick up a bacon ciabatta roll at Cafe Nero for £3.20. That's £16 down the drain if you pick one up five days in a row.
Tim Hortons in Cardiff (Image: Rob Browne)
The standard price of a medium latte or cappuccino comes in at £2.39 at Tim Hortons.
That means if you pick one up every working day you're spending £11.95 a week on coffee, which equates to £47.80 a month.
A standard brewed coffee, for the same size, comes in at £1.49.
If you pop into Tim's every morning before work you're splurging £7.45 a week on coffee and £29.80 a month.
What about a snack? If you're hungry the store sells a breakfast roll which can be filled with either sausage or bacon. This will cost you £2.49 a time. So if you like a bacon sandwich with your cuppa, you're looking at losing up to an extra £12.45 a week.
Tim Hortons closes Cardiff coffee shop just six months after opening
Coffee#1
Coffee at Coffee#1 (Image: Western Mail Archive)
To grab a standard cappuccino or latte to-go you're looking at spending £2.60 a time.
If you visit the cafe five days a week you're actually splurging £13 a week and £52 a month.
But you can pick up an Americano at the slightly cheaper rate of £2.25.
This will still set you back up to £11.25 a week and £45 per month.
And if you add a light bite? If you like breakfast on the go you can pick up a croissant on your way to work that will add £1.40 to your daily bill. This means you could be losing up to an extra £7 a week on pastries. If you have more of a savoury tooth a sourdough bacon bap comes in at the higher price of £3.25 each.
Pret A Manger (Image: PA)
Known for its organic blends, Pret a Manger is a popular place to pick up a cuppa in Cardiff.
At Pret the standard price for a cappuccino is £2.45.
That's £12.25 spent over a five-day period and and £49 spent over a month.
The standard price of a latte is also the same.
If you opt for an Americano you're looking, on average, at around £1.99 a cup.
That's £9.95 a week and £39.80 a month.
Fancy a bite? Croissants at Pret come in at the price of £1.40. But if you like your bacon, a brioche will set you back £2.50 a time. If you had one five days a week you could find yourself forking out £12.50 every few days on baps.
Other things to read if you love coffee
• Fancy trying something tasty on a budget? Greggs has launched a cheaper version of the popular Pumpkin Spiced Latte.
• If you fancy something different read all about a late night coffee and dessert bar that's opened in Cardiff.
• This is the story behind the guy who serves coffee at Starbucks but also works with Jay-Z.
• And in Swansea a cannabis oil coffee shop opened earlier this year.
Meal deals can also set you back a few quid...
Not everyone picks up a coffee every day but with so many meal deals about it often seems easier to pick up food on the go - but how much are these deals costing your wallet?
A sausage roll at Greggs (Image: Greggs)
While many people love a good sausage roll from Greggs, the store offers a pretty decent lunch deal.
You can pick up a sandwich and a drink for £3, which seems reasonable, but if you opt for it every day you could end up spending a lot of cash.
Grabbing a meal day five times a week will see you £15 down by the end of the week.
This means if you love a bargain you're spending £60 a month just on lunch.
But the coffee is actually a lot cheaper in Greggs when compared with a lot of the mainstream coffee shops.
You can bag a cappuccino or latte for £1.90 which means you're looking at paying £9.50 a week for your weekly pick-me-up.
An Americano is also at the slightly cheaper rate of £1.60 which means you'll be £8 out of pocket at the end of the week if you pick up a brew from Greggs.
Similarly at Sainsbury's you can get a meal deal for £3 or less.
For this you'll get a sandwich, a drink and a packet of fruit or crisps.
Just like Greggs, visiting the store every working day could see you lose up to £60 a month just on food.
Tesco also offers a similar meal deal for the same price.
A Subway restaurant
Subway's meal deal is slightly different and more confusing.
According to the website you can buy any Sub or salad and get a drink and a snack for an extra £1.40.
It says the price of the Sub will be adjusted to a meal deal when you select your option while choosing what you want.
Subs vary in price but you're looking at spending at least £5 on a meal deal at the store.
This means you could be forking out £25 a week.


text:
Q: Как получить свойства товаров в корзине Bitrix? Нужно получить свойства товара в функции метода OnBeforeBasketUpdate. Я бы хотел получить свойства с помощью GetList, но мне не приходит PRODUCT_ID. Массив пустой.
AddEventHandler("sale", "OnBeforeBasketUpdate", "UpdateFakeAvailability");
function UpdateFakeAvailability($ID, &$arFields)
{
    echo "<pre>";
    var_dump($arFields);
    echo "<pre>";
}

A: $db_res = CSaleBasket::GetPropsList(
        array(
                "SORT" => "ASC",
                "NAME" => "ASC"
            ),
        array("BASKET_ID" => $ID)
    );
while ($ar_res = $db_res->Fetch())
{
   echo $ar_res["NAME"]."=".$ar_res["VALUE"]."<br>";
}