Just before 4 p.m., Demaggio was driving west on the 5700 block of Wrightsboro Road just west of Water Branch Baptist Church outside Grovetown when she ran off the right side of the road, said Columbia County Sheriff’s Capt. Sharif Chochol.

Authorities on Sunday arrested a North Augusta couple accused of burglary after they led deputies on a high-speed chase into South Carolina.

A Grovetown man called deputies at about 10:45 a.m. Sunday, stating they saw a man go into their neighbor’s garage and come out carrying a backpack leaf blower. The man, later identified as Jack Holt, 24, threw the blower into the trunk of a white Dodge Intrepid and sped away.

A Richmond County Sheriff’s Office motorcycle deputy was critically injured Thursday afternoon when he crashed his personal motorcycle on Interstate 20.

Deputy Alton Creech, who was off duty, was approaching the Belair Road westbound exit on his Harley-Davidson shortly after 5 p.m. when he hit the back of a 1999 Toyota Camry, said Columbia County sheriff’s Capt. Steve Morris.

Creech, 32, was airlifted to Georgia Regents Medical Center and listed in critical condition, according to a hospital spokeswoman.

The former treasurer of an Evans neighborhood association has been charged with stealing more than a quarter-million dollars from the organization.

Laurie Wainwright Vanover, , of the block of, was charged with multiple counts of financial transaction card fraud, computer theft, theft by taking and theft by conversion after turning herself in Tuesday morning at the Columbia County Sheriff’s Office, said Capt. Steve Morris.

Two Augusta teens were arrested early Tuesday after authorities say one robbed a Martinez convenience store at gunpoint and then led deputies on a brief chase.

James Eric Gibbons, 17, of Sasser Lane, and Evan terry Ramsey, 17, of Martin Luther King Jr. Boulevard, were charged with armed robbery and are being held in the Columbia County Detention Center without bond, according to Columbia County sheriff’s Capt. Steve Morris.

The following accounts were taken from reports from the Columbia County Sheriff’s office:

Online date harasses man after learning he’s married

An Evans man told deputies Tuesday that a woman he met through on online dating site harassed him at work after learning he was married.

The 28-year-old man said he met the woman on Zoosk and they dated for a few weeks. She bought him an amplifier for his car, but after discovering he was married, the woman asked to be repaid. The man agreed.


Q:

Side effects not realized without deref

From clojure for the brave and true:
(defmacro enqueue
  [q concurrent-promise-name & work]
  (let [concurrent (butlast work)
        serialized (last work)]
    `(let [~concurrent-promise-name (promise)]
       (future (deliver ~concurrent-promise-name (do ~@concurrent)))
       (deref ~q)
       ~serialized
       ~concurrent-promise-name)))
(defmacro wait
  "Sleep `timeout` seconds before evaluating body"
  [timeout & body]
  `(do (Thread/sleep ~timeout) ~@body))
(time @(-> (future (wait 200 (println "'Ello, gov'na!")))
           (enqueue saying (wait 400 "Pip pip!") (println @saying))
           (enqueue saying (wait 100 "Cheerio!") (println @saying))))

If I comment out the (deref ~q) line, then only "Cheerio!" is printed. Why do I need deref here to get other side effects?

A:

If you comment out (deref ~q), the code passed with q is never evaluated, so the nested futures don't come into existence.
Macroexpansion:
(macroexpand '(-> (future (wait 200 (println "'Ello, gov'na!")))
                  (enqueue saying (wait 400 "Pip pip!") (println @saying))
                  (enqueue saying (wait 100 "Cheerio!") (println @saying))))
;;-> ....
(clojure.pprint/pp)

(let*
 [saying (clojure.core/promise)]
 (clojure.core/future
   (clojure.core/deliver saying (do (wait 100 "Cheerio!"))))
 ;; no code ended up here...
 (println @saying)
 saying)


