text:
Jean-Baptiste Descamps, né le  à Dunkerque et mort le  à Rouen, est un peintre et historien de l'art français.

Il est l'auteur de La Vie des Peintres Flamands, Allemands et Hollandois, un dictionnaire biographique qui a fait référence.

Biographie
La famille de Descamps s'opposa assez longtemps à ce qu'il s'occupât de peinture, bien qu'il eût pour oncle maternel le paysagiste Louis de Cuyper, qui lui donna même des conseils. Son père l'envoya faire deux ans d'humanités chez les jésuites à Ypres. Il en profita pour prendre des leçons de dessin auprès d'un peintre. Refusant d'entrer dans la profession de son père, il s'enfuit pour Anvers pour poursuivre ses études. Ayant obtenu un prix de peinture à l'école d'Anvers, de retour à Dunkerque, il fréquenta l'école de cette ville, dirigée par le dessinateur et coloriste Bernard. Au bout de dix-huit mois, il produisit un tableau représentant la grande place de Dunkerque montrant un théâtre de charlatans entouré d'une foule de spectateurs ayant tous une action différente.

Montré en 1737 à Paris, il entra dans l'atelier de Nicolas de Largillierre, avec qui il travaillera sur les tableaux exécutés pour le sacre de . Il y peignit une guinguette flamande avec, pour pendant, une fête de village qui le firent distinguer de Pierre Dulin, peintre du roi et professeur de l'Académie, qui l'associa aux tableaux relatifs au sacre de  dont il était chargé. Cette tâche finie, après avoir vécu à Paris et voyagé en Flandre, il se disposait, en 1780, d'après les sollicitations de Carle Van Loo, à aller rejoindre en Angleterre son frère Jean-Baptiste qui, avec de grandes commandes de la cour, désirait un artiste capable de bien traiter les mains, les draperies et les autres accessoires de ses tableaux et à l'y aider, lorsque sa vie prend un tour inattendu. Lors d'une halte à Rouen, où il avait des amis, l'érudit Le Cornier de Cideville, l'ami de Voltaire et amateur éclairé des arts, instruit de son arrivée, lui rendit visite et sut le convaincre de rester en Normandie.

Établi à Rouen, il y fonde, sur le modèle de la Royal Dublin Society et sur la base des idées des philosophes des Lumières, une école particulière de dessin qui propose des cours gratuits, qu'il obtint ensuite de rendre publique et dont il fut nommé directeur. Bientôt le nombre de ses élèves fut si considérable que le vaste local qu'il s'était procuré ne pouvait les contenir. L'Académie dont il était membre, secondé par quelques amis des arts, fondèrent par une délibération de l'hôtel de ville, des prix de  pour cette école. Beaucoup de bons artistes sont sortis de cette école, qui était très suivie, car Descamps écrivait en 1772 :  Il a également rédigé au sujet de cette école, qui jouera un rôle primordial dans le développement des arts picturaux en Normandie, un mémoire qui sera couronné par l'Académie française. Son école servit de modèle aux autres écoles provinciales qui s'ouvrirent à Lyon, à Dijon, à Marseille ou à Orléans. L'école de Descamps fonctionne sur le modèle parisien. L'enseignement y est à peu près le même : dessin d'après les maitres puis les modèles vivants.

Il se marie le  à Rouen avec Marie Anne de Mauny dont il avait eu deux enfants en 1741 et 1742.

Le style que Descamps, né en Flandre, affectionnait est celui des maitres flamands. Il aima et admira de bonne heure les œuvres de ses grands maitres, Rubens, Van Dyck, Teniers, Jordaëns, et, une fois fixé à Rouen, il résolut d'écrire leur histoire. Une part importante de son premier ouvrage sur la Vie des peintres flamands, allemands et hollandais, ornée de nombreux portraits d'artistes, paru entre 1753 et 1763 à Paris, chez Jombert, leur est consacrée. Il dessina un grand nombre de ces portraits et fut aidé dans cette tâche par Eisen, mais le principal attrait de ce livre réside dans les délicates gravures de ces portraits auxquelles Ficquet a prêté son burin. Rien de vivant, de personnel et de ressemblant comme ces fines têtes d'artistes. Le portrait de Van Dyck est considéré comme un petit chef-d'œuvre de gout.

Quant à la partie littéraire du livre, elle serait assez faible et les notices n'en seraient, à en croire Mariette, pas très exactes :

Dans son Voyage pittoresque de la Flandre et du Brabant, qu'il a aussi enrichi de quelques planches, publié en 1769, il dresse une nomenclature minutieuse des peintures, des sculptures et des objets d'art qu'il a observés au cours de ses pérégrinations ; il marque d'une étoile ceux qu'il pense le plus susceptibles d'intéresser ses lecteurs et ajoute à leur intention une carte dépliante et un horaire des voitures publiques.  Le préfacier de la deuxième édition du Voyage, parue en 1838, déplore toutefois la disparition de nombreuses œuvres décrites par Descamps, emportées dans la tourmente de la Révolution et de l'invasion napoléonienne.

Descamps est agréé et reçu à l'Académie le . Il y présente la Cauchoise dans une cuisine, œuvre de genre empreinte de naturalisme, marquée par l'influence de Chardin et de Greuze.

Plusieurs tableaux de Jean-Baptiste Descamps sont conservés dans les musées des beaux-arts de Rouen et de Dunkerque. Diderot ne les a pas fort appréciés, trouvant qu'il peignait lourd et gris ; il lui conseille de garder ses toiles dans son cabinet et de les montrer, après diner, à ses amis, qui, le cure-dent en main, trouveront que ce n'est pas trop mal. Ailleurs, il rapporte le mot de Chardin, qui disait de la peinture de Descamps qu'elle était .

Descamps fut encore chargé, quand  fit le voyage du Havre en 1753, d'en retracer les principaux épisodes : Arrivée du roi, Illumination de la Grand-Rue, Manœuvres en rade, Lancement de navires, grandes compositions qui ont été gravées par Le Bas. Après avoir obtenu pour son fils Marc-Antoine la survivance de la place qu'il allait laisser vacante, Descamps mourut estimé de ses élèves.

Élèves

Œuvres
Absorbé par ses diverses occupations, Descamps a peu produit. L'essentiel de son œuvre est conservé aux musées de Dunkerque et de Rouen. Un de ses fils, également peintre, Jean-Baptiste Henry (1742-1836) sera le premier conservateur du musée de Rouen.

 Paris, École nationale supérieure des beaux-arts : Paysanne cauchoise assise avec sa famille ;
 Rouen, musée des beaux-arts :
 Autoportrait ;
 La Pupille ;
 Le Négociant ;
 Portrait de l'artiste dans son atelier.

Publications
 La Vie des peintres flamands, allemands et hollandois, avec des portraits gravés en taille-douce, une indication de leurs principaux ouvrages, & des réflexions sur leurs différentes manieres (1753-1763) (4 volumes) ; illust. Charles Eisen (tome 1, tome 2, tome 3, tome 4) ; réédition : Minkoff, Genève, 1972
 Sur l'utilité des établissements des écoles gratuites de dessin en faveur des métiers, Paris, Regnard, 1767.
 Voyage pittoresque de la Flandre et du Brabant, avec des réflexions relativement aux arts et quelques gravures (1769) (lire en ligne)

Notes et références

Annexes

Bibliographie

 Christian Michel, « Lettres adressées par Charles-Nicolas Cochin fils à Jean-Baptiste Descamps, 1757-1790 », Correspondances d'artistes des , Archives de l'Art français publiés par la société de l'Histoire de l'Art français, nouvelle période, , Jacques Laget, Nogent-le-Roi, 1986.
 Roger Portalis, Les Dessinateurs d'illustrations au dix-huitième siècle, vol. 1 à 2, Paris, Damascène Morgand et Charles Fatout, 1877.

Articles connexes
 Liste des membres de l'Académie royale de peinture et de sculpture

Liens externes

 Jean-Baptiste Descamps dans la base Joconde

Peintre français du XVIIIe siècle
Peintre d'histoire français
Peintre de scène mythologique
Peintre portraitiste français
Peintre du Nord-Pas-de-Calais
Historien de l'art français
Membre de l'Académie des sciences, belles-lettres et arts de Rouen
Membre de l'Académie royale de peinture et de sculpture
Naissance en août 1714
Naissance à Dunkerque
Décès en juin 1791
Décès à Rouen
Décès à 77 ans
Décès dans la Seine-Inférieure
Naissance en Hainaut français


