text:
Covalent bond formation between amino acids and lignin: Cross-coupling between proteins and lignin
Fang Cong, Brett G. Diehl, Joseph Lee Hill, Nicole R. Brown, Ming Tien
Institute for Computational and Data Sciences (ICDS)
Huck Institutes of the Life Sciences
Materials Research Institute (MRI)
The present study characterized the products formed from the reaction of amino acids and in turn, proteins, with lignin resulting in cross-coupling. When added to reaction mixtures containing coniferyl alcohol, horseradish peroxidase and H2O2, three amino acids (Cys, Tyr, and Thr) are able to form adducts. The low molecular weight products were analyzed by HPLC and from each reaction mixture, one product was isolated and analyzed by LC/MS. LC/MS results are consistent with bond formation between the polar side-chain of these amino acids with Cα. These results are consistent with the cross-coupling of Cys, Tyr and Thr through a quinone methide intermediate. In addition to the free amino acids, it was found that the cross-coupling of proteins with protolignin through Cys or Tyr residues. The findings provide a mechanism by which proteins and lignin can cross-couple in the plant cell wall.
Phytochemistry
https://doi.org/10.1016/j.phytochem.2013.09.012
10.1016/j.phytochem.2013.09.012
Dive into the research topics of 'Covalent bond formation between amino acids and lignin: Cross-coupling between proteins and lignin'. Together they form a unique fingerprint.
cross-coupling reactions Agriculture & Biology 100%
Lignin Medicine & Life Sciences 88%
Covalent Bond Chemical Compounds 58%
lignin Agriculture & Biology 47%
Amino Acids Medicine & Life Sciences 40%
protolignin Agriculture & Biology 36%
amino acids Agriculture & Biology 32%
coniferyl alcohol Medicine & Life Sciences 28%
Cong, F., Diehl, B. G., Hill, J. L., Brown, N. R., & Tien, M. (2013). Covalent bond formation between amino acids and lignin: Cross-coupling between proteins and lignin. Phytochemistry, 96, 449-456. https://doi.org/10.1016/j.phytochem.2013.09.012
Cong, Fang ; Diehl, Brett G. ; Hill, Joseph Lee ; Brown, Nicole R. ; Tien, Ming. / Covalent bond formation between amino acids and lignin : Cross-coupling between proteins and lignin. In: Phytochemistry. 2013 ; Vol. 96. pp. 449-456.
@article{2d1d83076bbe421f9f8f94cb4dd975cf,
title = "Covalent bond formation between amino acids and lignin: Cross-coupling between proteins and lignin",
abstract = "The present study characterized the products formed from the reaction of amino acids and in turn, proteins, with lignin resulting in cross-coupling. When added to reaction mixtures containing coniferyl alcohol, horseradish peroxidase and H2O2, three amino acids (Cys, Tyr, and Thr) are able to form adducts. The low molecular weight products were analyzed by HPLC and from each reaction mixture, one product was isolated and analyzed by LC/MS. LC/MS results are consistent with bond formation between the polar side-chain of these amino acids with Cα. These results are consistent with the cross-coupling of Cys, Tyr and Thr through a quinone methide intermediate. In addition to the free amino acids, it was found that the cross-coupling of proteins with protolignin through Cys or Tyr residues. The findings provide a mechanism by which proteins and lignin can cross-couple in the plant cell wall.",
author = "Fang Cong and Diehl, {Brett G.} and Hill, {Joseph Lee} and Brown, {Nicole R.} and Ming Tien",
note = "Funding Information: This research was supported in part by a research grant from the Department of Energy DE-FG02-07ER15891 and also in part from the Center for LignoCellulose Structure and Formation, an Energy Frontier Research Center funded by the U.S. Department of Energy, Office of Science, Office of Basic Energy Sciences under Award Number DE-SC0001090 (Center funds provided partial support for both F.C. and B.G.D.). The Penn State Proteomics and Mass Spectrometry Core Facility performed the LC/MS analysis. ",
doi = "10.1016/j.phytochem.2013.09.012",
journal = "Phytochemistry",
Cong, F, Diehl, BG, Hill, JL, Brown, NR & Tien, M 2013, 'Covalent bond formation between amino acids and lignin: Cross-coupling between proteins and lignin', Phytochemistry, vol. 96, pp. 449-456. https://doi.org/10.1016/j.phytochem.2013.09.012
Covalent bond formation between amino acids and lignin : Cross-coupling between proteins and lignin. / Cong, Fang; Diehl, Brett G.; Hill, Joseph Lee; Brown, Nicole R.; Tien, Ming.
In: Phytochemistry, Vol. 96, 2013, p. 449-456.
T1 - Covalent bond formation between amino acids and lignin
T2 - Cross-coupling between proteins and lignin
AU - Cong, Fang
AU - Diehl, Brett G.
AU - Hill, Joseph Lee
AU - Brown, Nicole R.
AU - Tien, Ming
N1 - Funding Information: This research was supported in part by a research grant from the Department of Energy DE-FG02-07ER15891 and also in part from the Center for LignoCellulose Structure and Formation, an Energy Frontier Research Center funded by the U.S. Department of Energy, Office of Science, Office of Basic Energy Sciences under Award Number DE-SC0001090 (Center funds provided partial support for both F.C. and B.G.D.). The Penn State Proteomics and Mass Spectrometry Core Facility performed the LC/MS analysis.
N2 - The present study characterized the products formed from the reaction of amino acids and in turn, proteins, with lignin resulting in cross-coupling. When added to reaction mixtures containing coniferyl alcohol, horseradish peroxidase and H2O2, three amino acids (Cys, Tyr, and Thr) are able to form adducts. The low molecular weight products were analyzed by HPLC and from each reaction mixture, one product was isolated and analyzed by LC/MS. LC/MS results are consistent with bond formation between the polar side-chain of these amino acids with Cα. These results are consistent with the cross-coupling of Cys, Tyr and Thr through a quinone methide intermediate. In addition to the free amino acids, it was found that the cross-coupling of proteins with protolignin through Cys or Tyr residues. The findings provide a mechanism by which proteins and lignin can cross-couple in the plant cell wall.
AB - The present study characterized the products formed from the reaction of amino acids and in turn, proteins, with lignin resulting in cross-coupling. When added to reaction mixtures containing coniferyl alcohol, horseradish peroxidase and H2O2, three amino acids (Cys, Tyr, and Thr) are able to form adducts. The low molecular weight products were analyzed by HPLC and from each reaction mixture, one product was isolated and analyzed by LC/MS. LC/MS results are consistent with bond formation between the polar side-chain of these amino acids with Cα. These results are consistent with the cross-coupling of Cys, Tyr and Thr through a quinone methide intermediate. In addition to the free amino acids, it was found that the cross-coupling of proteins with protolignin through Cys or Tyr residues. The findings provide a mechanism by which proteins and lignin can cross-couple in the plant cell wall.
U2 - 10.1016/j.phytochem.2013.09.012
DO - 10.1016/j.phytochem.2013.09.012
JO - Phytochemistry
JF - Phytochemistry
Cong F, Diehl BG, Hill JL, Brown NR, Tien M. Covalent bond formation between amino acids and lignin: Cross-coupling between proteins and lignin. Phytochemistry. 2013;96:449-456. https://doi.org/10.1016/j.phytochem.2013.09.012


*CONTINUING EDUCATION: 12 CE Credits.
This program is approved by the National Association of Social Workers, Provider #886415259 and approved for 12 NAADAC CEU's, Provider #110444. The continuing education credits for this program may also be submitted to the Association of Traumatic Stress Specialists towards certification and re-certificating as a Trauma Specialist, a Trauma Responder, and a Trauma Service Specialist.


Slate is one of the oldest yet most beautiful roofing materials known to man. Slate rock originates from sedimentary particles of clay and silt. Roofing Slate is a dense, durable, natural occurring material that is essentially non-absorbent. The color of slate is determined by its chemical and mineral composition.
Because these factors differ in various regions, roofing slate can be obtained in a variety of colors. The most common thickness used for roofing slate is 3/16" to 1/4". Because of the relatively high cost of slate, the Chicagoland market for this material has decreased.
A roofing square of slate (100 sq. ft.) set at the standard 3-inch head lap will vary in weight from 650lbs. to 8,000 lbs. depending on the thickness of each roofing slate. Slate varies significantly in weight because of the numerous thicknesses and types available from the different quarries. When the weight of felt, nails, and standard 3/16" slate is added, the dead load of slate roofing is approximately 800 pounds per square.
NRCA recommends slate roofing be applied over continuous or closely spaced wood decking. When plywood is used, NRCA recommends the use of a minimum 5/8 thick nominal exterior-grade plywood.
Oriented strand board (OSB): NRCA is concerned with potential fastener-holding problems and dimensional stability because of the effects of moisture where OSB and other non-veneer products are used as roof decking.
Preservative-treated wood: Many roofing material manufacturers recommend wood roof decks be constructed with wood that has been treated with a nonoil preservative pressure treatment or with non-treated air- or kiln-dried lumber.
Underlayment (or "felt paper" as it is frequently called) is installed over the roof deck before the application of slate. An underlayment performs two primary functions: it provides temporary weather protection until the slate is installed, and it provides a secondary weatherproofing barrier if moisture infiltrates the slate roof covering. Many Chicagoland slate roofs have outlived the underlayment felts over which they were installed. Therefore, an underlayment's service life should be comparable to the design service life of the slate roof covering.
Asphalt saturated, non-perforated organic felts are among the most common underlayments; they commonly are designated as Type 15 and Type 30 or referred to as No. 15 and No. 30, which are reflective of a once used pound per square weight designation. The terms Type I and Type II now are used within the industry in lieu of No. 15 or No. 30, respectively.
Another type of roofing underlayment is a synthetic underlayment. It is characterized as being lightweight, water-resistant and less likely to wrinkle; having high tear strength; and being easy to walk on—even when wet. Theoretically, the product may be left exposed to the elements for extended periods of time. Although synthetic roofing underlayments and their purported attributes seem appealing, there are significant issues to consider before using them. To date, there are no applicable ASTM standards for these products. Many synthetic roofing underlayments do not meet current building code requirements, so manufacturers need to obtain a code evaluation report for code compliance.
NRCA recommends a minimum of one layer of No. 30 asphalt-saturated felt applied horizontally in shingle fashion on roof decks having a slope of 8:12 (34 degrees) or more. Where weather conditions are severe and hard wind-driven rains are common, NRCA recommends a minimum of two layers of No. 30 asphalt-saturated felt applied horizontally in shingle fashion. For roof slopes of 4:12 (18 degrees) to 8:12 (34 degrees), a minimum of two layers of No. 30 asphalt-saturated felt are recommended as long as standard-size slate with 3-inch minimum head-lap is used. NRCA does not recommend installing slate roof systems on roof slopes less than 4:12 (18 degrees).
In the Chicagoland area, where the average temperature for January is 30º F or less, NRCA suggests installation of an ice-dam protection membrane. An ice-dam protection membrane generally is a self-adhering polymer-modified bitumen membrane.
An ice dam protection membrane should be applied starting at a roof's eaves and extending upslope a minimum of 24 inches from the exterior wall line of a building. For slopes less than 4:12 (18 degrees), a minimum of 36 inches is recommended.


At Mastercool Aircon, we are proud to offer the best aircon service in Singapore at the most affordable price. Our aircon service contract provides you with the most attractive and flexible service plan to provide clean and hygienic indoor cool air for residential and commercial users, helping us to cope with Singapore's warm climate. We have a variety of quarterly subscription plans, so please call us or visit our current air conditioning service promotion page.
Why choose an aircon servicing contract?
Our Singapore air conditioning service contract helps ensure that your family, friends or customers can use Singapore's top air conditioning services. Our air conditioning repair kits in Singapore are designed to provide residential or commercial customers with air conditioning repairs anytime, anywhere without worrying about payment. .
Regular air conditioning maintenance will ensure that your equipment is not affected by a 5% reduction in the efficiency associated with the accumulation of dust and hot particles in your aircon.
Annual maintenance also helps to optimize performance and reduce the chance of damage which is caused by continuous heating inside the air conditioning unit.
Our experienced technicians have more than 10 years of service experience and are guaranteed to provide the best performance for your cooling options. Our service delivery reputation exceeds our employees and is always committed to ensuring customer satisfaction.
If you want to buy new equipment or replace parts, signing a service contract can also help you get the best air conditioning promotions in Singapore.
*Please note that the air conditioning repair contract does not cover the repair and replacement of air conditioning defective parts. When these costs are discovered, an additional fee for repair and parts replacement will be recommended.
Call us today on +65 8545 0448 or email serviceairconsingapore@gmail.com for our Singapore aircon service contract inquiry .


Fab Single Girl Tyra Banks' New TV Gig!
Former supermodel and businesswoman Tyra Banks is returning to the tv talk show game. The Associated Press reports Tyra will lead a new show with a panel of experts to talk fashion, entertainment and other lifestyle topics. No word yet on who the other panelist will be, but AP reports the show is backed by Disney-ABC Domestic Television. In addition to being the lead host, Tyra will also executive produce the show.
Like most Single women, Tyra wants to get married and have children. She's spoken openly about it over the years, even saying she wanted to have children with or without a husband and is open to adoption. What I love is that Tyra doesn't seem to mourn not having a hubby or kids to the point that she doesn't live her life. She continues to make her time on this earth count. I respect that she took some time out after her first tv talk show, and completed a special business program at Harvard University. She didn't receive her M.B.A. but instead attended the school's Owner/President management extension program. It's expensive, but a smart option for someone who doesn't have the time or the desire to go to business school full time. I am sure what she learned at Harvard will serve her well in making her new talk show a success.
Tyra's new show doesn't have a name yet, but AP reports the show "will motivate people to improve and enhance their lives by providing cutting edge guidance". Another show Tyra created, America's Next Top Model, will also continue to air in 186 countries. No question this lady is Single and Living Fab!
Learning To Wear My Glasses And Live Authentically!


text:
Asian C'ships gold medallist Gomathi fails dope test twice
If her 'B' sample also tests positive, she faces a maximum ban of four years — as this will be her first doping offence — while India will lose a gold medal from the Asian Championships.
Gold medalist Gomathi's 'A' sample has returned positive for a steroid in the test conducted during the Asian Athletics Championships in Doha. - M. VEDHAN
Gomathi Marimuthu, who won the 800 metres gold at the Asian Championships last month, was Tuesday handed a provisional suspension after being tested positive for a banned substance.
The 'A' sample of the 30-year-old runner from Tamil Nadu, who clocked two minute and 2.70 seconds to win the gold on April 22, has returned positive for a steroid in the test conducted during the Asian Athletics Championships in Doha.
READ:| Gomathi's surprise…and the ones that got away at the Asian Athletics Championships
If her 'B' sample also tests positive, she faces a maximum ban of four years — as this will be her first doping offence — while India will lose a gold medal from the Asian Championships. India had won three gold, seven silver and as many bronze medals in the Asian Championships.
"Yes, Gomathi has tested positive for a steroid and she has been placed under provisional suspension," a top source told PTI on condition of anonymity.
It is learnt that Gomathi had earlier tested positive for a banned substance in the sample the National Anti-Doping Agency collected in Patiala during the March 15-18 Federation Cup but was not communicated by the national anti-doping watchdog on time.
"We have learnt that Gomathi also tested positive in the sample taken during the Federation Cup which was held in mid March. But that report is yet to reach us even now, after more than two months. That report is on the way, we have told.
"If the report was handed to us on time, she would have been stopped from taking part in the Asian Championships and the country would have been saved from this humiliation.
"We have no idea why the NADA did not inform us on Gomathi's dope positive result to us before the Asian Championships. There was more than one month's time in between," the AFI official said.
Gomathi has been on the national circuit for some time but her timing has been mediocre. Not a national camper, Gomathi's 2:03.21 performance that gave her a gold in the Federation Cup in March raised questions over her sudden improvement.
"She was not in the national camp and that is why we have been emphasising on the requirement that athletes who have to take part in the international events should be from the national camp," the official said.
Calls to NADA director general Navin Agarwal were not answered.
Gomathi Marimuthu's tale of struggle to athletics glory
Asian Championships gold medallist Gomathi Marimuthu: 'People in my village don't even know sports'
Gomathi eyes Tokyo 2020 via World Championships

redpajama_set_name: RedPajamaCommonCrawl


It can take a lot of time to find good local prospects. If you need more leads quickly, paying for leads can be a very attractive option for many cabinet contractors.
You agree to pay a set price per lead. When a local lead matches your preferences, you'll receive a text message or email with the prospective customer's contact information. It's then up to you to schedule an appointment or provide a quote over the phone.
There are several lead generation companies that serve the cabinet industry. You can purchase 1) custom cabinet leads, 2) cabinet installation leads, 3) cabinet repair leads, 4) cabinet refacing leads, or 5) cabinet refinishing leads – depending on the nature of your business.
Leads may also be categorized by the cabinet material type. Cherry cabinet leads may cost more than pine cabinet installation leads.