Background {#Sec1}
==========

Despite the growing success of immunotherapy in the treatment of advanced cancer, it is clear that only a subset of cancer patients experience clinical benefit from these interventions. Recent biomarker observations have supported the premise that most clinical responders to anti-PD-1 mAb, anti-CTLA-4 mAb, and cancer vaccines show a pre-existing T cell-inflamed tumor microenvironment at baseline \[[@CR1]--[@CR3]\]. Post-treatment biopsies from melanoma patients receiving anti-PD-1 have revealed an expanded number of proliferating CD8^+^ T cells penetrating deep within the tumor microenvironment \[[@CR4]\]. These data are consistent with preclinical data demonstrating that most of the therapeutic effect of checkpoint blockade can be attributed to re-activation of CD8^+^ T cells already present within the tumor \[[@CR5]\]. Patients with tumors that completely lack adaptive immune cell infiltration may require novel therapeutic interventions to restore T cell entry and enable responsiveness to our current immunotherapies. As such, understanding the underlying mechanisms of T cell exclusion has become a critically important biologic question with clinical relevance.

Main text {#Sec2}
=========

Our laboratory has been pursuing three potential levels of inter-patient heterogeneity that could explain the presence or absence of the T cell-inflamed tumor microenvironment phenotype in individual patients: somatic differences at the level of the tumor cells, germline polymorphism differences at the level of the host, and environmental differences at the level of the intestinal microbiota. Beginning with the hypothesis that activation of specific oncogene pathways might mediate immune exclusion in tumors from individual patients \[[@CR6]\], we utilized metastatic melanoma data from 266 tumor samples from The Cancer Genome Atlas (TCGA) and segregated them based on the presence or absence of a gene signature indicative of the T cell-inflamed phenotype. Using these same tumors, exome sequencing and pathway analysis were performed, which revealed that 48 % of the non-T cell-inflamed tumors showed evidence for activation of the Wnt/β-catenin pathway. In order to determine whether activation of the β-catenin pathway was causally related to immune exclusion, autochthonous mouse models were developed utilizing a melanocyte-specific, tamoxifen-regulated Cre \[[@CR7]\], paired with conditional Braf^V600E^ induction, PTEN deletion, and/or β-catenin stabilization \[[@CR8], [@CR9]\]. While a T cell infiltrate was indeed observed in tumors driven by Braf^V600E^ and PTEN deletion, this T cell infiltrate was completely absent in tumors that additionally expressed active β-catenin. To further investigate the mechanism of T cell exclusion, an SIY antigen-reporter mouse (Rosa26-Lox-Stop-Lox-SIY) \[[@CR10]\] was used in combination with adoptive transfer of SIY-specific TCR-transgenic T cells (2C T cells). Although brisk activation and tumor accumulation of the transferred T cells was observed in in Braf^V600E^/PTEN mice, no such activation or accumulation was observed in mice bearing tumors additionally expressing active β-catenin. This observation prompted analysis of the antigen-presenting cell compartment in both tumor types, which revealed a significant reduction of CD103/CD8α dendritic cells (DCs) in β-catenin-expressing tumors. Rescue experiments utilizing intratumoral injection of Flt3 ligand-derived DCs showed restoration of T cell infiltration. To probe more deeply into the mechanism of failed recruitment of Batf3-lineage DCs, gene expression profiling of the two tumor genotypes was performed with a focus on chemokines. These studies revealed Braf^V600E^/PTEN tumor cells were capable of secreting the chemokine CCL4, whereas no CCL4 expression was observed with tumor cells that additionally expressed stabilized β-catenin. These findings were confirmed using tumor cell lines derived from both mouse models as well as with human melanoma cell lines that contained or lacked active β-catenin signaling. The ability of active β-catenin to prevent CCL4 gene expression was mapped to induction of a transcriptional repressor ATF3, which ChIP assays confirmed was binding the CCL4 promoter. To explore in vivo efficacy of checkpoint blockade with these two tumor genotypes, mice were treated with a combination of anti-CTLA4 and anti-PD-L1 mAbs. Although this treatment delayed tumor outgrowth in Braf^V600E^/PTEN mice, no therapeutic effect was observed in mice bearing tumors that additionally expressed active β-catenin. Responsiveness to checkpoint blockade was restored through direct injection of FLt3L-derived DCs, demonstrating the rate-limiting role of proper DCs for activating tumor antigen-specific T cells, which in turn allowed for response to checkpoint inhibition.

Conclusion {#Sec3}
==========

The observation that oncogenic pathways within tumor cells have the capability to directly impact the anti-tumor immune response is likely to have impact on both the research directions in the field and also on prioritization of clinical development of new targeted inhibitors. Evasion from the immune system is a well-known phenomenon, but thus far it has been focused on immune-mediated selection for antigen-loss variants, combined with upregulation of immune inhibitory mechanisms that thwart the efforts of remaining T cells having intermediate affinity TCRs for remaining antigens. However, these mechanisms failed to explain the existence of the non-T cell-inflamed tumor microenvironment phenotype, which contain tumor cells that express antigens but nonetheless fail to support a dialogue with the host immune response. The non-T cell-inflamed phenotype, in fact, is the most common pattern observed in human samples and in TCGA data analysis across a spectrum of tumor types, and so understanding the biology of this mechanism of immune resistance is paramount. It is likely that activation of the Wnt/β-catenin pathway is relevant for immune evasion in additional cancers beyond melanoma. Preliminary data have indicated that the β-catenin pathway is associated with T cell exclusion in bladder cancer and also in head and neck cancer \[[@CR11]\]. Inasmuch as β-catenin activation accounted for 48 % of non-T cell-inflamed melanomas, other oncogene pathways likely contribute to immune exclusion in the remainder of these tumors, and similarly in other cancers as well. Activation of the Ras/Raf pathway has already been investigated to some degree in human patients and early studies have suggested an increased infiltration by T cells after administration of Braf inhibitors \[[@CR12]\]. However, it is not yet clear if these T cells are tumor-specific or whether their recruitment leads to productive T cell activation versus dysfunction. The PI3K/PTEN pathway is also being investigated, but with somewhat contradictory data thus far. Analysis of samples from triple negative breast cancer patients has indicated that loss of PTEN is associated with presence of T cells within the microenvironment. In contrast, data presented on malignant melanoma has indicated the opposite \[[@CR13], [@CR14]\]. Therefore, cancer-type specific mechanistic studies might be needed to answer this question definitively. Continued interrogation of these and other oncogene pathways in the full range of tumor types should be stablished as a high research priority. As each candidate oncogene-driven mechanism of immune exclusion is validated mechanistically, then pharmacologic approaches to block these pathways should be integrated into combination studies in concert with immunotherapeutics such as anti-PD-1. It is tempting to speculate that a bidirectional iterative translational research program identifying molecular mechanisms of resistance immunotherapies and combination therapies will ultimately lead to an expansion of clinical impact to encompass the majority of cancer patients.

mAb

:   monoclonal antibodies

PD-1

:   Programmed death-1

CTLA-4

:   Cytotoxic T-lymphocyte-associated protein 4

DC

:   Dendritic cell

TCR

:   T cell receptor

TCGA

:   The Cancer Genome Atlas

CCL4

:   C-C-motive ligand 4

ChIP

:   Chromatin immunoprecipitation

ATF3

:   Activating transcription factor 3

**Competing interests**

The authors declare that they have no competing interests.

**Authors' contributions**

SS and TG wrote the manuscript. Both authors read and approved the manuscript.

Work represented in this commentary was supported by a Team Science Award from the Melanoma Research Alliance and a Cancer Research Institute Translational Research Award; SS is supported by the Cancer Research Institute Irvington Postdoctoral Fellowship.

The authors have no financial interests to declare.


A microwave oven as a representative high frequency heating apparatus has conventionally been constructed as shown in FIGS. 1-7.
A microwave oven of FIG. 1 is of a general structure employing a turntable 1. In this microwave oven, electromagnetic waves emitted from a magnetron 2 as an electromagnetic wave emission means are transmitted via a waveguide 3 to a heating chamber 4, where the waves are distributed as standing waves that are determined by the shape of the heating chamber 4 and the position of an opening 5 through which the electromagnetic waves are radiated into the heating chamber 4. A food 6 generates heat correspondingly to an electric field component of the standing waves and a dielectric loss of the food 6. The electric power P [W/m.sup.3 ] absorbed per unit volume of the food 6 is expressed by the intensity of an applied electric field E [V/m], the frequency f [Hz], the dielectric constant .epsilon.r and the dielectric tangent tan.delta. of the food 6 in an expression (1) below. The heating distribution of the food 6 is generally determined by the distribution of the standing waves of the electromagnetic waves and, hence, the heating distribution on concentric circles is uniform due to a rotating of the turntable 1. EQU P=(5/9)..epsilon.r.tan .delta..f.E.sup.2 .times.10.sup.-10 [W/m.sup.3 ](1)
In FIG. 1, reference numeral 19 denotes a control means, 22 denotes a motor, 23 denotes a weight sensor, and 27 denotes a fan.
As other examples of the uniforming means, a stirrer system has been employed in which electromagnetic waves are stirred by a constant rotation of a metallic plate inside the heating chamber. Electromagnetic waves are also taken out from the waveguide 3 by a rotary waveguide (emission part) 8 having a coupling part 7 and are emitted through an emission port 9, as shown in FIG. 2, in other words, the opening part itself has been rotated constantly. In this case, the rotary waveguide 8 has been built on a bottom face of the heating chamber 4 and rotated constantly at all times by a motor 10, and the whole of a bottom part of the heating chamber 4 has been covered with a cover 11 of a material allowing the electromagnetic waves to pass therethrough.
Actually, however, most of the apparatuses in the market are of the turntable type.
Some apparatuses are provided with a plurality of opening parts, wherein an exit for the electromagnetic waves is switched to provide a uniform a heating distribution. FIG. 3 shows an apparatus of the kind having two openings 5 defined in a side wall of the heating chamber 4 (Japanese Patent Laid-Open Publication No. 4-319287).
A plurality of magnetrons and a plurality of waveguides are installed in some cases to constitute a plurality of opening parts (Japanese Patent Laid-Open Publication Nos. 61-181093 and 4-345788).
Alternatively, one waveguide is branched in many directions to form a plurality of waveguides while there is arranged a single magnetron, thereby constituting a plurality of opening parts (Japanese Patent Laid-Open Publication No. 61-240029 and Japanese Utility Model Laid-Open Publication No. 1-129793).
In a different constitution, end faces 14 of two sub waveguides 13 are moved at positions facing a plurality of openings 5, as indicated in FIG. 4, so that the electromagnetic waves may be directed to one opening 5 which apparently is easy for the electromagnetic waves to pass through, to thereby uniform the heating distribution (Japanese Patent Laid-Open Publication No. 5-74566).
In a system of FIG. 5, a metallic part 12 is moved within the single waveguide 3 having a plurality of openings 5, so that the opening 5, which apparently is easy for the electromagnetic waves to pass through, is selected to thereby uniform the heating distribution (Japanese Patent Laid-Open Publication Nos. 3-11588 and 5-121160).
In FIGS. 6 and 7, a plurality of openings are formed at upper and lower parts of the heating chamber, and the openings 5 at the lower part are switched to thereby provide a uniform heating distribution (Japanese Utility Model Laid-Open Publication No. 1-129793).
A feedback control is also executed in some apparatuses by detecting the weight, shape, temperature or dielectric constant of the food 6 or the temperature, humidity or electric field in the heating chamber by sensors.
According to the above-described conventional arrangements, however, in the case where the waveguide and the heating chamber are connected to guide the electromagnetic waves into the heating chamber, all kinds of food could not be heated uniformly by a single opening part, because the position of the optimum opening part to obtain a uniform heating distribution was different for every material or shape of the food.
For example, when a flat food is heated by the conventional microwave oven, the heating proceeds from an edge portion of the food, resulting in a large heating irregularity with a central portion of the food left cold.
Considering the position of the opening part, if the opening part is formed near the center of the bottom face of the heating chamber and when a bottom face of the food is heated, the food is uniformly heated if it is a liquid one allowing convection, whereas only the bottom face of the food is raised in temperature if the food is a solid one allowing no convection. In this case, while the concentric heating distribution is made uniform with the use of a turntable, the heating distribution in a radial direction or a vertical direction as viewed from a rotational center of the turntable cannot be improved in spite of the rotation of the turntable.
When the stirrer or rotary waveguide is used to stir the electromagnetic waves, the electric field distribution is changed in such a manner as to switch the opening part in accordance with the rotation of the stirrer or rotary waveguide and, hence, the concentration of electromagnetic waves can be avoided to some extent in the case of defrosting or the like manner of heating requiring the avoidance of the concentration. However, due to the stirring caused by a constant rotation without regard to the kind of food, any kind of food is heated by repeating the same electric field distribution for each rotation of the stirrer or rotary waveguide, thus making it difficult to achieve a perfectly uniform heating distribution.
Even when a plurality of openings are formed, a certain fixed electric field is constituted if the openings are simply opened at the same time. Accordingly, it is hard to provide a uniform heating distribution for every kind of food. Therefore, there is actually no large difference of the heating distribution between the microwave oven of FIG. 1 and the microwave oven of FIG. 3. A satisfactory cooking result cannot be expected unless the optimum opening is switched or selected for each individual kind of food.
Meanwhile, in the apparatus provided with a plurality of magnetrons and a plurality of waveguides, the control of oscillation of each magnetron is followed by a switching of the waveguides and, hence, the opening through which the electromagnetic waves are to be emitted is switched. Although this arrangement is slightly effective to provide a uniform heating distribution, the increased number of magnetrons raises costs and makes the apparatus heavy and inconvenient to carry.
When a plurality of waveguides are branched in many directions from one waveguide, the opening easy for the electromagnetic waves to pass through cannot be switched perfectly, i.e., a certain amount of electromagnetic waves leak also from the openings not selected. Moreover, a large quantity of sheet metal is needed for the waveguides, causing the apparatus to be expensive and hard to manufacture.
As a solution to the above, end faces 14 of the sub waveguides 13 are moved at positions facing the openings 5, as shown in FIG. 4, to thereby select the opening 5 which apparently is easy for the electromagnetic waves to pass through. Although the heating distribution is provided more or less effectively uniform according to this method, the space for the plurality of sub waveguides 13 and the space for a plurality of shields to prevent the leak of electromagnetic waves when the end faces 14 of the sub waveguides 13 are moved are required in practice. As a result, the whole microwave oven becomes bulky or the effective volume of the heating chamber to the whole apparatus is reduced, leading to such a user's dissatisfaction that the apparatus occupies a considerable space or affords to contain only small food. At the same time, the apparatus becomes heavy and hard to carry. An amount of power is probably consumed to move the end faces 14 of the sub waveguides including the shields at a plurality of positions.
As shown in FIG. 5, even if the metallic part is moved within one waveguide 3 having a plurality of openings 5, it is impossible to completely switch to select the opening easy for the electromagnetic waves to pass. Unrequested openings 5 are also open, through which the electromagnetic waves leak.
In the constitutions of FIGS. 1, 3, 4 and 5, the openings 5 are formed only at a side face of the apparatus, in other words, separated far from the food 6.
If the distance between the opening 5 and the food 6 is large, the rate of the electromagnetic waves not only entering the food 6 directly from the opening 5, but entering the food 6 after reflected at the wall face of the heating chamber 4, etc. is increased. In consequence of this, the heating distribution of the food 6 is disadvantageously changed large by the size of the heating chamber 4, or the position or shape of the food 6.
From the same reason as above, a peripheral portion of the general food 6 tends to be heated more easily.
The arrangement of FIG. 6 or 7 is more useful to provide a uniform heating distribution than the other conventional arrangements. However, the peripheral portion of the food is still easy to heat because of the electromagnetic waves always radiated from the upper part of the heating chamber and, a portion of the food between one and the other openings adjacent to each other at the lower part of the heating chamber is hard to heat.
What is common to these conventional arrangements of FIGS. 1, 3, 4, 5, 6 and 7 is an undesirable probability that the electromagnetic waves will be concentrated only where the openings 5 are formed, causing a heating irregularity.
In the arrangements of FIGS. 3 and 5-7, the distance from the magnetron 2 to the opening 5 is not taken into account.
Generally, whether or not it is easy for the electromagnetic waves to enter the heating chamber 4 is determined by matching of the heating chamber and openings, and is changed depending on the position of the openings 5 in the heating chamber 4, the length of the waveguide 3, the distance between the magnetron 2 and the opening 5, etc. Particularly, the ease at which electromagnetic waves come out from the waveguide 3 varies with a cycle of .lambda.g/2 wherein .lambda. is the guide wavelength of the electromagnetic waves. Therefore, when a plurality of openings 5 are present, the matching should be adjusted for each opening 5 so as to emit the electromagnetic waves equally from all the openings 5.
Unless the matching is achieved by determining the position of the opening 5 solely to lengthen the distribution it becomes, the electromagnetic waves to enter the heating chamber, whereby the heating efficiency is worsened. In addition, an increased amount of reflecting waves enter the magnetron 2, which necessitates countermeasures to prevent a temperature rise or generation of unnecessary radiation noises.
In the feedback control by detecting the state of food, an initial heating state or a state change from a heating start has been detected or heating completion has been detected with the use of a weight sensor, a humidity sensor, a temperature sensor, an electromagnetic field detection sensor, a steam detection sensor, an alcohol detection sensor or the like. Any of the aforementioned sensors have not been practically designed to carry out such feedback control as to detect the heating distribution or correct the heating irregularity.


#pragma once

class m_IDirectDraw2 : public IDirectDraw2, public AddressLookupTableDdrawObject
{
private:
	m_IDirectDrawX *ProxyInterface;
	IDirectDraw2 *RealInterface;
	REFIID WrapperID = IID_IDirectDraw2;
	const DWORD DirectXVersion = 2;

public:
	m_IDirectDraw2(IDirectDraw2 *aOriginal, m_IDirectDrawX *Interface) : RealInterface(aOriginal), ProxyInterface(Interface)
	{
		ProxyAddressLookupTable.SaveAddress(this, (RealInterface) ? RealInterface : (void*)ProxyInterface);
	}
	~m_IDirectDraw2()
	{
		ProxyAddressLookupTable.DeleteAddress(this);
	}

	/*** IUnknown methods ***/
	STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj);
	STDMETHOD_(ULONG, AddRef) (THIS);
	STDMETHOD_(ULONG, Release) (THIS);

	/*** IDirectDraw methods ***/
	STDMETHOD(Compact)(THIS);
	STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR *);
	STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR *);
	STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC, LPDIRECTDRAWSURFACE FAR *, IUnknown FAR *);
	STDMETHOD(DuplicateSurface)(THIS_ LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR *);
	STDMETHOD(EnumDisplayModes)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK);
	STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMSURFACESCALLBACK);
	STDMETHOD(FlipToGDISurface)(THIS);
	STDMETHOD(GetCaps)(THIS_ LPDDCAPS, LPDDCAPS);
	STDMETHOD(GetDisplayMode)(THIS_ LPDDSURFACEDESC);
	STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD);
	STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE FAR *);
	STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD);
	STDMETHOD(GetScanLine)(THIS_ LPDWORD);
	STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL);
	STDMETHOD(Initialize)(THIS_ GUID FAR *);
	STDMETHOD(RestoreDisplayMode)(THIS);
	STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD);
	STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD, DWORD, DWORD, DWORD);
	STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE);
	/*** Added in the v2 interface ***/
	STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS, LPDWORD, LPDWORD);
};