text:
Home > Opinions > People v. Williams
People v. Williams
People v. Williams , 16 Cal.3d 663
[Crim. No. 19098. Supreme Court of California. April 2, 1976.]
THE PEOPLE, Plaintiff and Respondent, v. BENNY WAYNE WILLIAMS, Defendant and Appellant
In Bank. (Opinion by Clark, J., expressing the unanimous view of the court.) [16 Cal.3d 664]
Harold F. Tyvoll, under appointment by the Supreme Court, and Michael Lloyd for Defendant and Appellant. [16 Cal.3d 665]
Evelle J. Younger, Attorney General, Jack R. Winkler, Chief Assistant Attorney General, Daniel J. Kremer, Assistant Attorney General, Jay M. Bloom and Steven H. Zeigen, Deputy Attorneys General, for Plaintiff and Respondent.
Defendant appeals from judgment entered on a jury verdict convicting him of first degree robbery. (Pen. Code, §§ 211, 211a.) The judgment must be reversed.
Three masked gunmen robbed a grocery store. The tallest, armed with a revolver, forced the manager to open the safe. Meanwhile, the shortest, also armed with a pistol, walked within a few feet of the manager, ordering the customers to lie on the floor. The third robber, armed with a shotgun, remained at the front of the store. Removing approximately $1,200 from the safe and cash registers, the robbers escaped by automobile.
Ten days later, defendant was arrested on a warrant for an unrelated charge; a shotgun and ammunition were found in the car he was driving.
Subsequently, Thomas Morris was arrested for the robbery; his statement to Detective Eldon Smith implicated defendant and resulted in the charge against Morris being dropped.
Based on his voice and stature, the grocery store manager identified defendant at a lineup as the shortest of the three masked men; he repeated his identification of defendant at the preliminary hearing and at trial. None of the other five witnesses viewing the lineup was able to identify defendant.
At the preliminary hearing, the People called Morris but failed to elicit testimony from him adverse to defendant. In response to the prosecutor's questions, Morris denied having told Detective Smith that defendant first asked him to participate in the robbery and then later admitted having used a handgun in its commission, obtaining approximately $1,100. The People then called Detective Smith who testified that Morris had indeed made these statements to him. [16 Cal.3d 666]
At trial, Morris being declared an unavailable witness within the meaning of section 240, subdivision (a)(5), of the Evidence Code, fn. 1 his preliminary hearing testimony was admitted under the former testimony exception to the hearsay rule set forth in section 1291, subdivision (a)(2), of the Evidence Code. fn. 2 Detective Smith then repeated his testimony concerning Morris' prior inconsistent statements, the statements being admitted as substantive evidence under section 1235 of the Evidence Code. fn. 3
Defendant contends that admitting Smith's testimony regarding Morris' prior inconsistent statements violated his right of confrontation as guaranteed by the Sixth Amendment, and made applicable to the states by the Fourteenth Amendment, to the United States Constitution.
Section 1235 of the Evidence Code provides in effect that a prior inconsistent statement of a witness is admissible not only to impeach his credibility but also to prove the truth of the matters asserted therein. (People v. Green (1971) 3 Cal.3d 981, 985 [92 Cal.Rptr. 494, 479 P.2d 998] (Green II).) In People v. Green (1969) 70 Cal.2d 654 [75 Cal.Rptr. 782, 451 P.2d 422] (Green I), section 1235 was held unconstitutional as applied to admission at trial of prior inconsistent statements elicited at the preliminary hearing.
Green I was vacated in California v. Green (1970) 399 U.S. 149 [26 L.Ed.2d 489, 90 S.Ct. 1930]. The high court held that admission of a [16 Cal.3d 667] witness' prior inconsistent statement to prove the truth of the matters asserted therein does not violate the confrontation clause provided (1) the statement was made by the declarant in testifying at the preliminary hearing, or (2) the declarant testifies at trial. (399 U.S. at pp. 158-159, 165 [26 L.Ed.2d at pp. 497-498, 501]; People v. Green, supra, 3 Cal.3d at p. 985.) Morris' prior inconsistent statements not having been made while testifying at the preliminary hearing, and Morris not having testified at trial, defendant contends he was denied his right to confront Morris.
However, we do not reach constitutional questions unless absolutely required to do so to dispose of the matter before us. (People v. Gilbert (1969) 1 Cal.3d 475, 481, 484-485 [82 Cal.Rptr. 724, 462 P.2d 580]; Palermo v. Stockton Theatres, Inc. (1948) 32 Cal.2d 53, 65-66 [195 P.2d 1]; Estate of Johnson (1903) 139 Cal. 532, 534 [73 P. 424].) [1] We need not reach the constitutional question here because Smith's testimony regarding Morris' prior inconsistent statements was not admissible under section 1235 of the Evidence Code. fn. 4
Statutes are to be construed so as to effect the intent of the Legislature. (Code Civ. Proc., § 1859; Mercer v. Perez (1968) 68 Cal.2d 104, 112 [65 Cal.Rptr. 315, 436 P.2d 315]; Select Base Materials, Inc. v. Board of Equal. (1959) 51 Cal.2d 640, 645 [335 P.2d 672].) The official comments of the California Law Revision Commission on the various sections of [16 Cal.3d 668] the Evidence Code are declarative of the intent not only of the draftsman of the code but also of the legislators who subsequently enacted it. (Kaplan v. Superior Court (1971) 6 Cal.3d 150, 158, fn. 4 [98 Cal.Rptr. 649, 491 P.2d 1].) The commission's comments to sections 1235 and 1202 indicate that section 1235 applies at trial only to prior inconsistent statements of a trial witness.
Section 1235 provides: "Evidence of a statement made by a witness is not made inadmissible by the hearsay rule if the statement is inconsistent with his testimony at the hearing and is offered in compliance with Section 770." fn. 5 (Italics added.)
The commission's comment to section 1235 states in pertinent part: "Section 1235 admits inconsistent statements of witnesses because the dangers against which the hearsay rule is designed to protect are largely nonexistent. The declarant is in court and may be examined and cross-examined in regard to his statements and their subject matter. In many cases, the inconsistent statement is more likely to be true than the testimony of the witness at the trial because it was made nearer in time to the matter to which it relates and is less likely to be influenced by the controversy that gave rise to the litigation. The trier of fact has the declarant before it and can observe his demeanor and the nature of his testimony as he denies or tries to explain away the inconsistency. Hence, it is in as good a position to determine the truth or falsity of the prior statement as it is to determine the truth or falsity of the inconsistent testimony given in court." (Italics added.)
Section 1202 deals with the impeachment of a declarant whose hearsay statement is in evidence as distinguished from the impeachment of a witness who has testified. fn. 6 The commission's comment to section 1202 states in pertinent part: "Section 1235 provides that evidence of [16 Cal.3d 669] inconsistent statements made by a trial witness may be admitted to prove the truth of the matter stated. No similar exception to the hearsay rule is applicable to a hearsay declarant's inconsistent statements that are admitted under Section 1202."
Another indication that section 1235 is inapplicable here is found in section 145 of the Evidence Code. Again, section 1235 provides: "Evidence of a statement made by a witness is not made inadmissible by the hearsay rule if the statement is inconsistent with his testimony at the hearing ...." (Italics added.) Section 145 provides: "'The hearing' means the hearing at which a question under this code arises, and not some earlier or later hearing." Morris not having testified at trial -- the hearing at which the admissibility of his prior inconsistent statements arose -- those statements were not inconsistent with his testimony "at the hearing." (See People v. Rojas (1975) 15 Cal.3d 540, 548 [125 Cal.Rptr. 357, 542 P.2d 229].) Therefore, Smith's testimony regarding Morris' prior inconsistent statements was not admissible under section 1235. People v. Bynum (1971) 4 Cal.3d 589 [94 Cal.Rptr. 241, 483 P.2d 1193] fn. 7 and People v. Browning (1975) 45 Cal.App.3d 125 [119 Cal.Rptr. 420] fn. 8 are overruled to the extent they conflict with the views expressed herein.
[2] It is reasonably probable that a result more favorable to defendant would have been reached in the absence of the error. (See Cal. Const., art. VI, § 13; People v. Watson (1956) 46 Cal.2d 818, 836 [299 P.2d 243].) Used as substantive evidence, the erroneously admitted evidence amounted to a confession. During its deliberations, at its request, the jury heard the evidence again; soon thereafter the guilty verdict was returned. The only other evidence incriminating defendant was the store manager's identification of him. However, the robbers having been masked, the identification was based solely on defendant's stature and voice. Moreover, none of the other five witnesses viewing the lineup was able to identify defendant. [16 Cal.3d 670]
Wright, C. J., McComb, J., Tobriner, J., Mosk, J., Sullivan, J., and Richardson, J., concurred.
FN 1. Section 240, subdivision (a)(5), provides that a witness is "unavailable" when "[a]bsent from the hearing and the proponent of his statement has exercised reasonable diligence but has been unable to procure his attendance by the court's process." Defendant contends that the People failed to exercise reasonable diligence to procure Morris' attendance. We need not reach this question because, for the reasons stated below, Smith's testimony regarding Morris' prior inconsistent statements was inadmissible on another ground.
FN 2. Section 1291, subdivision (a)(2), provides that evidence of former testimony is not made inadmissible by the hearsay rule if the declarant is unavailable as a witness and "[t]he party against whom the former testimony is offered was a party to the action or proceeding in which the testimony was given and had the right and opportunity to cross-examine the declarant with an interest and motive similar to that which he has at the hearing."
FN 3. Section 1235 provides: "Evidence of a statement made by a witness is not made inadmissible by the hearsay rule if the statement is inconsistent with his testimony at the hearing and is offered in compliance with Section 770."
Section 770 provides: "Unless the interests of justice otherwise require, extrinsic evidence of a statement made by a witness that is inconsistent with any part of his testimony at the hearing shall be excluded unless: [¶] (a) The witness was so examined while testifying as to give him an opportunity to explain or to deny the statement; or [¶] (b) The witness has not been excused from giving further testimony in the action."
FN 4. Defendant's failure to object to Smith's testimony on this ground is excusable. It is the general rule, of course, that questions relating to the admissibility of evidence will not be reviewed on appeal absent a specific and timely objection at trial on the ground sought to be urged on appeal. (Evid. Code, § 353; People v. Cannady (1972) 8 Cal.3d 379, 387 [105 Cal.Rptr. 129, 503 P.2d 585]; People v. De Santiago (1969) 71 Cal.2d 18, 22 [76 Cal.Rptr. 809, 453 P.2d 353].) However, "we have excused a failure to object where to require defense counsel to raise an objection 'would place an unreasonable burden on defendants to anticipate unforeseen changes in the law and encourage fruitless objections in other situations where defendants might hope that an established rule of evidence would be changed on appeal.'" (People v. De Santiago, supra, 71 Cal.2d at p. 23, quoting People v. Kitchens (1956) 46 Cal.2d 260, 263 [294 P.2d 17]; see People v. Beagle (1972) 6 Cal.3d 441, 454 [99 Cal.Rptr. 313, 492 P.2d 1].)
In light of the fact that section 1235 was held applicable in like circumstances in People v. Bynum (1971) 4 Cal.3d 589 [94 Cal.Rptr. 241, 483 P.2d 1193], we cannot fault defense counsel for failing to foresee that we would reach a contrary conclusion today. In Bynum, a prosecution witness who testified at the preliminary hearing was unavailable at trial because he had died in the interim. Prior extrajudicial statements made by the witness were then admitted for the limited purpose of determining his credibility, the trial court viewing it as immaterial whether they were prior inconsistent statements, prior consistent statements, or past recollection recorded. (Evid. Code, §§ 1235, 1236, 1237.) The issue we consider today was not articulated in Bynum, the case turning instead on the confrontation clause issue, but this court did hold section 1235 applicable in the circumstances of that case. (4 Cal.3d at p. 603.)
FN 5. For the text of section 770, see footnote 3, ante.
FN 6. Section 1202 provides: "Evidence of a statement or other conduct by a declarant that is inconsistent with a statement by such declarant received in evidence as hearsay evidence is not inadmissible for the purpose of attacking the credibility of the declarant though he is not given and has not had an opportunity to explain or to deny such inconsistent statement or other conduct. Any other evidence offered to attack or support the credibility of the declarant is admissible if it would have been admissible had the declarant been a witness at the hearing. For the purposes of this section, the deponent of a deposition taken in the action in which it is offered shall be deemed to be a hearsay declarant."
FN 7. See footnote 4, ante.
FN 8. In Browning, as in this cae, the preliminary hearing testimony of a person who was unavailable as a witness at trial was read into the trial record; evidence of a prior inconsistent statement made by that person was then admitted for the truth of the matters asserted therein. Like Bynum, Browning focused on the confrontation clause issue to the neglect of the hearsay issue. However, in holding that evidence of the prior inconsistent statement was properly admitted, Browning did rely on section 1235.
Fri, 04/02/1976 16 Cal.3d 663 Review - Criminal Appeal Opinion issued
Apr 2 1976 Opinion: Reversed
SCOCAL, People v. Williams , 16 Cal.3d 663 available at: (https://scocal.stanford.edu/opinion/people-v-williams-23065) (last visited Saturday January 16, 2021).

redpajama_set_name: RedPajamaCommonCrawl


apply is to call function with values.
A major enlightenment moment here is to realize that there is a major difference between this eval and apply – the former inherently deals with syntax, but the latter deals with values.
动态作用域(dynamic scope),环境在运行时指定。最常见的就是各种 Shell,像Bash、Ksh等,其次还有 emacs-lisp。更多可参考 what are other pure dynamically scoped languages?


Not to be missed: Janet's upcoming speaking events.
Dec. 6, 2014—Keynote, Avon Park Christian Church, Avon Park, FL.
Oct. 11, 2014—Workshop speaker, ALFA Leadership Summit, Orlando, fl.
Oct. 4, 2014—Keynote, Women's Conference, Lockhart Church, Orlando, FL.


Bejewel your coffee table with our pick of the best books on the subject….
The mere mention of the name Van Cleef & Arpels signifies beauty, excellence and mystique. It is one of the few brands that has an immediate and undeniable power to fascinate, a quality earned with over a century of unyielding devotion to the highest standards of haute jewellery. Van Cleef & Arpels deftly combines glamour with nature, and sophistication with simplicity — just like the women who choose it.
About The Author: Anne-Marie Clais is a graduate of Ecole Normale Superieure and Ecole Superieure des Sciences Economiques et Commerciales. After working with the haute couture house Givenchy, she founded BPA, a brand consulting company.
The fascinating stories of Indian princes and their jewellery and precious stones are brought together in this sumptuously illustrated narrative tracing the rise and fall of India's leading royal houses through the dramatic fortunes of their crown jewels.
Famed since antiquity as a supreme source of diamonds, rubies and sapphires, the Indian subcontinent afforded untold symbols of power and prestige to its many kings. From the sixteenth century forward, these stone were sought with unscrupulous avidity by the crowned heads of Europe, but even the rapacity of the British Empire failed to devour all of India's treasures. In the twentieth century, in a final flowering of regal splendour, many Maharajas travelled to the West to have their jewels reset by the most prestigious jewellers of Paris, London and Rome. It is this encounter between Indian princely magnificence and the best of European jewellery design that forms the book's centerpiece.
The authors offer a fresh, vigorous text drawing on original material from a wide range of government and private archives, and featuring many hitherto unpublished pictures alongside more familiar ones. From Sanskrit dramatists extolling the riches of India to the finest of modern Europe's jewellers crossing Asia in search of royal clients, a broad gamut of real voices and resplendent images brings to life the story of India's royal gems.
More than any other designer of her time, Gabrielle Chanel had the ability not only to predict the evolution of contemporary fashion, but also to see its future. Chanel was a true adventurer, always on the go, and her vision has left an indelible mark on 20th century fashion. This slipcase presents the history of Chanel, from its beginning through the creative trilogy that made this brand famous: Chanel Fashion, Chanel Fine Jewellery, and Chanel Perfume.
About The Author: One of France's leading fashion and style specialists, Francois Baudot is a writer and an editorial adviser for Elle and Elle Decor. He is the author of a number of books devoted to fashion and decorative arts.


text:
The Night Prince Made it Rain in Sheridan, Wyoming
Rick Roddam
Rick Roddam Published: April 21, 2016
Kevin Winter, Getty Images
Today, music fans are mourning the loss of Prince. His genre-bending catalog of work is timeless and his influence was felt all over the world, including one magical night nearly 30 years ago in the small town of Sheridan, Wyo.
In the summer of 1986, MTV conducted a nationwide contest to promote Prince's latest film "Under the Cherry Moon," promising a private premiere party in the winner's hometown.
Lisa Barber was 20 years old at the time, working at a hotel in Sheridan, when she saw the contest on MTV. In a stroke of luck, she was the 10,000th caller, winning the party for her hometown.
On Tuesday, July 1, Prince's private plane landed in Sheridan. Hundreds of excited fans greeted him at the airport, including a team of equestrians on horseback who welcomed the pop star and his entourage.
When Prince stepped off the plane, he thew his jacket into the frenzied crowd before riding off in a fleet of limousines that had been brought in from Billings, Mont., the closest town with enough vehicles to accommodate the film's cast and crew.
Later that evening, Barber and 200 of her closest friends joined Prince for the premiere, which was held at the Centennial Theater.
VJ Martha Quinn hosted the after-party from the nearby Holiday Inn, which was broadcast live on MTV. In a nationally televised interview, Barber said, "This is the biggest thing that's ever happened here."
Prince also performed a concert at the Holiday Inn in Sheridan that evening. The short set began with "Raspberry Beret" and finished six songs later with "Purple Rain."
Watch Prince Perform Live In Sheridan
Lisa Barber still lives in Sheridan, working as a real estate agent. But she and her friends will never forget the night Wyoming shined under Prince's cherry moon.
Edit this setlist | More Prince setlists
Filed Under: Sheridan, Wyoming
Categories: Articles, Events, Wyoming
Early Court Actions Begin Over Case Of Man Charged With Killing Two


text:
Man Charged With Murder After Allegedly Stabbing Homeless Veteran
A man accused of fatally stabbing a homeless veteran near Philadelphia has been arraigned on charges of first-degree murder and aggravated assault.
Prosecutors say Dale Wakefield had been out celebrating his 21st birthday before he stabbed 71-year-old George Mohr at least 70 times with a pocket knife outside the Doylestown train station on July 3. The charges against Wakefield were upgraded from attempted murder to murder after Mohr died of his injuries.
Wakefield was arrested in a Baltimore hotel earlier this week and agreed to come back to Pennsylvania. The Bucks County Courier Times reports (http://bit.ly/11GkvFT) he was returned and arraigned Thursday.
Wakefield declined to comment to reporters as he was led from court. He is being held without bail.
A preliminary hearing is tentatively scheduled for Aug. 21.
More stories on NBC10.com:
Man Celebrating BIrthday Stabbed Homeless Veteran 70 Times: DA
Ex-Phillie Tops "Most Wanted" Deadbeat Dad List
Judge Allows Lesser Charge Against Zimmerman


Summit Credit Union Makes $50,000 Challenge Grant!
Summit Credit Union CEO/President Kim Sponem has announced that the company is matching dollar-for-dollar any donation made to the Urban League of up to $1,500. The match for first-time donations will be 2:1. The company will continue to match donations up to $50,000! Donate today and double or triple the impact of your gift!!
Since 1968 the Urban League of Greater Madison has been vital part of the Dane County community. As we celebrate 50 years of service to the Greater Madison community, we want to reflect on our past, but also re-commit ourselves to the future.
1,489 Black Madisonians at that time, this group of Urban League advocates represented a sizeable share of the population.
have evolved and the strategies changed, we remain steadfast in eliminating opportunity gaps. One thing that the Urban League has always been about is action, not talk. We are about finding common ground, rolling up our sleeves, and empowering communities and changing lives.
the path to self-sufficiency by 2020. We have made great strides, doubling the number of people placed into jobs over the last two years from roughly 150 annually to 300 annually. To fulfill our 1,500 jobs, 1,500 families pledge by 2020, we must raise $2,000,000 by the end of this year. Doing so will allow us to expand our offering of training academies, increase accessibility through a second location in Southwest Madison, serve more youth and young adults, launch our next housing and home ownership venture, and more.
Single location. The Urban League's Center for Economic Development & Workforce Training opened in South Madison in 2010 and instantly became a vibrant hub of activity hosting career readiness programming for youth and adults, community meetings, etc.
768 Jobs. During the five-year period from 2010 to 2014, the Urban League placed 768 low-income adults into new or better employment.
120 Youth Jobs. During the five-year period from 2010 to 2014, the Urban League placed 120 low-income youth into their first work experience through our career awareness internship program.
In 1996, Urban League and others setup a unique, award-winning lease-to-own housing program.
Greater Access. The Urban League has committed to a partnership with the City of Madison to establish an Employment & Training Center in the troubled Southwest Madison area. Like our Park Street location, it will host not only Urban League programs, but become a space for the entire community to utilize.
1,500 Jobs. We will double our impact and place at least 1,500 low-income adults into new or better jobs over the next five year period.
250 Youth Jobs. We will double our impact and place at least 250 low-income youth into jobs by expanding our career awareness internship program, and by launching new youth employment initiatives.
By 2020, 50 families will have completed our homeownership program and earned $5 million in equity and the Urban League will have established a new program to help meet the urgent need in Greater Madison for more affordable housing options.
JOIN US. ONE FAMILY AT A TIME.
Call to customize an event or program sponsorship package.
Jerome came to the Urban League as part of his search for better career opportunities. He completed the Foundations for the Trades Academy, a partnership with the Workforce Development Board, City of Madison, Operation Fresh Start, and others. Within weeks of completing his training, he was hired by H&H HVAC.
Make a gift to support a job seeker like Jerome today. Just $5/month can provide a job seeker with bus passes to get to and from job interviews.
$25/week or $1,500/year will provide a youth like Ariam with their first work experience and build skills that will benefit them for a lifetime.
Ariam came to the Urban League determined to excel in her academics and ensure she was ready for college and career. She was matched with an academic tutor through the Schools of Hope Program and participated in after school college and career exploration programming and a summer internship through the Careers program.


text:
To Listen/Watch
Z-Man's Blog
Todd DeMonte & Larry Carlson – The Present & Future of IAQ & Restoration Madison Industries, Therma-Store, LLC & Phoenix Restoration Equipment an American Success Story
Air Date: 10-11-2019|Episode 561
This week on IAQradio+ we welcome Todd DeMonte, Chief Innovation Officer for Madison Indoor Air Quality and Larry Carlson of, Phoenix Restoration Equipment a Division of Therma-Stor, LLC to discuss the present and future of IAQ and Restoration. These gentlemen know whats happening now and are expected to predict future trends in the industry. They are a dynamic duo that will help you navigate these fast changing industries during this evolving period. They also work for an American company doing there manufacturing in Madison, Wisconsin, an American Success Story!
Todd DeMonte has years of experience developing and producing products that improve and control indoor environments. It is his work with Therma-Stor, LLC and Phoenix Restoration Products that would be most familiar to IAQ and water damage professionals. He has led to many patented innovations that yield real benefits. Mr. DeMonte led Therma-Stor from 2003-2019 and now leads innovation for Therma-Stor and its eight sister companies.
Larry joined Therma-Stor in 1992 as product manager for ventilation and dehumidification products. In 1994 Larry introduced the Phoenix 200, the first LGR dehumidifier. Through 2003 he oversaw the expansion the Phoenix Restoration Equipment product line to include the Guardian HEPA Systems, Focus axial air mover and Phoenix 300 and 200 MAX. After 2 years at Dry Air Technology where Larry assisted in the creation of the Atlantic LGR and Force 9, he returned to Therma-Stor in 2006 as marketing manager. Currently Larry is the Phoenix Restoration Industry Manager and International Sales Manager. Larry has been a member of RIA since 1994 and the IICRC since 1998. He participated in the creation of the Applied Structural Drying Technician (ASD) certification. He served on the IICRC S-500 4th Edition Consensus Body and is currently on the CB creating the 5th edition of the S-500 Standard.
Z- Man's Blog:
The Present & Future of IAQ and Restoration
with Todd DeMonte and Larry Carlson
Madison Industries is one of the largest and most successful privately held companies in the world. The name Madison Industries is rooted on Madison Avenue. The firm's mission is to "create a company that improves safety, health & productivity, which will outlast all of us." Madison Industries is vertically integrated. Todd DeMonte is Chief Innovation Officer at Madison Indoor Air Quality. Larry Carlson is Phoenix Restoration Industry Manager and International Sales Manager.
Therma-Stor LLC, located in Madison, Wisconsin, was established in 1977 to apply advanced heat transfer technologies to residential and commercial markets. Beginning with heat recovery water heaters, Therma-Stor now also manufactures a line of residential dehumidifiers, which includes the Santa-Fe series of free-standing dehumidifiers and the Ultra-Aire series of whole house ventilating dehumidifiers. Therma-Stor also offers Quest Hi-E Dry commercial dehumidifiers and the Phoenix line of restoration equipment for dehumidification, air scrubbing, water extraction, and evaporative drying.
Nuggets mined from today's episode:
Todd DeMonte- Therma-Stor has outgrown its digs and rents R&D chambers and space from University of Wisconsin. https://biotron.wisc.edu/
Larry Carlson- Started at Therma-Stor in 1992 when the company had a product LGR dehumidifiers without a market.
Todd DeMonte- growth and innovation finding new markets new markets and new technologies. Infrared heaters, moisture control indoor agriculture, etc.
Todd DeMonte- Dealing with outdoor air is now independent of heating or cooling. "A dedicated outdoor air system (DOAS) is a type of heating, ventilation and air-conditioning (HVAC) system that consists of two parallel systems: a dedicated system for delivering outdoor air ventilation that handles both the latent and sensible loads of conditioning the ventilation air, and a parallel system to handle the (mostly sensible heat) loads generated by indoor/process sources and those that pass through the building enclosure." Wiki
Larry Carlson- Traits of a successful restoration company include: restoration is a mission not a job, dedication toward doing a job rite and restoration isn't a 9-5 job its 24/7.
Larry Carlson- In-place drying has brought regimentation into the industry. Repeatable workplans are commonly used in commercial projects. Residential projects with wood subfloors and carpet cushion are more prone to problems. Drying contractors need to know the end points and develop suitable drying strategies.
Todd DeMonte- Meters, monitors and sensors are exciting and flashy. This technology quickly changes, its difficult to obtain an advantage, it's hard to protect a competitive advantage. Considers current VOC, CO2 and RH sensor to be inconsistent and at "hobbyist level".
Larry Carlson- Concrete is not prone to mold contamination. Concrete is often a challenge due to ongoing moisture exposure beneath and the choice of flooring installed atop flooring.
Todd DeMonte- Advantages of Made in America. American made can provide rapid response to market needs, can adjust production up or down as needed, quick change options and models, faster connectivity between R&D brains and manufacturing floor. Plays in markets where the above are advantageous.
Larry Carlson- the tech challenges have already occurred. Growth in the transfer of information from equipment to mutually interested parties. Insurance companies want more information and documentation from contractors. There has been a loss of trust and transparency. Apps directly report info without need for human touch. There is more standardization of work processes. Bluetooth enabled equipment prepares and create reports & PDFs.
Todd DeMonte- IP piracy is a huge problem. They developed a product to disinfest bedbugs from first responders. The Patent Office considers a "Bedbug Bazooka" to be a propane powered hair dryer.
Todd DeMonte- Therma-Stor supports building science, listens and creates new products and/or improves existing products. Therma-Stor is not engaged in influencing or shifting ASHRAE.
Larry Carlson- Tighter building have consequences- Ken Gehring, Therma-Stor President emeritus was responsive to emerging issues in tighter buildings: dust mites, allergens, mold, and moisture reduction in basements.
Todd DeMonte- Opines that interest in IoT often wanes very quickly.
The internet of things, or IoT, is a system of interrelated computing devices, mechanical and digital machines, objects, animals or people that are provided with unique identifiers (UIDs) and the ability to transfer data over a network without requiring human-to-human or human-to-computer interaction. https://internetofthingsagenda.techtarget.com/definition/Internet-of-Things-IoT
Larry Carlson- Prior to designing and building air filtration devices with HEPA and charcoal filters, Therma-Stor's initial interest in filtration was to protect their equipment.
Todd DeMonte- California requires that fresh air be filtered to MERV 13.
Closing Comments-
Z-Man- two words dust and hemp.
Larry Carlson- Remote reading technology is rapidly improving. TPAs fill a niche and are here to stay. Microwaves were being researched for structural material drying in Germany. Microwaves posed a risk to occupants and pets in adjacent units and people with pacemakers.
Todd DeMonte- Greater awareness of the health effects of PM 2.5. More lower energy homes. More conditioned spaces. Growth in solar power. Growth in filtration.
RadioJoe- Growing awareness of EMFs.
Z-Man signing off
Name the two coinventors of the gas absorption dehumidifier?
Answer: Carl Munters and Baltzar von Platen
Answered by: Doug KohnenERAtechEnvironmental Dayton, Ohio
← Open Mic – IAQA President Jay Stake, John & Lydia Lapotaire PRACTICE to Research – The Restoration Panel →
Association Sponsors
Whats your favorite topic for IAQ Radio Episodes?
Alan P. Zelicoff, MD – COVID 19 Prevention, Treatment, Vaccines, & Lessons Learned
Paula Olsiewski, PhD – Contributing Scholar Johns Hopkins Center for Health Security – HOMEChem: House Observations of Microbial and Environmental Chemistry
Best and Worst Things of 2020 – Rauscher, Sloan, Lapotaire, Springer, Downey, Shaughnessy, Pearson, Grillo, Krell, Morrison, Brueggemann
Jay Portnoy, MD – A Pioneering Pediatrician's Perspective on COVID-19 & Mold Health Effects
Lisa M Brosseau, ScD, CIH – Control Banding & COVID-19
https://www.iaqradio.com/todd-demonte-larry-carlson-the-present-future-of-iaq-restoration-madison-industries-therma-store-llc-phoenix-restoration-equipment-an-american-success-story/">
IAQ Radio © 2021


text:
UPS Locations in New Wilmington, PA
UPS Authorized Shipping Provider MILLER'S HARDWARE AND RENTAL mi
2023 MERCER NEW WILMINGTON RD
NEW WILMINGTON, PA 16142
Inside MILLER'S HARDWARE AND RENTAL
UPS Customer Center UPS CC - NEW WILMINGTON mi
ROUTE 18 JOHNSON RD
Inside UPS CC - NEW WILMINGTON
About UPS in NEW WILMINGTON, PA
At UPS, we make shipping easy. With multiple shipping locations throughout NEW WILMINGTON, PA, it's easy to find reliable shipping services no matter where you are. Our UPS locations will help make our customers' visit simple and convenient for their shipping needs. Quickly find one of the following UPS shipping locations with service right for you:
UPS Customer Centers in NEW WILMINGTON are ideal to easily create new shipments with the use of our self-service kiosks. Customers can also drop off pre-packaged pre-labeled shipments. Limited packaging supplies are also available to finish preparing a shipment. Customers in a time crunch can also print mobile shipping labels.
UPS Authorized Service Centers in NEW WILMINGTON are available for customers to create a new shipment, purchase packaging and shipping supplies, and drop off pre-packaged pre-labeled shipments. These locations bring flexibility and convenience for our customers.
UPS Alliance Shipping Partners in NEW WILMINGTON offer full-service shipping services. Customers are able to create a new shipment, pick up and drop off pre-packaged pre-labeled shipments. Staffed personnel is also available to provide shipping advice and to assist with picking out the proper packaging and shipping supplies, which are available for purchase.
UPS Access Point® locations in NEW WILMINGTON, PA are very convenient for customers looking for a quick and simple stop in any neighborhood. Drop off pre-packaged, pre-labeled shipments, including return packages. Customers can pick up shipments that have been redirected or rerouted.
UPS Access Point® lockers in NEW WILMINGTON are great for customers that need flexible weekend and evening hours. When you can't take time off work or keep an eye out for a delivery truck throughout the day, UPS Access Point Lockers help to make life easier for customers who can't have their packages left at the door. Convenient self-service pick-up and drop-off of pre-packaged pre-labeled shipments.


Chazal inform us that the basket carrying Moshe was too far for Pharoah's daughter to reach from where she was standing. Still, she stretched out her hand (amasah) in the direction of the basket and Hashem miraculously lengthened her arm for her.
R' Meir Shapiro, the rosh yeshivah of Yeshivas Chachmei Lublin, called for an emergency meeting of the leaders of Lublin to discuss a certain person whose life was in danger. R' Shapiro demanded of them to do something to save his life.
"This matter that you speak of" responded one of the leaders, "is beyond our capabilities. We regrettably do not believe that we can carry it out."
"In this week's parsha" replied R' Shapiro, "the Torah states: "And she sent her maidservant". Chazal teach us that the arm of Pharoah's daughter was miraculously lengthened in order for her to take hold of Moshe's basket.
"I wonder" continued R' Shapiro, "why did Pharoah's daughter even attempt to retrieve the basket in the first place? After all, if it is obvious to an individual that something is not within his reach, does he waste his energy trying to obtain it?"
"We see from here" concluded R' Shapiro, "that when a person is expected to accomplish something, he should not deliberate whether or not he is capable of succeeding - he must try! Let him first make an effort, and then Heaven will assist him."
"Ben Poras Yosef, Ben Poras Alei Ayin" [Vayechi 49:22]. Rashi says that this means that Yosef will multiply and be beyond the reach of Ayin Hara [the evil eye]. As a reward for not taking his master's wife, no one will be able, through jealously, to inflict any harm on what belongs to him.
Jews in the West Bank?
As a believing Christian, I made a recent pilgrimage to the Holy Land. I was profoundly disturbed by the Jewish state and its criminal occupation of the West Bank. The international community has condemned this time and time again. How can you justify usurping land that belongs to others?
You are entitled to your opinion on the matter. But I hope you are consistent in your beliefs. Being that you oppose a Jewish presence on the West Bank, I assume you will not be participating in any Xmas celebrations during the coming days. According to your view, there is no reason to be merry on December 25.
The Christian holidays celebrate an event that you have named a criminal act - the birth of a Jewish baby to a Jewish family in the West Bank town of Bethlehem. Your views should not allow you to have any part in this cheer, for if you did you would be giving retroactive approval to a Jewish settlement on the West Bank that dates back more than two thousand years.
Perhaps you will be joined by the UN and other humanitarian organizations around the world condemning any celebrations that are connected with this controversial birth, as such events would be recognizing the rights of a Jewish family to live on what you see as occupied territory.
However I must warn you, by espousing this view and not celebrating, you will be vastly outnumbered. The international community, by celebrating Xmas, expresses support for the fact that the West Bank has always been the home of the Jewish people.
The biblical Enoch was the son of Yered who was the great great grandson of Seth, a son of Adam. Enoch lived 365 years, from 622 to 987 on the Jewish calendar. The beginning of the long count Mayan calendar is taken to be in August of the year 3114 BCE, [-3113]. This corresponds to the year 647 on the Jewish calendar. After the Rosh HaShanah holiday in the year 3114 BCE, the year on the Jewish calendar would be 646. From these dates, we can infer that the beginning of the Mayan calendar occurs during the life of Enoch.
According to the Midrash in Seder Hadorot, [Vol 1, p. 89], Enoch served God and despised the wicked people of his generation. He separated from them and hid himself away. One day when he was praying, an angel of God spoke to him telling him to go out from his house and teach the people about the ways of God and the correct ways to live.
The Midrash explains how Enoch obtained his knowledge. In The Zohar, Rabbi Aba said, A book was sent down to Adam through which he discerned and comprehended the supernal wisdom. [This is the book of The Generations Of Adam.] This book later came into the hands of the sons of Elohim, the sages of their generation, who were priviledged to learn from it and to glean the supernal wisdom. They grasped it and comprehended it. This book was brought down by the guardian of the secrets who is the angel Raziel and was given to Adam in the Garden of Eden. Three guardian angels went before him and guarded the book so that the external forces would not have access to it.
We have been told that Enoch had a book, which originated from the same place as that of the Generations of Adam. And this book contains the inner secrets of wisdom.
Chazal tell us the a lifetime of suffering in this world is less painful than even a moment in Gehinom. How can we compare suffering in a physical world to the suffering in a spiritual world, it is not a real comparison. Are we really comparing degrees of heat?
Rav Isaac Sher explains that there is a big difference between suffering in this world and suffering in the next world. Gehinom he says merely cleanses you of your aveiros [sins]. Once you are clean however, you are the same person you were before, only without the stains of your misdeeds. You are on the same low level.
Not so with suffering in this world. Through our suffering we grow and can reach new heights. We contemplate our pain and open new vistas of understanding of Hashem and our purpose in the world. Each step of our purification brings us closer to Hashem in ways we would have been unable to without the pain.
Maybe this resolves our question. While suffering in the next world is a punishment for our sins, suffering in this world is an opportunity for advancement. Therefore all the pain in this world which is steeped with opportunity cannot be compared to even a single moment of the hopeless of Gehinom.
What defines a miracle? Everything in this world is controlled by Hashem. There is no difference between Hashem's ability to make plants grow or split the sea. What differentiates the two? The answer is that Hashem created a natural order in the world to allow people to believe that Hashem does not exist. An event that breaks the rules is called a miracle. It is Hashem showing us a glimpse of His total control. Nature is called Teva from the word Tava or drowning. The everyday miracles that Hashem performs in nature and to us individually are drowned beneath the surface, and out of our field of view unless we use our mind to perceive them. The word for a miracle is Nes. Nes means a flagpole. It is an event that stands out in plain view for all to see, unless one chooses to look the other way.
On a similar note the world was created to challenged us to choose good. The word for these challenges is Nisayon. Nisayon has the word Nes in it. What is the connection? The answer says Rav Chaim Zaitchek, is that we all are born with great potential for good. Our challenge is to dig deep down and use these abilities. We are tested as a means to bring this potential out into the world. A Nisayon is an opportunity to show ourselves, Hashem, and the universe the good buried within us. By passing a Nisayon we have created a Nes!
When the brothers had initially arrived in Egypt, they were treated harshly by Yosef, who accused them of being spies. The brothers were startled by what was happening to them, and they asked one another: "Why is this happening to us? Who among us is guilty of a sin that would have brought this upon us?"
On the brothers' second trip to Egypt, they once again asked one another: "What is this that Hashem has done to us?"
However, continued the Chofetz Chaim, when the brothers heard but two words: "Ani Yosef" - I am Yosef - all of their questions were answered. Suddenly, everything was clear - all of their misfortune had occurred as a result of having sold Yosef.
Today, as well, concluded the Chofetz Chaim, there are many people who question the way that Hashem runs His world. "Why do the righteous suffer?" they ask. "Why can the wicked prosper?"
However, at the End of Days, when the entire world hears Hashem utter but two words: "Ani Hashem" - I am Hashem - all of the questions will vanish.
The red letters, re-arranged, spell אובאמה - Obama.
Reprinted with permission. I have extracted only a small portion of the information in the book.....I strongly recommend you purchase it to fully understand all the concepts.
The Mayan calendar counts time until the year 2012, after which we encounter a situation of no more time from their point of view; a time when there will be complete knowledge. We will have the power to heal, to create and to change everything.
According to Mayan astronomy, our galaxy orbits the Pleiades every 26,000 years*. In 2012 there will be a completion of the cycle.... and there will be a new dawn for mankind. In space there will be a situation in which the planets are directly aligned [an occurrence which happens once every 26,000 years], including the earth, the sun, the Milky Way, the Pleiades, Sirius and others. This will happen at exactly 11am on December 21, 2012, and at 11:11 there will be a stream of new light of pure awareness that will shine without interference from the planets.
It is interesting to note that the gematria of the words ''and a time of trouble'' is 772, which equals the value of the words ''time of clarity''. This reinforces the idea that at that time it will be a time of tzara [trouble] for the wicked, and it will conversely be a time of tzohar [clarity] for the righteous.
5752 years from the creation of the world, which was the beginning of the time after midday Friday, [on the cosmic clock] when the special Shabbat atmosphere began to descend on the world [according to the holy Arizal]. The Mayans refer to these 20 years as the purification of the earth. During this period, the earth will become completely purified, including the hearts of the people. Evil will be uprooted and goodness will prevail. The cycle will culminate on the 21st of December 2012, effectively ending the characteristics of civilization as we know it. After this, humanity will advance into a new type of civilization.
From this we infer that the year 5702 began the birth pangs of Moshaich. If we add another 70 years from 5702 in order to get to the date of the actual ''birth'', we get the year 5772 - 2012.
In this time of the ''footsteps of Moshiach'' the aspect of the mixed multitudes [Erev Rav] will be strengthened and the leaders of Israel will emerge from the Erev Rav, as it says in the holy Zohar in various places. This has proven itself true when, in recent years, the government of the State of Israel has consisted of parties and ministers who are committed to fighting against the Torah values of Israel. The Rabbis in the Talmudic tractate, Sanhedrin [98:1] discussed this: ''the kings will turn into heretics'', and as it is said in the commentary, this is also referring to the kingdom of Israel.


text:
Mark Steyn: The Love That Doesn't Like You Speaking Its Name
The Atlantic Monthly ^ | December 2003 | Mark Steyn
Posted on 01/13/2004 2:37:26 PM PST by quidnunc
Hollywood Communism and Elia Kazan
You usually hear the tune on Oscar night, but not often the lyric, which is more to the point:
Hooray For Hollywood
Where you're terrific if you're even good.
When someone's really terrific, it's a different story. In a town where everyone from Johnny Depp to Janeane Garofalo is an "artist", Hollywood doesn't always know how to deal with the real thing. In 1996, the Los Angeles Film Critics Association, mulling over their Career Achievement Award, decided to reject Elia Kazan and honour instead Roger Corman, the director of Swamp Women, Attack Of The Crab Monsters and Teenage Caveman. Swamp Women and Attack Of The Crab Monsters are good, and Teenage Caveman is not only good, it's also an eloquent plea for world disarmament, at least according to its youthful star Robert Vaughan. But On The Waterfront is terrific. This should not be a difficult call.
But apparently it is. Kazan can make a claim to be the father of modern American acting, the man who brought Stanislavskian techniques to Broadway and then to the silver screen. Insofar as the young lions of our present-tense culture aspire to emulate any of the old guys, it's not David Niven or even Jimmy Cagney who resonate, but Marlon Brando, James Dean, Rod Steiger — on all of whom Kazan was the greatest single influence. He was a great theatre director, and later a fine novelist, and, when he walked on stage in 1999 to receive a belated Lifetime Achievement Oscar, he might reasonably have expected the orchestra to be vamping Leonard Bernstein's theme to On The Waterfront for a good ten minutes while Hollywood roared its appreciation. Instead, outside the Dorothy Chandler Pavilion, elderly hack screenwriters led protests and, inside, the likes of Sean Penn sat on their hands. For both Hollywood's ancient D-list Communists and its A-list anti-anti-Communists, there's only one thing about Kazan that matters: he "named names".
-snip-
(Excerpt) Read more at steynonline.com ...
TOPICS: Culture/Society; Extended News; Miscellaneous
KEYWORDS: communism; cpusa; eliakazan; hollywood; hollywoodleft; marksteyn; stoptheexcerpts
1 posted on 01/13/2004 2:37:26 PM PST by quidnunc
To: quidnunc; Pokey78
ping and bttt.
2 posted on 01/13/2004 2:39:47 PM PST by Lando Lincoln (The Vermin had vermin)
To: quidnunc
THE LOVE THAT DOESN'T LIKE YOU SPEAKING ITS NAME
It's no fun being a socially conscious movie star if nobody's conscious of you. You want to be noticed. Not too noticed, not Salman Rushdie price-on-your-head noticed. But just a little bit of attention. And the only time any one in power paid any attention to the political views of Hollywood people was half a century ago. In an ideal world – or if you were making a movie on the subject – the fellows who were politically "persecuted" would be a little more talented, or at least prominent, and maybe it would be better if they weren't subscribers to an ideology so thoroughly failed and so comprehensively rejected by anyone who's had the misfortune to live under it. But those are mere nitpicky details next to the towering feeling of validation the latterday Hollywood activist derives from his McCarthy fetish. For the Richard Dreyfus generation, what Kazan did is an affront to their deep conviction of their own heroism.
Nor is the fact that Hollywood's belief in its own heroism derives from a moment of colossal Hollywood cowardice any obstacle. The blacklist "victims" weren't blacklisted by the government but by the studios – Warner Brothers, Paramount, Disney – the same folks who run Hollywood today. In 1999, when Penn and Dreyfus were up in arms over Kazan's Oscar, old Lew Wasserman was still going to his office at Universal every day. Fifty years ago, had he chosen to, Wasserman and his talent agency could have broken the blacklist as decisively as he broke the studio system. But Wasserman and the suits were absolved and their sins sub-contracted to one elderly retired director: as former blacklisted screenwriter Norma Barzman told CNN, "Elia Kazan's lifetime achievement is great films and destroyed lives, and even a third thing, which is a lasting climate of fear over Hollywood and maybe over the country." Kazan became the crucible (if he'll forgive the expression) of the industry's institutional guilt over the McCarthy era.
To this day, Mrs Barzman thinks Kazan ratted because he had a half-million dollar deal lined up for On The Waterfront: Thus, Hollywood's Communists were true to their principles; its anti-Communists were in it for the money. This would be mere condescension if On The Waterfront were an Esther Williams aqua-musical, but it's rendered laughable by the fact that the film is instead the most cogent response to the likes of the Barzmans, beginning with the exquisite joke of its choice of analogy for Communist penetration in Hollywood: a waterfront union corrupted by racketeers. After all, until the director's detractors began insisting that personal loyalty trumps all other considerations, the notion that "ratting" was the ultimate sin was confined mostly to the mob.
Kazan had spent his first nine years on the move – born to Greek parents in Istanbul, who moved on to Berlin and eventually New York. He understood the force of the big impersonal currents of history because his own family had been swept along in their wake. From 2003, it's difficult to appreciate the swiftness of the Red march in the post-war years: the Soviets very nearly grabbed Greece and Italy; their stooges seized Poland in 1945, Bulgaria in '46, Hungary and Romania in '47, Czechoslavakia in '48, China in '49; they were the main influence on the nationalist movements of Africa and Asia; they neutered much of what was left. You would have to be awfully convinced of American exceptionalism to think the Republic was uniquely immune.
But the arts have little time for anti-Communists, especially premature anti-Communists, especially as premature as Kazan: he quit the party in 1936, after he'd refused to help it turn the Group Theatre into an actors' collective. Until then he was a conventional lefty, the stellar lefty of the Group's Waiting For Lefty, the one who ends the play by roaring the one-word injunction to the audience, "Strike!" But, if we were to frame Kazan's testimony to HUAC in terms of personal loyalty, what about his responsibility to, say, Vsevolod Meyerhold? When Kazan joined the Group straight out of Yale, the company looked to the Russians for inspiration, not just to Stanislavski but also to his wayward disciple Meyerhold. The latter was a great mentor to the young American and other Group members. This was a period, remember, when the Group frequently visited Russia – Lefty, for example, was staged in Moscow. Meyerhold loved the older stylized forms – commedia del'arte, pantomime – and refused to confine himself to Socialist Realism. So Stalin had him arrested and executed.
Think about that: murdered over a difference of opinion about a directing style. As "persecution" goes, that's a little more thorough than forcing some screenwriter to work on a schlock network variety show under a false name.
Amid the herd-like moral poseurs, Kazan was always temperamentally an outsider, and his work benefited after he became one in a more formal sense. But, both before and after, his best productions concern themselves with a common question: the point at which you're obliged to break with your own – your union, your class, your group, or, in Kazan's case, your Group. The 1947 Oscar-winner Gentleman's Agreement strikes most contemporary observers as very tame, square Kazan. But, in a curious way, that's the point. When you start watching and you realize it's an issue movie "about" anti-semitism, you expect it to get ugly, to show us Jew-bashing in the schoolyard, and vile language about kikes. But it stays up the genteel end with dinner party embarrassments, restricted resort hotels, an understanding about the sort of person one sells one's property to. Dorothy McGuire and her Connecticut friends aren't bad people, but in their world, as much as on Johnny Friendly's waterfront, people conform: they turn a blind eye to the Jew-disparaging joke, they discreetly avoid confronting the truth about the hotel's admission policies, and, as Gregory Peck comes to understand, they're the respectable face of what at the sharp end means pogroms and genocide.
That's what all those Hollywood and Broadway Communists did. They were the polite front of an ideology that led to mass murder, and they expected Kazan to honour their gentleman's agreement. In those polite house parties Gregory Peck goes to in Kazan's movie, it's rather boorish and tedious to become too exercised about anti-semitism. And likewise, at gatherings in the arts, it's boorish and tedious to become too exercised about Communism – no matter how many faraway, foreign, unglamorous people it kills. Elia Kazan was on the right side of history. His enemies line up with the apologists for thugs and tyrants. Whose reputation would you bet on in the long run?
The Atlantic Monthly, December 2003
3 posted on 01/13/2004 2:42:38 PM PST by polemikos (The Democratic primaries are the political equivalent of dwarf tossing)
He's right.
Hollywood judges Kazan by his politics, not his artistic merit.
Well, they're not the only ones.
How was Muhammed Ali judged when he was stripped of his title?
How were the Hollywood Ten judged? Paul Robeson?
How many times have I read FReepers who've said they'll not see an actor perform or read an article by a writer because they don"t like their politics?
That's the way the world works...unfortunately.
4 posted on 01/13/2004 2:48:49 PM PST by liberallarry
To: liberallarry
What's terrible is not that Hollywood judged Kazan by his politics. I think it is appropriate to judge people by their politics, since one's politics are a conscious choice and not a genetic fact of birth.
What's terrible is that the vile politics of Hollywood's powerful elite lead them to ostracize not those who support thuggery, tyranny, murder and genocide, but those who oppose these evils.
5 posted on 01/13/2004 3:02:30 PM PST by Maceman (Too nuanced for a bumper sticker)
To: quidnunc; polemikos
I always feel that in these cases, history will have the last word. Whatever-her-name-is Garofalo will be sunk in the bog of obscurity - and On the Waterfront will still be a great film.
And yes, there were Communists in Hollywood, and if they'd had their way, now we'd be turning out the amateurish junk produced by Cuba. Fortunately, they didn't have their way.
To: Maceman
Mark made an important point about the polite front of an ideology that led to mass murder. Then and now, folks among us, even in our families, flirt with advocacy of Communism. They are extra-good-hearted liberals who are going for the higher-octane form of liberalism. It is usually a passing fancy like a love for the philosophy of Ayn Rand. In other words, people snap out of it.
It is not polite to talk about the gulags, the mass murders, or even what happened to the Rosenbergs. Perhaps all this politeness is not such a good thing.
7 posted on 01/13/2004 3:20:00 PM PST by NutCrackerBoy
Leni Reifenstal made great movies. So did Elia Kazan.
Muhammed Ali was a sensational fighter.
Paul Robeson was a wonderful singer.
Adolph Hitler was the master of political theatre.
Both the Nazis and Soviets had world-class physicists, engineers, mathematicians.
Why can't I celebrate their talents...and judge their politics separately?
Their talents in their chosen fields are beyond dispute.
Politics always raises unanswerable questions.
To: livius
"And yes, there were Communists in Hollywood,"
"Were?" How about "are?".....even more now than in the 40s/50s.
9 posted on 01/13/2004 3:54:40 PM PST by El Gran Salseron (John Lennon? No writing or musical talent whatsoever!)
Paul Robeson was a scumbag apologist for Joe Stalin.
From googles cached archives: "Other well-meaning and intelligent people visited the Soviet Union, among them the American singer, actor and human rights advocate Paul Robeson. In an interview that he gave in Moscow to a correspondent for New York's Daily Worker, Robeson is reported as saying that wherever he turned in Moscow he had found happiness and "bounding life, the feeling of safety and abundance of freedom." Commenting on recent trials and executions, Robeson said that from what he had seen of the workings of the Soviet Government, "anybody who lifts his hand against it ought to be shot!" 1
I also remember a Bill Buckley column where he said that a dissident went to Robeson for help and he betrayed him to the NKVD. A whole lot worse the Kazan talking to a congressional committee IMHO.
10 posted on 01/13/2004 4:15:07 PM PST by 91B (NCNG-C/Co 161st ASMB-deployed to theater since April 19th)
To: polemikos
BTTT
11 posted on 01/13/2004 4:17:36 PM PST by Gritty ("Hollywood and Broadway Communists were the polite front of an ideology of mass murder-Mark Steyn)
Not wanting to put hard-earned money in the pockets of someone whose actions and/or words make you retch is different than saying that their politics trumps their proven excellence as a performer.
Barbra Streisand is a heckuva singer, but I have never purchased her records or CDs. Aaron Sorkin is a fantastic writer, but I grab the remote when West Wing or American President comes on the tube. Moby is a talented producer and musician, if more than a little bit derivative, but you won't find any of his works in my stereo. Paul Newman is a great actor, but I never buy his salad dressing, lemonade, or whatever else. I had admired the beauty and talent of Julia Louis-Dreyfus for years before she became a legendary supporting player on Seinfeld. I had always enjoyed the work of Jack Black before he came out as a frothing Bush-hater; now I will wait for free cable for School of Rock. I am glad that Charles Grodin has wasted his time doing crap like Beethoven and Clifford, lest I be tempted to see him turn in another strong performance like in Midnight Run.
On the other hand, I have always thought Alec Baldwin was a hack; that Robert Redford was overrated, as is Ted Danson, one of the most fortunate men in the history of Hollywood (Leonardo DiCaprio takes the title); Janeane Garofolo was only good for a few snickers before she substituted radicalism for alcoholism; Mike Farrell has always been riding the coattails of Alan Alda (who, years after being thought of as the archetypical Hollywood liberal, is strangely silent).
Now, to the really silly part of your post, Larry. OF COURSE I won't read an article by a writer whose politics I don't like! Life is too short to get riled up by Dowd or Ivins or Cronkite or Krugman on purpose. Puhleeeeze.
12 posted on 01/13/2004 4:29:31 PM PST by L.N. Smithee (Just because I don't think like you doesn't mean I don't think for myself)
I boycott Sean Penn movies not because I judge him to be a poor actor on account of his politics. (In fact, I think Penn is a superior actor.) Rather, I boycott Penn's movies because I think it was traitorous of him to fly to Iraq and denounce the U.S. on foreign soil. Therefore, I do not want to spend my money on a movie with Penn in it. Ask me if I think Sean Penn is a good actor, and I'll say, "Yes." Ask me if I want to pay for a Sean Penn movie and I say, "No." That's the risk actors assume when they use their celebrity to advance political causes. A good actor who loses parts because the audience will reject him on account of his politics is in the same position as a good actor who loses parts because audiences may reject him for being bald or fat. Both actors can whine that that's not "fair", but as our mothers always said, "Who ever said life was going to be fair?"
13 posted on 01/13/2004 4:30:36 PM PST by utahagen
To: 91B
So Jews shouldn't listen to Wagner.
Nazis shouldn't appreciate modern painters.
Shakespeare should be bowdlerized for prigs.
Beds and tables should wear skirts to hide their legs.
Amish shouldn't dance because it's sinful.
Gag....
14 posted on 01/13/2004 4:31:18 PM PST by liberallarry
To: L.N. Smithee
I have no argument with you.
I was thinking of people like Ezra Pound, not partisans (hacks?) writing on political subjects for dailies or monthlies.
"How many times have I read FReepers who've said they'll not see an actor perform or read an article by a writer because they don"t like their politics?"
You mistate the concept. I will not pay to see a Penn or Garafalo movie, not because of their politics, but because it is my expression of free speech as a response to their expression of free speech. I have absolutely as much right to free speech as they do.
The old communists used to mistate this concept as you and the neocommunists do. These lefties would not have a soapbox if it were not for their celebrity. I express myself by rejecting their celebrity. And, I can do this because they drive a foreign car, praise the Lakers, badmouth Kazan, or attempt to limit the free speech of anti-communists.
16 posted on 01/13/2004 4:37:38 PM PST by Tacis
To: utahagen
I have no argument with you either. In fact, you agree with me in my statement that, unfortunately, that's the way the world works.
While there is no excuse for the excusing of genocide, two things must be mentioned regarding Robeson: Firstly -- that he was a giant among men intellectually, athletically, and talentwise. Secondly -- because he was a black man (and a very dark-skinned black man at that), he was disrespected and stifled in a society that in word, but not deed, rewarded those with the aforementioned qualities.
Traveling to Soviet villages -- where he experienced no racism and where everyone was oppressed by the government for the sake of supposed equality -- was enough to make him turn his back on still-segregation filled America.
That's way beyond anything I said, you resort to reductio ad absurdum and you know it.
Just hold people responsible for their direct actions and keep what they did in perspective. The people that Kazan informed on weren't just political dissidents, but fans of Joe Stalin's murderous regime-and they "suffered" far less than any kulak or refusnik.
Robeson is often lionized for having been "persecuted" without any acknowledgement of the nastiness of his politics, he's a scumbag regardless of how great an althlete or entertainer he might have been.
When artists become known more for their partisan politics than their performance, then the magic is lost for the audience. When I see Sean Penn, I think "traitor went to Iraq". His politics have made him unable to mold into his current movie role, IMO. I can't separate his politics from his movie persona, and the magic of escape is destroyed for me.
20 posted on 01/13/2004 4:45:18 PM PST by Ciexyz


text:
I never thought I would act one day: Additi Gupta
Remo offers song to Dharmesh in his next film
Hina Khan's fans miss her in Kasautii
Published by user1 at November 22, 2018
MUMBAI: Known for her acting skills, fashion sense and versatility Additi Gupta is one of the best talents that the Indian Television Industry has. Little did we know that acting was a matter of destiny for this young actress with her skills and personality in various television shows the actor has garnered a good fan following and is an inspiration for many young girls. The actor will soon be seen in Star Bharat's upcoming show Kaal Bhairav Rahasya 2.
Additi Gupta never thought of becoming an actor. Rather she was one of those studious people perusing engineering in Pune. But as it's rightly said that man proposes and God disposes, it seems that God had other plans for the actor. It so happened that Additi Gupta auditioned for one of shows in her college auditions and then there was no looking back. The actor was selected to play the protagonist for one of leading channels of the entertainment industry.
Speaking on the same Additi said "Acting was never my plan. Like a accha bacha I was studying engineering in Pune and planned on taking a set route. One day there was an audition for a show and I went to give it just because my friend pushed me to. I was never interested neither did I think that I will ever act. I just auditioned and that was it. My life took a 360 degree as I was selected for the protagonist's role. This is how my acting career started and the journey of 10 years has been wonderful and I look forward to many more."
× 4 = twenty eight
Notice: It seems you have Javascript disabled in your Browser. In order to submit a comment to this post, please write this code along with your comment: 13af9024c32f7b7bcf66b56a7bae2eb2


text:
Q: Can not test this dataClass in kotlin with mock or without It pass successfully except cardNumber and termsAndCondition. These two return null. How can return truth values during test? (I did not remove some comments to show codes that I already tried.)
NewCardValidation.kt
data class NewCreditCardValidation(
    var cardNumber: MasterPassEditText? = null,
    var termsAndCondition: CompoundButton? = null,
    var cardMonth: Int? = null,
    var cardYear: Int? = null,
    var cardName: String? = null
) {
    val isValid: Boolean
        get() = when {
            cardNumber?.isEmpty == true -> false
            termsAndCondition?.isChecked == false -> false
            cardMonth == null -> false
            cardYear == null -> false
            cardName.isNullOrBlank() -> false
            else -> true
        }
}

NewCardValidationTest.kt
@RunWith(MockitoJUnitRunner::class)
class NewCreditCardValidationTest{
    private val newCardValidation = NewCreditCardValidation()
    @Test
    fun `Check cardValidation is valid`(){
        newCardValidation.cardNumber?.setText("4111111111111111")
      //  Mockito.`when`(newCardValidation.termsAndCondition?.isChecked).thenReturn(true)
        newCardValidation.termsAndCondition?.isChecked = true
       // doReturn(true).`when`(newCardValidation.termsAndCondition?.isChecked)
        newCardValidation.cardMonth = 10
        newCardValidation.cardYear = 2023
        newCardValidation.cardName = "mycard"
        Truth.assertThat(newCardValidation.isValid).isTrue()
    }
}

A: Because isValid is a val so is created when the class is instantiated. Change it for a function and it will be computed every time, including the changes to the vars.

redpajama_set_name: RedPajamaStackExchange


If you are looking for premium quality Ferro Alloy Powder, then we are the perfect destination. We present Metal Ferro Alloy Powder that is used in number of industries for varied industrial applications. Made using latest production procedures, Fine Ferro Alloy Powder offered by us is highly demanded by our customers. We provide availability of Ferro alloy powder in different specifications and grades suiting to the requirements of customers. In addition to this, we ensure availability of powder in unlike packing and quantities. We are counted as the most outstanding Fine Ferro Alloy Powder Manufacturer and amidst the famous Exporters from India.


text:
//  Copyright (c) 2013, Facebook, Inc.  All rights reserved.
//  This source code is licensed under the BSD-style license found in the
//  LICENSE file in the root directory of this source tree. An additional grant
//  of patent rights can be found in the PATENTS file in the same directory.
//
#include <algorithm>
#include <iostream>
#include <thread>
#include <vector>

#include "rocksdb/db.h"
#include "rocksdb/perf_context.h"
#include "rocksdb/slice_transform.h"
#include "rocksdb/memtablerep.h"
#include "util/histogram.h"
#include "util/stop_watch.h"
#include "util/testharness.h"
#include "util/thread_status_util.h"
#include "util/string_util.h"

bool FLAGS_random_key = false;
bool FLAGS_use_set_based_memetable = false;
int FLAGS_total_keys = 100;
int FLAGS_write_buffer_size = 1000000000;
int FLAGS_max_write_buffer_number = 8;
int FLAGS_min_write_buffer_number_to_merge = 7;
bool FLAGS_verbose = false;

// Path to the database on file system
const std::string kDbName = rocksdb::test::TmpDir() + "/perf_context_test";

namespace rocksdb {

std::shared_ptr<DB> OpenDb(bool read_only = false) {
    DB* db;
    Options options;
    options.create_if_missing = true;
    options.write_buffer_size = FLAGS_write_buffer_size;
    options.max_write_buffer_number = FLAGS_max_write_buffer_number;
    options.min_write_buffer_number_to_merge =
      FLAGS_min_write_buffer_number_to_merge;

    if (FLAGS_use_set_based_memetable) {
#ifndef ROCKSDB_LITE
      options.prefix_extractor.reset(rocksdb::NewFixedPrefixTransform(0));
      options.memtable_factory.reset(NewHashSkipListRepFactory());
#endif  // ROCKSDB_LITE
    }

    Status s;
    if (!read_only) {
      s = DB::Open(options, kDbName, &db);
    } else {
      s = DB::OpenForReadOnly(options, kDbName, &db);
    }
    EXPECT_OK(s);
    return std::shared_ptr<DB>(db);
}

class PerfContextTest : public testing::Test {};

TEST_F(PerfContextTest, SeekIntoDeletion) {
  DestroyDB(kDbName, Options());
  auto db = OpenDb();
  WriteOptions write_options;
  ReadOptions read_options;

  for (int i = 0; i < FLAGS_total_keys; ++i) {
    std::string key = "k" + ToString(i);
    std::string value = "v" + ToString(i);

    db->Put(write_options, key, value);
  }

  for (int i = 0; i < FLAGS_total_keys -1 ; ++i) {
    std::string key = "k" + ToString(i);
    db->Delete(write_options, key);
  }

  HistogramImpl hist_get;
  HistogramImpl hist_get_time;
  for (int i = 0; i < FLAGS_total_keys - 1; ++i) {
    std::string key = "k" + ToString(i);
    std::string value;

    perf_context.Reset();
    StopWatchNano timer(Env::Default());
    timer.Start();
    auto status = db->Get(read_options, key, &value);
    auto elapsed_nanos = timer.ElapsedNanos();
    ASSERT_TRUE(status.IsNotFound());
    hist_get.Add(perf_context.user_key_comparison_count);
    hist_get_time.Add(elapsed_nanos);
  }

  if (FLAGS_verbose) {
    std::cout << "Get user key comparison: \n" << hist_get.ToString()
              << "Get time: \n" << hist_get_time.ToString();
  }

  {
    HistogramImpl hist_seek_to_first;
    std::unique_ptr<Iterator> iter(db->NewIterator(read_options));

    perf_context.Reset();
    StopWatchNano timer(Env::Default(), true);
    iter->SeekToFirst();
    hist_seek_to_first.Add(perf_context.user_key_comparison_count);
    auto elapsed_nanos = timer.ElapsedNanos();

    if (FLAGS_verbose) {
      std::cout << "SeekToFirst uesr key comparison: \n"
                << hist_seek_to_first.ToString()
                << "ikey skipped: " << perf_context.internal_key_skipped_count
                << "\n"
                << "idelete skipped: "
                << perf_context.internal_delete_skipped_count << "\n"
                << "elapsed: " << elapsed_nanos << "\n";
    }
  }

  HistogramImpl hist_seek;
  for (int i = 0; i < FLAGS_total_keys; ++i) {
    std::unique_ptr<Iterator> iter(db->NewIterator(read_options));
    std::string key = "k" + ToString(i);

    perf_context.Reset();
    StopWatchNano timer(Env::Default(), true);
    iter->Seek(key);
    auto elapsed_nanos = timer.ElapsedNanos();
    hist_seek.Add(perf_context.user_key_comparison_count);
    if (FLAGS_verbose) {
      std::cout << "seek cmp: " << perf_context.user_key_comparison_count
                << " ikey skipped " << perf_context.internal_key_skipped_count
                << " idelete skipped "
                << perf_context.internal_delete_skipped_count
                << " elapsed: " << elapsed_nanos << "ns\n";
    }

    perf_context.Reset();
    ASSERT_TRUE(iter->Valid());
    StopWatchNano timer2(Env::Default(), true);
    iter->Next();
    auto elapsed_nanos2 = timer2.ElapsedNanos();
    if (FLAGS_verbose) {
      std::cout << "next cmp: " << perf_context.user_key_comparison_count
                << "elapsed: " << elapsed_nanos2 << "ns\n";
    }
  }

  if (FLAGS_verbose) {
    std::cout << "Seek uesr key comparison: \n" << hist_seek.ToString();
  }
}

TEST_F(PerfContextTest, StopWatchNanoOverhead) {
  // profile the timer cost by itself!
  const int kTotalIterations = 1000000;
  std::vector<uint64_t> timings(kTotalIterations);

  StopWatchNano timer(Env::Default(), true);
  for (auto& timing : timings) {
    timing = timer.ElapsedNanos(true /* reset */);
  }

  HistogramImpl histogram;
  for (const auto timing : timings) {
    histogram.Add(timing);
  }

  if (FLAGS_verbose) {
    std::cout << histogram.ToString();
  }
}

TEST_F(PerfContextTest, StopWatchOverhead) {
  // profile the timer cost by itself!
  const int kTotalIterations = 1000000;
  uint64_t elapsed = 0;
  std::vector<uint64_t> timings(kTotalIterations);

  StopWatch timer(Env::Default(), nullptr, 0, &elapsed);
  for (auto& timing : timings) {
    timing = elapsed;
  }

  HistogramImpl histogram;
  uint64_t prev_timing = 0;
  for (const auto timing : timings) {
    histogram.Add(timing - prev_timing);
    prev_timing = timing;
  }

  if (FLAGS_verbose) {
    std::cout << histogram.ToString();
  }
}

void ProfileQueries(bool enabled_time = false) {
  DestroyDB(kDbName, Options());    // Start this test with a fresh DB

  auto db = OpenDb();

  WriteOptions write_options;
  ReadOptions read_options;

  HistogramImpl hist_put;

  HistogramImpl hist_get;
  HistogramImpl hist_get_snapshot;
  HistogramImpl hist_get_memtable;
  HistogramImpl hist_get_files;
  HistogramImpl hist_get_post_process;
  HistogramImpl hist_num_memtable_checked;

  HistogramImpl hist_mget;
  HistogramImpl hist_mget_snapshot;
  HistogramImpl hist_mget_memtable;
  HistogramImpl hist_mget_files;
  HistogramImpl hist_mget_post_process;
  HistogramImpl hist_mget_num_memtable_checked;

  HistogramImpl hist_write_pre_post;
  HistogramImpl hist_write_wal_time;
  HistogramImpl hist_write_memtable_time;

  uint64_t total_db_mutex_nanos = 0;

  if (FLAGS_verbose) {
    std::cout << "Inserting " << FLAGS_total_keys << " key/value pairs\n...\n";
  }

  std::vector<int> keys;
  const int kFlushFlag = -1;
  for (int i = 0; i < FLAGS_total_keys; ++i) {
    keys.push_back(i);
    if (i == FLAGS_total_keys / 2) {
      // Issuing a flush in the middle.
      keys.push_back(kFlushFlag);
    }
  }

  if (FLAGS_random_key) {
    std::random_shuffle(keys.begin(), keys.end());
  }
#ifndef NDEBUG
  ThreadStatusUtil::TEST_SetStateDelay(ThreadStatus::STATE_MUTEX_WAIT, 1U);
#endif
  int num_mutex_waited = 0;
  for (const int i : keys) {
    if (i == kFlushFlag) {
      FlushOptions fo;
      db->Flush(fo);
      continue;
    }

    std::string key = "k" + ToString(i);
    std::string value = "v" + ToString(i);

    std::vector<std::string> values;

    perf_context.Reset();
    db->Put(write_options, key, value);
    if (++num_mutex_waited > 3) {
#ifndef NDEBUG
      ThreadStatusUtil::TEST_SetStateDelay(ThreadStatus::STATE_MUTEX_WAIT, 0U);
#endif
    }
    hist_write_pre_post.Add(perf_context.write_pre_and_post_process_time);
    hist_write_wal_time.Add(perf_context.write_wal_time);
    hist_write_memtable_time.Add(perf_context.write_memtable_time);
    hist_put.Add(perf_context.user_key_comparison_count);
    total_db_mutex_nanos += perf_context.db_mutex_lock_nanos;
  }
#ifndef NDEBUG
  ThreadStatusUtil::TEST_SetStateDelay(ThreadStatus::STATE_MUTEX_WAIT, 0U);
#endif

  for (const int i : keys) {
    std::string key = "k" + ToString(i);
    std::string value = "v" + ToString(i);

    std::vector<Slice> multiget_keys = {Slice(key)};
    std::vector<std::string> values;

    perf_context.Reset();
    db->Get(read_options, key, &value);
    hist_get_snapshot.Add(perf_context.get_snapshot_time);
    hist_get_memtable.Add(perf_context.get_from_memtable_time);
    hist_get_files.Add(perf_context.get_from_output_files_time);
    hist_num_memtable_checked.Add(perf_context.get_from_memtable_count);
    hist_get_post_process.Add(perf_context.get_post_process_time);
    hist_get.Add(perf_context.user_key_comparison_count);

    perf_context.Reset();
    db->MultiGet(read_options, multiget_keys, &values);
    hist_mget_snapshot.Add(perf_context.get_snapshot_time);
    hist_mget_memtable.Add(perf_context.get_from_memtable_time);
    hist_mget_files.Add(perf_context.get_from_output_files_time);
    hist_mget_num_memtable_checked.Add(perf_context.get_from_memtable_count);
    hist_mget_post_process.Add(perf_context.get_post_process_time);
    hist_mget.Add(perf_context.user_key_comparison_count);
  }

  if (FLAGS_verbose) {
    std::cout << "Put uesr key comparison: \n" << hist_put.ToString()
              << "Get uesr key comparison: \n" << hist_get.ToString()
              << "MultiGet uesr key comparison: \n" << hist_get.ToString();
    std::cout << "Put(): Pre and Post Process Time: \n"
              << hist_write_pre_post.ToString() << " Writing WAL time: \n"
              << hist_write_wal_time.ToString() << "\n"
              << " Writing Mem Table time: \n"
              << hist_write_memtable_time.ToString() << "\n"
              << " Total DB mutex nanos: \n" << total_db_mutex_nanos << "\n";

    std::cout << "Get(): Time to get snapshot: \n"
              << hist_get_snapshot.ToString()
              << " Time to get value from memtables: \n"
              << hist_get_memtable.ToString() << "\n"
              << " Time to get value from output files: \n"
              << hist_get_files.ToString() << "\n"
              << " Number of memtables checked: \n"
              << hist_num_memtable_checked.ToString() << "\n"
              << " Time to post process: \n" << hist_get_post_process.ToString()
              << "\n";

    std::cout << "MultiGet(): Time to get snapshot: \n"
              << hist_mget_snapshot.ToString()
              << " Time to get value from memtables: \n"
              << hist_mget_memtable.ToString() << "\n"
              << " Time to get value from output files: \n"
              << hist_mget_files.ToString() << "\n"
              << " Number of memtables checked: \n"
              << hist_mget_num_memtable_checked.ToString() << "\n"
              << " Time to post process: \n"
              << hist_mget_post_process.ToString() << "\n";
  }

  if (enabled_time) {
    ASSERT_GT(hist_get.Average(), 0);
    ASSERT_GT(hist_get_snapshot.Average(), 0);
    ASSERT_GT(hist_get_memtable.Average(), 0);
    ASSERT_GT(hist_get_files.Average(), 0);
    ASSERT_GT(hist_get_post_process.Average(), 0);
    ASSERT_GT(hist_num_memtable_checked.Average(), 0);

    ASSERT_GT(hist_mget.Average(), 0);
    ASSERT_GT(hist_mget_snapshot.Average(), 0);
    ASSERT_GT(hist_mget_memtable.Average(), 0);
    ASSERT_GT(hist_mget_files.Average(), 0);
    ASSERT_GT(hist_mget_post_process.Average(), 0);
    ASSERT_GT(hist_mget_num_memtable_checked.Average(), 0);
#ifndef NDEBUG
    ASSERT_GT(total_db_mutex_nanos, 2000U);
#endif
  }

  db.reset();
  db = OpenDb(true);

  hist_get.Clear();
  hist_get_snapshot.Clear();
  hist_get_memtable.Clear();
  hist_get_files.Clear();
  hist_get_post_process.Clear();
  hist_num_memtable_checked.Clear();

  hist_mget.Clear();
  hist_mget_snapshot.Clear();
  hist_mget_memtable.Clear();
  hist_mget_files.Clear();
  hist_mget_post_process.Clear();
  hist_mget_num_memtable_checked.Clear();

  for (const int i : keys) {
    std::string key = "k" + ToString(i);
    std::string value = "v" + ToString(i);

    std::vector<Slice> multiget_keys = {Slice(key)};
    std::vector<std::string> values;

    perf_context.Reset();
    db->Get(read_options, key, &value);
    hist_get_snapshot.Add(perf_context.get_snapshot_time);
    hist_get_memtable.Add(perf_context.get_from_memtable_time);
    hist_get_files.Add(perf_context.get_from_output_files_time);
    hist_num_memtable_checked.Add(perf_context.get_from_memtable_count);
    hist_get_post_process.Add(perf_context.get_post_process_time);
    hist_get.Add(perf_context.user_key_comparison_count);

    perf_context.Reset();
    db->MultiGet(read_options, multiget_keys, &values);
    hist_mget_snapshot.Add(perf_context.get_snapshot_time);
    hist_mget_memtable.Add(perf_context.get_from_memtable_time);
    hist_mget_files.Add(perf_context.get_from_output_files_time);
    hist_mget_num_memtable_checked.Add(perf_context.get_from_memtable_count);
    hist_mget_post_process.Add(perf_context.get_post_process_time);
    hist_mget.Add(perf_context.user_key_comparison_count);
  }

  if (FLAGS_verbose) {
    std::cout << "ReadOnly Get uesr key comparison: \n" << hist_get.ToString()
              << "ReadOnly MultiGet uesr key comparison: \n"
              << hist_mget.ToString();

    std::cout << "ReadOnly Get(): Time to get snapshot: \n"
              << hist_get_snapshot.ToString()
              << " Time to get value from memtables: \n"
              << hist_get_memtable.ToString() << "\n"
              << " Time to get value from output files: \n"
              << hist_get_files.ToString() << "\n"
              << " Number of memtables checked: \n"
              << hist_num_memtable_checked.ToString() << "\n"
              << " Time to post process: \n" << hist_get_post_process.ToString()
              << "\n";

    std::cout << "ReadOnly MultiGet(): Time to get snapshot: \n"
              << hist_mget_snapshot.ToString()
              << " Time to get value from memtables: \n"
              << hist_mget_memtable.ToString() << "\n"
              << " Time to get value from output files: \n"
              << hist_mget_files.ToString() << "\n"
              << " Number of memtables checked: \n"
              << hist_mget_num_memtable_checked.ToString() << "\n"
              << " Time to post process: \n"
              << hist_mget_post_process.ToString() << "\n";
  }

  if (enabled_time) {
    ASSERT_GT(hist_get.Average(), 0);
    ASSERT_GT(hist_get_memtable.Average(), 0);
    ASSERT_GT(hist_get_files.Average(), 0);
    ASSERT_GT(hist_num_memtable_checked.Average(), 0);
    // In read-only mode Get(), no super version operation is needed
    ASSERT_EQ(hist_get_post_process.Average(), 0);
    ASSERT_EQ(hist_get_snapshot.Average(), 0);

    ASSERT_GT(hist_mget.Average(), 0);
    ASSERT_GT(hist_mget_snapshot.Average(), 0);
    ASSERT_GT(hist_mget_memtable.Average(), 0);
    ASSERT_GT(hist_mget_files.Average(), 0);
    ASSERT_GT(hist_mget_post_process.Average(), 0);
    ASSERT_GT(hist_mget_num_memtable_checked.Average(), 0);
  }
}

#ifndef ROCKSDB_LITE
TEST_F(PerfContextTest, KeyComparisonCount) {
  SetPerfLevel(kEnableCount);
  ProfileQueries();

  SetPerfLevel(kDisable);
  ProfileQueries();

  SetPerfLevel(kEnableTime);
  ProfileQueries(true);
}
#endif  // ROCKSDB_LITE

// make perf_context_test
// export ROCKSDB_TESTS=PerfContextTest.SeekKeyComparison
// For one memtable:
// ./perf_context_test --write_buffer_size=500000 --total_keys=10000
// For two memtables:
// ./perf_context_test --write_buffer_size=250000 --total_keys=10000
// Specify --random_key=1 to shuffle the key before insertion
// Results show that, for sequential insertion, worst-case Seek Key comparison
// is close to the total number of keys (linear), when there is only one
// memtable. When there are two memtables, even the avg Seek Key comparison
// starts to become linear to the input size.

TEST_F(PerfContextTest, SeekKeyComparison) {
  DestroyDB(kDbName, Options());
  auto db = OpenDb();
  WriteOptions write_options;
  ReadOptions read_options;

  if (FLAGS_verbose) {
    std::cout << "Inserting " << FLAGS_total_keys << " key/value pairs\n...\n";
  }

  std::vector<int> keys;
  for (int i = 0; i < FLAGS_total_keys; ++i) {
    keys.push_back(i);
  }

  if (FLAGS_random_key) {
    std::random_shuffle(keys.begin(), keys.end());
  }

  HistogramImpl hist_put_time;
  HistogramImpl hist_wal_time;
  HistogramImpl hist_time_diff;

  SetPerfLevel(kEnableTime);
  StopWatchNano timer(Env::Default());
  for (const int i : keys) {
    std::string key = "k" + ToString(i);
    std::string value = "v" + ToString(i);

    perf_context.Reset();
    timer.Start();
    db->Put(write_options, key, value);
    auto put_time = timer.ElapsedNanos();
    hist_put_time.Add(put_time);
    hist_wal_time.Add(perf_context.write_wal_time);
    hist_time_diff.Add(put_time - perf_context.write_wal_time);
  }

  if (FLAGS_verbose) {
    std::cout << "Put time:\n" << hist_put_time.ToString() << "WAL time:\n"
              << hist_wal_time.ToString() << "time diff:\n"
              << hist_time_diff.ToString();
  }

  HistogramImpl hist_seek;
  HistogramImpl hist_next;

  for (int i = 0; i < FLAGS_total_keys; ++i) {
    std::string key = "k" + ToString(i);
    std::string value = "v" + ToString(i);

    std::unique_ptr<Iterator> iter(db->NewIterator(read_options));
    perf_context.Reset();
    iter->Seek(key);
    ASSERT_TRUE(iter->Valid());
    ASSERT_EQ(iter->value().ToString(), value);
    hist_seek.Add(perf_context.user_key_comparison_count);
  }

  std::unique_ptr<Iterator> iter(db->NewIterator(read_options));
  for (iter->SeekToFirst(); iter->Valid();) {
    perf_context.Reset();
    iter->Next();
    hist_next.Add(perf_context.user_key_comparison_count);
  }

  if (FLAGS_verbose) {
    std::cout << "Seek:\n" << hist_seek.ToString() << "Next:\n"
              << hist_next.ToString();
  }
}

TEST_F(PerfContextTest, DBMutexLockCounter) {
  SetPerfLevel(kEnableTime);
  int stats_code[] = {0, static_cast<int>(DB_MUTEX_WAIT_MICROS)};
  for (int c = 0; c < 2; ++c) {
    InstrumentedMutex mutex(nullptr, Env::Default(), stats_code[c]);
    mutex.Lock();
    std::thread child_thread([&] {
      SetPerfLevel(kEnableTime);
      perf_context.Reset();
      ASSERT_EQ(perf_context.db_mutex_lock_nanos, 0);
      mutex.Lock();
      mutex.Unlock();
      if (stats_code[c] == DB_MUTEX_WAIT_MICROS) {
        // increment the counter only when it's a DB Mutex
        ASSERT_GT(perf_context.db_mutex_lock_nanos, 0);
      } else {
        ASSERT_EQ(perf_context.db_mutex_lock_nanos, 0);
      }
    });
    Env::Default()->SleepForMicroseconds(100);
    mutex.Unlock();
    child_thread.join();
  }
}

TEST_F(PerfContextTest, FalseDBMutexWait) {
  SetPerfLevel(kEnableTime);
  int stats_code[] = {0, static_cast<int>(DB_MUTEX_WAIT_MICROS)};
  for (int c = 0; c < 2; ++c) {
    InstrumentedMutex mutex(nullptr, Env::Default(), stats_code[c]);
    InstrumentedCondVar lock(&mutex);
    perf_context.Reset();
    mutex.Lock();
    lock.TimedWait(100);
    mutex.Unlock();
    if (stats_code[c] == static_cast<int>(DB_MUTEX_WAIT_MICROS)) {
      // increment the counter only when it's a DB Mutex
      ASSERT_GT(perf_context.db_condition_wait_nanos, 0);
    } else {
      ASSERT_EQ(perf_context.db_condition_wait_nanos, 0);
    }
  }
}
}

int main(int argc, char** argv) {
  ::testing::InitGoogleTest(&argc, argv);

  for (int i = 1; i < argc; i++) {
    int n;
    char junk;

    if (sscanf(argv[i], "--write_buffer_size=%d%c", &n, &junk) == 1) {
      FLAGS_write_buffer_size = n;
    }

    if (sscanf(argv[i], "--total_keys=%d%c", &n, &junk) == 1) {
      FLAGS_total_keys = n;
    }

    if (sscanf(argv[i], "--random_key=%d%c", &n, &junk) == 1 &&
        (n == 0 || n == 1)) {
      FLAGS_random_key = n;
    }

    if (sscanf(argv[i], "--use_set_based_memetable=%d%c", &n, &junk) == 1 &&
        (n == 0 || n == 1)) {
      FLAGS_use_set_based_memetable = n;
    }

    if (sscanf(argv[i], "--verbose=%d%c", &n, &junk) == 1 &&
        (n == 0 || n == 1)) {
      FLAGS_verbose = n;
    }
  }

  if (FLAGS_verbose) {
    std::cout << kDbName << "\n";
  }

  return RUN_ALL_TESTS();
}

redpajama_set_name: RedPajamaGithub