In a rural area of the Gambia, WEC is involved with an innovative project which aims to improve the physical, socio-economic and spiritual well-being of the community. There is a nutritional centre which provides care for 114 inpatients, an outpatient therapeutic program which can care for a further 146 patients, a small income generating project, and a medicinal garden.
You might be wondering what a medicinal garden is!
Medicines are very expensive in the Gambia and often the source and safety of the drugs are questionable. The aim of the medicinal garden is to provide food, nutritional supplements and natural medicines for the patients at the nutritional centre. They are able to grow plants which are used to produce creams, medicinal drinks, and nutritional supplements which can significantly help in cases of malnutrition.
In another area of the Gambia, WEC missionary John Grenier is working with local farmers to find better, more effective forms of irrigation, as well as developing a tree nursery to provide people with a variety of fruit trees. Not only will this improve the diet of the community, but it also provides an investment in the bio-health of the land and helps to combat deforestation.
Are you 'green fingered'? The team would love to have more workers to cultivate and maintain the medicinal garden, and at the same time, reach, teach and disciple local people. Could that be you? Contact your nearest WEC branch office for more information.


This simple to use granular Cat Repellent from Growing Success will deter cats from scratching, digging and fouling in your garden. Contains natural aromatic essential oils on an inert base. Safe to use around children and pets.


text:
GIWPS > Resources > UN Security Council Resolution 1325 on Women, Peace and Security
UN Security Council Resolution 1325 on Women, Peace and Security
Towards an Effective and Inclusive Irish National Action Plan
Authored by: Ireland 1325
Categories: The Field of Women, Peace and Security
Sub-Categories: International Law, National Action Plans, UN Resolutions
Region: Europe and Eurasia
Citation: UN Security Council Resolution 1325 on Women, Peace and Security: Towards an Effective and Inclusive Irish National Action Plan. Dublin: Ireland 1325, June 2010.
This Good Practice Guide seeks to contribute positively to the development of an effective and inclusive Irish National Action Plan (NAP) to implement UN Security Council Resolution (UNSCR) 1325 and related commitments on women, peace and security (1820, 1888 and 1889). It draws extensively on recommendations from previous research undertaken by the Joint Consortium on Gender Based Violence, set out in two key reports – Stepping Up Ireland's Response to Women, Peace and Security (2008) and Women, Peace and Conflict: UN SCR Resolution 1325 (2009). In addition to providing background information on UNSCR 1325 and Ireland's efforts to implement the resolution, the main purpose of the Guide is to signpost the eight essential steps to achieving an effective and inclusive National Action Plan. The final section also contains sample strategic objectives, actions, indicators and targets of the type that we can expect to find in a UNSCR 1325 National Action Plan produced to current international standards. The actual strategic objectives of the Irish National Action Plan should emerge from the kind of consultative process recommended in this Guide. The samples illustrate the form and level of specificity that Government commitments should take in a National Action Plan. As such they are points of departure for discussion in the formulation of proposed objectives rather than proposals per se.


Because everybody loves flowers, these gorgeous 3D Acrylic Nail Art Ideas art designs are perennial. Right ideas are extremely crucial to give effect to cute flower 3D Acrylic Nail Art Ideas designs. But, you always lack in that, Isn't it? Don't get stressed now! When spring is in the air, we want to wear flowers head to toe! NaWhen it comes to 3D Acrylic Nail Art Ideass and 3D Acrylic Nail Art Ideas art, pretty much anything can inspire you; you can draw inspiration from nature, from bling, from fabrics and even art. ils included.
When it comes to 3D Acrylic Nail Art Ideass and 3D Acrylic Nail Art Ideas art, pretty much anything can inspire you; you can draw inspiration from nature, from bling, from fabrics and even art. An elegant example how to pair black and white flower 3D Acrylic Nail Art Ideas with jewelry and rings. Sprucing up your look with a dash of spring just can't go wrong with these season-inspired flower 3D Acrylic Nail Art Ideas designs.Luxurious Interior and Comfortable Facility. Clients who come to Golden Flower are not rushed, and we do not overbook our clients.
The ever-expanding collection features hippie-style flowers and modern motifs, as well as blooms found from all over the world.A simple step by step 3D Acrylic Nail Art Ideas art photo tutorial on how to create these pretty hand-painted flower accent 3D Acrylic Nail Art Ideass.Beautiful 3D flower and butterfly 3D Acrylic Nail Art Ideas art stickers with rhinestones, different sized stickers for your different finger and toe 3D Acrylic Nail Art Ideas.


text:
package com.tle.web.controls.externaltools;

import com.dytech.common.text.NumberStringComparator;
import com.tle.annotation.NonNullByDefault;
import com.tle.annotation.Nullable;
import com.tle.beans.item.attachments.Attachment;
import com.tle.beans.item.attachments.CustomAttachment;
import com.tle.beans.item.attachments.IAttachment;
import com.tle.common.Check;
import com.tle.common.NameValue;
import com.tle.common.URLUtils;
import com.tle.common.externaltools.constants.ExternalToolConstants;
import com.tle.common.externaltools.entity.ExternalTool;
import com.tle.common.i18n.CurrentLocale;
import com.tle.common.i18n.LangUtils;
import com.tle.core.externaltools.service.ExternalToolsService;
import com.tle.core.guice.Bind;
import com.tle.core.mimetypes.MimeTypeConstants;
import com.tle.web.controls.externaltools.LtiHandler.LtiHandlerModel;
import com.tle.web.controls.universal.AbstractDetailsAttachmentHandler;
import com.tle.web.controls.universal.AttachmentHandlerLabel;
import com.tle.web.controls.universal.BasicAbstractAttachmentHandler;
import com.tle.web.controls.universal.DialogRenderOptions;
import com.tle.web.resources.ResourcesService;
import com.tle.web.sections.SectionInfo;
import com.tle.web.sections.SectionTree;
import com.tle.web.sections.annotations.Bookmarked;
import com.tle.web.sections.equella.annotation.PlugKey;
import com.tle.web.sections.events.RenderContext;
import com.tle.web.sections.events.js.JSHandler;
import com.tle.web.sections.jquery.Jq;
import com.tle.web.sections.js.JSCallable;
import com.tle.web.sections.js.generic.OverrideHandler;
import com.tle.web.sections.js.generic.function.ExternallyDefinedFunction;
import com.tle.web.sections.js.generic.function.IncludeFile;
import com.tle.web.sections.render.Label;
import com.tle.web.sections.render.SectionRenderable;
import com.tle.web.sections.render.TagState;
import com.tle.web.sections.standard.Checkbox;
import com.tle.web.sections.standard.Div;
import com.tle.web.sections.standard.SingleSelectionList;
import com.tle.web.sections.standard.TextField;
import com.tle.web.sections.standard.annotations.Component;
import com.tle.web.sections.standard.model.SimpleHtmlListModel;
import com.tle.web.sections.standard.renderers.ImageRenderer;
import com.tle.web.viewurl.ItemSectionInfo;
import com.tle.web.viewurl.ViewableResource;
import com.tle.web.viewurl.attachments.AttachmentResourceService;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.inject.Inject;