US astronaut Neil Armstrong, the first man on the Moon, has died aged 82.

A statement from his family says he died from complications from heart surgery he had earlier this month.

He set foot on the Moon on 20 July 1969, famously describing the event as "one small step for a man, one giant leap for mankind".

US President Barack Obama said Armstrong was "among the greatest of American heroes - not just of his time, but of all time".

Last November he received the Congressional Gold Medal, the highest US civilian award.

Image caption Neil Armstrong, the first man to set foot on the Moon, has died aged 82. Here he is seen sitting inside the Lunar Module while it rested on the Moon's surface. Life in pictures: Neil Armstrong Your memories 'Diffident' emissary of mankind

He was the commander of the Apollo 11 spacecraft. More than 500 million TV viewers around the world watched its touchdown on the lunar surface.

Armstrong and fellow astronaut Edwin "Buzz" Aldrin spent nearly three hours walking on the moon, collecting samples, conducting experiments and taking photographs.

"The sights were simply magnificent, beyond any visual experience that I had ever been exposed to," Armstrong once said.

Media playback is unsupported on your device Media caption Buzz Aldrin: "The aerospace world will be saddened"

'Reluctant hero'

Mr Aldrin told the BBC's Newshour programme: "It's very sad indeed that we're not able to be together as a crew on the 50th anniversary of the mission… [I will remember him] as a very capable commander."

Apollo 11 was Armstrong's last space mission. In 1971, he left the US space agency Nasa to teach aerospace engineering.

Born in 1930 and raised in Ohio, Armstrong took his first flight aged six with his father and formed a lifelong passion for flying.

He flew Navy fighter jets during the Korean War in the 1950s, and joined the US space programme in 1962.

Media playback is unsupported on your device Media caption President Obama described him as "one of the greatest American heroes of all time"

Correspondents say Armstrong remained modest and never allowed himself to be caught up in the glamour of space exploration.

"I am, and ever will be, a white-socks, pocket-protector, nerdy engineer," he said in February 2000, in a rare public appearance.

In a statement, his family praised him as a "reluctant American hero" who had "served his nation proudly, as a navy fighter pilot, test pilot, and astronaut".

The statement did not say where Armstrong died.

He had surgery to relieve four blocked coronary arteries on 7 August.


Learn from the organisation that has grown 500 kitchen gardens & taught 7000 individuals in a span of just 4 years. They are the experts and now you can learn directly from them!

Promotion

Over 500 urban gardens and nearly 100 land projects within four years. That is the record that Edible Routes, an eco-initiative based in Delhi, proudly holds. Started as an initiative to help urban dwellers learn organic farming, this organisation strongly advocates the need for megacities to nurture plants indoors. Your kitchen, balconies, living rooms are as great a space to grow plants as any and Edible Routes is here to guide you.

Click on this link to book your spot in their Delhi workshop now!

An IT professional turned organic farmer:

Kapil Mandawewala had a cushy job in a leading IT firm in San Francisco, USA. The position of a Senior Consultant at Deloitte Consulting meant that Kapil had easy access to all the luxuries he wanted. And yet, something pricked at him. Kapil wanted to pursue something that will bring a positive difference in society.

Always conscious about his health, diet and lifestyle, Kapil decided to leave the well-paying job in favour of starting organic farming in India to suit his goals. His family owned a 22-acre farm in Gujarat, thus he shifted base to his hometown. Instead of continuing with chemical farming on this vast patch of land, he cultivated wheat, rice, millet and vegetables organically.

For the first couple of years, Kapil faced losses in lakhs. But his perseverance soon reaped rewards. This invoked the curiosity of people from far and wide. Especially Delhi.

Learn the art of growing herbs inside your home. Follow this link to learn about the location, price and other details and book a slot in Kapil’s workshop.

From 22-acres in Gujarat to a few square feet in Delhi:

Kapil had a few family friends living in Delhi. When they saw how his farm in Gujarat was thriving, they requested him to teach them the tricks of the trade. The only catch? They were all city dwellers with limited space at their disposal.

“His friends wanted to learn how to set up a kitchen garden and Kapil took up the challenge. He soon realised that the demand for urban farming is huge in megacities like Delhi. While some people are happy with just one workshop, others need a little more guidance. They need a garden to be set for them. He thus started Edible Routes to help novices set up their own indoor garden,” informs Abhijeet Verma, a marketing professional at the organisation.

Promotion

The demand refused to die down and since 2015, when the organisation was formally established, Edible Routes has facilitated the planting of over 500 kitchen gardens and edible landscapes, encouraged over 200 families to become farmletters (be involved in community farming), and taught the basics of growing indoor farms to over 7,000 individuals!

You too can benefit from the expertise of Kapil. Click here to know more details and sign up for the workshop now!

What to expect in the Delhi workshop:

“It is city dwellers who most complain about the lack of greenery and fresh air. So we want to involve them in adding to Delhi’s lushness. It can start right inside their home. You can pick the plant of your choice – edible, ornamental or easy to grow – and start your garden with that,” explains Abhijeet.

Kapil will guide you through the basics of preparing the soil in which to plant your garden. Not every soil at your disposal is healthy enough to nurture plants. Beginnings are important when it comes to plants and in this workshop, Kapil will guide in the same.

He will also teach you about different medicinal herbs. You don’t want any pollution or harmful gases lurking indoors, right? This is a green, sustainable way to prevent harm!

Just two hours and you are set to grow a garden! What are you waiting for? Book your place by clicking on this link!

Also Read: What Is PM2.5? Do Face Masks Help with Air Pollution? Here Are the Answers

(Edited by Saiqua Sultan)

Like this story? Or have something to share? Write to us: contact@thebetterindia.com, or connect with us on Facebook and Twitter.


Q:

How to draw spherical using 3dplot

I would like do draw some sphericals using the package 3dplot. Does anybody know how to draw spericals with different diameter and postition in a coordinate system like that one?
\documentclass[a4paper, 12pt,]{scrartcl}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english,ngerman]{babel}

\usepackage{graphicx}
\usepackage{epstopdf}

\usepackage{tikz, tikz-3dplot}

\begin{document}

  \tdplotsetmaincoords{60}{130}

  \begin{tikzpicture}[scale=4,tdplot_main_coords]

    \coordinate  (O)  at  (0,0,0);

    \draw[thick,->]  (0,0,0)  --  (1,0,0)  node[anchor=north  east]{$x$};
    \draw[thick,->]  (0,0,0)  --  (0,1,0)  node[anchor=north  west]{$y$};
    \draw[thick,->]  (0,0,0)  --  (0,0,1)  node[anchor=south]{$z$};

  \end{tikzpicture}

\end{document}

Edit:
Here is some more code I wrote. I would like to put a sphere at each corner to draw a crystal lattice.
\documentclass[a4paper, 12pt,]{scrartcl}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english,ngerman]{babel}

\usepackage{graphicx}
\usepackage{epstopdf}

\usepackage{tikz, tikz-3dplot}

\begin{document}

  \tdplotsetmaincoords{60}{130}

  \begin{tikzpicture}[scale=4,tdplot_main_coords]

    \coordinate  (O)  at  (0,0,0);

    \draw[thick,->]  (0,0,0)  --  (1,0,0)  node[anchor=north  east]{$x$};
    \draw[thick,->]  (0,0,0)  --  (0,1,0)  node[anchor=north  west]{$y$};
    \draw[thick,->]  (0,0,0)  --  (0,0,1)  node[anchor=south]{$z$};

    \tdplotsetcoord{P1}{.8}{30}{90}
    \tdplotsetcoord{P2}{.8}{30}{30}
    \tdplotsetcoord{P3}{.8}{30}{330}
    \tdplotsetcoord{P4}{.8}{30}{270}
    \tdplotsetcoord{P5}{.8}{30}{210}
    \tdplotsetcoord{P6}{.8}{30}{150}

    \draw[color=blue] (P1)--(P2)--(P3)--(P4)--(P5)--(P6)--cycle;
    \draw[color=blue] (P1xy)--(P2xy)--(P3xy)--(P4xy)--(P5xy)--(P6xy)--cycle;
    \draw[color=blue] (P1xy)--(P1);
    \draw[color=blue] (P2xy)--(P2);
    \draw[color=blue] (P3xy)--(P3);
    \draw[color=blue] (P4xy)--(P4);
    \draw[color=blue] (P5xy)--(P5);
    \draw[color=blue] (P6xy)--(P6);

  \end{tikzpicture}

\end{document}

A:

One way to do it is to use \pgfdeclareradialshading{sphere}:
\pgfdeclareradialshading{sphere}{\pgfpoint{0.5cm}{0.5cm}}
{
    rgb(0cm)=(1,1,1);
    rgb(0.7cm)=(0.8,0.8,0.8);
    rgb(1cm)=(0.6,0.6,0.6);
    rgb(1.05cm)=(0.6,0.6,0.6)
 }
\pgfuseshading{sphere}

which can create something like this:

To read more, have a look at pgf manual 83.2.2.
Another way to this is to create a second tikzpicture and use some 2d-shadings:
\begin{tikzpicture}
    \begin{scope}
        \fill[black] (0,0) circle (0.5);
        \clip (0,0) circle (0.5);
        \shade[outer color=black, inner color=black!30] (-0.15,0.5) circle (0.7);
    \end{scope}
\end{tikzpicture}

Something like this:

Credits for second suggestion.
Useful link.


Q:

How can I add an associated record from another records edit page?

