text:
Q: Advanced carousel is invisible and the dropdown button is gone WP/Plug-in/Theme updates broke our site's "select a campus" button.  It is a button that drops down a previously hidden carousel of campus images that scroll horizontally.
Clicking one redirects you. It is in the custom js of the theme, so that it is a sitewide header.  The carousel is called "Advanced Carousel" built through the "Ultimate Addons for WPBakery"
I'm sorry, I have next to no web experience, and I was handed this website after someone else broke it.  I am trying my best to learn as much as possible.  Everything else now works but this part.
This is for a newly updated WP site, which hadn't been updated in years.  When WP itself was updated, it broke all the sites and that's as far as the previous people got.  I updated the plug-ins and themes and that fixed most the issues other than this carousel.
Here is the custom JS that is a part of the theme (should apply to every site's header I beleive).
jQuery(document).ready(function($){
$('.select-campus a').on('click', function(e) {
            e.preventDefault();
            $(this).toggleClass('active');
            $('#select-a-campus').toggleClass('active');
        });
});
(function (n) { n.fn.sticky = function (t) { var i = n.extend({}, {
topSpacing: 0, bottomSpacing: 0, debug: !1 }, t), r = function (t, r, u) { var o = u.offset(), e = n(window).scrollTop(), f = n(document).outerHeight() - i.bottomSpacing - i.topSpacing - t.outerHeight(); f <= 0 || t.height() <= 0 || (e > o.top - i.topSpacing && e < f ? (t.css("position") != "fixed" && (t.trigger("sticky-start"), t.css({ position: "fixed", top: i.topSpacing })), t.trigger("sticky-bottom-unreached")) : e > o.top - i.topSpacing && e >= f ? t.css("position") == "fixed" ? (t.trigger("sticky-bottom-reached"), t.css({ position: "absolute", top: f - r.offset().top + i.topSpacing + "px" })) : t.css("position") == "absolute" ? t.css({ top: f - r.offset().top + i.topSpacing + "px" }) : f > o.top && t.css({ position: "absolute", top: f - r.offset().top + i.topSpacing + "px" }) : ((t.css("position") == "fixed" || t.css("position") == "absolute") && t.trigger("sticky-end"), t.css({ position: "", top: "" }))) }; return this.each(function () { var t = n(this), u = t.offsetParent(), i; t.width(t.width()); i = n("<div class='sticky-holder' style='visibility: hidden;height:0;display:block'><\/div>").insertBefore(t); r(t, u, i); n(window).scroll(function () { r(t, u, i) }) }) } })(jQuery);

 jQuery(document).ready(function ($) {
      $('.vc_custom_1489943500023, .vc_custom_1489936456809').sticky( {topSpacing: 20,bottomSpacing:$("#page-section-40").outerHeight(true)} );
    });

function myFunction() {
document.getElementById("myDropdown").classList.toggle("show");
}

// Close the dropdown menu if the user clicks outside of it
window.onclick = function(event) {
  if (!event.target.matches('.dropbtn')) {

var dropdowns = document.getElementsByClassName("dropdown-content");
var i;
for (i = 0; i < dropdowns.length; i++) {
  var openDropdown = dropdowns[i];
  if (openDropdown.classList.contains('show')) {
    openDropdown.classList.remove('show');
      }
    }
  }
}

Please tell me if I can do anything else to help understanding.  Sorry I don't know more.  Any help is appreciated.
No error messages, however if you hover the mouse within a handful of pixels below the header, you are able to click some of the hidden campuses.
EDIT 1:  here is the link to the html https://github.com/dtnieboer/sh-html/releases/tag/1.0
EDIT 2: Hey guys!  An update- yes this job would be way too hard with my skill level.  Going to get rid of the old code and rebuild a more simple button for now.  Thanks for the help!

redpajama_set_name: RedPajamaStackExchange


Showing "Input Power Supply" search results as seen on April 21, 2019.
Shop for Input Power Supply - top sales, deals, offers, and Supply Power Input discounts are available 24/7/365 at Shopneter.com.
Customers who search Input Power Supply also buy this items: Short Sleeve Crewneck Sweater, Nikon Digital Instruction Books, 100 Regular Light.


text:
Silver Jews - Bright Flight LP
The Guardian wrote: "Fusing gorgeous, tear-sodden country melodies with lyrics that inspire love and anxiety in equal measure, Bright Flight poetically captures a drunken night spent contemplating suicide while staring at the Nashville skyline."
The 1st thing I remember about the recording is that when we opened the door to Hum Depot's basement studio, the console was in a jillion pieces. Why we were the reason it got cleaned for the first time since 1972, who can say? Marky cussed heroically, recomposing the board while the Joos idled High Life ponies in the parking lot. Everyone was well in character by the time the reels sputtered to life.
Guided By Voices - Warp and Woof LP
Following GBV's sprawling double-album Zeppelin Over China, Robert Pollard has written and recorded another full-length in record-breaking time. It's Warp and Woof (April 26, 2019), exuberantly barreling through 24 songs in just 37 minutes with a brevity
Callahan, Bill - Woke On a Whaleheart LP
The first album that features Bill's own name. An incredible album of river ruminations and hilarious observations. One of Bill's best!
Callahan, Bill - Gold Record LP
Gold Record is a studio album by American musician Bill Callahan, released on September 4, 2020 by independent record label Drag City.
Callahan, Bill - Live at Third Man Records LP
An intimate, sparse, and commanding set from Bill.

redpajama_set_name: RedPajamaCommonCrawl


We're here when you need us, whether it's for a routine checkup, a much needed vaccination, or a thorough exam and testing when your pet is sick. Our staff is not only knowledgeable about veterinary techniques but also strives to make sure you and your pet are well cared for. You can rest assured that your best friend is in the best hands.


JW SPORTA is a creative British Columbia based consulting and marketing firm comprised of experts in the field of healthy living and education. For more than 30 years the team has responded to a need, carving a niche in the writing and development of practical and relevent, yet academically based, health, healthy eating, physical activity and sport education resources.
Founded by two Olympians and educators, Harry Jerome and Wilf Wedmann, JW Sporta is comprised of a small team of diverse and deeply experienced health, physical activity, and sport professionals who operate with an integrated program design, delivery and service approach.
For examples of JW Sporta's work see our Track Record.


text:
Patent application title: SURFACE ACTIVATION BY PLASMA JETS FOR THERMAL SPRAY COATING ON CYLINDER BORES
Inventors: Yucong Wang (West Bloomfield, MI, US) Yucong Wang (West Bloomfield, MI, US)
IPC8 Class: AC23C412FI
Class name: Coating processes spray coating utilizing flame or plasma heat (e.g., flame spraying, etc.)
A method of activating the surface of an aluminum-based substrate. This method includes cleaning the substrate surface, and operating a plasma spraying device such that a air plasma jet produced by the device is accelerated toward the surface so that it removes or decomposes any remaining oxides and other surface contaminants. In one form, the surface being treated forms part of a cylinder bore of an internal combustion engine block. In a particular form where a protective coating is subsequently being applied to the substrate, a sequential series of plasma spraying devices may be used such that a first--preferably simpler--device is used to perform activation or pretreatment operations, while a second--and more comprehensive--device may be used to deposit the protective layer on the pretreated surface.
1. A method of activating the surface substrate of an aluminum-based engine cylinder bore to achieve better adhesion between a subsequently-applied protective coating and the substrate, said method comprising: cleaning said surface to remove at least a portion of an oxide formed thereon; and operating a plasma spraying device such that an air plasma jet produced thereby impinges on said surface.
2. The method of claim 1, wherein said plasma spraying device defines a pretreatment plasma spraying device that is separate from a plasma spraying device used to deposit a protective coating on said surface.
3. The method of claim 2, wherein said pretreatment plasma spraying device is configured such that it is incapable of receiving a protective coating material precursor therein.
4. The method of claim 1, wherein said activating is accomplished without said surface being subjected to separate mechanical activation step.
5. The method of claim 1, wherein said cleaning comprises exposing said surface to a potassium-fluoride solution such that at least one compound containing potassium, aluminum and fluorine is formed on said surface.
6. The method of claim 5, wherein said at least one compound containing potassium, aluminum and fluorine comprises at least one of K3AlF6 and KAlF.sub.4.
7. The method of claim 1, wherein said cleaning comprises exposing said surface to an acid solution.
8. The method of claim 7, wherein said acid solution comprises nitric acid.
9. The method of claim 8, wherein said nitric acid solution further comprises at least one of hydrofluoric acid and a fluoride salt.
10. The method of claim 9, further comprising rinsing said surface after each exposure to said nitric acid solution.
11. The method of claim 1, further comprising depositing a protective coating material precursor onto said surface once said activating is substantially complete.
12. The method of claim 11, wherein said depositing a protective coating material precursor onto said surface is performed by plasma spraying.
13. A method of coating the surface of an aluminum-based substrate, said method comprising: cleaning said surface to remove at least a portion of an oxide formed thereon; operating a first plasma spraying device such that an air plasma jet produced thereby impinges on said cleaned surface; and operating a second plasma spraying device such that a protective coating material precursor introduced therein impinges on said cleaned surface that has been pretreated with said air plasma jet.
14. The method of claim 13, wherein said surface defines an engine cylinder bore.
15. The method of claim 14, wherein said first plasma spraying device is configured to operate to not introduce a protective coating material precursor therein.
16. The method of claim 13, wherein said operating a first plasma spraying device takes place at a lower power setting than said operating a second plasma spraying device.
17. A method of coating a cylinder bore of an engine block, said method comprising: cleaning said surface with a solution containing at least one of potassium and fluorine; operating a first plasma spraying device such that a pretreatment plasma jet produced thereby impinges on said cleaned surface; and operating a second plasma spraying device such that a protective coating material precursor introduced therein impinges on said pretreated surface.
18. The method of claim 17, wherein said pretreatment plasma jet produced by said first plasma spraying device is an air plasma, and wherein said plasma coating produced by said second plasma spraying devices includes at least one of argon, hydrogen and helium.
[0001] This invention is related generally to achieving better adhesion between a thermal sprayed protective coating and a target substrate, and in particular to pretreating the substrate with an air plasma spray prior to application of the protective coating.
[0002] Thermal spray techniques have been shown to be an effective way to deposit protective coatings--such as thermal barrier coatings, wear coatings, anti-corrosion coatings or the like--onto a workpiece. The high deposition rates make such coating approaches amenable to large-scale manufacturing, such as that associated with the production of engine cylinder bores and the pistons that are designed to reciprocate in them. Adhesion of the protective coating to a substrate is a very important metric for determining the suitability of the coating for a particular application (such as for the harsh environments produced within the combustion chamber of an internal combustion engine cylinder bore). Traditionally, improvements in coating adhesion to the cylinder bore substrate were achieved through various surface activation pretreatment steps, including approaches such as grit blasting with ceramic particles, high-pressure water jet blasting and mechanical roughening/locking. While effective for their intended purpose, they add significant complexity and cost to the coated component's manufacturing process. For example, mechanical roughening/locking-based approaches involve high tooling costs; these costs tend to be exacerbated by short tool life and extensive cleanup requirements. Likewise, the high-pressure water jet blasting approach has very high capital costs, while the grit blasting approach has sand contamination problems, as well as (along with the mechanical roughening mentioned above) significant cleanup requirements. Some of these cleanup requirements (as well as substrate pretreatment) may also use volatile organic compounds (VOCs) the use of which is coming under increasing scrutiny for their potentially negative environmental impact. Other attempts, including the deposition of a separate bonding coating, are also routinely used. As with the substrate activation pretreatments mentioned above, this involves significant additional complexity and related cost.
[0003] One particularly valuable form of thermal spray coating is through plasma spraying, where the constituents that make up numerous protective coatings are subjected an ionized flow of an inert gas. In addition to the high deposition rates, plasma spraying is beneficial in that the gas is chemically inert, while the target workpiece substrate may be kept relatively cool; these factors make it possible to avoid harm to both the impinging coating and substrate in a manner not possible with other elevated-temperature or chemically-active processes. In plasma spraying, oppositely-charged electrodes in the form of a cylindrical anode that circumscribes a bullet-shaped cathode form a flowpath that defines a nozzle at the discharge end. A direct current (DC) source is applied to the electrodes such that when the inert gas is introduced into an annular space between the electrodes, it is ionized to form a plasma that exits the nozzle as a jet stream. A separate coating insertion path (typically in the form of a tube) injects the protective coating material precursor (which is typically in powdered form) into the jet of plasma that develops in the nozzle. The device (typically referred to as a gun) operates when a current pulse is introduced between the anode and cathode such that it creates an arc through the gas and across the gap between these electrodes. The formation of the arc coincides with the electrons in the gas being stripped from their atoms and accelerated toward the anode, while the atoms are accelerated toward the cathode. A steady supply of electric current helps the arc to be pushed toward the exit in the nozzle, which in turn ionizes other atoms or molecules in the gas stream that results in a high-speed plasma that upon exiting the gun can be directed to impinge upon the suitable workpiece substrate.
[0004] An even more particular form of plasma spraying is known as plasma transferred wire arc (PTWA) thermal spraying. Unlike powder-based feedstocks, PTWA uses a sold wire that melts when subjected to the plasma jet produced by the gun. While plasma spraying in general (and PTWA in particular) has been especially well-suited to coating the aforementioned engine cylinder bores, it has not been used for substrate activation as a way to improve the ordinarily weak bonding exhibited between the protective coating and the substrate. Instead, recourse has traditionally been made to either the separate bonding coating or one or more of the substrate activation pretreatments mentioned above. There is a need for a simpler, less expensive approach that also reduces negative environmental externalities.
[0005] The current invention involves utilizing an air plasma jet produced from a plasma spraying apparatus to pretreat by activation the substrate before applying a protective coating. In this way, oxide layers may be removed, etched away or decomposed by melting or dissolving just prior to depositing the protective coating with this or another plasma spraying apparatus. In the present context, the term air plasma jet (also referred to herein as air plasma) differs from conventional plasma spray in that it is substantially devoid of any additives, such as a conventional protective coating material precursor. According to an aspect of the present invention, a method of activating the surface of an aluminum-based engine cylinder bore substrate includes cleaning the surface to remove at least a portion of an oxide formed thereon, and operating a plasma spraying device such that an air plasma jet produced thereby is accelerated toward the surface so that it decomposes or removes any remaining oxides and other contaminants that may otherwise impact the ability of the surface and a subsequently-applied protective coating to adhere to one another. In a preferred form, the substrate being exposed to the cleaning and the plasma jet is an engine cylinder bore. In another preferred form, the plasma spraying device is a pretreatment plasma spraying device that is separate from a plasma spraying device used to deposit the subsequent protective coating on the engine cylinder bore in such configuration, the pretreatment plasma spraying device is simplified. One significant way it is simplified is to be devoid of any protective coating material precursor receiving mechanism such that it may operate at a lower power setting than would otherwise be required, although in another form, it could be achieved by a traditional plasma spraying device where the protective coating material precursor receiving mechanism has been disabled; either variant is deemed to be within the scope of the present invention. In another preferred embodiment, the activation of the substrate is accomplished without being subjected to separate mechanical activation step (such as those discussed above in the Background section of this disclosure). In the present context, the terms "activation" and "pretreatment" are used interchangeably to describe the process of improving the surface characteristics of the target substrate with an air plasma jet so that long-term adherence of a subsequently-applied protective coating (such as low and high carbon steel wear-resistant coatings such as 0.1-0.8 wt % carbon, as well as the steels containing other alloying elements for corrosion and wear protection (such as Cr, Ni, Cu or the like) is improved. In another preferred form, the surface activation achieved by the present invention is done so without having to resort to traditional mechanical activation approaches such as those discussed above.
[0006] According to another aspect of the present invention, a method of coating the surface of an aluminum-based substrate is disclosed. The method includes cleaning the surface to remove at least a portion of an oxide formed thereon, operating a first plasma spraying device such that a plasma jet produced by the first device impinges on the cleaned surface, and then operating a second plasma spraying device such that a protective coating material precursor introduced into it impinges on the cleaned surface that has been pretreated with the plasma jet from the first plasma spraying device. In this way, their surfaces are being exposed to the first and second plasma spraying devices in sequential fashion.
[0007] According to yet another aspect of the present invention, a method of coating a cylinder bore of an engine block is disclosed. The method includes cleaning the surface with a solution containing at least one of potassium and fluorine, operating a first plasma spraying device such that a pretreatment air plasma jet produced by the first device impinges onto the cleaned surface, and operating a second plasma spraying device such that a protective coating material precursor introduced into the plasma jet produced in the second device impinges on the pretreated surface.
[0008] The following detailed description of the preferred embodiments of the present invention can be best understood when read in conjunction with the following drawings, where like structure is indicated with like reference numerals and in which the various components of the drawings are not necessarily illustrated to scale:
[0009] FIG. 1 depicts an isometric view of a notional engine block with four cylinder bores formed therein that could receive a protective coating according to an aspect of the present invention;
[0010] FIG. 2 depicts a plasma spray gun that may be used in conjucntion with the present invention; and
[0011] FIG. 3 depicts the cooperative placement of the plasma spray gun of FIG. 2 with the wall of an engine cylinder bore such that the gun may be used to pretreat the wall or depsoit a protective coating onto the wall.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
[0012] Referring first to FIG. 1, a simplified view of four-cylinder automotive internal combustion engine block 100 is shown. The block 100 includes portions for--among other things--the crankcase 110, the crankshaft bearing 120, the camshaft bearing 130 (in the case of engines with overhead valves and pushrods), water cooling jackets 140, flywheel housing 150 and cylinder bores 160. These bores 160 may include an alloyed surface layer (not shown) that is either integrally formed with the substrate of each bore 160, or as a separate insert or sleeve that is sized to fit securely within. In one form, such alloyed surface layer can be used to enhance the corrosion, wear or thermal resistance of the bore 160. In fact, in engine configurations where the block 100 is cast from a lightweight material, such as aluminum and its alloys (such as A380, A319 or A356), the addition of such surface layers was traditionally deemed to be necessary as a way to impart additional thermal and wear resistance. In one form, this alloyed surface layer is made from a heavy cast iron or related material.
[0013] Referring next to FIG. 2, the plasma spraying process involves the latent heat of ionized inert gas (plasma) being used to create the heat source. A plasma spraying device (also referred to herein as a plasma spray gun or more simply as a plasma gun) 300 that can be used as part of the present invention is shown in partial cutaway view. Gun 300 includes a housing 310 with a coolant channel 320 formed therein, as well as a plasma gas injection port 330 and protective coating material precursor injection port 340. As will be discussed in more detail below, in one preferred embodiment, when gun 300 is configured to act as a stand-alone device for surface activation/pretreatment operations using an air plasma jet rather than as a way to also deposit a protective coating, the protective coating material precursor injection port 340 may be removed or disabled. An external DC current source is connected to the bullet-shaped cathode 350, while the surrounding portion of the housing 310 forms the anode 360. In one form, cathode 350 is made from a thoriated tungsten, while the anode 360 is made from concentrically-shaped copper.
[0014] The most common gas used to create the plasma is argon; this is referred to as the primary gas and is made to flow between the electrodes and a nozzle 390. A high frequency or high voltage alternating electric arc is formed between the nozzle 390 and the anode 360 to ionize the gas stream. By increasing the arc current, the arc thickens and increases the degree of ionization. This has the effect of increasing the power and also, due to the expansion of gas, an increase in the velocity of the gas stream. If the gas being used as the arc plasma flame is substantially pure argon, a very large arc current is needed to create sufficient power to melt most of the protective spray coating precursor materials that are used in traditional plasma spraying operations. With this level of arc current, the gas velocity may be too high to melt many refractory materials. To overcome this, secondary gases (such as hydrogen) may be added to change the thermal and electrical properties of the gas stream such that the gun 300 power level is increased sufficiently to melt such refractory materials (even ceramics). Once the appropriate gas stream has been established for the material being sprayed, the feed stock (wire or powder spray material) for the material being deposited in a plasma spraying process is injected into the gas stream.
[0015] Air plasma can be generated with the same principle as described above, although the power needs are much lower. Thus, a gun (such as gun 300 shown and described herein) that is devoid of the need for the higher power requirements associated with a full protective coating material precursor injection capability may be used for surface activation through an air plasma jet as a separate air plasma spraying device. As such, it can be used as part of a more comprehensive protocol that has separate pretreatment and plasma thermal spray coating devices; such a configuration may be used to lower the total system capital cost (as well as operational cost). Thus, in one preferred embodiment, the gun 300 used as part of the present invention may be coupled to a production line-based manufacture of internal combustion engines in general and the walls or bores formed in cylinder blocks in particular. The gun 300 may be made to pivot about an axis that moves along the piston travel direction within the bore 160 so that it coats a substantial entirety of the bore 160 inner surface periphery while rotating circumferentially along cylinder wall. Upon application of the DC current and a switched pulse (to create arc 370), a relatively cohesive plasma jet 380 is ejected from a nozzle 390 in order to pretreat the desired surface. In configurations where gun 300 is capable of applying a plasma sprayed coating (such as that made with the precursor wire or powder the latter of which is introduced through protective coating material precursor injection port 340) as shown in FIG. 2, the plasma jet 380 includes the melted material droplets 385; otherwise, the plasma jet 380 is of the air plasma variant where no such droplets 385 are present.
[0016] In one form of the comprehensive protocol mentioned above, a first gun 300 (which does include a protective coating material precursor injection port 340) or plasma wire arc coating system (such as through PTWA) may be used; either are deemed to be compatible with the air plasma pretreatment of the present invention. In another form, gun 300 is configured to perform both the air plasma pretreatment and protective coating deposition operations; in this configuration, the protective coating material precursor through port 340 is present such that prior to the introduction of a protective coating material precursor therethrough, the plasma jet 380 is activated without the introduction of the protective coating material precursor to facilitate plasma bombardment of the target substrate with only the plasma jet 380 before the actual plasma coating process is initiated.
[0017] As will be discussed in more detail below, in one embodiment, gun 300 may be used for the deposition of the protective coating, while in a preferred embodiment, a simplified version of gun 300 that does not include a provision for introducing the protective coating material precursor therein may be used in cooperation with the more comprehensive gun 300 that does include the protective coating material precursor through port 340 such that the simplified version is used solely for the pretreatment operation while the more comprehensive version (such as shown in FIG. 2) is used exclusively for the coating deposition operation. In such configuration, the gun being used for pretreatment (also referred to herein as an air plasma gun in that it only dispenses an air plasma jet) constitutes a first plasma spraying device, while that used for protective coating deposition constitutes a second plasma spraying device.
[0018] Significantly, the plasma jet surface activation of the present invention avoids the difficulties associated with using organic and silicone-based materials while still promoting more full wettability of the substrate. By replacing traditional mechanical roughening (mentioned above) and VOC-based cleaning processes with inert plasma gun gases (for example, a mixture of argon and hydrogen), capital costs and subsequent environmental impacts are reduced. The plasma jet 380 gas temperatures and velocity distributions range widely depending on numerous factors, including nozzle 390 design, power levels and gas compositions. As mentioned above, the plasma gas is preferable an inert gas. One form of suitable plasma gas is argon, often with hydrogen or another secondary or auxiliary gas. Argon alone creates a relatively low-energy plasma related to its breakdown and thermal heat capacity, while other inert gases, such as nitrogen, produces a relatively hot plasma gas; use of one gas versus the other may be dictated by other factors, such as the propensity for reaction with other materials. Other additives, such as helium may be used to form a mixture (for example, an Ar/He mixture with approximately 20 to 50 percent helium by volume); this addition may help improve the thermal conductivity of plasma mixture, which in turn increases the plasma's heat capacity. In a similar way, argon/hydrogen mixtures (for example, approximately 5 to 15 percent hydrogen by volume) are also used and provided increased jet temperatures (i.e., enthalpy) over argon alone or argon/helium mixtures due to hydrogen's diatomic structure and its high collisional cross section related to its low mass.
[0019] As mentioned above, in one form, a gun 300 from an existing plasma spray coating system (which includes the protective coating material precursor injection port 340 or related material introduction apparatus) may be used, while in another, a separate (i.e., dedicated, or stand-alone) gun that requires lower power and only uses air as a plasma working fluid without a separate protective coating material precursor through port 340 may be used in conjunction with gun 300; an example of such a dedicated gun is commercially available from Plasmatreat North America of Elgin, Ill. One benefit of having a separate gun for the pretreatment and a separate gun for the protective coating deposition is that the high power densities (40-150 kW) being utilized by conventional DC-arc plasma guns create higher electrode erosion rates, which in turn may necessitate more system maintenance. Likewise, more thermal and electrical protection for gun components may be required. This in turn may necessitate a much more robust cooling system, where high pressure (for example, above 1 MPa) water cooling and high flow (3 to 12 liters/minute) are needed; because these require high-pressure seals and passages inside guns, the cost of not only the gun (where the copper nozzle has a relatively frequent replacement rate, with lives from 2 to 300 hours being reported and 10 hours being average) but also ancillary equipment may become prohibitively high if a single gun were to be used for both operations.
[0020] Once the cylinder bores 160 are bored to the desired size, their surface is cleaned by immersing in a 0.5M potassium-fluoride bath; this solution etches away the oxide layer that forms on the bore 160 surface, and then reacts with the now-exposed aluminum to form a K3AlF6 and KAlF4 flux. The jet from the plasma gun 300 is made to impinge onto the fluxed surface to thermally activate the flux; this has the effect of melting the salt and dissolving any remaining surface oxides. In an alternate approach to the potassium-fluoride bath, the cylinder bore 160 is prepared by soak cleaning followed by an acid dip. In one form, the acid solution used for the dip is nitric acid (up to 50%); this dip may contain a small amount of fluoride either from hydrofluoric acid or a fluoride salt. Immersion of the substrate to such dip is preferably in the range of about 1 to 10 minutes, as excess etching can damage parts and cause pitting. Thorough rinsing is required between each of the exposures to the acid dip.
[0021] Referring next to FIG. 3, the use of gun 300 that can be used to pretreat the inner wall of an engine cylinder bore is shown. It can be used directly in line--conveyor belt as well as robotic application is possible. High speed up to 40 meters/minute of plasma jet treatment may be achieved. The method of the present invention is preferably used as part of a production line-based manufacture of internal combustion engines in general and the walls or bores formed in cylinder blocks 100 in particular. It can also be used for treating parts other than engines that require thermal spray coatings for good coating adhesion. By having the gun 300 mounted onto a rotating stem, it can be made to provide complete circumferential surface pretreatment that is defined by the wall or bore. As such, the approach of the present invention avoids the necessity of having the larger (and therefore more cumbersome) coated component be moved during the wall surface preparation and subsequent coating.
[0022] Cylinder bore 160 of engine block 100 is defines a circumferential inner wall 160A. As mentioned above, a stem in the form of a pressurized axial fluid conduit 200 may be used as a secure mounting platform for gun 300 (shown presently in simplified form). The stem may be made to rotate. Details of the cooperation between the rotating axial fluid conduit 200 and its use in cylinder bore 160 may be found in co-pending U.S. application Ser. No. 14/335,974 entitled NON-DESTRUCTIVE ADHESION TESTING OF COATING TO ENGINE CYLINDER BORE that is owned by the Assignee of the present invention and incorporated herein by reference in its entirety.
[0023] It is noted that terms like "preferably", "generally" and "typically" are not utilized herein to limit the scope of the claimed invention or to imply that certain features are critical, essential, or even important to the structure or function of the claimed invention. Rather, these terms are merely intended to highlight alternative or additional features that may or may not be utilized in a particular embodiment of the present invention.
[0024] For the purposes of describing and defining the present invention, it is noted that the terms "substantially" and "approximately" and their variants are utilized herein to represent the inherent degree of uncertainty that may be attributed to any quantitative comparison, value, measurement or other representation. The term "substantially" is also utilized herein to represent the degree by which a quantitative representation may vary from a stated reference without resulting in a change in the basic function of the subject matter at issue.
[0025] Having described the invention in detail and by reference to specific embodiments, it will nonetheless be apparent that modifications and variations are possible without departing from the scope of the invention defined in the appended claims. In particular it is contemplated that the scope of the present invention is not necessarily limited to stated preferred aspects and exemplified embodiments, but should be governed by the appended claims.
Patent applications in class SPRAY COATING UTILIZING FLAME OR PLASMA HEAT (E.G., FLAME SPRAYING, ETC.)
Patent applications in all subclasses SPRAY COATING UTILIZING FLAME OR PLASMA HEAT (E.G., FLAME SPRAYING, ETC.)
2016-05-26 Radiation-curable compounds
2014-04-17 Universal paint grid
2015-10-29 Insulation material
2016-04-21 Spray-coating method
2016-05-26 Lithium ion batteries
2016-04-28 Thermal spraying method and device therefor
2016-04-28 Systems and methods for preparing and coating a workpiece surface
2016-03-17 Spray rejuvenation of sputtering targets
2016-02-25 High temperature and high pressure portable gas heater
2016-01-28 Method for manufacturing solid oxide fuel cell anode with high stability and high efficiency
2016-03-03 Method of making nd-fe-b magnetic materials with reduced heavy rare earth metals
2016-02-04 Materials property predictor for cast aluminum alloys
2015-12-10 Quick analysis of residual stress and distortion in cast aluminum components
2015-09-10 Near net shape manufacturing of rare earth permanent magnets
2015-08-13 Turbocharger waste-gate valve assembly wear reduction
Top Inventors for class "Coating processes"
1 Xinjian Lei
2 Shou-Shan Fan
3 Shunpei Yamazaki
4 Kai-Li Jiang
5 Stephen D. Pacetti


text:
Innovation minister hails 'pioneering' precision medicine work
McKee visited the university along with Victor Dzau, the president of the United States National Academy of Medicine. They toured the facilities at Queen Elizabeth University Hospital, including the Clinical Innovation Zone, and saw the 7T MRI scanner.
Professor Dame Anna Dominiczak, head of the College of Medical, Veterinary and Life Sciences, spoke to them about the economic potential of the precision medicine agenda, which McKee hailed as playing a key role in developing Scotland's profile internationally and contributing to inclusive economic growth at home.
McKee also met with Professor Sir Anton Muscatelli, the university's principal, to hear more about the university's innovation strategy and £1 billion campus development programme which is currently underway.
Ivan McKee, Minister for Trade, Investment and Innovation, said: "The Imaging Centre of Excellence at the Queen Elizabeth University Hospital is an international leader in personalised medicine. The pioneering work done here contributes to Scotland's international profile as well as supporting high quality jobs in the city.
"The scope of the campus development plans are also of a scale that they could raise the profile of the whole country, and I look forward to working with University of Glasgow and other partners on how we can make that happen."
Professor Dame Anna Dominiczak, vice principal and head of the College of Medical, Veterinary and Life Sciences, said: "I was delighted to welcome the new minister to the university and to highlight some of the world leading work being undertaken here – with the potential to improve outcomes for patients, save millions of pounds for the NHS and make a real contribution to inclusive economic growth and job creation.
"The collaborations at the Queen Elizabeth University Hospital between academia, industry and the NHS are the perfect example of the approach we need to take to ensure Scotland can capitalise on our current position in precision medicine and continue to lead the world in this emerging industry – and I look forward to working with the new minister to ensure we continue to see real economic benefit for the whole of Scotland from this exciting new field."


The music on this album was composed between 2006 and 2013 initially for five different live performances of moving image and sound.
Vicki Bennett, under the People Like Us moniker, returns from several collaborations for her first solo album in several years. Stranded in the United States for an extended period after the Icelandic volcano eruption blocked her British homeland's airspace, Bennett derived thematic material of displacement, travel, and a longing for elsewhere, from the natural disaster that caused her own predicament. Volcanically marooned in Baltimore and NYC, Bennett utilized some of her "free" time to work on the album and even gained audio contributions from fellow experimental musicians Jason Willett (of Half Japanese) and M.C. Schmidt (of Matmos) via her extended stay.
Taking a glance at just a few tracks from Welcome Abroad, songs from The Beatles, Ennio Morricone, Danny Kaye, Bob Dylan, Rod McKuen, Elton John, Gene Pitney, Elvis Presley, Dionne Warwick, John Denver, Julie London, and Queen are all amalgamated. While recent mashup culture often centers on the instant gratification of seamlessly juxtaposing hooks, People Like Us tracks transform the source material into collages that are equal parts dissonance and pleasure, making artful commentaries on our culture and Bennett's own existential amusement within such a wondrous world.
Thanks to Ergo Phizmiz, Jason Willett, M.C.Schmidt (Matmos), Virginia Pipe and Wobbly for contributing instruments, audio parts and multitracking to this album.
Lyrics on The Seven Hills of Rome by Ergo Phizmiz.
Another 3 additions to People Like Us over at UbuWeb. Many thanks Ubu!
Blather is a 3 part radio series made specially for Radio Boredcast, taking us on a journey through all the kinds of sounds that the mouth makes, whether that be for artistic, comedy, practical, mind-altering, religious or work reasons.
Nothing Special + A Fistful of Knuckles on cassette!
Yes, these two albums are now reissued… on cassette!
PEOPLE LIKE US – A FISTFUL OF KNUCKLES – SOLD OUT!!!
PEOPLE LIKE US & KENNY G – NOTHING SPECIAL – SOLD OUT!!!
Citation City is a 42 minute audiovisual performance work which sources, collages and edits 300 major feature films where content is either filmed or set in London – creating a story within a story, of the film world, living its life, through extraordinary times of change, to see what happens when these multiple narratives are combined… what will the story tell us that one story alone could never tell?
Please note: this is now retired. However, we occasionally make edits available as stand-alone movies for cinema screening.


FraudLabs Credit Card Fraud Detection Desktop is a free standalone Windows application that allows instant detection of fraudulent online credit card order transactions using Windows GUI. Users can perform 90 queries per month using Free account. Please visit site for more information.


Description "Blumenthal Louis, shoemaker, 119 Market street, residence Market, between 29th and 30th streets."
Source Heller, John H., compiler. Galveston City Directory, 1872. Galveston: John H. Heller, 1872, p. 35. URL: http://texashistory.unt.edu/ark:/67531/metapth636856/ University of North Texas Libraries, The Portal to Texas History, http://texashistory.unt.edu; crediting Galveston & Texas History Center, Rosenberg Library , Galveston, Texas.
Artisan or Artist Blumenthal, Louis.


 Análisis Bitcoin/Btc - ¿HCH INVERTIDO? ¿A LOS $5000?
Análisis Bitcoin/Btc - ¿HCH INVERTIDO? ¿A LOS $5000?
¿HCH INVERTIDO? ¿A LOS $5000?
Análisis Bitcoin/Btc - ¡¡BTC SUBE!! ¿¿Y AHORA QUE??
ANÁLISIS BITCOIN (BTC, XBT) Y ORO (XAU) ¿VENDEMOS O COMPRAMOS?
Análisis Bitcoin/Btc - ¿A los $5000? Bitcoin ????
Análisis Bitcoin/Btc - ¿SUELO en los $2900?
????¡CAE EL BITCOIN! ????¡ANÁLISIS DE SUS MAYORES BAJADAS!
Análisis Bitcoin/Btc - ¡¡BTC PRÓXIMO TARGET $4.200!!


text:
Despite Major Uncertainty, Two Much-Anticipated Houston Restaurants Still Plan to Open Soon
The owners of long-awaited Musaafer and Kin Dee Thai are working hard toward a May debut
by Amy McCarthy Mar 26, 2020, 9:00am CDT
Share All sharing options for: Despite Major Uncertainty, Two Much-Anticipated Houston Restaurants Still Plan to Open Soon
Even while facing major uncertainty caused by the coronavirus crisis, two much-anticipated restaurants are still planning to make their debuts in the coming weeks.
First up is Musaafer, the long-awaited Galleria-area Indian restaurant that's been in the works for nearly two years. The restaurant's owners are in the "final stages" of completing construction on its 10,000 square foot space, and training is already underway for employees that have already been hired to work in the kitchen and front-of-house, according to a press release. In addition to those employees, Musaafer is also looking to hire about 40 new employees in the coming weeks.
Also preparing to open soon is Kin Dee, a new Thai eatery that will open at the Market at Houston Heights. The restaurant is currently trying to hire staff, though it has suspended in-person interviews in favor of video chats and phone calls in the midst of the coronavirus pandemic. Some employees have already been hired to work at Kin Dee, but they won't be paid until the order closing dining rooms is lifted and training can begin.
Like Musaafer, Kin Dee expects that it will open sometime in May. Stay tuned for more updates in the coming weeks.
The Heights's New Thai Restaurant Will Focus on Regional Dishes [EHOU]
Musaafer Will Bring Obsessively Sourced Indian Cuisine to the Galleria [EHOU]
Long-Awaited Indian Restaurant Musaafer Gears Up for Its Galleria Debut [EHOU]


How Many Sand Dollars Are There On Sanibel?
At Sanibel Sea School, we've always wondered how many sand dollars are buried under our feet on the sand bars. Sometimes you can't seem to wade through the water without stepping through piles of them and other times, you can search for hours and not find a single specimen! One of our longtime students set out to find the answer to this puzzling question. Check out her cool findings!
From the middle of January to the end of February, I studied sand dollar population density off the coast of Sanibel Island, FL. My two big research questions were: on average, how many sand dollars are there per square meter; and, what is their average age, which is believed to correlate with size.
My method for counting sand dollars included using a quadrat, which is a 1 meter by 1 meter square of PVC pipe; a basket wrapped in a pool noodle; a ruler; and a small waterproof notebook. I would walk out to the sand bar in a specified area on Colony Beach between 2 designated boardwalks. I would then close my eyes and throw the quadrat. Once it landed in the water, I would walk over to it, hold it on the ground with one foot, and twist my other foot all around inside of the quadrat. If I found a sand dollar I would put in the basket. Once I had churned up all the sand in the square I would pick the quadrat up and throw it again. This procedure would be repeated 20 times. After I had collected all the sand dollars, I would mark how many I found, measure them, record all of the numbers in my book, then, throw them back in the water.
I found a total of 93 sand dollars, and most of them were between 84 and 98 mm in diameter. The smallest sand dollar was 71 mm. The largest I found was 110 mm. The average size was around 86 mm. I believe that the sand dollars in the area are almost at their maximum size.
Here is the frequency histogram that shows the size distribution of the sand dollars sampled. You can see that the average size was around 86 mm.
I didn't answer my population density question because I realized I was using a faulty method. For example, if you wanted to measure the population density of red ants in your backyard, you could throw a quadrat randomly 100 times and end up not landing on either of the 2 highly populated ants nests that exist on the property. If this happened, you may find very few or no ants at all. Your data would seem to reflect that there is a very low or no population density. But that would be incorrect. There are ants, just not evenly distributed. I suspect the same thing happened with me and my sand dollars.
This frequency histogram shows the size distribution of sand dollars using size intervals. This shows that I did not find any sand dollars that were under 69 mm or over 110 mm - possibly indicating that most of the sand dollars were around the same age.
I learned a lot about research trial and error. Sometimes things don't always work the first time in science and you have to try different methods and procedures to accurately collect the data you are looking for.
I also learned about some of the obstacles that scientists have to work past, like bad weather and high tides. One time this year, we had a big storm and we suspect all the sand dollars got buried under a ton of sand. It was really difficult to sample so we had to postpone the project for a week.
Sampling sand dollars during high tide is easier said than done!
In addition, I learned how data could easily be influenced by a scientist's bias. For example, I was aware there were a lot of sand dollars in one area and I could have collected more data by always throwing there, but I tried to throw randomly throughout the entire area to give a true sampling. If for some reason my motivation was to show a high or low population density I may subconsciously tend to throw in one direction or another.
Although I did not find the population density, I am happy I was able to set a baseline for further study of the sand dollar life cycles in this area. I believe that the sand dollars in the area are almost at their maximum size. Scientists will be able to use my data to compare with size data from other months and hopefully learn more about the life cycle and size/age correlation of the sand dollar around Sanibel Island.


text:
China's Cyber Command?
Publication: China Brief Volume: 10 Issue: 15
By: Russell Hsiao
Unveiling China's Cyber Command?
The development of China's cyber warfare program has captured worldwide attention in recent years. While evolving doctrines and incidents of cyber intrusions with alleged links to the Chinese government have helped China watchers glean the development of China's growing cyber warfare capabilities, far less certainty surrounds the command and control side of this enigmatic operation. This is partly because key tasks of China's computer network operations and information warfare had been, until recently, decentralized in different departments in the People's Liberation Army (PLA) General Staff Headquarters (i.e. the Third and Fourth Departments) and specialized bureaus located in the different military regions.
On July 19, the Peoples Liberation Army Daily (hereafter PLA Daily) reported that the PLA General Staff Department—the operational nerve center of the Chinese military supervised directly by the PLA's Central Military Commission—held a ceremony to unveil what the Chinese-media called the country's first "cyber base" (Global Times, July 22). The establishment of the "Information Security Base" (xinxi baozhang jidi), which is headquartered under the PLA General Staff Department, may serve as the PLA's cyber command. The "base" is reportedly tasked with the mission to address potential cyber threats and to safeguard China's national security. According to Chinese-media reports, the establishment of the cyber base was a strategic move ordered by President Hu Jintao to handle cyber threats as China enters the information age, and to strengthen the nation's cyber-infrastructure (PLA Daily, July 20; China Times, July 20; Global Times, July 22).
According to a report in the Global Times, an offshoot of the party's mouthpiece People's Daily, an anonymous officer in the General Staff Department said that, "The setup of the base just means that our army is strengthening its capacity and is developing potential military officers to tackle information-based warfare." Other tasks will include online information collection and the safeguarding of confidential military information by "build[ing] up walls." The officer emphasized that, "It is a 'defensive' base for information security, not an offensive headquarters for cyber war" (Global Times, July 22).
The stated missions of the new cyber base appear to complement the PLA's information warfare (IW) units, which the PLA has been developing since at least 2003. The PLA's IW strategy was largely spearheaded by Major General Dai Qingmin, then-director of the PLA's electronic warfare department (Fourth Department), who advocated a comprehensive information warfare effort (Wall Street Journal, November 1, 2009).
The high echelon of military officers from the General Staff Department represented at the unveiling ceremony seem to also reflect the importance that the leadership attaches to this newly minted program. Indeed, the launch ceremony, which was held in Beijing, was chaired by PLA Chief of General Staff General Chen Bingde and attended by other top brass of the PLA General Staff Department. The entourage included four deputy chief of staffs: General Zhang Qinsheng, General Ma Xiaotian, Vice-Admiral Sun Jianguo, General Hou Shusen; and the two assistant chief of staffs: Major General Qi Jianguo, Major-General Chen Yong; as well as leaders from the other three General Departments—General Political Department, General Logistics Department and General Armament Department (PLA Daily, July 20).
One attendee worth pointing out is Deputy Chief of Staff General Zhang Qinsheng (1948 – ), who is a member of the 17th CCP Central Committee and currently the commander of the Guangzhou Military Region. General Zhang previously served as director of the military training department of the Beijing Military Region, and deputy director of the military training department of the General Staff Headquarters. While at the National Defense University, he served as director of the Campaign Teaching and Research Office, dean of studies, and director of the operations department of the General Staff Department. During his career, Zhang has built a reputation as being an expert on "informationized warfare" and conducted research on network command systems. In December 2004, then-Major General Zhang was elevated to chief of staff assistant of General Staff Department, and was promoted to vice chief of staff in December 2006. In 2007, he was appointed commander of Guangzhou Military Region. Zhang was recently elevated to the rank of general by President Hu in mid-July 2010 (Xinhua News Agency, July 20).
It is important, however, to note that the line between offensive and defensive capabilities in computer network operations is murky at best. Even Chinese experts acknowledge this gray area. In reference to the establishment of the U.S. cyber command, Professor Meng Xiangqing from the PLA's National Defense University Institute for Strategic Studies stated:
"It is really hard to distinguish attacks and defenses in Internet war. In traditional wars, there was a definite boundary between attacks and defenses. However, in the war of internet, it was hard to define whether your action was an attack or a defense. If you claim to fight against hacker attack, it is hard to say that you are just defending yourself." Meng added, "To fight against a hacker attack, you might attack other Internet nodes, which leads to the Internet paralysis in other countries and regions. Moreover, the Internet is a virtual world. It is hard to say that acquiring information from other countries is a defense" (People's Daily Online, May 25).
At the very least, the establishment of the cyber base highlights the rise of China's cyber warfare program. Moreover, the promotion of experts in informationized warfare to positions of prominence in China's military ranks, namely General Zhang, who took over as deputy chief of staff with the portfolio for intelligence after General Xiong Guangkai retired, may signal the increasing influence of the cyber dimensions in Chinese decision-making on military strategy.
Furthermore, the establishment of a cyber base within China's military complex shed light on the direction of China's military modernization. More specifically, the establishment of the base indicates that the PLA's commitment to cyber security is increasing and its role as a major cyber power will only continue to grow in the foreseeable future. With the emergence of a centralized, coordinated effort to strengthen its cyber networks, the presence of a command center in top decision-making bureaucracies focused on cyber security lends credence to the concerted push undertaken by the Chinese leadership to develop its cyber capabilities.
cb_010_74.pdf
Afghanistan in China's Emerging Eurasi..Next
The Chinese Navy's Emerging Support Ne..


text:
Giulio Campi (Cremona, 1508 - Cremona, 5 de març de 1573), pintor i arquitecte italià del Renaixement tardà, adscrit a l'estil manierista.

Biografia
Fill del també pintor Galeazzo Campi, probablement es va formar en el taller patern. On va adquirir un estil una mica arcaic, de tipus quatrocentista, que es va encarregar de desenvolupar durant els següents anys. Va mantenir una llarga rivalitat amb Camillo Boccaccino per la supremacia en la pintura cremonesa. Malgrat això, l'estil més avançat de Camillo el va influir en bona part.

Les seves primeres obres (Mare de Déu amb l'Infant, Sant Nazari i Sant Cels, 1527), són peces tristes i conservadores, d'escassa gamma cromàtica. Posteriorment es va posar al dia de les últimes creacions dels artistes emilians, de l'obra de Parmigianino i Rafael. Campi va adir-se aquestes innovacions en un estil eclèctic, encara que sense veritable força creadora. Els seus frescs en Santa Agata (1537) són una barreja de les obres de Il Pordenone i Romanino, que demostren el seu coneixement de l'actualitat pictòrica del seu segle, encara que no el seu talent.

Solament als frescs de la volta de Sant Segismondo (1557-1559) amb la Pentecosta es va demostrar Campi com un creador efectiu. Les figures estan fetes a partir d'atrevits escorços i assoleixen una gran brillantor. Tanmateix, es va influir de fonts perfectament conegudes: els Apòstols de Correggio al Duomo de Parma i les Noces de Psiqué de Giulio Romano al Palazzo del Te. Probablement els frescs executats per Camillo Boccaccino a la mateixa església li van servir per superar-se a ell mateix. Així com el viatge de Campi a Roma a la dècada de 1550, on va poder conèixer les últimes obres executades allà per altres mestres.

Giulio va continuar treballant dins dels paràmetres del manierisme a la seva última època, però ja sense cap vestigi d'originalitat, reduint el seu art a l'aplicació d'una sèrie de fórmules apreses i executades gairebé mecànicament. A la seva mort, el taller familiar va continuar funcionant sota la direcció dels seus germans petits, Antonio i Vincenzo. Un dels seus deixebles va ser Antonio Maria Viani.

Obres destacades
 Mare de Déu amb l'Infant, Sant Nazari i Sant Cels (1527, San Abbondio, Cremona)
 Nativitat amb sants (1530, Pinacoteca de Brera, Milà)
 Tocador de mandolina (1530, Uffizi, Florència)
 Mare de Déu amb Sant Francesc, Santa Caterina d'Alexandria i el Marquès Stampa com a donant (1530, Pinacoteca de Brera, Milà)
 Frescs de Santa Maria delle Grazie (1530, Soncino)
 Retrat de cavaller amb cenyidor vermell (1530, Royal Collection)
 Retrat d'ancià (Cleveland Museum of Art)
 Retrat d'home (Museu de l'Hermitage, Sant Petersburg)
 Presentació en el Temple (Museu Diocesà, Milà)
 Joc d'escacs (1530, Museu Civico d'Arte Antica, Torí)
 Al·legoria de la Vanitat (1530-40, Museu Poldi Pezzoli, Milà)
 Retrat de Galeazzo Campi, pare de l'artista (1535, Uffizi, Florència)
 Frescs de Santa Agata (1537, Cremona)
 Escenes de la Vida de Santa Agüeda
 Judici de Salomó (Palau Ducal de Màntua, Màntua)
 Frescs dels creuers de Sant Sigismondo (1539-42, Cremona)
 Doctors de l'Església
 Frescs de Santa Margherita (1547, Cremona)
 Jesús i els doctors del Temple
 Entrada de Crist a Jerusalem
 Crucifixió
 Escenes de la Vida de la Msre de Déu
 Escenes de la Vida de Crist
 Retrat d'Ottavio Farnese (1551, Museu Civico, Piacenza)
 Sant Carlos Borromeo institueix els cursos de la doctrina cristiana (San Francisco da Paola, Milà), realitzat al costat del seu germà Antonio Campi.
 Frescs de la volta de Sant Sigismondo (1557-59, Cremona)
 Pentecosta
 Crucifixió (1560, Santa Maria della Passione, Milà)
 Sants Felip i Jaume (1565, San Sigismondo, Cremona)
 Sant Llorenç (1565, Catedral d'Alba)
 Frescs del presbiteri de Santa Maria de Campagna (1573, Piacenza), inconclusos a la seva mort.
 Frescs de Sant Abbondio (1573, Cremona), inconclusos a la seva mort.

Bibliografia
 Sydney Joseph Freedberg (1978). Pintura en Italia, 1500-1600. Editorial Cátedra, Madrid. , p. 379-380.
 The Grove Dictionary of Art, MacMillan Publishers (2000) .

Enllaços externs

 Giulio Campi en Artcyclopedia

Arquitectes italians del Renaixement
Pintors italians del Renaixement
Artistes cremonesos
Morts a la Llombardia
Pintors llombards

redpajama_set_name: RedPajamaWikipedia


When doing wget -c http://example.com/foo to periodically update a file, is there any way to get an error status from wget if the file has not been updated since last download?
Wget calls this feature "time-stamping". It's documented at https://www.gnu.org/software/wget/manual/wget.html#Time_002dStamping. To use it, just add -N or --timestamping to your command line: wget --timestamping -c http://example.com/foo.
How to use diff while doing wget?
How do I securely download files in shell scripting?


text:
Home People Amanda Ng Vying For Miss Jr. Pre-Teen Title
Amanda Ng Vying For Miss Jr. Pre-Teen Title
Amanda Ng of Royal Palm Beach was recently selected to participate in the 2012 Miss Jr. Pre-Teen West Palm Beach/Fort Lauderdale pageant competition that will take place Saturday, Oct. 27.
Ng learned of her acceptance into this year's competition when the pageant announced its selections after interviewing in the West Palm Beach/Fort Lauderdale area. Ng submitted an application and took part in an interview session that was conducted by this year's West Palm Beach/Fort Lauderdale pageant coordinator.
Ng will be vying for her share of thousands of dollars in prizes and specialty gifts that will be distributed to contestants. She will compete in the Miss Jr. Pre-Teen division, one of four divisions that will feature young ladies from 7-19 competing in modeling routines, including casual wear and formal wear.
Most important, Ng will display her personality and interviewing skills while interviewing with this year's West Palm Beach/Fort Lauderdale judging panel. Personality is the No. 1 aspect that each contestant is judged by during all phases of competition.
If Ng were to win the title of Miss Jr. Pre-Teen West Palm Beach/Fort Lauderdale, she would represent the region at the national competition that will take place in Orlando.
More than $30,000 in prizes and awards will be presented at the national competition, while each winner enjoys on expense-paid trip of five nights and six days in Orlando.
Community businesses, organizations and private individuals will assist Ng in participating in this year's competition by becoming an official sponsor to her. Through sponsorship, each contestant receives all the necessary training, rehearsals and financial support which will allow Ng to become a very confident and well-prepared contestant in this year's pageant.
Ng is being sponsored by Sherron Permashwar of BMP Accounting. Any business, organization, or private individual who may be interested in becoming a sponsor to Ng may contact the Miss Jr. Pre-Teen West Palm Beach/Fort Lauderdale pageant coordinator at (877) 403-6678.
Above: Amanda Ng
Previous articleYWCA Names Chairs For Harmony House Lunch Dec. 4
Next articleWilliams Defensive Player Of Week At Nichols
Crystal Pena Turns From Horse Riding To Mountain Biking
Young At Heart Welcomes New Year With Luncheon


text:
Critical Analysis Of Joe Keohane's How Facts Backfire?
Humanity is in a perpetual state of trying to make living in the world an easier place. In just a few seconds, people can access information at their disposal, instead of having to look through different books to find what you need. But the question arises; does this boundless place for information honestly make us more informed than before we had the internet? Joe Keohane, the author of the article "How Facts Backfire," is a political journalist who has also written articles on technology and culture. He decided to write this article during the midterm election to help educate voters that they need to be better informed about a topic before they make a decision. Nicholas Carr, the author of "Is Google Making Us Stupid," is an American writer who has been nominated for a Pulitzer Prize in General Nonfiction. He writes to inform the general public about the negative effects that the internet…show more content…
The author states that the one of the many flaws in a democracy is the fact that people have the right to vote without having knowledge on the subject. He understands that people make decisions based off their morals, not on the knowledge they have on a subject. Keohane adds that as a self-defense mechanism people, when they are faced with a mental conflict that occurs where their beliefs or assumptions are contradicted by new information; this is called cognitive dissonance. He goes on to explain the theory of motivated reasoning, which is where people have two facts presented to them where one fact contradicts their principals, and they end up choosing the fact that is closest to their ideals. According to Keohane people with higher self-esteem are more likely to acknowledge new information than people with insecurities. The author explains at the end of the article that there is no solution to the process of being
Michael Moore Idiot Men Summary
He aims at politicians and other leaders to make the audience aware of all the corruptness in office. Using logos, such as statistical evidence and facts, to substantiate his arguments, Moore engages his readers in his story. Moore 's strong emotions on the subject of the failing American school system are well expressed in this selection and are used to make the nation 's residents aware of the level of stupidity America has reached. Moore begins this essay by presenting a question to arouse the interest of his audience. He wants to raise awareness of the little things that impact the American lifestyle so much, such as sports and celebrities.
Analysis Of Al Gore's The Assault On Reason
To reveal his position and to prove the growing impact of the official position and media on the perception of crucial problems by Americans, Gore researches and criticizes of George W. Bush and his administration in reference to the United States of America post-9/11 policies. to place it more accurately, he argues that the Bush administration skillfully used the shock that affected the country once the fear attacks, so as to attain its own goals, as well as the war in Iraq and Afghanistan. The author stands on the bottom that the
George Orwell's Internet Surveillance To Information Manipulation
In Orwell's novel, the character Winston struggles with a moral dilemma as he works his government job changing historical documents, and changing the past. In today's world where "fake news" runs rampant and every tweet from the the President of the United States needs to be fact-checked, manipulation of the past seems eerily familiar. In the words of Winston, "when memory failed and written records were falsified...the claim of the [government] to have improved the conditions of human life had...to be accepted" (Orwell 93). With the claim that internet surveillance will improve society, whether through prevention of terrorism or hate speech, who is to say that this is not just an Orwellian manipulation of information to create the illusion of good? In reality, by monitoring the activities of people online, companies such as Facebook, Google, and Twitter are able to find what makes their sites addicting, and then correlate those factors with advertisements, and news releases.
Rhetorical Analysis In Backpacks Vs. Briefcases
For example, when we write an essay, we need to show how the text convinces us of its position. As a citizen, it is important to use rhetorical analysis in our daily life. It is a great tool to sort out questions about politics and relationship. For example, during the election period, we should use rhetorical analysis to analyze the candidate's message to critical thinking skill to determine whether or not their words are true. From my experiences, one of the example that I use rhetorical analysis is that I grabbed my box of Cheerios and noticed something I never picked up on before.
Sex Drugs And Cocoa Puffs Summary
He collectively wrote his opinions about his media icons, such as Pam Anderson or Saved By the Bell, to inform his audiences about the impact that modern day media is having on the population. His personal experiences created passion to write about the stunt growth of Generation X due to his resentment of the unoriginality of media. Audience- His audience is directed at the people within the generation that he specifically talks about repetitively throughout the novel. He informs the audience of a second-perspective look on how each generation reacts or acts when presented a circumstance of facing the reality of outcomes concerning modern day media. Purpose- The purpose of this novel is to discuss the type of environment we live in due to the media, which humorously discusses the beauty in human trial and error, underdogs, relationships, the unusual, life experiences, and thought.
Arrow's Contribution: Social Choice Theory And Social Choice Theory
Arrow's result has consequences for the field of social choice theory, especially for the notion of democracy. Arrow's Impossibility Theorem proves that democratic collective decision-making processes cannot be both fair and rational. This proof applies to virtually any form of collective democratic decision making. According to Arrows result, democracy, in principle, cannot exist. Political theorists, legal theorists, economists, and others have found in Arrow's Theorem a range of other equally disturbing and profound implications for democratic theory and practice.
Importance Of Creativity And Innovation
To continue being an innovative company, Flipboard has got to continue providing the consumers with something that will set itself apart from its competitors. With the rising number of e-magazines and online sites for viewing of media content and articles, Flipboard's product innovation will no longer help them grow so fast. Flipboard seemingly expected this change to happen and are aiming to improve its user experience. Not only would it link all media content onto one platform and allow users to curate and customize the content that they want to see, they are introducing ads onto
The Impact Of Modern Technology
The media is always quick to be blamed by the politicians when news do not put them in a favourable light. Therefore, with the advance of technology, politicians use media to win elections by getting the exposure they need to reach voters. Reporters have no choice but to cover the people chosen to lead the government. These days, people trust media easily and this makes politicians spread news that is related to the government easier, either facts or rumours. People who work in media should be prepared for the manipulation they will likely face when a politician is head-on into the media's desire to seek the truth.
Importance Of Agenda Setting In Media
(2004) pointes out the importance of reading the "Public Opinion Quarterly" piece by MCcombs and Shaw, "The Agenda Setting Function of Mass Media" about their experimental examination of a U.S. presidential campaign which reported how voters in Chapel Hill in North Carolina used media in these elections. Coleman (2004) The book underlines that agenda setting theory is not a result of a "diabolical plan" by journalists to shape the public opinion in a certain way, but "an inadvertent by-product of the necessity to focus" the news. Bernard Cohen expanded theory later when he said that the press is not only provides information and opinion to the audience, but that the press is very successful in telling people what to think about more than in telling them what to think. Cohen's findings became the basic for what is now called the Agenda Setting of mass media (Muin
Strengths Of Comparative Politics
Weakness: They draw attention to the importance of institutions but they do not suggest as the only (proof that one thing definitely causes another) force in politics; other factors play a role such as (how money affects people 's lives) development and diffusion of ideas. Some of the weaknesses of this approach is that it does not incorporate some parts of individual decision making to its analysis. Some of the strengths of this approach include its focus on the effect of political struggle on institutional results and how institutional results then affect political struggles. This approach should be more useful to the analysis of institutional development and policy making clear and sensible choice assume that people have a fixed set of preferences and they behave in manner that (makes as big as possible) the accomplishment of these preferences. One of the(like nothing else in the world) ideas (you think are true) of clear and sensible choice see politics as a series of total (of everything or everyone) action problems.
More about Critical Analysis Of Joe Keohane's How Facts Backfire?


When we first introduced this section into our motherboard roundups we focused almost exclusively on performance. We did some rudimentary verifications of audio output quality but there was nothing serious at all. Armed with RightMark's Audio Analyzer we were able to perform some more objective tests on the audio output quality of these on-board audio codecs.
The way Audio Analyzer works is simple; you run a cable from the output of the sound device being measured and run it into the input of either the same device or a separate sound card. Sounds are then played from the device being tested and recorded at the same time; the signals are then compared and analyzed with their differences being summed up through a number of performance scores. The test obviously depends on the recording equipment just as much as the playback device so in order to keep things on a level playing field all of our recording was done using a SB Audigy; it's not the highest end card in the world but it provides a good reference point.
The only boards to be omitted from this test were the ABIT KX7-333 (because it has no on-board audio), the DFI AD76 RAID (because audio wasn't working properly in the preproduction BIOS) and the Soyo KT333 Dragon Ultra (because the board would not POST with our Audigy installed).
Frequency Response - audio occurs at various frequencies (the human ear can perceive frequencies from 20Hz up to 20kHz), the frequency response of the audio device determines what frequencies can be accurately reproduced and what frequencies will be lost or reduced in volume. Generally the higher and lower frequencies are the ones that suffer the most, so an above average frequency response curve would be relatively flat from start to finish.
Dynamic Range - this gives you an idea of how well weak signals will be reproduced.
"THD (total harmonic distortion) is a level of (usually unwanted) harmonics generated in the sound device. Usually high quality devices have a low THD value (lower than 0.002%), but there are exceptions. Many tube devices have rather high THD level, which makes their sound "warm". But transistor devices must have low THD, because their (odd) harmonics don't make the sound pleasant. "
The Noise level and Stereo crosstalk ratings should be fairly self explanatory.
What's interesting to note here is that implementation as well as the specific codec itself greatly control the quality of the output. For example, the ABIT AT7 and the EPoX 8K3A+ use the same ALC650 codec yet they have dramatically different output characteristics.
It's interesting to note that the motherboard with the best output quality was the ECS K7VTA3 that used the older ALC201A codec. Obviously we don't have enough information to judge whether this superiority is caused by the codec or by ECS' engineering team, but it's an interesting observation nonetheless.


text:
Students Reclaim Mental Health
June 2, 2015 Phuc Pham
Jack Yu | Staff Photographer
The first of its kind, the Reclaim Mental Health Conference was hosted last Saturday by ASUCI.
The brainchild of Caroline Nguyen and Parshan Khosravi, next year's ASUCI president, the conference was conceived out of the need to combat the stigma associated with mental illness. The event was co-sponsored by the Counseling Center as well as several state and national mental health organizations.
"One of the biggest agents that fuels stigma is lack of discussion and proper education and discussion about mental illness," said Nguyen. "A conference — bringing hundreds of students, staff, and community members together — was the most anti-stigma event I could think of."
According to Nguyen, over 80 percent of the 300 attendees were UCI students. The rest were community members and students from other UCs, California State Universities and community colleges. While most of the workshops were hosted by UCI students, community members and college students outside of UCI led workshops as well.
"The ultimate goal is to reform the way mental health services is delivered and increase funding, but in the meantime, I just wanted to give students a safe space to learn and relate to one another," Nguyen said.
Workshops addressed several political and social issues through the lens of mental health in addition to workshops on specific mental illnesses and coping mechanisms. One of the first workshops of the day was focused on mental health in the media by examining coverage of the #BlackLivesMatter movement. UCI Counseling Center Post-Doctoral Fellow Dr. Milo Dodson facilitated the workshop by using examples of racialized content in media and how it can manipulate narratives of the Black experience. Dodson went on to connect this to the mistrust that exists between people of color, especially Black people, and mental health professionals. The workshop then engaged the audience in a discussion about the lack of access and recruitment for mental health professionals in communities of color.
Other noteable workshops included discussions on eating disorders, the effect of transphobia on mental health, how to treat depression through physical activity, and how being an undocumented student affects mental wellness.
The conference also hosted keynote speakers for opening and closing ceremonies as well as lunch time. One of the speakers was UCI professor of history Dr. Bob Moeller. Moller is the faculty co-chair for a campuswide committee on mental health and has been advocating for destigmatization and mental health resources at the UC system for years. During the conference, he shared about his experience with battling depression and coping with suicide loss. He also discussed the work that the campus mental health committee does on campus which is a unique task force in the UC system.
For Nguyen, the most impactful aspect of the conference was the student panels, during which different groups of students dealing with mental health issues shared their experiences with small audiences.
"I think hearing directly from students who have struggled with mental illness gave the audience the security and comfort to share as well," Nguyen said.
Event organizer Parshan Khosravi, whose ASUCI presidential platform stressed expanding mental health resources for students, said that he hopes next year's conference will span over two days.
The conference's brochure included a statement from the International Association of Counseling Services, Inc. regarding the optimum ratio of counseling professionals to students on a university campus, which is set at 1 staff member per 1,000 to 1,500 students.
Currently, the Counseling Center has approximately 20 doctors. Meanwhile, UCI's total student population is almost 30,000. The lack of sufficient mental health resources on campus became a recurring topic throughout the conference. The need for more institutional support echoed throughout workshops, panel discussions and keynote speeches
"We have the momentum to begin the advocacy for the expanded resources," Khosravi said.
"I hope that in year from now, when we do the conference, I get to say that the ratio of the counselor to students meets the recommended ratio by the national statistics," Khosravi said.


Title Page: The title page should include the name of all authors, a concise and informative title, the affiliation and addresses of all authors, and the e-mail address, telephone and fax numbers of the corresponding author. During online submission you will be required to enter the email addresses of all other authors, too.
Abstract: An abstract of 150 to 300 words summarizing the work presented must be provided. The abstract should not contain any undefined abbreviations or unspecified references.
Keywords: Please provide up to 6 keywords which can be used for indexing purposes.
Text Formatting: If possible, manuscripts should be submitted in Microsoft Word. A normal, plain font (e.g., 12-point Times Roman) should be used for the text, and bold font for emphasis. Use the automatic page numbering function to number the pages, and omit the use of field functions. Use tab stops or other commands for indents, and not the space bar. Use the table function, not spreadsheets, to create tables. Use the equation editor or MathType for equations. Save your file in doc/docx format (Word 2010 or higher).
Headings: Please use no more than three levels of displayed headings.
Abbreviations: Abbreviations should be defined at first mention and used consistently thereafter.
Acknowledgments: Acknowledgments of people, grants, funds, etc. should be placed in a separate section directly before the reference list. The names of funding organizations should be written in full.
Reference List: The list of references should only include works that are cited in the text that have been published or accepted for publication. Personal communications and unpublished works should only be mentioned in the text. Do not use footnotes or endnotes as a substitute for a reference list. Reference list entries should be alphabetized according to the last name of the first author of each work.
Example: Recently, several single nucleotide polymorphisms have also been identified that are associated with urinary bladder cancer risk, all of which have been confirmed in independent follow-up studies (Kiemeney et al., 2008; Hein, 2002; Hein and Doll, 2012a, b). As Selinski and colleagues (2012) summarized, in total 13 novel SNPs have been identified.
Hein DW. Molecular genetics and function of NAT1 and NAT2: role in aromatic amine metabolism and carcinogenesis. Mutat Res. 2002;506-507:65-77.
Hein DW, Doll MA. A four-SNP NAT2 genotyping panel recommended to infer human acetylator phenotype. Pharmacogenomics. 2012a;13:855.
Hein DW, Doll MA. Accuracy of various human NAT2 SNP genotyping panels to infer rapid, intermediate and slow acetylator phenotypes. Pharmacogenomics. 2012b;13:31-41.
Kiemeney LA, Thorlacius S, Sulem P, Geller F, Aben KK, Stacey SN, et al. Sequence variant on 8q24 confers susceptibility to urinary bladder cancer. Nat Genet. 2008;40:1307-12.
Selinski S, Lehmann ML, Blaszkewicz M, Ovsiannikov D, Moormann O, Guballa C. Rs11892031[A] on chromosome 2q37 in an intronic region of the UGT1A locus is associated with urinary bladder cancer risk. Arch Toxicol. 2012;86:1369-78.
Hainfeld JF, Safer D, Wall JS, Simon M, Lin B, Powell RD. Methylamine vanadate (NanoVan) negative stain. In: Proceedings of the 52nd Annual Meeting, Microscopy Society of America (pp 132-2). San Francisco, CA: San Francisco Press, 1994.
Jaschinski W, Koenig M. Better seeing and working at the computer. The consultation tool. http://ergonomic-vision.ifado.de/en. Accessed 22 March 2018.
Trent JW. Experimental acute renal failure. Berkeley, CA: University of California, Thesis, 1975.
Tables and Figures: All illustrations are to be numbered using Arabic numerals. They should always be cited within the text in consecutive numerical order. Each illustration should be self-explanatory, including a caption (title) explaining all components. Individual graphs or images making up a larger figure/illustration should be denoted by lowercase letters (a, b, c, etc.).
Previously Published Material must be identified by giving the original source in the form of a reference at the end of the caption. Footnotes to tables and figures should be indicated by superscript lower-case letters (or asterisks for significance values and other statistical data) and included beneath the table or figure body.
Illustrations Guidelines: For the best quality final product, it is highly recommended that all figures, photographs, etc. are submitted in an electronic format, preferably jpg/jpeg or png. MS Office files are also acceptable. Illustrations will then be published to the highest standards with the greatest accuracy to detail. The published work will directly reflect the quality of the illustrations provided.
Electronic Figure Submission: Figures must be submitted electronically and named with "Figure" and the figure number, e.g., Figure1.jpg. Figures in online appendices (Electronic Supplementary Material) should, however, be numbered separately.
Lettering: To add lettering, it is best to use Arial. Keep lettering size consistent throughout the final-sized artwork, usually about 10 pt. Do not include titles or captions within illustrations.
Illustrations Placement and Size: Illustrations, size figures or tables must be made to fit the column width - 75 mm or 160 mm wide (except when using landscape - 250 mm).
Permissions: Authors wishing to include figures, tables, or text passages that have already been published elsewhere are required to obtain permission from the copyright owner(s) for both the print and online format. Confirmation of use must be included at the time of initial submission. Please be aware that some publishers do not grant electronic rights without extensive costs. Any material received without such documentation will be assumed to be "original work" from the authors.
Supplementary Material and/or Data: Supply all supplementary material and data in standard file formats. Please include in each file the following information: article title, journal name, author names; affiliation and e-mail address of the corresponding author. To accommodate user downloads, authors should consider that larger-sized files may require very long download times and that some users may experience problems during downloading.
Accessibility: All illustrations, tables or figures should include descriptive captions to make the content accessible to readers of all abilities (visually impaired users could then use text-to-speech software or text-to-Braille hardware).
Collecting Multiple Files: It is possible to combine multiple files in a .zip or .gz file.
Raw Data: Excli Journal is interested in publishing the raw data of clinical as well as experimental studies. For this purpose an extensive supplemental table with all raw data should be provided. If patients' are involved also clinical data should be included. Patients' data must be shown in an anonymized way. The table should include legends explaining the data and all abbreviations so that it is self-explanatory.


text:
/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef TRANSPORTPOOL_H
#define TRANSPORTPOOL_H

#include <arpa/inet.h>

#include <algorithm>
#include <map>
#include <memory>
#include <mutex>
#include <random>
#include <set>
#include <sstream>
#include <vector>

#include "InterConnect.h"
#include "logging/Logger.h"
#include "logging/LoggerConfiguration.h"
#include "transport/BaseTransport.h"
#include "transport/CachedTransport.h"
#include "transport/ServerConnection.h"

namespace interconnect {
/**
 * Transport mechanism
 **/
template <typename Tr>
class TransportPool {
 private:
  std::shared_ptr<logging::Logger> logger;

 public:
  TransportPool();

  ~TransportPool();

  /**
   * Frees the cached transport
   * @param cachedTransport is the cached transport mechanism
   **/
  void freeTransport(std::shared_ptr<CachedTransport<Tr>> cachedTransport);

  /**
   * Obtains a transport if one is available and caching is preferred. Otherwise
   * a new one will be created.
   * @param servers servers to connect to
   * @param preferCachedConnection prefer cached connections
   * @returns server to transport mapping.
   **/
  std::pair<std::string, std::shared_ptr<CachedTransport<Tr>>> getTransporter(
      const std::vector<std::shared_ptr<ServerConnection>> *servers,
      const bool preferCachedConnection);

  std::shared_ptr<CachedTransport<Tr>> getTransporter(
      std::shared_ptr<ServerConnection> conn) {
    std::vector<std::shared_ptr<ServerConnection>> servers;
    servers.push_back(conn);
    std::pair<std::string, std::shared_ptr<CachedTransport<Tr>>> cached =
        getTransporter(&servers, true);
    logging::LOG_TRACE(logger) << "Reserving" << cached.second->getCacheKey();
    return cached.second;
  }

  /**
   * Close all cached connections.
   **/
  void closeAll() {
    if (!closed) {
      std::lock_guard<std::recursive_mutex> lock(cacheLock);

      if (!closed) {
        closing = true;
        for (auto ent1 : cache) {
          for (auto sec : ent1.second) {
            sec->close();
          }
        }
      }
      cache.clear();
      closed = true;
    }
  }

 protected:
  volatile bool closed;
  volatile bool closing;
  /**
   * Creates a new transport
   * @param conn server to which we will create a new transport
   * @returns new cached transport
   **/
  std::shared_ptr<CachedTransport<Tr>> createNewTransport(
      std::shared_ptr<ServerConnection> conn);

  std::recursive_mutex cacheLock;

  std::map<std::shared_ptr<ServerConnection>,
           std::vector<std::shared_ptr<CachedTransport<Tr>>>,
           Cmp_ServerConnectionSP>
      cache;
  std::map<std::shared_ptr<ServerConnection>, uint32_t> errorCount;
  std::map<std::shared_ptr<ServerConnection>, uint32_t> errorTime;
  std::set<std::shared_ptr<ServerConnection>> badServers;
};

template <typename Tr>
TransportPool<Tr>::TransportPool()
    : closed(false),
      closing(false),
      logger(logging::LoggerFactory<TransportPool>::getLogger()) {
  // cache = new std::map<std::shared_ptr<ServerConnection>,
  // std::vector<CachedTransport<Tr>*>>();
}

template <typename Tr>
TransportPool<Tr>::~TransportPool() {
  if (!cache.empty())  // cache != NULL)
  {
    closeAll();
    //  delete cache;
    //    cache= NULL;
  }
}

template <typename Tr>
void TransportPool<Tr>::freeTransport(
    std::shared_ptr<CachedTransport<Tr>> cachedTransport) {
  if (nullptr == cachedTransport) {
    return;
  }

  auto cacheKey = cachedTransport->getCacheKey();

  logging::LOG_TRACE(logger) << "Freeing transport " << cacheKey;

  std::vector<std::shared_ptr<CachedTransport<Tr>>> closeList;
  std::lock_guard<std::recursive_mutex> lock(cacheLock);

  if (closing || closed) {
    logging::LOG_TRACE(logger) << "Closed or closing, so returning" << cacheKey;
    cachedTransport->close();
    return;
  }

  auto cachedConnections = cache.at(cacheKey);
  typename std::vector<std::shared_ptr<CachedTransport<Tr>>>::iterator
      cacheIter = cachedConnections.begin();

  timeval time;
  gettimeofday(&time, NULL);
  long millis = (time.tv_sec * 1000) + (time.tv_usec / 1000);
  bool foundCacheKey = false;

  for (; cacheIter != cachedConnections.end(); ++cacheIter) {
    if (std::addressof(*((*cacheIter).get())) ==
        std::addressof(*(cachedTransport.get()))) {
      if (cachedTransport->hasError()) {
        uint32_t errors = 0;

        if (errorCount.find(cacheKey) != errorCount.end()) {
          errors = errorCount.at(cacheKey);
        }

        errors++;

        errorCount[cacheKey] = errors;

        errorTime[cacheKey] = millis;

        if (errors > ERROR_THRESHOLD &&
            badServers.find(cacheKey) == badServers.end()) {
          badServers.insert(cacheKey);
        }

      } else {
      }
      (*cacheIter)->setReturnTime(millis);
      logging::LOG_TRACE(logger) << "Cache Key is not reserved " << cacheKey;
      (*cacheIter)->reserve(false);
      foundCacheKey = true;
      break;
    }
  }

  if (cachedTransport->hasError()) {
    logging::LOG_TRACE(logger) << "Transport has an error " << cacheKey;
    cacheIter = cachedConnections.begin();
    for (; cacheIter != cachedConnections.end();) {
      if (!(*cacheIter)->isReserved()) {
        closeList.push_back(*cacheIter);
        cacheIter = cachedConnections.erase(cacheIter);
      } else {
        ++cacheIter;
      }
    }
  }

  if (!foundCacheKey) {
    logging::LOG_TRACE(logger) << "Closing transport" << cacheKey;
    cachedTransport->close();
  }

  for (auto closer : closeList) {
    closer->close();
  }
}

template <typename Tr>
std::pair<std::string, std::shared_ptr<CachedTransport<Tr>>>
TransportPool<Tr>::getTransporter(
    const std::vector<std::shared_ptr<ServerConnection>> *servers,
    const bool preferCachedConnection) {
  if (preferCachedConnection) {
    std::lock_guard<std::recursive_mutex> lock(cacheLock);

    std::set<std::shared_ptr<ServerConnection>> serverSet(servers->begin(),
                                                          servers->end());

    if (!IsEmpty(&serverSet)) {
      std::vector<std::shared_ptr<ServerConnection>> connections(
          std::begin(serverSet), std::end(serverSet));
      auto engine = std::default_random_engine{};

      std::shuffle(connections.begin(), connections.end(), engine);

      logging::LOG_TRACE(logger) << "Searching for cached connection "
                                 << connections.size() << " " << cache.size();

      for (std::shared_ptr<ServerConnection> conn : connections) {
        std::vector<std::shared_ptr<CachedTransport<Tr>>> cachedConnections =
            cache[conn];
        logging::LOG_TRACE(logger)
            << "Checking " << cachedConnections.size() << " connections";
        for (std::shared_ptr<CachedTransport<Tr>> cacheTransport :
             cachedConnections) {
          if (!cacheTransport->isReserved() && !cacheTransport->hasError() &&
              (*cacheTransport->getCacheKey().get() == *conn.get())) {
            logging::LOG_TRACE(logger)
                << "Returning " << conn->toString() << " via cache key "
                << cacheTransport->getCacheKey();
            cacheTransport->reserve();
            return std::make_pair(conn->toString(), cacheTransport);
          } else {
            if (cacheTransport->isReserved())
              logging::LOG_TRACE(logger)
                  << cacheTransport->getCacheKey()->getHost() << ":"
                  << cacheTransport->getCacheKey()->getPort() << " is reserved";
          }
        }
      }
    }
  }
  logging::LOG_TRACE(logger) << "Continuing to create a new connection";
  std::vector<std::shared_ptr<ServerConnection>> serverPool(*servers);

  short retryCount = 0;

  std::shared_ptr<ServerConnection> conn;
  while (serverPool.size() > 0 && retryCount < 10) {
    logging::LOG_TRACE(logger)
        << "Server pool is " << serverPool.size() << " " << retryCount;
    int index = std::rand() % serverPool.size();
    conn = serverPool.at(index);
    if (preferCachedConnection) {
      std::lock_guard<std::recursive_mutex> lock(cacheLock);

      std::vector<std::shared_ptr<CachedTransport<Tr>>> cachedConnections =
          cache[conn];
      if (!cachedConnections.empty()) {
        for (std::shared_ptr<CachedTransport<Tr>> cacheTransport :
             cachedConnections) {
          if (!cacheTransport->isReserved() && !cacheTransport->hasError() &&
              (*cacheTransport->getCacheKey().get() == *conn.get())) {
            cacheTransport->reserve();
            return std::make_pair(conn->toString(), cacheTransport);
          }
        }
      }
    }

    try {
      std::pair<std::string, std::shared_ptr<CachedTransport<Tr>>> pair =
          std::make_pair(conn->toString(), createNewTransport(conn));

      return pair;
    } catch (std::runtime_error &tfe) {
      serverPool.erase(serverPool.begin() + index);
      retryCount++;
    }
  }

  throw std::runtime_error("Failed to connect to server");
}

template <typename Tr>
std::shared_ptr<CachedTransport<Tr>> TransportPool<Tr>::createNewTransport(
    std::shared_ptr<ServerConnection> conn) {
  std::lock_guard<std::recursive_mutex> lock(cacheLock);

  auto t = std::make_shared<Tr>(conn);

  auto cachedTransport = std::make_shared<CachedTransport<Tr>>(t, conn);

  cachedTransport->reserve();

  logging::LOG_TRACE(logger)
      << "Creating a new connection to " << conn->getHost();

  try {
    auto cachedConnections = cache[conn];

    cachedConnections.push_back(cachedTransport);

    logging::LOG_TRACE(logger)
        << "Found a cache key " << cachedConnections.size();

    cache[conn] = cachedConnections;

  } catch (const std::out_of_range &ex) {
    std::vector<std::shared_ptr<CachedTransport<Tr>>> cachedConnections;

    cachedConnections.push_back(cachedTransport);

    cache.insert(std::make_pair(conn, cachedConnections));
  }

  return cachedTransport;
}

}  // namespace interconnect

#endif

redpajama_set_name: RedPajamaGithub


text:
Абдалла Саррадж (; 1876–1949) — йорданський шейх, голова уряду Зайордання від 1931 до 1933 року.

Джерела