/** @author larry */
@Bind
@NonNullByDefault
public class LtiHandler extends BasicAbstractAttachmentHandler<LtiHandlerModel> {
  // rather than null as UUID for manually input values
  public static final String AUTOMATIC_UUID = ExternalToolConstants.AUTOMATIC_UUID;

  @PlugKey("handlers.lti.select.automatic")
  private static String AUTOMATIC;

  @PlugKey("externaltoolresource.details.mimetype")
  private static String FALLBACK_DESCR;

  @PlugKey("handlers.lti.name")
  private static Label NAME_LABEL;

  @PlugKey("handlers.lti.description")
  private static Label DESCRIPTION_LABEL;

  @PlugKey("handlers.lti.add.title")
  private static Label TITLE_ADD_LABEL;

  @PlugKey("handlers.lti.edit.title")
  private static Label TITLE_EDIT_LABEL;

  @PlugKey("handlers.lti.error.invalid")
  private static Label LABEL_ERROR_NOLAUNCHURL;

  @PlugKey("handlers.lti.warning.unmatched")
  private static Label LABEL_ALT_MISMATCH_URL;

  @PlugKey("handlers.lti.error.badurl")
  private static Label LABEL_ERROR_INVALID;

  @Inject private ExternalToolsService externalToolService;
  @Inject private AttachmentResourceService attachmentResourceService;

  private Map<ExternalTool, String> enabledExternalToolMap;

  @Component(name = "ltisel")
  private SingleSelectionList<NameValue> ltiSelector;

  @Component private TextField launchUrl;

  @Component private Div warningDiv;

  @SuppressWarnings("nls")
  private static final String WARNING_DIV = "warningDiv";

  @SuppressWarnings("nls")
  private final String warningPngPath =
      ResourcesService.getResourceHelper(LtiHandler.class).url("images/warning.png");

  @SuppressWarnings("nls")
  private static final IncludeFile INCLUDE_FILE =
      new IncludeFile(
          ResourcesService.getResourceHelper(LtiHandler.class).url("js/updateBaseUrlMatches.js"));

  /**
   * The method to evaluate if the text in the user-entered launchUrl field matches the
   * (non-automatic) selection in the LTI selector, and renders a warning if mismatch identified.
   */
  @SuppressWarnings("nls")
  private static final JSCallable FUNC_UPDATE_BASE_MATCH =
      new ExternallyDefinedFunction("updateBaseUrlMatches", INCLUDE_FILE);
  /**
   * A javascript timer wrapper for the above method, so that when entering keystrokes in user-time,
   * there is a discrete pause (3 seconds) before invoking the match.
   */
  @SuppressWarnings("nls")
  private static final JSCallable TIMER_UPDATE_BASE_MATCH =
      new ExternallyDefinedFunction("timerUpdateBaseUrlMatches", INCLUDE_FILE);

  @Component private TextField consumerKey;
  @Component private TextField sharedSecret;
  @Component private TextField customParams;

  @Component private TextField iconUrl;

  @PlugKey("handlers.lti.privacy.default")
  @Component
  private Checkbox useDefaultPrivacy;

  @PlugKey("handlers.lti.sharename")
  @Component
  private Checkbox shareName;

  @PlugKey("handlers.lti.shareemail")
  @Component
  private Checkbox shareEmail;

  // Probably don't need an explicit TagState for the icon renderer ...
  @SuppressWarnings("nls")
  private static final String URL_MISMATCH_WARNING_TAG_STATE = "urlmismatchwarningtagstate";

  @Override
  public AttachmentHandlerLabel getLabel() {
    return new AttachmentHandlerLabel(NAME_LABEL, DESCRIPTION_LABEL);
  }

  @Override
  public boolean supports(IAttachment attachment) {
    if (attachment instanceof CustomAttachment) {
      CustomAttachment ca = (CustomAttachment) attachment;
      return ExternalToolConstants.CUSTOM_ATTACHMENT_TYPE.equals(ca.getType());
    }
    return false;
  }

  @Override
  @SuppressWarnings("nls")
  public String getHandlerId() {
    return "ltiHandler";
  }

  @Override
  public void treeFinished(String id, SectionTree tree) {
    super.treeFinished(id, tree);

    enabledExternalToolMap = new HashMap<ExternalTool, String>();
    for (ExternalTool externalTool : externalToolService.enumerateEnabled()) {
      enabledExternalToolMap.put(externalTool, LangUtils.getString(externalTool.getName()));
    }

    List<NameValue> displayNamesWithUuids = new ArrayList<NameValue>(enabledExternalToolMap.size());
    for (ExternalTool lti : enabledExternalToolMap.keySet()) {
      displayNamesWithUuids.add(new NameValue(enabledExternalToolMap.get(lti), lti.getUuid()));
    }
    // Case insensitive
    Collections.sort(
        displayNamesWithUuids,
        new NumberStringComparator<NameValue>() {
          @Override
          public String convertToString(NameValue nv) {
            return nv.getName();
          }
        });

    // Put the automatic selection option at the head of the list
    NameValue defaultNameValue = automaticLtiSelection();
    displayNamesWithUuids.add(0, defaultNameValue);
    ltiSelector.setListModel(new SimpleHtmlListModel<NameValue>(displayNamesWithUuids));
    setupMismatchEval();

    useDefaultPrivacy.addClickStatements(
        new OverrideHandler(
            shareEmail.createDisableFunction(), useDefaultPrivacy.createGetExpression()),
        new OverrideHandler(
            shareName.createDisableFunction(), useDefaultPrivacy.createGetExpression()));
  }

  @Override
  public void createNew(SectionInfo info) {
    super.createNew(info);
    clearAllInputControls(info);
  }

  @Override
  protected List<Attachment> createAttachments(SectionInfo info) {
    CustomAttachment ltiAttachment = new CustomAttachment();
    ltiAttachment.setType(ExternalToolConstants.CUSTOM_ATTACHMENT_TYPE);

    // If non-null, becomes the EXTERNAL_TOOL_UUID value in the data map
    NameValue selectedValue = ltiSelector.getSelectedValue(info);
    ExternalTool lti = null;

    if (!automaticLtiSelection().equals(selectedValue)) {
      String selectedUuid = selectedValue.getValue();
      lti = externalToolService.getByUuid(selectedUuid);
    }
    ltiAttachment.setDescription(defaultTitle(info));
    String enteredUrl = launchUrl.getValue(info);
    populateAttachmentFromControls(info, ltiAttachment, enteredUrl, lti);
    // keep the model in step with controls
    LtiHandlerModel model = getModel(info);
    model.setCurrentLtiSelection(selectedValue);
    model.setEnteredLaunchUrl(enteredUrl);

    return Collections.singletonList((Attachment) ltiAttachment);
  }

  @Override
  protected boolean validateAddPage(SectionInfo info) {
    getModel(info).clearErrors();
    return super.validateAddPage(info) && validateUrlFields(info);
  }

  /**
   * With the same controls as the add page, we apply the same validation (as well as the edit
   * page's additional validation of display link.
   */
  @Override
  protected boolean validateDetailsPage(SectionInfo info) {
    getModel(info).clearErrors();
    return super.validateDetailsPage(info) && this.validateAddPage(info);
  }

  @Override
  protected void saveDetailsToAttachment(SectionInfo info, Attachment attachment) {
    super.saveDetailsToAttachment(info, attachment);
    String enteredUrl = launchUrl.getValue(info);
    ExternalTool lti = null;
    // If the selector's not on automatic, get the ExternalTool
    if (!ltiSelector.getSelectedValue(info).equals(automaticLtiSelection())) {
      lti = externalToolService.getByUuid(ltiSelector.getSelectedValue(info).getValue());
    }

    populateAttachmentFromControls(info, (CustomAttachment) attachment, enteredUrl, lti);
  }

  /**
   * The lti-edit screen repeats the controls of the lti-add screen, with the addition of a text box
   * requiring the user to provide/edit the display name of the link..
   */
  @Override
  @SuppressWarnings("nls")
  protected SectionRenderable renderDetails(
      RenderContext context, DialogRenderOptions renderOptions) {
    final Attachment attachment = getDetailsAttachment(context);

    LtiHandlerModel model = getModel(context);
    // Do we already have values entered in the model? (ie are we revisiting
    // this page?)
    NameValue modelSelection = model.getCurrentLtiSelection();
    String modelUrl = model.getEnteredLaunchUrl();
    // Common details
    ItemSectionInfo itemInfo = context.getAttributeForClass(ItemSectionInfo.class);
    ViewableResource resource =
        attachmentResourceService.getViewableResource(
            context, itemInfo.getViewableItem(), attachment);
    addAttachmentDetails(context, resource.getCommonAttachmentDetails());

    // Attachment description defaults to the name of the LTI external tool.
    getDisplayName().setValue(context, attachment.getDescription());

    // load up the attachment ...
    setAttachmentValueToControls(context, attachment);

    // .. but reimpose the model values if they existed
    if (modelSelection != null) {
      model.setCurrentLtiSelection(modelSelection);
      ltiSelector.setSelectedValue(context, modelSelection);
    }

    if (!Check.isEmpty(modelUrl)) {
      model.setEnteredLaunchUrl(modelUrl);
      launchUrl.setValue(context, modelUrl);
    }
    ImageRenderer warningRenderer =
        new ImageRenderer(
            new TagState(URL_MISMATCH_WARNING_TAG_STATE), warningPngPath, LABEL_ALT_MISMATCH_URL);

    boolean hideWarningIcon = checkForMismatchWarning(context, this.launchUrl.getValue(context));

    model.setHideMismatchWarning(hideWarningIcon);
    warningRenderer.setStyles(null, "warningimg", null);

    model.setMatchUrlWarning(warningRenderer);

    String iconUrlStr = iconUrl.getValue(context);
    boolean badThumbnailEntered = false;
    if (!Check.isEmpty(iconUrlStr)) {
      badThumbnailEntered = !URLUtils.isAbsoluteUrl(iconUrlStr);
      if (badThumbnailEntered) {
        iconUrlStr = null;
      }
    }
    if (Check.isEmpty(iconUrlStr) && !badThumbnailEntered) {
      // nothing explicit (valid or otherwise) for this attachment, so
      // look for LTI url
      iconUrlStr = externalToolService.findApplicableIconUrl(attachment);
    }
    model.setThumbnail(new ImageRenderer(iconUrlStr, null));

    return viewFactory.createResult("lti-edit.ftl", this);
  }