I'm super new to programming and rails. I have a table of venues and a table of offers. A venue can have many offers and an offer belongs to one venue.
I would like to be able to add offers to venues whilst on the venues edit.html.erb page. How can I do this? I thought the code I have already would work but its not saving anything and not giving any errors.
Venues model
class Venue < ActiveRecord::Base
  has_many :offers
end

Offers model
class Offer < ActiveRecord::Base
  belongs_to :venue
end

Venues controller
  def edit
    @venue = Venue.find(params[:id])
    @offer = Offer.new
  end

Offers controller
class OffersController < ApplicationController

  def new
    @offer = Offer.new
  end

  def create
    @offer = @venue.offers.create!(params[:offer])
    @offer.venue = @venue
    if @offer.save
      flash[:notice] = 'Offer added'
      redirect_to :back
    else
      render :action => :new
    end
  end
end

Venues edit.html.erb

  <%= form_for @venue do |f| %>

Offers

      <% if @venue.offers.count.zero? %>

          No offers added yet.

      <% else %>
        <%= render :partial => 'offers/offer', :collection => @venue.offers %>
      <% end %>

Add a new offer

    <%= form_for @offer do |offer| %>

title:

      <%= offer.text_field :title, :class => "edit_venue_input" %>

      <button class="submit_button" type="submit"> Save changes</button>
    <% end %>
  <% end %>

Thanks for any help its much appreciated!

A:

Your going to use the Rails' concepts o f nested attributes and the form.fields_for method. See docs.
In your case, it should be something like:
Model
class Venue < ActiveRecord::Base
  has_many :offers
  accepts_nested_attributes_for :offers
end

View
...
<%= f.fields_for :venues, @venue.offers.new do |offer_fields| %>
  <%= offer_fields.text_field :title %>
<% end %>
...


Introduction to DokuWiki

Table of Contents

DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at creating documentation of any kind. It is targeted at developer teams, workgroups and small companies. It has a simple but powerful syntax which makes sure the datafiles remain readable outside the Wiki and eases the creation of structured texts. All data is stored in plain text files no database is required.

Nowdays it can be used for a lot of things, like a wiki, note taking, podcast show notes, collaborative note taking and a lot more.

I myself use it to keep notes, save code and articles (it has version control), communication platform and study help tool.Official website of DokuWiki

What does it look like?

Key features of DokuWiki

Revision control

DokuWiki stores all versions of each wiki page, allowing the user to compare the current version with any older version. The difference engine is the same as the one used in MediaWiki. Parallel editing of one page by multiple users is prevented by a locking mechanism.

Access control

Access control can be handled by a user manager which allows users and groups of users to be defined, and an access control list where an admin user can define permissions on page and namespace level, giving it much better access control than Mediawiki.

Plugins

DokuWiki has a generic plugin interface which simplifies the process of writing and maintaining plugins. There are over 750 plugins available. These can be easily integrated and managed by an admin user with the help of the plugin manager.

Templates

The appearance of the wiki can be defined by a template. There are templates to make it resemble a MediaWiki site, or a popular blogging platform and more.

Internationalization and localization

DokuWiki supports Unicode (UTF-8), so languages such as Chinese, Thai, and Hebrew can be displayed. DokuWiki can be configured in about 40 languages.

Installing and upgrading

Install is very simple, extract the archive to a webserver. Upgrading also, backup your data & media directory and replace the files with the newer ones.
Your webserver only needs PHP. I've run it on NGINX, Apache2, Lighttpd and Cherokee. Everything which supports PHP mostly...
Also, auto-installers like Installotron and Softalicious have dokuwiki in it.


Essar Energy signs long term power purchase agreement for Tori II power project

Essar Energy plc [LSE: ESSR], the India-focused integrated energy company, today announced that it has signed a power purchase agreement (PPA) with Noida Power Company Ltd for 240 megawatts (MW) of contracted capacity from Essar Energy’s 600MW coal-fired Tori II power station which is under construction in Jharkhand state, India.

The binding PPA has been signed by Noida Power Company Ltd with Essar Energy’s subsidiary Essar Power Jharkhand Limited (EPJL) and has a 25 year duration.

The PPA was secured following a competitive bidding process, with supply of power under the terms of the PPA being due to commence from April 2014.

Under the terms of the PPA, Essar Energy will supply power at a delivered levelised tariff, including transmission costs, of Rs.4.08 per kilowatt hour (approximately 7.6 US cents per kWh), which is the highest long term tariff achieved through competitive bidding in India to date. The levelised tariff net of transmission costs is Rs. 3.27 per kWh (approximately 6.2 US cents per kWh).

The agreement is the first PPA that has been signed for the Tori II project. At its 1,200MW Tori I project, which is also under construction, Essar Energy has already signed two PPAs of 300MW and 450MW, both for 25 years, with the Bihar State Electricity Board.

Naresh Nayyar, chief executive of Essar Energy, said: “We are pleased to have concluded this agreement with Noida Power. We continue to make good progress in securing long term revenues from our power generation projects in India.”

Essar Energy currently has 2,200MW of generation capacity operational, with a further 2,310MW of capacity due to be commissioned this year at the Salaya I, Mahan I and Vadinar P2 projects. Beyond this a further four power projects are due to be commissioned by March 2014, including the Tori I and Tori II projects, which will take Essar Energy’s total to 6,700MW by that date.

For further information on Essar Energy, please visit www.essarenergy.comFor further information on the Essar Group, please visit www.essar.comAlternatively, please contact:

About Essar Energy Essar Energy (LSE:ESSR) is a world class, low-cost, integrated energy company with an established track record. Essar Energy, through its subsidiaries, owns one of India's largest private power producers with 2,200MW of installed capacity and projects under construction to expand its capacity to 9,670MW. Essar Energy, through its subsidiaries, owns one of India's fastest growing private sector oil and gas companies with a diverse portfolio of exploration and production assets. The Vadinar refinery, located in Gujarat, is India's second largest private sector oil refinery with throughput capacity of 18 million metric tonnes per annum and plans to expand to 20mmtpa by September 2012.

About Essar Group The Essar Group (the "Group") is a multinational conglomerate and a leading player in the sectors of Steel, Energy (Oil & Gas and Power), Infrastructure (Ports, Projects & Concessions) and Services (Shipping, Telecom, Realty and Business Process Outsourcing). With operations in more than 25 countries across five continents, the group employs 75,000 people and has revenues of US$ 17 billion.

* * * This announcement contains certain forward-looking statements, including statements regarding Group's plans, objectives and performance. Such statements relate to events and depend on circumstances that may occur in the future and are subject to risks, uncertainties and assumptions. Although the Group believes that the expectations reflected in such forward looking statements are reasonable, there are a number of factors which could cause actual results and developments to differ materially from those expressed or implied by such forward looking statements, including, without limitation, the enactment of legislation or regulation that may impose costs or restrict activities; the re-negotiation of contracts or licences; fluctuations in demand and pricing in the Oil and Gas, Power and Energy industries; fluctuations in exchange controls; changes in government policy and taxations; industrial disputes; war and terrorism. Further information on the significant risks and uncertainties associated with the Group's business is set out in the Prospectus published on 4 May 2010. These forward-looking statements speak only as at the date of this document. The Group undertakes no obligation to update any forward looking statements whether as a result of new information, future events or otherwise, except to the extent legally required. These statements (and all other forward-looking statements contained in this document) are not guarantees of future performance and are subject to risks, uncertainties and other factors, some of which are beyond the Group's control, are difficult to predict and could cause actual results to differ materially from those expressed or implied or forecast in the forward-looking statements. This announcement does not constitute, or form part of, an offer or any solicitation of an offer for securities in any jurisdiction, or an invitation or inducement to invest in the Group or any other entity and should not be relied upon in any way in connection with any investment decision.


Enjoy all of my free monthly tips and events sent to your inbox from New Three University!

After 29 Years I Felt My Mom Hugging Me

Practitioner Stories - After 29 Years, I Felt My Mom Hugging MeVoice channeling stories from practitioners of our program

Note from Jason: Lena-Jo shares her life-altering experience of voice channeling her mother. This was the first time she experienced her mother’s embrace and direct guidance in twenty-nine years! Enjoy this touching story of a mother and daughter reunited, from the spirit world to the physical world.

Story by Lena-Jo Marin:My mom had passed away when I was twelve but I felt like she was always very prevalent in my world from the spiritual realm. It was scary for years, on and off, being able to kind of connect and be connected to the spiritual world but not having anyone guiding me as to what was actually happening.

The first time I voice channeled, I voice channeled my mother. I remember being physically comforted and so overwhelmed that I initially couldn’t speak, as the tears were flying down my face. For the first time since I was twelve years old, and I am forty-one now, I felt that my mom was hugging me, that I was actually being embraced. I felt her within me as she was communicating. She gave me messages that were just beautiful.

It was very difficult to think I had gone so long without being able to feel that. I remember after I was done voice channeling, my body, which was completely frozen before, had been completely taken into a place of peace and healing. I physically felt more healing after voice channeling my mother than any kind of energy work session. I felt as though I stepped out of some regeneration type of machine. My body didn’t feel the same anymore and I felt completely healed. That opened my eyes to the fact that I knew I had experienced something that was 100% genuine and was in no way made-up. It was absolutely life-changing.

When I talk about this experience my heart starts racing and my body starts fluttering because it was so powerful.

The crazy part about it was literally less than a month before the workshop my fiancée had said, “Hey Lena, I want to go to a medium so I can talk to your Mom and Dad. Will you go to a medium with me so you can talk to your Mom?”

I said, “No, I’m good.”

And no joke, in less than a week, somehow it popped up, “Become a Medium” and that’s how I found out about Jason’s training.

Channeling my mother the first day of training was such a beautiful Godsend. She helped lay out the plan for me to be the medium, be the channel. I don’t need someone else to channel her and she wanted me to be the channel. That’s what’s so powerful about it. I was asked about mediumship from my fiancée, then a week later I saw and signed up for the training, and in less than a month there I was channeling my mother. I knew it was meant to happen and was only the beginning.

Over this last year that I’ve been voice channeling, I have come to have all these answers, but they have not been answered by somebody else, they’ve been answered from spirit and me listening to my heart. I have a whole new group of teachers now and none of them are in human form. It’s a beautiful concept!

I can truly say for this last year of my life that this is the first and only year of my life that I’ve truly left things up to God and spirit. I am not fighting what is to be or complaining about the bad or even the good. I am just allowing and learning the lessons I am meant to learn. We all have this support system.”

When I am physically voice channeling I feel massive amounts of healing on a cellular level. It is like a transformation each time and is so desirable! It’s one of those things that I long for and look forward to the aftermath of the voice channeling because of the healing that it allows me. I may not go pay for a massage but I would voice channel and get the same benefits in a sense. The physical healing benefits are wonderful!

The other benefit for me, like other adults, is that not everybody has parents that they ask questions or look for guidance from. With voice channeling I have the ability to ask questions and receive guidance from spirt, who is completely neutral. I am not getting told anything I can’t handle. I can then take the guidance and do what I want with it. I don’t have to feel like I am unable to go and ask a friend or talk to somebody else because I can ask spirit and know I am going to get some kind of relief and guidance.

I’ve been the one who solved all the problems and figured everything out on my own. Now, it’s nice having a place I can ask for guidance, accept it, love it and know that is exactly what I need to hear, every time. It holds a genuine element of this is exactly what I needed to hear at this point in time for me to be more successful at being me.

It’s also big feeling that I’m not alone. When I don’t get to voice channel often I find myself feeling so much more disconnected than I ever felt before I started voice channeling. Now that I know what it feels like to be really connected there is a massive contrast. It’s not even that voice channeling takes so much effort, you just gotta show up and do it.

I love to help facilitate and work with others on their path too. That is one of my favorite things being that I am a teacher and educator. I really enjoy making those memories with someone else by giving them an environment where they feel safe and comfortable." – Lena-Jo Marin

Change Your Life - Learn how to voice channel spirit. Register for the next Miracle of Voice Channeling Spirit Certification Program Workshop by going to: http://www.VoiceChanneling.com

WANT TO USE THIS ARTICLE IN YOUR NEWSLETTER OR WEB SITE? You can, as long as you include this complete blurb with it:

“Spiritual Life Coach and Teacher Jason Nelson assists people to connect more deeply with their soul to heal, channel, intuit and manifest their life purpose. Get his FREE online trainings at http://www.newthreeuniversity.com.”


# simple operation involving properties and methods of System.Environment class
report = "Machine: #{MachineName}, OS: #{OSVersion}, User: #{UserName}"


Collapse of private pensions continues

Many over-50s caught in a trap if Pension Credit will penalise their private savings

Saga's recent Survey has shown that one in five over 50s are still in debt, with mortgages to pay off. The latest MetLife Europe survey evidence shows that a third of over 50s workers are saving in a pension. These figures suggest a continued worsening of our pensions crisis. People have clearly lost confidence in pensions and the situation is deteriorating.

Without any pension or other savings to fall back on, about 3 million people will have nothing but the State Pension to survive on in retirement. The Government says it wants to reinvigorate pensions and retirement - there is clearly a long way to go.

Policy has failed to address this mounting crisis, despite an almost constant barrage of reforms.

Urgent radical reform of our state pension system is long overdue. For the over-50s, saving in a pension scheme is often just not worthwhile, because they are caught in a trap with state benefits taking away their private pension. The State Pension is so inadequate (a full Basic State Pension is just £97.65 a week) that nearly half of pensioners end up needing means-tested Pension Credit and other benefits in retirement. However, if they claim these benefits, they will lose at least 40% and often 100% of their pension income. That makes it very difficult to advise people to save in a pension, because they risk merely saving to replace benefits they would otherwise receive.

The Government's recent consideration of a flat rate pension of at least £140 a week for all future pensioners with a full National Insurance record would remove this problem of means-testing and make it safe for the over 50s to save in a pension. This kind of radical reform is essential. Without it, we cannot hope to ensure private pensions work properly to deliver extra income for retirees.

The proposals for automatically enrolling all workers into a modest company pension scheme or the National Employment Savings Trust (NEST) will also not be suitable for those closest to retirement unless state pensions are radically reformed.

What matters is not just getting people to put money into a pension fund, but what they ultimately can get out of it. Unless and until it becomes safe for everyone to save in a pension, we cannot hope to properly deal with the pensions crisis. Saga is calling on the Government to help the over 50s with their future pension plans. State Pension Reform is an essential part of this agenda.

-ENDS-

Saga Populus poll of 14,047 people aged 50 and over between 5th and 13th August 2010 that indicated that 20 per cent had outstanding mortgage debt and 18 per cent outstanding credit card debt


1. Field of the Invention
The present invention relates to a height control device for vehicle to be used for maintaining always constant a distance between a wheel-side member and a frame-side member of a vehicle.
2. Description of the Prior Art
Conventionally in a vehicle, for example, a load carrying vehicle such as a truck, a height control device for vehicle is used to maintain always constant a vehicle height under a load condition and an unload condition. There are various types in such a height control device for vehicle. For example, Japanese Utility Model Laid-open Publication No. 60-72712 discloses a height control device for vehicle including a vehicle height control valve mounted to a vehicle body side, a link mechanism for connecting the vehicle height control valve to an axle case, an expansion mechanism mounted to the link mechanism, and driving means for operating the expansion mechanism. In this device, a vehicle height is detected by the link mechanism, and is adjusted by the vehicle height control valve to be mechanically operated by the link mechanism.
In another height control device for vehicle excluding such an expansion mechanism and driving means as mentioned above, a vehicle height control valve is mounted to a sprung member of a vehicle, e.g., a vehicle frame, and a link mechanism is provided to connect the vehicle height control valve to an unsprung member of the vehicle, e.g., an axle case. In this height control device for vehicle, the link mechanism is operated by relative displacement between the vehicle frame and the axle case under the load condition and the unload condition, and the vehicle height control valve is operated by the movement of the link mechanism to adjust the vehicle height. That is, when the vehicle is loaded, the link mechanism adjusts the vehicle height control valve to an air induction side, thereby including the air into an air spring connected to a load carrying platform of the vehicle to lift the platform. Reversely, when the vehicle is unloaded, the link mechanism adjusts the vehicle height control valve to an air discharge side, thereby discharging the air from the air spring to lower the platform of the vehicle.
However, in both the height control devices for vehicle as mentioned above, since the link mechanism is directly connected to the vehicle height control valve mounted to the sprung member of the vehicle and to the unsprung member of the vehicle, a high sensibility is undesirably provided to the vehicle height control valve. Accordingly, the vehicle height control valve is sensitively operated to open and close in response to vertical motion of tires to induce and discharge the air with respect to the air spring even during normal running of the vehicle. That is, the vehicle height is changed with high-frequency vibration during running of the vehicle. Therefore, particularly in the load carrying vehicle, vertical vibration of the platform of the vehicle is amplified by the above operation during running of the vehicle.
Further, U.S. Pat. No. 4,105,216 has proposed that momentary height change from a target height level is ignored not to conduct height control by means of electrical signal processing techniques. However, this proposal is directed to an electronic height control device, and it has not solved the problem in the mechanical height control device for vehicle.


--
-- Copyright (c) 2012-2018 Red Hat, Inc.
-- This program and the accompanying materials are made
-- available under the terms of the Eclipse Public License 2.0
-- which is available at https://www.eclipse.org/legal/epl-2.0/
--
-- SPDX-License-Identifier: EPL-2.0
--
-- Contributors:
--   Red Hat, Inc. - initial API and implementation
--

-- Factory button --------------------------------------------------------------
CREATE TABLE che_factory_button (
    id          BIGINT          NOT NULL,
    type        VARCHAR(255),
    color       VARCHAR(255),
    counter     BOOLEAN,
    logo        VARCHAR(255),
    style       VARCHAR(255),

    PRIMARY KEY (id)
);
--------------------------------------------------------------------------------

-- Factory action --------------------------------------------------------------
CREATE TABLE che_factory_action (
    entity_id       BIGINT          NOT NULL,
    id              VARCHAR(255),

    PRIMARY KEY (entity_id)
);
--------------------------------------------------------------------------------

-- Factory action properties ---------------------------------------------------
CREATE TABLE che_factory_action_properties (
    action_entity_id        BIGINT          NOT NULL,
    property_value          VARCHAR(255),
    property_key            VARCHAR(255)
);
-- constraints
ALTER TABLE che_factory_action_properties ADD CONSTRAINT fk_che_f_action_props_action_entity_id FOREIGN KEY (action_entity_id) REFERENCES che_factory_action (entity_id);
CREATE INDEX che_f_action_entity_id_fk ON che_factory_action_properties (action_entity_id);
--------------------------------------------------------------------------------

-- Factory on app closed action ------------------------------------------------
CREATE TABLE che_factory_on_app_closed_action (
    id      BIGINT      NOT NULL,

    PRIMARY KEY (id)
);
--------------------------------------------------------------------------------

-- Factory on projects loaded action -------------------------------------------
CREATE TABLE che_factory_on_projects_loaded_action (
    id      BIGINT      NOT NULL,

    PRIMARY KEY (id)
);
--------------------------------------------------------------------------------

-- Factory on app loaded action ------------------------------------------------
CREATE TABLE che_factory_on_app_loaded_action (
    id      BIGINT      NOT NULL,

    PRIMARY KEY (id)
);
--------------------------------------------------------------------------------

-- Factory on app closed action value ------------------------------------------
CREATE TABLE che_factory_on_app_closed_action_value (
    on_app_closed_id    BIGINT      NOT NULL,
    action_entity_id    BIGINT      NOT NULL,

    PRIMARY KEY (on_app_closed_id, action_entity_id)
);
-- constraints
ALTER TABLE che_factory_on_app_closed_action_value ADD CONSTRAINT fk_che_f_on_app_closed_entity_id FOREIGN KEY (action_entity_id) REFERENCES che_factory_action (entity_id);
ALTER TABLE che_factory_on_app_closed_action_value ADD CONSTRAINT fk_che_f_on_app_closed_action_id FOREIGN KEY (on_app_closed_id) REFERENCES che_factory_on_app_closed_action (id);
--------------------------------------------------------------------------------

-- Factory on project loaded action --------------------------------------------
CREATE TABLE che_factory_on_projects_loaded_action_value (
    on_projects_loaded_id       BIGINT      NOT NULL,
    action_entity_id            BIGINT      NOT NULL,

    PRIMARY KEY (on_projects_loaded_id, action_entity_id)
);
-- constraints
ALTER TABLE che_factory_on_projects_loaded_action_value ADD CONSTRAINT fk_che_f_on_projects_loaded_entity_id FOREIGN KEY (action_entity_id) REFERENCES che_factory_action (entity_id);
ALTER TABLE che_factory_on_projects_loaded_action_value ADD CONSTRAINT fk_che_f_on_projects_loaded_action_id FOREIGN KEY (on_projects_loaded_id) REFERENCES che_factory_on_projects_loaded_action (id);
--------------------------------------------------------------------------------

-- Factory on app loaded action ------------------------------------------------
CREATE TABLE che_factory_on_app_loaded_action_value (
    on_app_loaded_id       BIGINT      NOT NULL,
    action_entity_id       BIGINT      NOT NULL,

    PRIMARY KEY (on_app_loaded_id, action_entity_id)
);
-- constraints
ALTER TABLE che_factory_on_app_loaded_action_value ADD CONSTRAINT fk_che_f_on_app_loaded_entity_id FOREIGN KEY (action_entity_id) REFERENCES che_factory_action (entity_id);
ALTER TABLE che_factory_on_app_loaded_action_value ADD CONSTRAINT fk_che_f_on_app_loaded_action_id FOREIGN KEY (on_app_loaded_id) REFERENCES che_factory_on_app_loaded_action (id);
--------------------------------------------------------------------------------