  @Override
  @SuppressWarnings("nls")
  protected SectionRenderable renderAdd(RenderContext context, DialogRenderOptions renderOptions) {
    LtiHandlerModel model = getModel(context);
    // If the model is already errored, it's because we're reloading the
    // addPage for the second time, after causing an error (eg bad URL), in
    // which case we keep whatever's in the launchUrl (provided it's not
    // null)
    if (!model.isError() || launchUrl.getValue(context) == null) {
      populateLtiSelector(context, model.getCurrentLtiSelection());
    }

    boolean hideWarningIcon = true;
    // badlaunchurl error if it's present takes precedence over mismatch
    // warning
    if (!model.getErrors().containsKey("badlaunchurl")) {
      hideWarningIcon = checkForMismatchWarning(context, model.getEnteredLaunchUrl());
    }

    model.setHideMismatchWarning(hideWarningIcon);

    ImageRenderer warningRenderer =
        new ImageRenderer(
            new TagState(URL_MISMATCH_WARNING_TAG_STATE), warningPngPath, LABEL_ALT_MISMATCH_URL);
    warningRenderer.setStyles(null, "warningimg", null);
    model.setMatchUrlWarning(warningRenderer);
    return viewFactory.createResult("lti-add.ftl", this);
  }

  private void setupMismatchEval() {
    // For the benefit of Javascript, create a simple array of paired LTI
    // BaseUrls & uuids strings
    String[][] selectablePairs = new String[enabledExternalToolMap.size()][2];
    int i = 0;
    for (ExternalTool lti : enabledExternalToolMap.keySet()) {
      selectablePairs[i][0] = lti.getBaseURL();
      selectablePairs[i][1] = lti.getUuid();
      i++;
    }
    // The selector gets the direct javascript method to determine if a
    // warning icon should be displayed ...
    ltiSelector.addChangeEventHandler(
        new OverrideHandler(
            FUNC_UPDATE_BASE_MATCH,
            launchUrl.createGetExpression(),
            selectablePairs,
            ltiSelector.createGetExpression(),
            Jq.$(new TagState(WARNING_DIV))));

    // .. whereas the text field gets the timer-wrapped version of same.
    launchUrl.addEventStatements(
        JSHandler.EVENT_KEYUP,
        new OverrideHandler(
            TIMER_UPDATE_BASE_MATCH,
            launchUrl.createGetExpression(),
            selectablePairs,
            ltiSelector.createGetExpression(),
            Jq.$(new TagState(WARNING_DIV))));
  }

  protected void populateLtiSelector(SectionInfo info, @Nullable NameValue selection) {
    // Use the passed in value if it exists, otherwise set the default as
    // the selection
    if (selection == null) {
      selection = automaticLtiSelection();
    }
    // ensure model and control are singing from the same song-sheet
    ltiSelector.setSelectedValue(info, selection);
    getModel(info).setCurrentLtiSelection(selection);
  }

  private void populateAttachmentFromControls(
      SectionInfo info,
      CustomAttachment ltiAttachment,
      String enteredUrl,
      @Nullable ExternalTool lti) {
    setNonNullValueOrRemoveIfNull(
        ltiAttachment,
        (lti != null ? lti.getUuid() : AUTOMATIC_UUID),
        ExternalToolConstants.EXTERNAL_TOOL_PROVIDER_UUID);

    setNonNullValueOrRemoveIfNull(ltiAttachment, enteredUrl, ExternalToolConstants.LAUNCH_URL);

    if (!Check.isEmpty(customParams.getValue(info))) {
      ltiAttachment.setData(
          ExternalToolConstants.CUSTOM_PARAMS,
          externalToolService.parseCustomParamsString(customParams.getValue(info)));
    } else {
      ltiAttachment.getDataAttributes().remove(ExternalToolConstants.CUSTOM_PARAMS);
    }

    setNonNullValueOrRemoveIfNull(
        ltiAttachment, consumerKey.getValue(info), ExternalToolConstants.CONSUMER_KEY);

    setNonNullValueOrRemoveIfNull(
        ltiAttachment, sharedSecret.getValue(info), ExternalToolConstants.SHARED_SECRET);

    setNonNullValueOrRemoveIfNull(
        ltiAttachment, iconUrl.getValue(info), ExternalToolConstants.ICON_URL);
    // default privacy means the attachement's shareEmail & shareName
    // settings are voided, and the negation of default privacy means the T
    // or F settings of the shareEmail & shareName booleans are explicitly
    // preserved.
    if (useDefaultPrivacy.isChecked(info)) {
      ltiAttachment.getDataAttributes().remove(ExternalToolConstants.SHARE_NAME);
      ltiAttachment.getDataAttributes().remove(ExternalToolConstants.SHARE_EMAIL);
    } else {
      ltiAttachment.setData(ExternalToolConstants.SHARE_NAME, shareName.isChecked(info));
      ltiAttachment.setData(ExternalToolConstants.SHARE_EMAIL, shareEmail.isChecked(info));
    }
  }

  private Object setNonNullValueOrRemoveIfNull(
      Attachment ltiAttachment, String val, final String key) {
    if (!Check.isEmpty(val)) {
      ltiAttachment.setData(key, val);
      return val;
    } else if (ltiAttachment.getData(key) != null) {
      return ltiAttachment.getDataAttributes().remove(key);
    }
    return null;
  }

  /** We validate the URL here, whether or not it's been entered/edited manually */
  @SuppressWarnings("nls")
  private boolean validateUrlFields(SectionInfo info) {
    LtiHandlerModel model = getModel(info);
    String ltiUrl = getLaunchUrl().getStringValue(info);
    model.setEnteredLaunchUrl(ltiUrl);
    if (Check.isEmpty(ltiUrl)) {
      // Empty URL field requires an actual selection of LTI
      if (ltiSelector.getSelectedValue(info).equals(automaticLtiSelection())) {
        model.addError("nolaunchurl", LABEL_ERROR_NOLAUNCHURL);
      }
    } else {
      if (!URLUtils.isAbsoluteUrl(ltiUrl)) {
        model.addError("badlaunchurl", LABEL_ERROR_INVALID);
      }
    }
    // The icon url must be a valid URL - rather than simply ignoring a bad
    // URL It seems meet to force either validity or nix.
    String iconUrlStr = iconUrl.getValue(info);
    if (!Check.isEmpty(iconUrlStr)) {
      if (!URLUtils.isAbsoluteUrl(iconUrlStr)) {
        model.addError("badiconurl", LABEL_ERROR_INVALID);
      }
    }

    return !model.isError();
  }

  /**
   * Convenience method to set the control values from the attachment.
   *
   * @param info
   * @param ltiAttachment
   */
  private void setAttachmentValueToControls(SectionInfo info, Attachment ltiAttachment) {
    // if attachment has an ExternalTool UUID which matches a current
    // (enabled) LTI, present that LTI as the current selection in the LTI
    // drop down, otherwise LTI dropdown defaults to 'automatic'.
    String attachmentLtiUuid =
        (String) ltiAttachment.getData(ExternalToolConstants.EXTERNAL_TOOL_PROVIDER_UUID);
    boolean selectionSet = false;
    if (!Check.isEmpty(attachmentLtiUuid)) {
      for (ExternalTool lti : enabledExternalToolMap.keySet()) {
        if (lti.getUuid().equals(attachmentLtiUuid)) {
          populateLtiSelector(info, new NameValue(enabledExternalToolMap.get(lti), lti.getUuid()));
          selectionSet = true;
          break;
        }
      }
    }
    if (!selectionSet) {
      populateLtiSelector(info, automaticLtiSelection());
    }
    String enteredUrl = (String) ltiAttachment.getData(ExternalToolConstants.LAUNCH_URL);
    launchUrl.setValue(info, enteredUrl);
    getModel(info).setEnteredLaunchUrl(enteredUrl);
    consumerKey.setValue(info, (String) ltiAttachment.getData(ExternalToolConstants.CONSUMER_KEY));
    sharedSecret.setValue(
        info, (String) ltiAttachment.getData(ExternalToolConstants.SHARED_SECRET));
    Object val = ltiAttachment.getData(ExternalToolConstants.CUSTOM_PARAMS);
    @SuppressWarnings("unchecked")
    List<NameValue> dataCustomParams = (List<NameValue>) val;
    if (dataCustomParams != null && !Check.isEmpty(dataCustomParams)) {
      customParams.setValue(info, externalToolService.customParamListToString(dataCustomParams));
    }
    iconUrl.setValue(info, (String) ltiAttachment.getData(ExternalToolConstants.ICON_URL));

    // If either shareEmail or shareName values explicitly exist in the
    // attachment, the 'useDefaultPrivacy' must be false
    if (ltiAttachment.getData(ExternalToolConstants.SHARE_NAME) != null
        || ltiAttachment.getData(ExternalToolConstants.SHARE_EMAIL) != null) {
      useDefaultPrivacy.setChecked(info, false);
      shareName.enable(info);
      shareEmail.enable(info);
      if (ltiAttachment.getData(ExternalToolConstants.SHARE_NAME) != null) {
        shareName.setChecked(
            info, (Boolean) ltiAttachment.getData(ExternalToolConstants.SHARE_NAME));
      } else {
        shareName.setChecked(info, false);
      }
      if (ltiAttachment.getData(ExternalToolConstants.SHARE_EMAIL) != null) {
        shareEmail.setChecked(
            info, (Boolean) ltiAttachment.getData(ExternalToolConstants.SHARE_EMAIL));
      } else {
        shareEmail.setChecked(info, false);
      }
    } else {
      useDefaultPrivacy.setChecked(info, true);
      shareName.setChecked(info, false);
      shareEmail.setChecked(info, false);
      shareName.disable(info);
      shareEmail.disable(info);
    }
  }

  /**
   * Make sure we have some sort of descriptive string as edit dialog title. When editing an
   * existing attachment, the edit title will be that attachment's display string. Here we make sure
   * we've got something presentable ahead of providing a the mandatory display value for an LTI
   * attachment.
   *
   * @param context
   * @param model
   */
  private String defaultTitle(SectionInfo context) {
    String editTitle = null;
    LtiHandlerModel model = getModel(context);
    if (Check.isEmpty(model.getEditTitle())) {
      if (!Check.isEmpty(launchUrl.getValue(context))) {
        editTitle = launchUrl.getValue(context);
      } else {
        if (model.getCurrentLtiSelection() != null) {
          editTitle = model.getCurrentLtiSelection().getName();
        }
        // we really wouldn't expect to be rendering details without one
        // of the above clauses holding
      }
      if (Check.isEmpty(editTitle)) {
        // ... so if all else fails, fall back to something bland
        editTitle = CurrentLocale.get(FALLBACK_DESCR);
      }
      model.setEditTitle(editTitle);
    }
    return editTitle;
  }

  /**
   * @param info
   * @param enteredLaunchUrl
   * @return true if warning should remain hidden, otherwise false to display warning
   */
  private boolean checkForMismatchWarning(SectionInfo info, String url) {
    // display our error and/or warnings if appropriate ...
    if (!Check.isEmpty(url)
        && !ltiSelector.getSelectedValue(info).equals(automaticLtiSelection())) {
      String uuid = ltiSelector.getSelectedValue(info).getValue();
      ExternalTool externalTool = externalToolService.getByUuid(uuid);
      return url.equals(externalTool.getBaseURL());
    }
    return true;
  }