-- Factory ide -----------------------------------------------------------------
CREATE TABLE che_factory_ide (
    id                      BIGINT      NOT NULL,
    on_app_closed_id        BIGINT,
    on_app_loaded_id        BIGINT,
    on_projects_loaded_id   BIGINT,

    PRIMARY KEY (id)
);
-- constraints
ALTER TABLE che_factory_ide ADD CONSTRAINT fk_che_f_ide_on_app_closed_id FOREIGN KEY (on_app_closed_id) REFERENCES che_factory_on_app_closed_action (id);
ALTER TABLE che_factory_ide ADD CONSTRAINT fk_che_f_ide_on_projects_loaded_id FOREIGN KEY (on_projects_loaded_id) REFERENCES che_factory_on_projects_loaded_action (id);
ALTER TABLE che_factory_ide ADD CONSTRAINT fk_che_f_ide_on_app_loaded_id FOREIGN KEY (on_app_loaded_id) REFERENCES che_factory_on_app_loaded_action (id);
--------------------------------------------------------------------------------

-- Factory ---------------------------------------------------------------------
CREATE TABLE che_factory (
    id                  VARCHAR(255)         NOT NULL,
    name                VARCHAR(255),
    version             VARCHAR(255)         NOT NULL,
    created             BIGINT,
    user_id             VARCHAR(255),
    creation_strategy   VARCHAR(255),
    match_reopen        VARCHAR(255),
    referrer            VARCHAR(255),
    since               BIGINT,
    until               BIGINT,
    button_id           BIGINT,
    ide_id              BIGINT,
    workspace_id        BIGINT,

    PRIMARY KEY (id)
);
-- constraints
ALTER TABLE che_factory ADD CONSTRAINT fk_che_f_user_id FOREIGN KEY (user_id) REFERENCES usr (id);
ALTER TABLE che_factory ADD CONSTRAINT fk_che_f_workspace_id FOREIGN KEY (workspace_id) REFERENCES workspaceconfig (id);
ALTER TABLE che_factory ADD CONSTRAINT fk_che_f_button_id FOREIGN KEY (button_id) REFERENCES che_factory_button (id);
ALTER TABLE che_factory ADD CONSTRAINT fk_che_f_ide_id FOREIGN KEY (ide_id) REFERENCES che_factory_ide (id);
CREATE UNIQUE INDEX index_che_factory_name_user_id ON che_factory (user_id, name);
--------------------------------------------------------------------------------

-- Factory Images --------------------------------------------------------------
CREATE TABLE che_factory_image (
    image_data   BLOB,
    media_type   VARCHAR(255),
    name         VARCHAR(255),
    factory_id   VARCHAR(255)   NOT NULL
);
-- constraints
ALTER TABLE che_factory_image ADD CONSTRAINT fk_che_factory_image_factory_id FOREIGN KEY (factory_id) REFERENCES che_factory (id);
--------------------------------------------------------------------------------


<?php

namespace Defuse\Crypto;

use Defuse\Crypto\Exception as Ex;

final class Core
{
    const HEADER_VERSION_SIZE               = 4;
    const MINIMUM_CIPHERTEXT_SIZE           = 84;

    const CURRENT_VERSION                   = "\xDE\xF5\x02\x00";

    const CIPHER_METHOD                     = 'aes-256-ctr';
    const BLOCK_BYTE_SIZE                   = 16;
    const KEY_BYTE_SIZE                     = 32;
    const SALT_BYTE_SIZE                    = 32;
    const MAC_BYTE_SIZE                     = 32;
    const HASH_FUNCTION_NAME                = 'sha256';
    const ENCRYPTION_INFO_STRING            = 'DefusePHP|V2|KeyForEncryption';
    const AUTHENTICATION_INFO_STRING        = 'DefusePHP|V2|KeyForAuthentication';
    const BUFFER_BYTE_SIZE                  = 1048576;

    const LEGACY_CIPHER_METHOD              = 'aes-128-cbc';
    const LEGACY_BLOCK_BYTE_SIZE            = 16;
    const LEGACY_KEY_BYTE_SIZE              = 16;
    const LEGACY_HASH_FUNCTION_NAME         = 'sha256';
    const LEGACY_MAC_BYTE_SIZE              = 32;
    const LEGACY_ENCRYPTION_INFO_STRING     = 'DefusePHP|KeyForEncryption';
    const LEGACY_AUTHENTICATION_INFO_STRING = 'DefusePHP|KeyForAuthentication';

    /*
     * V2.0 Format: VERSION (4 bytes) || SALT (32 bytes) || IV (16 bytes) ||
     *              CIPHERTEXT (varies) || HMAC (32 bytes)
     *
     * V1.0 Format: HMAC (32 bytes) || IV (16 bytes) || CIPHERTEXT (varies).
     */

    /**
     * Adds an integer to a block-sized counter.
     *
     * @param string $ctr
     * @param int    $inc
     *
     * @throws Ex\EnvironmentIsBrokenException
     *
     * @return string
     */
    public static function incrementCounter($ctr, $inc)
    {
        if (Core::ourStrlen($ctr) !== Core::BLOCK_BYTE_SIZE) {
            throw new Ex\EnvironmentIsBrokenException(
                'Trying to increment a nonce of the wrong size.'
            );
        }

        if (!\is_int($inc)) {
            throw new Ex\EnvironmentIsBrokenException(
                'Trying to increment nonce by a non-integer.'
            );
        }

        if ($inc < 0) {
            throw new Ex\EnvironmentIsBrokenException(
                'Trying to increment nonce by a negative amount.'
            );
        }

        if ($inc > PHP_INT_MAX - 255) {
            throw new Ex\EnvironmentIsBrokenException(
                'Integer overflow may occur.'
            );
        }

        /*
         * We start at the rightmost byte (big-endian)
         * So, too, does OpenSSL: http://stackoverflow.com/a/3146214/2224584
         */
        for ($i = Core::BLOCK_BYTE_SIZE - 1; $i >= 0; --$i) {
            $sum = \ord($ctr[$i]) + $inc;

            /* Detect integer overflow and fail. */
            if (!\is_int($sum)) {
                throw new Ex\EnvironmentIsBrokenException(
                    'Integer overflow in CTR mode nonce increment.'
                );
            }

            $ctr[$i] = \pack('C', $sum & 0xFF);
            $inc     = $sum >> 8;
        }
        return $ctr;
    }

    /**
     * Returns a random byte string of the specified length.
     *
     * @param int $octets
     *
     * @throws Ex\EnvironmentIsBrokenException
     *
     * @return string
     */
    public static function secureRandom($octets)
    {
        self::ensureFunctionExists('random_bytes');
        try {
            return \random_bytes($octets);
        } catch (\Exception $ex) {
            throw new Ex\EnvironmentIsBrokenException(
                'Your system does not have a secure random number generator.'
            );
        }
    }

    /**
     * Computes the HKDF key derivation function specified in
     * http://tools.ietf.org/html/rfc5869.
     *
     * @param string $hash   Hash Function
     * @param string $ikm    Initial Keying Material
     * @param int    $length How many bytes?
     * @param string $info   What sort of key are we deriving?
     * @param string $salt
     *
     * @throws Ex\EnvironmentIsBrokenException
     *
     * @return string
     */
    public static function HKDF($hash, $ikm, $length, $info = '', $salt = null)
    {
        $digest_length = Core::ourStrlen(\hash_hmac($hash, '', '', true));

        // Sanity-check the desired output length.
        if (empty($length) || !\is_int($length) ||
            $length < 0 || $length > 255 * $digest_length) {
            throw new Ex\EnvironmentIsBrokenException(
                'Bad output length requested of HKDF.'
            );
        }

        // "if [salt] not provided, is set to a string of HashLen zeroes."
        if (\is_null($salt)) {
            $salt = \str_repeat("\x00", $digest_length);
        }

        // HKDF-Extract:
        // PRK = HMAC-Hash(salt, IKM)
        // The salt is the HMAC key.
        $prk = \hash_hmac($hash, $ikm, $salt, true);

        // HKDF-Expand:

        // This check is useless, but it serves as a reminder to the spec.
        if (Core::ourStrlen($prk) < $digest_length) {
            throw new Ex\EnvironmentIsBrokenException();
        }

        // T(0) = ''
        $t          = '';
        $last_block = '';
        for ($block_index = 1; Core::ourStrlen($t) < $length; ++$block_index) {
            // T(i) = HMAC-Hash(PRK, T(i-1) | info | 0x??)
            $last_block = \hash_hmac(
                $hash,
                $last_block.$info.\chr($block_index),
                $prk,
                true
            );
            // T = T(1) | T(2) | T(3) | ... | T(N)
            $t .= $last_block;
        }

        // ORM = first L octets of T
        $orm = Core::ourSubstr($t, 0, $length);
        if ($orm === false) {
            throw new Ex\EnvironmentIsBrokenException();
        }
        return $orm;
    }

    /**
     * Checks if two equal-length strings are the same without leaking
     * information through side channels.
     *
     * @param string $expected
     * @param string $given
     *
     * @throws Ex\EnvironmentIsBrokenException
     *
     * @return bool
     */
    public static function hashEquals($expected, $given)
    {
        static $native = null;
        if ($native === null) {
            $native = \function_exists('hash_equals');
        }
        if ($native) {
            return \hash_equals($expected, $given);
        }

        // We can't just compare the strings with '==', since it would make
        // timing attacks possible. We could use the XOR-OR constant-time
        // comparison algorithm, but that may not be a reliable defense in an
        // interpreted language. So we use the approach of HMACing both strings
        // with a random key and comparing the HMACs.

        // We're not attempting to make variable-length string comparison
        // secure, as that's very difficult. Make sure the strings are the same
        // length.
        if (Core::ourStrlen($expected) !== Core::ourStrlen($given)) {
            throw new Ex\EnvironmentIsBrokenException();
        }

        $blind           = Core::secureRandom(32);
        $message_compare = \hash_hmac(Core::HASH_FUNCTION_NAME, $given, $blind);
        $correct_compare = \hash_hmac(Core::HASH_FUNCTION_NAME, $expected, $blind);
        return $correct_compare === $message_compare;
    }
    /**
     * Throws an exception if the constant doesn't exist.
     *
     * @param string $name
     *
     * @throws Ex\EnvironmentIsBrokenException
     */
    public static function ensureConstantExists($name)
    {
        if (!\defined($name)) {
            throw new Ex\EnvironmentIsBrokenException();
        }
    }

    /**
     * Throws an exception if the function doesn't exist.
     *
     * @param string $name
     *
     * @throws Ex\EnvironmentIsBrokenException
     */
    public static function ensureFunctionExists($name)
    {
        // manage specific case of random_bytes
        if ($name === "random_bytes") {
            // random_bytes is a PHP7 new function required
            require_once(substr(realpath(dirname(__FILE__)), 0, strpos(realpath(dirname(__FILE__)), "Encryption")).'/misc/random_compat/random.php');
        }
        if (!\function_exists($name)) {
            throw new Ex\EnvironmentIsBrokenException();
        }
    }