  private NameValue automaticLtiSelection() {
    return new NameValue(CurrentLocale.get(AUTOMATIC), AUTOMATIC_UUID);
  }

  @Override
  public Label getTitleLabel(RenderContext context, boolean editing) {
    return editing ? TITLE_EDIT_LABEL : TITLE_ADD_LABEL;
  }

  @Override
  public String getMimeType(SectionInfo info) {
    return MimeTypeConstants.MIME_LINK;
  }

  @Override
  public boolean isMultipleAllowed(SectionInfo info) {
    return false;
  }

  public TextField getLaunchUrl() {
    return launchUrl;
  }

  public TextField getConsumerKey() {
    return consumerKey;
  }

  public TextField getSharedSecret() {
    return sharedSecret;
  }

  public TextField getCustomParams() {
    return customParams;
  }

  public TextField getIconUrl() {
    return iconUrl;
  }

  public Checkbox getUseDefaultPrivacy() {
    return useDefaultPrivacy;
  }

  public Checkbox getShareName() {
    return shareName;
  }

  public Checkbox getShareEmail() {
    return shareEmail;
  }

  public SingleSelectionList<NameValue> getLtiSelector() {
    return ltiSelector;
  }

  public Label getWarningDivLabel() {
    return LABEL_ALT_MISMATCH_URL;
  }

  public Div getWarningDiv() {
    return warningDiv;
  }

  private void clearAllInputControls(SectionInfo info) {
    LtiHandlerModel model = getModel(info);
    model.clearErrors();
    model.setCurrentLtiSelection(null);
    model.setEnteredLaunchUrl(null);
    launchUrl.setValue(info, null);
    consumerKey.setValue(info, null);
    iconUrl.setValue(info, null);
    sharedSecret.setValue(info, null);
    customParams.setValue(info, null);
    useDefaultPrivacy.setChecked(info, Boolean.TRUE);
    shareName.disable(info);
    shareEmail.disable(info);
    shareName.setChecked(info, false);
    shareEmail.setChecked(info, false);
  }

  @Override
  public Class<LtiHandlerModel> getModelClass() {
    return LtiHandlerModel.class;
  }

  @NonNullByDefault(false)
  public static class LtiHandlerModel
      extends AbstractDetailsAttachmentHandler.AbstractAttachmentHandlerModel {
    @Bookmarked private NameValue currentLtiSelection;
    @Bookmarked private String enteredLaunchUrl;
    @Bookmarked private boolean hideMismatchWarning;

    private ImageRenderer matchUrlWarning;

    public NameValue getCurrentLtiSelection() {
      return currentLtiSelection;
    }

    public void setCurrentLtiSelection(NameValue currentLtiSelection) {
      this.currentLtiSelection = currentLtiSelection;
    }

    public String getEnteredLaunchUrl() {
      return enteredLaunchUrl;
    }

    public void setEnteredLaunchUrl(String enteredLaunchUrl) {
      this.enteredLaunchUrl = enteredLaunchUrl;
    }

    public boolean isHideMismatchWarning() {
      return hideMismatchWarning;
    }

    public void setHideMismatchWarning(boolean hideMismatchWarning) {
      this.hideMismatchWarning = hideMismatchWarning;
    }

    public ImageRenderer getMatchUrlWarning() {
      return matchUrlWarning;
    }

    public void setMatchUrlWarning(ImageRenderer renderer) {
      matchUrlWarning = renderer;
    }

    public boolean isError() {
      return getErrors().size() > 0;
    }

    public void clearErrors() {
      this.getErrors().clear();
    }
  }
}

redpajama_set_name: RedPajamaGithub


text:
A chain boat, chain tug or chain-ship was a type of river craft, used in the second half of the 19th century and first half of the 20th century on many European rivers, that made use of a steel chain laid along the riverbed for its propulsion. The chain was engaged using a steam engine mounted on board and enabled the boat to tow a string of barges. In Germany, such a boat was variously referred to as a Kettenschleppschiff, Kettenschlepper, Kettendampfer or Kettenschiff and in France as a toueur.

The chain was raised out of the water over a boom at the bow of the ship and led over the deck along the ship's axis to the chain engine amidships. The transfer of power from the steam engine to the chain was usually achieved using a drum winch. From there the chain was led over the deck to another boom at the stern and lowered once more into the river. By moving the stern boom and the two rudders, front and aft, from side to side it was possible to replace the chain in the centre of the river again, even when negotiating river bends.

History

Chain boat navigation revolutionised inland shipping during the Industrial Revolution in the second half of the 19th century in Europe and superseded the hitherto commonplace haulage of barges by draught animals or people. The chain drive of these riverboats made optimal use of still relatively low-powered steam engines of that period. In addition, the boats were especially well suited to the difficult condition of river navigation that pertained at that time: many rivers were shallow or fast-flowing and effectively precluded the use of paddle steamers. As a result, chain boats were soon being used on many rivers across Europe. But by the first half of the 20th century they were increasingly threatened by competition from ever more powerful paddle steamers, something that was aided by the canalization of rivers.

The first designs and early technical stages in the development of chain boats took place in the mid-19th century, especially in France.  The prototype of all later chain boats on the rivers Elbe, Neckar and Main was the French steamboat La Ville de Sens, which was built by the German engineer, M Dietz, around 1850 in Bordeaux and plied the upper Seine between Paris and Montereau. Its technically very advanced operating principle and its engineering features were adopted by all the later European chain steamers.

Design

The hull of these symmetrically-designed boats was almost level with the surface of the water at the bow and stern. This design reduced the power needed to lift the tow chain onto the bow of the boat and also reduced the draught at the bow. The greater height of the boat in the centre made it easier to accommodate the steam engine. This deck shape - low at the bow and stern, and higher in the centre - is typical of all subsequently built chain boats.

Chain boats were favoured on shallow rivers with fast currents. This was the reason for the flat, shallow draught of their keels. Chain boats optimized for particularly shallow water had a draught of only  when unladen. Even fully laden with coal, their draught was only about . This shallow draught enabled river transportation even in the dry summer months when the water level of rivers could be very low.

Shorter chain boats - with lengths from , and widths from  - were more manoeuvrable and well suited to narrow rivers with many bends, for example on the Saale. Longer craft - with lengths from , and widths from  - were more suited to relatively deep rivers such as the Elbe. The deeper a waterway was, the greater the power needed to lift the heavy chain. The bow of the ship was pulled down further. On larger boats this effect is less.

The hull itself was made of iron or wood and could withstand light impacts with the riverbed. If, however, it was holed the hull was compartmentalized internally by several waterproof bulkheads that prevented the craft from sinking. Below deck were the steam engine, the coal bunkers and the crew accommodation.

Control and navigation

In chain boat navigation the chain was simply laid "loose" on the riverbed for long distances of up to several hundred kilometres. Only the deadweight of the massive chain, which weighed about  or , and its natural snagging on the sand and stones of the riverbed provided resistance, so that the chain boat and its attached barges could haul themselves along the chain. The water bore the weight of the boats and barges, whilst the chain only had to cope with the power of the engine. The chain was only anchored at its two ends so that boats could continue to haul themselves to the end of the chain route.

A problem was caused by sideways displacement of the chain. At bends in the river there was a tendency for the chain, that was laid in a curve, to increasingly pull itself straight and so move towards the inside of the bend. In order to prevent this, chain boats were fitted, fore and aft, with large, powerful rudders. These rudders sometimes had a length of over four metres and were worked with the aid of control wheels on the deck.

At the bow and stern of the boat the chain was led along a boom that projected well beyond the end of the deck. This prevented the chain from hitting the long rudders. The booms were movable and could be swung sideways using a hand crank. The boat could thereby be oriented at an angle to the direction of the chain. This also improved the chances of replacing the chain back in the centre of the river.

The boom was also fitted with chain interception equipment so that, in the event of the chain breaking, it would not be able to run away. If the chain catch was not quick enough to hook into the chain, it would simply run away and disappear into the river. It then had to be painstakingly located with a drag anchor and salvaged.

Chain driver
In the first generation of chain boats the chain ran over chain drums at the side of the boat. In fast-flowing currents or when there were problems lifting the chain due to silting or obstacles on the riverbed such as large rocks, the boat could swing off-course markedly and list to one side. As a result, on later chain boats, the chain drive was always located on the centerline of the boat.

Drum winch

The older chain boats on the Elbe, the chain steamers on the Neckar and the three craft on the Main belonging to the Hessian Mainkette company used a drum winch to transfer power. In order to ensure the necessary traction on the chain on the driving drums, the chain was wound several times around two traction drums placed one behind the other in the centre of the boat. The chain ran in four to five grooves and was alternately wound over the front and rear drums.

The disadvantage of this method was that the chain frequently broke. This did not simply occur due to the overloading of the chain by the length of the barge train. It has been calculated that even if the chain links wore down to half their original cross-section, this force would not have led to a break. Rather the problem lay in the fact that frictional wear on the forward traction drum was much heavier than on the rear. And once the diameters of the two drums became unequal, more chain wrapped around the after drum than could be handled by the forward one. This could produce tensions both on the drums and between them that were so large that the chain links could not withstand the tensile load and their fracture limit was exceeded.

This effect became even more pronounced if the chain became twisted, e.g., the chain was pulled to one side or had even formed knots. This increased the turn radius by up to 25%, whereby the 5% elastic limit of the chain was reached.

The transfer of tractive force from the drums to the chain was only achieved by friction. If frost or ice built up, the chain could slip. In such events, hot water was poured over the drums.

Another problem with drum winches was the relatively large length of chain –  – that had to be wound several times around the two drums. If the chain boat was only used to haul barges upstream, it could not simply reduce the amount of chain needed for the drums on the way back otherwise, after a certain time, the surplus chain would pile up at the head of the operating section and there would be no slack at the start. In order to try to avoid this problem, the chain boat always carried the corresponding section of chain with it downstream and dropped it at the start of the chain route. As a result, there was a continual movement of the chain, that made control more difficult in more dangerous sections of the river, such as rapids. In particular, reinforced chain sections that were deliberately used, moved continually upstream. Also jettisoning the chain temporarily when two chain boats met was relatively difficult due to the multiple windings of the chain round the two drums.

Many of the chain steamers without their own auxiliary engines had different gearing for moving upstream and downstream. When travelling upstream, it was designed for higher traction; when travelling downstream it was engineered for faster speed.

Chain grip-wheel

The chain grip-wheel (Kettengreifrad) was designed in May 1892 by Ewald Bellingrath, the director general of the German Elbe shipping company, Kette, in Übigau, in order to overcome the problem of continual chain breakages. This device was used in various chain ships on the Elbe as well as the eight chain boats of the Royal Bavarian Chain Boat Company on the River Main. The idea of the mechanism was to use just one drum or wheel for the actual drive and not to wrap the chain around it several times, but to wind it only partially over the wheel (Diagram 1). The design was supposed to engage the chain securely without letting it slip. It was also supposed to work with different chain thicknesses and lengths of chain link, and independently of their orientation (e.g. angled or on their side). Even if a knot formed in the chain the design was supposed to respond without a problem.

The chain was engaged in the transmission area by many movable side pins that hooked the chain from the left and right hand sides (Diagram 2). Critics were initially concerned that the many individual moving components of the "catcher" would quickly wear. This fear was allayed, however, by a three-year-long trial that began in May 1892. On the contrary, by using a catcher, the transmission of power was improved so that more barges could be hauled in one string. As a consequence all new chain boats built by Kette in Übigau were fitted with catchers.