    /*
     * We need these strlen() and substr() functions because when
     * 'mbstring.func_overload' is set in php.ini, the standard strlen() and
     * substr() are replaced by mb_strlen() and mb_substr().
     */

    /**
     * Computes the length of a string in bytes.
     *
     * @param string $str
     *
     * @throws Ex\EnvironmentIsBrokenException
     *
     * @return int
     */
    public static function ourStrlen($str)
    {
        static $exists = null;
        if ($exists === null) {
            $exists = \function_exists('mb_strlen');
        }
        if ($exists) {
            $length = \mb_strlen($str, '8bit');
            if ($length === false) {
                throw new Ex\EnvironmentIsBrokenException();
            }
            return $length;
        } else {
            return \strlen($str);
        }
    }

    /**
     * Behaves roughly like the function substr() in PHP 7 does.
     *
     * @param string $str
     * @param int    $start
     * @param int    $length
     *
     * @throws Ex\EnvironmentIsBrokenException
     *
     * @return string
     */
    public static function ourSubstr($str, $start, $length = null)
    {
        static $exists = null;
        if ($exists === null) {
            $exists = \function_exists('mb_substr');
        }

        if ($exists) {
            // mb_substr($str, 0, NULL, '8bit') returns an empty string on PHP
            // 5.3, so we have to find the length ourselves.
            if (!isset($length)) {
                if ($start >= 0) {
                    $length = Core::ourStrlen($str) - $start;
                } else {
                    $length = -$start;
                }
            }

            // This is required to make mb_substr behavior identical to substr.
            // Without this, mb_substr() would return false, contra to what the
            // PHP documentation says (it doesn't say it can return false.)
            if ($start === Core::ourStrlen($str) && $length === 0) {
                return '';
            }

            if ($start > Core::ourStrlen($str)) {
                return false;
            }

            $substr = \mb_substr($str, $start, $length, '8bit');
            if (Core::ourStrlen($substr) !== $length) {
                throw new Ex\EnvironmentIsBrokenException(
                    'Your version of PHP has bug #66797. Its implementation of
                    mb_substr() is incorrect. See the details here:
                    https://bugs.php.net/bug.php?id=66797'
                );
            }
            return $substr;
        }

        // Unlike mb_substr(), substr() doesn't accept NULL for length
        if (isset($length)) {
            return \substr($str, $start, $length);
        } else {
            return \substr($str, $start);
        }
    }

    /**
     * Computes the PBKDF2 password-based key derivation function.
     *
     * The PBKDF2 function is defined in RFC 2898. Test vectors can be found in
     * RFC 6070. This implementation of PBKDF2 was originally created by Taylor
     * Hornby, with improvements from http://www.variations-of-shadow.com/.
     *
     * @param string $algorithm  The hash algorithm to use. Recommended: SHA256
     * @param string $password   The password.
     * @param string $salt       A salt that is unique to the password.
     * @param int    $count      Iteration count. Higher is better, but slower. Recommended: At least 1000.
     * @param int    $key_length The length of the derived key in bytes.
     * @param bool   $raw_output If true, the key is returned in raw binary format. Hex encoded otherwise.
     *
     * @throws Ex\EnvironmentIsBrokenException
     *
     * @return string A $key_length-byte key derived from the password and salt.
     */
    public static function pbkdf2($algorithm, $password, $salt, $count, $key_length, $raw_output = false)
    {
        // Type checks:
        if (!\is_string($algorithm)) {
            throw new \InvalidArgumentException(
                'pbkdf2(): algorithm must be a string'
            );
        }
        if (!\is_string($password)) {
            throw new \InvalidArgumentException(
                'pbkdf2(): password must be a string'
            );
        }
        if (!\is_string($salt)) {
            throw new \InvalidArgumentException(
                'pbkdf2(): salt must be a string'
            );
        }
        // Coerce strings to integers with no information loss or overflow
        $count += 0;
        $key_length += 0;

        $algorithm = \strtolower($algorithm);
        if (!\in_array($algorithm, \hash_algos(), true)) {
            throw new Ex\EnvironmentIsBrokenException(
                'Invalid or unsupported hash algorithm.'
            );
        }

        // Whitelist, or we could end up with people using CRC32.
        $ok_algorithms = [
            'sha1', 'sha224', 'sha256', 'sha384', 'sha512',
            'ripemd160', 'ripemd256', 'ripemd320', 'whirlpool',
        ];
        if (!\in_array($algorithm, $ok_algorithms, true)) {
            throw new Ex\EnvironmentIsBrokenException(
                'Algorithm is not a secure cryptographic hash function.'
            );
        }

        if ($count <= 0 || $key_length <= 0) {
            throw new Ex\EnvironmentIsBrokenException(
                'Invalid PBKDF2 parameters.'
            );
        }

        if (\function_exists('hash_pbkdf2')) {
            // The output length is in NIBBLES (4-bits) if $raw_output is false!
            if (!$raw_output) {
                $key_length = $key_length * 2;
            }
            return \hash_pbkdf2($algorithm, $password, $salt, $count, $key_length, $raw_output);
        }

        $hash_length = Core::ourStrlen(\hash($algorithm, '', true));
        $block_count = \ceil($key_length / $hash_length);

        $output = '';
        for ($i = 1; $i <= $block_count; $i++) {
            // $i encoded as 4 bytes, big endian.
            $last = $salt.\pack('N', $i);
            // first iteration
            $last = $xorsum = \hash_hmac($algorithm, $last, $password, true);
            // perform the other $count - 1 iterations
            for ($j = 1; $j < $count; $j++) {
                $xorsum ^= ($last = \hash_hmac($algorithm, $last, $password, true));
            }
            $output .= $xorsum;
        }

        if ($raw_output) {
            return Core::ourSubstr($output, 0, $key_length);
        } else {
            return Encoding::binToHex(Core::ourSubstr($output, 0, $key_length));
        }
    }
}


Q:

Yii - Client Side Validation for Textarea

I am new to yii and having trouble with client side validation for my textarea. I am not sure what I am doing wrong but for some reason the client side validation does not work only for this textarea.
Below is my rules in my model:
public function rules()
{
    return array(
        array('content', 'required'),
        array('user_id, seen', 'numerical', 'integerOnly'=>true),
        array('datetime', 'safe'),
        array('id, user_id, content, datetime, seen', 'safe', 'on'=>'search'),
    );
}

Here is the code in my view:
<?php $form=$this->beginWidget('TbActiveForm', array(
        'id'=>'post-form',
        'action'=>Yii::app()->createUrl('/feedback/default/create'),
        'enableClientValidation'=>true,
        'clientOptions'=>array(
            'validateOnSubmit'=>true,
        ),
    )); ?>

        ×

New Feedback

        <?php echo $form->textarea($model,'content', array('id'=>'feedback_content','class'=>'feedback_textarea')); ?>
        <?php echo $form->error($model,'content'); ?>

            Hint: You can use <?php echo CHtml::link('markdown', 'http://daringfireball.net/projects/markdown/syntax'); ?> syntax!

        <?php echo TbHtml::submitButton('Send Feedback', array('color' => TbHtml::BUTTON_COLOR_SUCCESS)); ?>

<?php
    $this->endWidget();
?>

and finally this is my controller:
public function actionCreate()
{
    $model=new Feedback;
    if(isset($_POST['Feedback'])) {
        $model->attributes = $_POST['Feedback'];
        $model->user_id = Yii::app()->user->getId();
        $model->datetime = date("Y-m-d H:i:s");
        $model->seen = 0;
        if($model->validate()) {
            $model->save();
            $this->redirect(array('/dashboard'));
        }
        else
            echo 'cant validate';
    }

}

If I try to violate the rule for this textarea, like if I leave it blank, I do not get the proper error message and I end up getting "can't validate" (which is only there for testing purposes). My database is mysql and the intended field is of type "TEXT".
Any help is appreciated. Thanks

A:

Remove 'id'=>'feedback_content' from $form->textarea(). CActiveForm it self will create the ID for a form filed. For your text area id should be Feedback_content not feedback_content (Case sensitive). Because of this may be validation message is not  notifying in the view. Put errorSummary to check the validation
 <?php echo $form->errorSummary($model); ?>


Rio de Janeiro's accredited anti-doping laboratory has been suspended weeks before the Olympic Games open.

The World Anti-Doping Agency (WADA) announced the suspension on Friday, citing "non-conformity with the International Standard for Laboratories," but did not elaborate.

The suspension is just the latest setback for Brazil ahead of the Aug. 5 Summer Games as the government grapples with deep political turmoil and the ongoing Zika health crisis.

Sergio Moraes / Reuters

The WADA suspension took effect on Wednesday when the Laboratory was notified and prohibits anti-doping analyses on urine and blood samples.

“Athletes can have confidence that the suspension will only be lifted by WADA when the laboratory is operating optimally; and that, the best solution will be put in place to ensure that sample analysis for the Rio Olympic and Paralympic Games is robust," Olivier Niggli, WADA's incoming director general, said in a statement.

If the issue is not resolved before the Olympics open, all testing will have to be conducted at a certified lab in an other country, much like what was done for World Cup blood samples.

Other accredited labs are located in Los Angeles and Salt Lake City in the U.S.; Bogota, Colombia; Havana, Cuba; and Mexico City.

The decision can be appealed to the Court of Arbitration for Sport within 21 days of being notified.

Jason Wells is deputy news director for BuzzFeed News and is based in Los Angeles.


"A man who was fond of wine was offered some grapes at dessert after dinner. "Much obliged," said he, pushing the plate aside; "I am not accustomed to take my wine in pills."--Jean Antheleme Brillat-Savarin, The Physiology of Taste

CHICKEN CASSEROLE #2 Recipe

Tried it? Rate this Recipe:

This recipe for CHICKEN CASSEROLE #2, by Dolores Hardin, is from Family & Friends,
one of the cookbooks created at FamilyCookbookProject.com. We help
families or individuals create heirloom cookbook treasures.

Ingredients:

Ingredients:

Directions:

Directions:

Cook chicken until tender and cool. Cut into bite size pieces. Mix all ingredients together except crackers and margarine. (I use just enough chicken broth to get the consistency I like.) Pour into casserole dish and top with cracker crumbs. Drizzle with melted margarine. Bake at 350º until bubbly and light brown.

*Recipes and photos entered into the Family Cookbook Project are provided by the submitting contributors. All rights are retained by the contributor. Please contact us if you believe copyright violations have occurred.


Debridement of the diabetic foot: a podiatric perspective.
High plantar pressures are a risk factor for diabetic foot ulcers that are common chronic wounds. In patients with peripheral neuropathy, plantar ulcers may be managed by debridement of callus, a process that has been shown to reduce peak plantar pressures. Callus debridement is clearly an important ulcer prevention strategy. The scalpel skills used by the podiatrist to remove callus are best suited to achieve safe, local sharp wound debridement. Current podiatric practice in the United Kingdom is based on sound theoretical principles. However, good scientific data recommending its efficacy are scarce. The role of podiatry in debridement and wound management needs careful examination, a major aim of this article.