On the River Main, however, the chain grip-wheels were replaced by drum winches again in 1924, because the first ones were too prone to failure.

Electromagnetic drum
Another attempt to reduce the frequency of chain breakages and the movement of the chain in the river came from France and was introduced in November 1892 on the Lower Seine near Paris. Its inventor, de Bovet, developed a technique to increase the friction on the transmission drum by magnetic force. Here, too, the chain was only wound three-quarters of the way around the traction drum. The engagement of the chain on the traction drum was achieved by magnetic force created by electromagnets that were built into it. The electric current needed for this was generated by its own engine and a ca. 3 HP dynamo.

The magnetic force was sufficient, despite the short length for which the chain was wrapped around the drum, on a trial with an old,  chain to generate a tractive force of around .

Auxiliary engines
In addition to the main engine for hauling the chain, most of the later chain boats had an auxiliary engine. This enabled boats to be driven without needing to use the chain, and was mainly used when travelling downstream. Downstream journey times were thus reduced because of the higher boat speeds that could be attained and because it was no longer necessary to follow the time-consuming and complicated passing procedure when boats travelling in opposite directions on the same chain encountered one another. In addition, it spared wear and tear on the chain.

Water turbines

In 1892 chain boats using Zeuner water turbines were introduced on the Elbe. They were a precursor of the present-day hydrojet propulsion systems. In addition to faster downstream travel times, the auxiliary engine also enabled steering corrections during chain operations and simplified turning manoeuvres. Water turbines were used on several chain boats on the Elbe and on the Bavarian chain boats on the Main.

Water was sucked in through two rectangular intakes in the side of the chain steamer's hull. It then flowed through the turbine inside the hull. The turbine accelerated the water and forced it through the rear-facing outlets in the side of the hull. The outflowing jets of water propelled the boat forwards (upper diagram of the elevation view). To reverse the direction of travel, the reversing element was swung around so that water was forced in the opposite direction (lower diagram of the elevation view). The pump direction of the turbine was always the same, regardless.