Carlo D'Angelo

Carlo D'Angelo (February 2, 1919 – June 9, 1973) was an Italian actor and voice actor.

Biography
Born in Milan, the son of a Neapolitan father and a Florentine mother, at 9 years old D'Angelo was part of the Voci Bianche choir at La Scala. After studying law at the University of Milan, in 1941 he started working on radio and shortly later as a film dubber. In 1947 he made his stage debut at the  Piccolo Teatro di Milano, under Giorgio Strehler. In the 1950s he worked several times in the theatrical company of Vittorio Gassman, and in 1958 he formed a stage company together with Lia Zoppelli and Renzo Giovampietro.

Between 1963 and 1964, he got large critical acclaim for his performance in Il diavolo e il buon Dio, under the direction of Luigi Squarzina. D'Angelo was also active in films, where alternated major and character roles, and on television, where he had several significant roles in a number of TV-series. D'Angelo was also diction teacher at the Silvio d’Amico Academy of Dramatic Arts and recorded several albums of prose and poetry.

As a voice actor, D'Angelo provided the voice of Shere Khan in the Italian dubbed version of The Jungle Book.

Death
D’Angelo died at the Sant’Orsola-Malpighi Polyclinic in Bologna on June 9th 1973 at the age of 54. He had underwent stomach surgery 25 days prior to his death.

Partial filmography

 La primadonna (1943)
 Uomini senza domani (1948)
 Giudicatemi! (1948)
 Ho sognato il paradiso (1950) - Magnaccia
 Fugitive in Trieste  (1951)
 Lorenzaccio (1951)
 Perdonami! (1953) - Commissioner
 Pietà per chi cade (1954) - Mari's defense attorney
 Land of the Pharaohs (1955) - Nabuna, Nellifer's Bodyguard (uncredited)
 Adriana Lecouvreur (1955)
 La ladra (1955) - Il Parocco
 The Rival (1956) - Primo ufficiale inquirente
 Terrore sulla città (1957) - Professor Gallura
 I Vampiri  (1957) - L'ispettore Chantal
 Dreams in a Drawer  (1957) - The Substitute
 La canzone più bella (1957) - Il Supplente
 L'ultima violenza (1957) - Notaio Bartoli
 Herod the Great (1959) - Man who saw the Messiah's birth
 Hercules Unchained (1959) - Creonte, High Priest of Thebes
 The Great War (1959) - Capitano Ferri
 David and Goliath (1960)
 Everybody Go Home (1960) - Partigiano napoletano
 Sword of the Conqueror (1961) - Falisque
 Pigeon Shoot (1961) - Mattei
 A Day for Lionhearts (1961)  - Il prete
 Nefertiti, Queen of the Nile (1961) - Seper
 Battle of the Worlds (1961) - Gen. Varreck
 Ten Italians for One German (1962) - Obersturmbannfuhrer Herbert Kappler
 Gli eroi del doppio gioco (1962) - Riccio
 The Verona Trial (1963) - Italo Vianini
 Giulietta e Romeo (1964) - Principe di Verona
 Secret Agent Super Dragon (1966) - Fernand Lamas
 One Thousand Dollars on the Black (1966) - Judge Waldorf
 VIP my Brother Superman (1968) - Narrator (voice)
 The Great Silence (1968) - Governor of Utah

Notes

External links

Category:1919 births
Category:1973 deaths
Category:20th-century Italian male actors
Category:Italian male film actors
Category:Italian male television actors
Category:Italian male stage actors
Category:Italian male voice actors
Category:People from Milan
Category:University of Milan alumni


Summaries of health policy coverage from major news organizations

EpiPen’s Price Hikes Draw Intense Scrutiny, Raise Ire Among Lawmakers

News outlets report on how the maker of the emergency allergy medicine came to raise the treatment's price tag by so much, how this move fits into the broader story of U.S. drug pricing policy and how the ensuing controversy will now play out both in the marketplace and on Capitol Hill.

The Associated Press:
How EpiPen's Maker Raised Prices, And Hackles, So Much
Sky-high price hikes for EpiPen, the injected emergency medicine for severe allergic reactions to foods and bug bites, have made its maker the latest target for patients and politicians infuriated by soaring drug prices. The company, Mylan, has a virtual monopoly on epinephrine injectors, potentially life-saving devices used to stop a runaway allergic reaction. Mylan N.V., which has headquarters in Hertfordshire, England, and Pittsburgh, has hiked prices as frequently as three times a year over the past nine years, pushing its list price for a package of two syringes to more than $600. (Johnson, 8/23)

Vox:
EpiPen’s 400 Percent Price Hike Tells Us A Lot About What’s Wrong With American Health Care
The story of Mylan’s giant EpiPen price increase is, more fundamentally, a story about America's unique drug pricing policies. We are the only developed nation that lets drugmakers set their own prices, maximizing profits the same way sellers of chairs, mugs, shoes, or any other manufactured goods would. In Europe, Canada, and Australia, governments view the market for cures as essentially uncompetitive and set the price as part of a bureaucratic process, similar to how electricity or water are priced in regulated US utility markets. (Kliff, 8/23)

CNN:
EpiPen Cost Soars, But It's Not The Only Drug To
Prescription drugs also cost about twice as much in the United States compared to other advanced nations. In other words, EpiPens are not the only prescription drugs with steep price hikes. For instance, when Turing Pharmaceuticals increased the cost of Daraprim, a drug used by some cancer and AIDS patients, from $13.50 to $750 last year, it sparked outrage. The pharmaceutical company's former CEO was Martin Shkreli, known as "pharma bro." (Howard, 8/23)

Stat:
Controversial CEO In The Hot Seat Over EpiPen Price Hikes
Drug company CEO Heather Bresch affectionately describes the humble EpiPen as her “baby,” a once-middling product that she turned into a blockbuster. With aggressive advertising — and even more aggressive price hikes — Bresch has fostered the EpiPen into a bestseller that brings in more than $1 billion a year in revenue for Mylan Pharmaceuticals. But the growing furor over drug pricing threatens to turn Mylan’s biggest asset into a liability. And it has forced Bresch into an unwelcome spotlight, as anxiety over the rising cost of medicine has drug industry critics seeking out the next Martin Shkreli. (Garde, 8/24)

The Fiscal Times:
Epi-Pen Maker Enters The Pharmaceutical Industry’s Hall Of Shame
Mylan’s sales from the sale of EpiPens reached $1.2 billion in 2015, according to Bloomberg. The price hike has generated a national uproar in recent days, and nearly 63,000 people have signed a petition demanding that Congress investigate “the oppressive price increases.” The petition notes that many families have been forced to turn to manual syringes as a cheaper alternative to the EpiPens, although that makes it harder and more time consuming to get the right dosage. ... As prices of EpiPens went up, so did the company stock, which tripled from $13.29 in 2007 to a high of $47.59 this year, as well as executives’ salaries. (Pianin, 8/23)

The Associated Press:
Lawmakers Demand Information On EpiPen Price Increase
Two other senators, Democrats Mark Warner of Virginia and Richard Blumenthal of Connecticut, also wrote the company about the high prices. Warner said in a letter Tuesday that the issue is personal for him. "As the parent of a child with severe allergies, I am all too familiar with the life-or-death importance of these devices," Warner wrote.Rep. Grace Meng, D-N.Y., on Tuesday asked the House Oversight and Government Reform Committee to hold a hearing on the issue. She is a co-chair of the Congressional Kids Safety Caucus. (Jalonick, 8/23)

The Star Tribune:
Klobuchar, Others Call For FTC To Investigate Increases In EpiPen Prices
U.S. Sen. Amy Klobuchar of Minnesota has asked the Federal Trade Commission (FTC) to investigate whether a drug company violated antitrust laws by steeply increasing the price of a product that treats people suffering from severe allergic reactions. After hearing from constituents, Klobuchar, whose daughter has nut allergies, questioned Mylan pharmaceutical’s decision to push the price of a dual pack of EpiPens from $100 in 2008 to $500-$600 in 2016. (Spencer, 8/23)

The Hill:
Dem Wants Hearing On EpiPen Price Hikes
Rep. Grace Meng (D-N.Y.) is calling for a full committee hearing on the cost of EpiPens, lifesaving injections for people suffering from a severe allergic reaction. In a letter to the chairman and ranking member of the House Oversight and Government Reform Committee on Monday, Meng expressed her concerns about the dramatic increase in the cost of EpiPens. (Wheeler, 8/23)

Stat:
EpiPen Goes For The Gold: Drug Maker Blitzed Olympics With Ads
Mylan Pharmaceuticals, which has been in the hot seat for hiking the price of its EpiPen anaphylaxis treatment beyond the reach of some patients, ran dozens of ads during NBC’s Olympics coverage to raise awareness of food allergies and push patients to talk to their doctors about treatments. The ad doesn’t mention EpiPens — but since EpiPens are, by far, the dominant anaphylaxis treatment, it’s a safe bet they’d be the first option for many physicians. And the ad drives consumers to an allergy awareness website that links in just a few clicks to the EpiPen site. (Tedeschi, 8/23)

For more news on high drug costs, check out our weekly feature, PrescriptionDrugWatch, which includes coverage and perspectives of the issue.

This is part of the KHN Morning Briefing, a summary of health policy coverage from major news organizations. Sign up for an email subscription.


Q:

Cannot use type T as a reified parameter, use class instead

Android Studio 3.4
Kotlin 1.3.10

I have the following method that calls findPreferences to return the correct value that is stored in shared preferences. However, as I am using reified the findPreferences give me an error: Cannot use type T as a reified parameter.
Is there anyway I can get this to work?
fun <T: Any> getValue(key: String, defaultValue: T?): T {
    return findPreferences(key, defaultValue)
}

This is the method that will return the value based on the key
@Suppress("unchecked_cast")
inline fun <reified  T: Any> findPreferences(key: String, defaultValue: T?): T {
    with(sharedPreferences) {
        val result: Any = when(defaultValue) {
            is Boolean -> getBoolean(key, default)
            is Int -> getInt(key, defaultValue)
            is Long -> getLong(key, defaultValue)
            is Float -> getFloat(key, defaultValue)
            is String -> getString(key, defaultValue)
            else -> {
                 throw UnsupportedOperationException("Cannot find preference casting error")
            }
        }
        return result as T
    }
}

A:

Remove reified or change getValue to inline fun <reified T: Any> getValue....
With reified, we pass a type to this function(https://kotlinlang.org/docs/reference/inline-functions.html#reified-type-parameters). reified requires type to be known at compile time and obviously there is no enough type information in the getValue.


Q:

BCP for sybase using .net

It is possible to run bcp utility for sybase database from .net code?
I want to insert around 10000 rows in database which i have read from file. So rather then doing normal insert which takes much time i want to convert the data in file to bcp readable format.
After doing that how i can call bcp command of sybase database using .net front end?
I am using window application.
Thanks,
Denish
Thanks,
denish

A:

You can run the bcp utility using Process.Start()
Here's an example.