These second generation chain steamers were equipped with two of these water turbines, which were found on the port and starboard sides.<ref>[http://www.kettendampfer-magdeburg.de/daten-fakten/ Kettenschleppdampfer "Gustav Zeuner"] at www.kettendampfer-magdeburg.de. Retrieved 4 Mar 2014.</ref> During a turning manoeuvre the water flowed forwards on one side and backwards on the other in order to rotate the boat.

 Paddle wheels and screw propellers
On the Danube, chain ships were unable to travel downstream on the chain because of strong currents. If the chain boat was forced to stop suddenly, for example as a result of a chain breakage, there was a real danger that the barges at the rear would run into those at the front, causing a shipping accident. They therefore had large, side-mounted paddle wheels as auxiliary propulsion for the downstream journey which were driven by engines with a rating of 300–400 hp.

The third type of auxiliary propulsion was the screw propeller. This type of auxiliary system was used by some craft on the Danube for downstream journeys in order to enable barges to be towed in that direction as well.

 See also

 References

 Literature
 Sigbert Zesewitz, Helmut Düntzsch, Theodor Grötschel: Kettenschiffahrt. VEB Verlag Technik, Berlin, 1987,
 Kettenschleppschiffahrt. In: Otto Lueger: Lexikon der gesamten Technik und ihrer Hilfswissenschaften, Vol. 5, 2nd completed revised edition, Deutsche Verlagsanstalt: Stuttgart und Leipzig, 1907, pp. 460–462 zeno.org
 Georg Schanz: "Studien über die bay. Wasserstraßen Band 1, Die Kettenschleppschiffahrt auf dem Main", C.C. Buchner Verlag, Bamberg, 1893 (digitalised text from the Library of the Seminar for Economic and Social History of the University of Cologne)
 Theodor Grötschel und Helmut Düntzsch: Betriebsmittelverzeichnis der KETTE – Deutsche Elbschiffahrts-Gesellschaft. In: Ewald Bellingrath: Ein Leben für die Schiffahrt, Schriften des Vereins zur Förderung des Lauenburger Elbschiffahrtsmuseums e.V., Vol. 4, Lauenburg, 2003
 Carl Victor Suppán: Wasserstrassen und Binnenschiffahrt. A. Troschel: Berlin-Grunewald, 1902, Section: Dampfschiffahrt. (Ketten- und Seiltauer. pp. 261/262, Tauereibetrieb. pp. 262–265, Auf- und Abnehmen der Kette. p. 265, Kettenrolle mit Fingerlingen. p. 266, Elektrische Kettenrolle. p. 266, Vor- und Nachtheile der Tauerei. pp. 266–269, Versuche mittels endloser Kette''. pp. 269/270)

External links

 Video of a journey on an electric chain boat through the Tunnel of Riqueval, retrieved 15 November 2010
 Forum with many old photographs of chain boats from France (French), retrieved 12 July 2013

Shipping
Barges

redpajama_set_name: RedPajamaWikipedia


This kit includes all you need to make two 6" x 8" or one double 6" x 8" photo frame. Contains 12 pieces of top-quality chipboard and a link to an easy, step-by-step assembly guide.
Pictured frame was altered with papers from the Come Away With Me paper collection by Graphic 45.


text:
cauda equina syndrome - physiopediabest business process management certification
cauda equina syndrome - physiopedia
Conversely, bending forward may relieve . The syndrome is most commonly found in the lower back (lumbar) and neck (cervical). The cauda equina is a collection of spinal nerves that travel through the lumbar cistern as they leave the vertebral column. Pressure on nerves in the lumbar region (lower back) can also cause more serious symptoms known as cauda equina syndrome. Cauda equina syndrome an abnormal sensation of the body (parasthesia), for example, numbness, tingling, or burning, and is an extreme version of nerve compression or inflammation. The cost of managing spinal stenosis is enormous, and for patients, it can lead to . In patients with cauda equina syndrome, something compresses on the spinal nerve roots.. The cauda equina is the bundle of nerves and nerve roots arising from terminal spinal segment from L7 to Cd1 - Nd5, where the following nerves originate: sciatic, obturator pudendal, femoral, pelvic and coccyx. 2009;91(4):358-9; author reply 9-60. CES can lead to Bladder-Bowl incontinence and weakness or paralysis of Both Lower limb. Cauda equina syndrome (CES) occurs when the nerve roots of the cauda equina are compressed and disrupt motor and sensory function to the lower extremities and bladder. Conus medullaris syndrome (CMS) and cauda equina syndrome (CES) are complex neurological disorders that can be manifested through a variety of symptoms. Of course, anytime neck, back, or spine symptoms get worse or you are having a hard time performing daily activities, make sure you make an . Cauda equina syndrome, BMJ;2009, 338:b936. Cauda Equina Syndrome - Physiopedia www.physio-pedia.com. The conus medullaris, which is the terminal segment of the adult spinal cord, lies at the inferior aspect of the L1 vertebrae. Prevalence. Causes CES most commonly results from a massive herniated disc in the lumbar region. Pathology. While some patients may improve with time, the majority have a progression of the condition, leading to disability. advertisement. Early diagnosis is critical and is made clinically by characteristic symptoms of saddle-like paresthesias combined with acute back and leg pain. Neurogenic claudication (impingement and inflammation of spinal nerves) causes cramping, pain, and/or tingling in the low back, legs, hips, and buttocks. Discectomy is indicated for radicular pain unresponsive to conservative management (e.g. The cost of managing spinal stenosis is enormous, and for patients, it can lead to . Cauda equina syndrome (CES) is a particularly serious type of nerve root problem. It typically causes back pain and bowel and bladder dysfunction, spastic or flaccid weakness depending on the level of the lesion, and bilateral sensory loss. Fish anatomy skeletal system bony structure fishes skeleton diagram labeled bones spines evolution draw fin spine skull tail ray fins Fish Anatomy Schools at Look4 we have 9 Pictures about Fish Anatomy Schools at Look4 like Cauda Equina Syndrome - Physiopedia, The Axis (2nd Cervical Vertebra) | ClipArt ETC and . Sometimes, an electromyography, which tests the function of certain nerves, is conducted to rule out other diseases that cause nerve damage. Cauda Equina Syndrome. 1. Full Membership Checkout. physiopedia), article reference lists and . To find out more about claiming compensation for Cauda Equina Syndrome, contact us today at The Cauda Equina Solicitors. Prompt recognition and treatment of the underlying cause is important to minimize residual symptoms. CESR (Complete CES) patients have already developed true retention. Cauda equina syndrome is a neurological condition in which the cauda equina nerves in the lower back are compressed and damaged. Up to two people in every 100 with herniated lumbar discs . Transferred a patient to another facility needing Surgery that has Cauda Equina Syndrome. Diagnosis is made by x-ray, CT or MRI of the spine, but SCI due to SCC can occur with no findings on imaging, a situation termed SCI . This is severe lower back pain caused due to something pushing down on the spinal roots, Cauda Equina, that are responsible for receiving and sending messages to feet, legs and pelvic organs. The presenting symptoms are a result of spinal cord injury (SCI) or root dysfunction and include paresis, sensory changes or loss of sensation, sphincter dysfunction (urinary or anal), and erectile problems. Cauda equina syndrome occurs when the nerve roots in the lumbar spine are compressed, cutting off sensation and movement. The CE provides innervation to the lower limbs, and sphincter,controls the function of the bladder and distal bowel and sensation to the skin around the bottom and back passage [1]. Prevalence. Patients with this syndrome are often admitted to the hospital as a medical emergency. Cauda equina syndrome occurs in approximately 2% of cases of herniated lumbar discs (2,9). Conus medullaris syndrome is a collection of signs and symptoms associated with injury to the conus medullaris. The patient's vertebral discs prolapse and Cauda equina syndrome. Plexus prevertebral wikipedia. Accredited for CEUs and CPD. An MRI can be particularly useful for ruling out cauda equina syndrome. It can also result from a trauma such as a car accident, gunshot wound, a stabbing or a fall. See Lumbar Decompression Back Surgery Lumbar Laminectomy Surgery Video Save Cauda equina syndrome will make the perineum, genitals and buttocks feel numb. Cauda Equina Syndrome Variable manifestation of: Back pain with unilateral or bilateral leg pain And one or more of the following Perianal/perineal sensory loss Bladder disturbance Rectal sphincter dysfunction Sexual impotence and may also have lower limb weakness or sensory loss Due to a number of conditions: Acute Cauda Equina Syndrome is a Medical Emergency that requires timely diagnosis and treatment to reverse or stop the worsening of neurological and chemical damage to the spinal nerve roots (the nerves in the low back). Cauda Equina Syndrome (CES) is a serious pathology that occurs when there is compression of the cauda equina which can lead to permanent loss of bowel and bladder control, loss of sensation in the perineal and saddle region and of the lower extremities as well as weakness of the lower quadrant. This can cause sciatica, weakness, numbness, or difficulty controlling specific muscles. Source: Lavy, C. et al. It is reported in approximately 0.04% of all patients presenting with low back pain. Symptoms of SEL are non-specific and most commonly present as myelopathy, radiculopathy, sensory disturbances, or claudication.5,6 While some patients may have back pain, weakness, paresthesias, or ataxia early on, others may remain asymptomatic until their disease has progressed to late stages.7,8 On rare occasions, cauda equina syndrome and . It is due to a nerve compression that an acute loss of function of the lumbar plexus occurs which stops the sensation and . The authors describe a simple clinical adjunct to the routine neurological examination of patients with intermittent cauda equina compression syndrome. Most surgeons recommend decompression as soon as possible, within about 8 hours of the onset of symptoms if symptoms develop suddenly. Cauda equina syndrome (CES) occurs when there is dysfunction of multiple lumbar and sacral nerve roots of the cauda equina. Severe or increasing numbness between the legs, inner thighs, and back of . Meniscus knee lateral medial joint vascular anatomy internal tibia supply body its . Cauda equina syndrome: Strong: Bladder or bowel incontinence, urinary retention, progressive motor or sensory loss: Strong: Major motor weakness or sensory deficit, loss of anal sphincter tone . Assessment & Diagnosis. The conus medullaris is the bundled, tapered end of the spinal cord nerves. CES produces a characteristic set of clinical features and is a surgical emergency requiring urgent intervention to prevent permanent neurological deficits. Weakness, tingling, or numbness in the legs, and/or feet on one or both sides of the body is a common symptom. Cauda Equina Syndrome is caused by severe compression of the nerve roots in the thecal sac of the lumbar spine, most commonly due to an acute lumbar disc herniation. Patients with central spinal stenosis may have difficulty walking and have gait disturbances. Without immediate treatment patient can have permanent paralysis. It is not uncommon to have lower back pain however, if this is associated with any of the following "red flags", Cauda Equina Syndrome could be suspected and should be discussed with your doctor. If cauda equina syndrome is not treated in time . There is pressure on the nerves at the very bottom of the spinal cord. This is a rare disorder where the nerves at the very bottom of the spinal cord are pressed on. The pressure on the nerves stops the nerves from working properly. These nerves control bowel and bladder functions as well as movement and sensation in the legs and feet. The diagnosis of cauda equina syndrome is primarily based on a thorough . A host of symptoms will arise because of this nerve damage, including pain, weakness and numbness in the legs/feet. Cauda equina syndrome is a serious condition where a narrowing of the spinal canal causes these nerves to become compressed, leading to problems which include: Numbness and weakness in one or both legs. 1 The segment above the conus is termed the epiconus, consisting of spinal cord segments L4-S1. The measure of classification relies on the bladder or bowel dysfunction in relation to retaining. A pinprick test can confirm whether the loss of sensation is being caused by the cauda equina nerve roots. Numbness of the saddle area around the back passage. The suggestion that the bulbocavernosus reflex is used in diagnosing CES is impractical. Cauda equina syndrome occurs in approximately 2% of cases of herniated lumbar discs (2,9). Cauda equina syndrome is a particularly serious type of nerve root problem that can be caused by a prolapsed disc. 6. It is most commonly caused by an acutely extruded lumbar disc and is considered a diagnostic and surgical emergency. 149.50 (GBP/year) 14 day money-back guarantee. This syndrome can be serious and can prompt legal claims if symptoms are misdiagnosed, say physios Laura Finucane, Chris Mercer and Sue Greenhalgh. ; Nerves that branch off of the spinal cord (also called nerve roots) are an extension of the spinal cord and are responsible for sending signals to and from the muscles and other structures throughout the body. Gardner A, Gardner E, Morley T. Cauda equina syndrome: a review of the current clinical and medico-legal position. Typical symptoms of cauda equina syndrome include: Neurological symptoms in the lower body. weakness) or for cauda equina syndrome. If the spinal cord is involved, it may cause myelopathy problems with the spinal cord resulting . Cauda equina syndrome refers to a collection of symptoms and signs that result from severe compression of the descending lumbar and sacral nerve roots. Please call us free on 0800 234 3300, from a mobile click to call 01275 334030 or complete . Cauda equina syndrome is an uncommon compression of the nerves at the end of the spinal cord within the spinal canal. Herniated disc Author: Shahab Shahid MBBS Reviewer: Uruj Zehra MBBS, MPhil, PhD Last reviewed: June 27, 2022 Reading time: 9 minutes Herniated disc is a condition in which there is a lesion or rupture in the outer fibrous ring of the intervertebral disc (annulus), that leads to bulging of the inner portion (nucleus). In some cases, it may lead to cauda equina syndrome. Fortunately, cauda equina syndrome is rare, and most people who experience neck, back, and spine symptoms rarely need surgery, and symptoms can be managed with nonsurgical therapies and at-home care. 1518 hours of accredited learning. Signs and Symptoms of Cauda Equina Syndrome with Back Pain 'Saddle anaesthesia' Cauda equina syndrome: Cauda equina syndrome is a particularly serious type of nerve root problem that can be caused by a prolapsed disc. Noninfectious etiologies may also cause cauda equina syndrome in HIV-infected individuals, especially in well-controlled disease under antiretroviral therapy. Wall Art Print Springtime Roses Spine Anatomical Wall Art | Etsy Cauda equina syndrome is an uncommon compression of the nerves at the end of the spinal cord within the spinal canal. The spinal cord is shorter than the vertebral column, which causes nerves that innervate the lower limbs to bundle together as they travel down through the vertebral column to leave at the appropriate level. Patients may present with back pain, unilateral or bilateral leg pain, paresthesias and weakness, perineum or saddle anesthesia, and rectal and/or urinary incontinence or dysfunction. The diagnosis of cauda equina syndrome is primarily based on a thorough . Cauda Equina Syndrome Variable manifestation of: Back pain with unilateral or bilateral leg pain And one or more of the following Perianal/perineal sensory loss Bladder disturbance Rectal sphincter dysfunction Sexual impotence and may also have lower limb weakness or sensory loss Due to a number of conditions:
Italian Restaurant Kirchberg
Happy Birthday Pencil Drawing
Nadal Goffin Highlights
Pulp Fiction Bechdel Test
Mini R53 Exhaust Manifold
Signs Of An Enigmatic Person
What Fruits Cannot Be Composted
Manjaro Terminal Customization
Destiny 2 Rhulk Artstation
Conversation View In Outlook


Let's not just be surprised by this huge percentage, but also look at what can be done about it!
Just what is a tic?
A tic is an involuntary muscle movement that is repeated. It can be a "motor" body tic, like jerking your arm or tossing your head back over and over—or a verbal tic, like making noises or saying words uncontrollably.
There are three main categories of tics.
To meet the diagnostic criteria for each of these, the tics would have started before age 18 and should not have been caused by a medication. (This is not to say that adults don't sometimes develop tics for the first time but this is not as common.) Below is a summary from an article by the CDC on diagnosing tics.
A provisional tic disorder: Single or multiple motor and/or vocal tics. The tics have been present for less than one year.
Persistent (chronic) motor or vocal tic disorder: Single or multiple motor or vocal tics have been present—but not both motor and vocal. The tics have persisted for more than one year.
Tourette syndrome: Both multiple motor and one or more vocal tics have been present at some time, although not necessarily concurrently. The tics have persisted for more than one year.
Doctors like to apply labels to symptoms, but actually the distinction between categories is considered somewhat arbitrary, particularly the time requirement (one year) before diagnosing a person with Tourette's, versus the same symptoms at a duration of 11 months. The specific diagnosis does not serve to determine medication needs as much as does the severity and level of distress caused by the tics.
The three tic categories above are not intended to include tics that are due to a specific medical condition, such as an underlying viral or bacterial infection, including Lyme disease. An increasing and alarming number of children are exhibiting symptoms of Pediatric Acute-onset Neuropsychiatric Syndrome (PANS), which includes PANDAS (due to strep).
PANS symptoms usually come on suddenly. A child with this disorder may have a dramatic onset of obsessive-compulsive behaviors and a restriction in eating along with some of these symptoms: anxiety, mood swings, deterioration in school work, sleep disturbances – and tics, among other symptoms. It is important to see a knowledgeable physician as soon as possible if you suspect your child may be suffering from PANS.
Learn more from the PANDAS Network here.
Not dealing with tics? Please share this with someone who is!
Why do I ask you to share this article? Because all parents of children with tics have one thing in common: They feel helpless. They want to make the tics stop, they want to help their child, but they don't know what to do.
I know this because I was one of those parents. And I have since spent more than 25 years collecting feedback from others in the same situation, and sharing what they or their doctor found helpful to relieve the tics.
Small, fleeting tics are quite common with kids. I recommend you try some of the common sense approaches below. If these efforts are pursued consistently, tics may be reduced or eliminated. If not, or if they worsen to the point of being of concern, consult your pediatrician and/or a neurologist to rule out any nervous system disorders.
Often, doctors will advise to "watch and wait," to see if tics go away on their own. Also, it is usually recommended to reduce stress, because it is well known that stress can make tics worse.
Medications are available to treat tics, but they can have serious side effects, so doctors use them with caution and only when they feel it is necessary.
What doctors frequently fail to do is recommend changes in the diet or environment to reduce tics, because studies have not been completed in this area. That's where parents come in!
What's a parent to do about tics?
First, make some common sense adjustments. Just as migraines and asthma attacks have triggers, like certain foods, perfume, and exposure to smog or allergens, so, too, do tics.
In fact, Tourette syndrome is considered to be 60% genetic and 40% environmental. You just don't hear much about the role of the environment, and unfortunately, the medical community has downplayed its importance and failed to research the topic.
Rather than wait for studies that can be a long time coming, you can try some of the tips below. Take action and check what in the "environment"—which includes diet—could be playing a role in tics.
You will have to play detective. Once you find a trigger, do your best to avoid or eliminate it.
Clues about triggers for tics can be gleaned from another medical condition that often overlaps with Tourette syndrome: Migraine. Did you know that migraine headaches are four times as common among people with Tourette syndrome as the general population? Triggers for migraine are widely studied and shared with patients. For starters, You can get some good ideas on possible triggers from the American Migraine Foundation.
In addition, I outline eight types of tic triggers in my book, Stop Your Tics by Learning What Triggers Them.
Within each those types are a number of specific exposures or agents. There is no one answer for everyone. In the book, tools and advice are given for identifying and dealing with triggers.
Eliminating tics triggers is not usually the total answer for everyone, any more than avoiding dust will remove all symptoms for someone with inhalant allergies. But it is clearly advisable for someone to avoid identified tics triggers. Why suffer more than you have to?
It is well known that stress can make tics worse. With this in mind, patients and families can aim to reduce stress on the physical body, not just by relaxing or focusing on the emotional level. Ask a medical practitioner or nutritionist to recommend nutrients that are helpful for reducing stress (i.e., B vitamins).
You can also try to calm the child's nervous system by avoiding environmental factors that can aggravate it. These aggravating factors may be right under your nose!
Allergy has been linked to tics in several studies. If your child has allergies, be diligent with avoiding allergens, such as dust, mold, inhalants and animal dander. Pursue allergy treatment, if needed.
Keep a log and watch for any dietary triggers for symptoms. For example, artificial colors, flavors, and preservatives have been proven to cause hyperactivity. Ask yourself if tics get worse after eating items with these additives. Also, watch for any pattern with tics after consuming other items to see if a food allergy or intolerance are involved. In addition to additives, some common examples are corn, wheat, dairy, nuts, soy, and sugary items. These are patient-specific.
Avoid pesticides and herbicides! After all, these are developed to purposely disrupt the nervous system. It is a no-brainer to stay away from these. Eat organic when feasible, and use alternative pest control.
Go natural at home. Typical scented products—from laundry detergent to air fresheners—can aggravate the nervous system. Also, get "back to the basics" with cleaning products. You can explore the internet for ideas (i.e., time-proven classics like using baking soda and vinegar to clean) or purchase non-toxic products made by companies like Seventh Generation.
Encourage playtime, board games and sports over screen time (using tablets, cell phone, computer, video games) in kids. Parents and practitioners have reported seeing an increase in tics after a child spends time with screens.
Resourceful parents and adults dealing with tics can often find ways to reduce symptoms. Avoiding triggers is only one approach that might help, and keep in mind that what bothers one person may not bother someone else.
Have an open mind as you go through this process. It is well worth the effort to be watchful and aware of anything in the environment and diet that might be affecting stress and tics.
Black, Kevin J., Elizabeth R. Black, Deanna J. Greene, and Bradley L. Schlaggar.


SMARTInsurance USA – We provide personal and business protection, the SMART way!
At SMART Insurance, our vision is to always be recognized as the best provider of insurance products designed to meet all the needs of Florida residents. We want to welcome newcomers to the State of Florida, that are seeking to achieve their dreams, by providing meaningful destination advice. Our desire is to be your personal insurance agency with a focus on friendship and trust. We want to earn your trust and become your first choice whenever you need to insure your paradise.
We will develop and nurture lasting customer relationships, based on a foundation of providing trusted and proven solutions, for all our clients. We pledge to always operate with honesty and integrity in all our undertakings. It is our commitment to help every client fulfill their dreams, providing managed asset protection and experienced destination consultation. Our strength will be on our commitment to the customer, and our focus will be to develop a large network of business partners with the same goals.


text:
Qi Huan Gong ou le duc Huan de Qi (齐桓公; pinyin Qí Huán Gōng) (mort en -643), était un souverain chinois. Quinzième chef de l'État de Qi, il a été le premier des Cinq Hégémons de la Période des Printemps et des Automnes. Son nom de famille est Jiāng (姜) et son nom personnel Xiǎobái (小白). De concert avec son conseiller et ministre Guan Zhong, il est l'auteur d'importantes réformes administratives, militaires et fiscales.

L'arrivée au pouvoir

Sous le règne de Qi Xiang Gong (Duc Xiang de Qi), le grand frère de Jiang Xiaobai, les affaires de l'état sont en désarroi. Devinant les bouleversements à venir, le maître de Xiaobai, Bao Shuya, aide son protégé à fuir vers le petit état voisin de Ju (district de Ju dans le Shandong actuel). En -686, son cousion Jiang Wuzhi tue Qi Xiang Gong et s'empare du trône. L'année suivante (-685), Jiang Wuzhi meurt à son tour aux mains de son vassal, le maître Yong, et le pays sombre dans l'anarchie, faute de souverain.

En apprenant la chute de Jiang Wuzhi, Xiaobai embarque sur le chemin du retour, rappelé en secret par les chefs de clan de Qi, dont l'appui est assuré par son ami d'enfance, Gao Xi. En même temps, son demi-frère Gongzi Jiu (fils de duc Jiu), appuyé par l'État de Lu, retourne lui aussi vers le pays afin de saisir le pouvoir. Dans le but de bloquer le retour de Xiaobai, l'État de Lu envoie Guan Zhong couper le chemin menant de Ju vers Qi. Lors de leur rencontre, Guan Zhong décroche une flèche vers Xiaobai, et croit l'atteindre. Sauvé par un crochet en métal servant à attacher ses vêtements, celui-ci feint toutefois la mort.

Réconforté par la nouvelle du décès de son demi-frère, Gongzi Jiu ralentit le pas, prenant six jours pour arriver à Qi. Xiaobai, caché dans un palanquin couvert, se précipite alors et est accueilli par Gao Xi, qui l'installe sur le trône. Xiaobai, en acceptant le titre de duc, prend le nom de Huan, devenant alors le duc Huan de Qi.

La consolidation du pouvoir

Qi Huan Gong envoie des troupes contrer l'armée de Lu, qu'il défait à Ganshi (aujourd'hui Huantai, dans la municipalité de Zibo). Ensuite, Bao Shuya écrit au marquis de Lu: « Gongzi Jiu est le frère du duc de Qi, qui ne supporterait pas le tuer personnellement. Veuillez l'exécuter vous-même. Ses maîtres Zhao Hu et Guan Zhong sont nos ennemis jurés, faites-les escorter jusqu'ici, où ils seront coupés en morceaux et mangés. Si ces exigences ne sont pas respectées, une expédition punitive sera envoyée contre vous. »

La peur s'installe au pays de Lu et Gongzi Jiu est tué. Zhao Hu se suicide, et Guan Zhong est emprisonné. Qi Huan Gong veut la tête de Guan Zhong, mais Bao Shuya l'en dissuade : « Votre serviteur a eu le bonheur de vous suivre, et vous êtes devenu le monarque. Si Votre Altesse veut gouverner le pays de Qi, alors Gao Xi et moi-même vous suffirons. Mais si vous voulez régner sur toute la Terre, il vous faudra aussi Guan Zhong. Il est capable de soumettre tous les pays, vous ne devez pas vous passer de lui. »

Le duc Huan suit ces conseils et, feignant de vouloir l'exécuter, fait venir Guan Zhong au pays de Qi. Les deux hommes discutent de l'art de gouverner et de la conquête et Huan, agréablement surpris par sa nouvelle connaissance, nomme Guan Zhong officier responsable de l'administration. C'est dans ce rôle qu'il procédera à d'importantes réformes.

Les réformes

Réformes administratives et politiques

Les réformes touchent les divisions administratives du pays. En premier lieu, on distingue la capitale de la frontière. La capitale compte 21 cantons (乡, xiāng), dont six sont économiques et 15 sont ordinaires (ou militaires). En partant de la base, les familles sont regroupées par cinq dans des « sentiers » (轨, guǐ). Quatre sentiers forment un « quartier » (里, lǐ) et il y quatre quartiers dans une « compagnie » (连, lián). Enfin, chaque canton compte dix compagnies.

En dehors de la capitale, les familles sont regroupées par 30 dans des municipalités (邑, yì). Dix municipalités font un zú (卒) et dix zú forment un canton. À la différence de la capitale, les cantons sont ensuite regroupés par trois dans des districts (县, xiàn), et il y a dix districts dans un fief (属, shǔ). Chaque fief a à sa tête un grand préfet (大夫, dà fū). L'état comptant en tout cinq fiefs, les cinq grands préfets si divisent l'administration nationale.

Premier hégémon

En -667, le duc Huan convoque à Zhen (ville de Juancheng, Heze, dans le Shandong actuel) la première alliance attestée de l'histoire chinoise. Il y réunit les chefs des États de Chen, Song, ainsi que d'autres, sous sa domination. Or, les États des Plaines centrales (Nord de la Chine actuelle, centre de la civilasation chinoise de l'époque) faisaient la guerre régulièrement à leurs voisins non-Hans, qu'ils appelaient d'ailleurs des « barbares ». Sous la devise « Honorez le roi et résistez aux barbares » (尊王攘夷, pinyin: zūnwáng rǎngyí), qui fera plus tard école, l'alliance combat les montagnards du Nord ainsi que Hans de l'État de Chu, au Sud. Il s'ensuit que Huan s'érige en hégémon et il est même récompensé par le roi de Zhou.

Les dernières années de la vie du duc Huan sont moins heureuses. Après la mort de Guan Zhong, il se fie à des conseillers de peu de valeur (Yi Ya 易牙, Shu Diao 竖刁). À la fin de ces jours, le pays s'enfonce vers l'anarchie. Mort de faim, il n'est même pas inhumé.

Notes et références

Période des Printemps et des Automnes
Shandong
Personnalité politique chinoise
Duc de Qi
Monarque chinois du VIIe siècle av. J.-C.


text:
Trump's Trade Wars Hit Cannabis Businesses Hard
The Death Penalty for Cannabis: Which Countries Are Enforcing Right Now
Origins of Cannabis: Plant Was First Domesticated 12,000 Years Ago
New Marijuana Legalization Proposal Unveiled
The MORE Act Aims to Legalize Cannabis
Photo Gage Skidmore
In a fast and furious exchange of retaliatory tariffs, Donald Trump and China's president Xi Jinping appear to have initiated a trade war this week. The cannabis sector is particularly vulnerable, according to industry insiders.
Bill Weinberg
Under the Trade Expansion Act of 1962, the U.S. president has the power to unilaterally impose tariffs if it deemed a matter of national security. President Donald Trump this week used that power — and things escalated rapidly.
Trump on July 6 imposed tariffs of 25 percent on some $34 billion worth of Chinese imports, citing "unfair trade practices." This is a reference to claims of industrial espionage and intellectual property violations. China immediately retaliated by imposing tariffs on $34 billion in U.S. exports to China. On July 10, Trump struck back again, imposing tariffs of 10 percent on an additional $200 billion of Chinese imports.
Gregg Gorski, general manager of Smokebuddy, a producer of hand-held personal air filters, says Trump's move will have a clear impact on his business. "A 25 percent duty on anything that comes from China costs importers that much more," he told Cannabis Now. "With Trump's order, 1,300 items got an extra 25 percent duty."
And Smokebuddy's filters, which are produced at a small plant in China's southern industrial hub of Guangzhou, are among them.
"Our costs went up by 25 percent," says Gorski. "So we have to add another 25 percent to our price when we sell to our distributors. So they have to raise the price when they sell to the store, and the store has to raise the price when it sells to the end-buyer. We can't eat the increase because we were already running on a 30 percent margin. So the increase would eat into our bottom line."
The same principle applies to a wide range of products. "Everything that's made in China that we consume in U.S. has gone up," says Gorski. "Computers, cell phones, televisions, construction equipment. It doesn't just affect us as the importers, it's affected the entire U.S. economy."
Smokebuddy has been producing its line of personal filters, designed to eliminate second-hand smoke, for 10 years. "In 10 years, we've never raised our prices," says Gorski. "Now due to tariffs, we've had to raise the price — but we don't make any more money. We have to give that extra to the government."
Gorski says the Smokebuddy "serves a purpose for people who want to be discrete with their smoking." He is based at the company's Los Angeles office, which employs 12 people, but frequently travels to the Guangzhou plant, which employs 40.
Explaining the logic of using Chinese labor, Gorski echoes the language of globalization: "Costs in the U.S. would have been double that in China. We could have done it here, but that would have left the door open to someone else doing it in China for half the costs."
He points to vape pens, lighters and butane gas as other cannabis-related products that will be impacted by Trump's edict.
The hope that Congress will restrain Trump looks slim. On July 11, the Senate approved a measure calling on Trump to consult with Congress on the tariffs by a vote of 88-11. But the measure is non-binding. Faced with the certainty of a Trump veto, Senate Republican leaders have not acted on a bipartisan bill to impose actual binding limits on Trump's ability to impose tariffs.
And the same cycle of tariffs and retaliatory tariffs also unfolded this week with Canada and Mexico.
China is meanwhile attempting to rally opposition to Trump in the World Trade Organization — giving us the unlikely prospect of the Communist Party-ruled country posing as the champion of free trade against a protectionist United States.
TELL US, have you felt any effects from Trump's new tariffs?
Related Topics:Cannabis, China, Congress, Donald Trump, global trade, Smokebuddy, tariffs, Xi Jinping
Fear, Loathing & Phone-Based Weed Delivery in Haight-Ashbury
Hedge Fund Interest Shows Big Money Slowly Turning to Marijuana