text:
Tellurite Glass and Its Application in Lasers
By Pengfei Wang, Shijie Jia, Xiaosong Lu, Yuxuan Jiang, Jibo Yu, Xin Wang, Shunbin Wang and Elfed Lewis
Submitted: November 13th 2019Reviewed: January 23rd 2020Published: April 8th 2020
Home > Books > Advanced Functional Materials
This chapter provides expert coverage of the physical properties of new noncrystalline solids—tellurite glass and the latest laser applications of the material—offering insights into innovative applications for laser and sensing devices, among others. In particular, there is a focus on specialty optical fibers, supercontinuum generation and laser devices, and luminescence properties for laser applications. This chapter also addresses the fabrication and optical properties and uses of tellurite glasses in optical fibers and optical microcavities, the significance of from near infrared (NIR) to mid-infrared (MIR) emissions and the development of tellurite glass-based microcavity lasers. The important attributes of these tellurite glasses and their applications in lasers were discussed in this chapter.
tellurite glass
supercontinuum sources
specialty fibers
microcavity lasers
Pengfei Wang*
Key Laboratory of In-Fiber Integrated Optics of Ministry of Education, College of Physics and Optoelectronic Engineering, Harbin Engineering University, China
Key Laboratory of Optoelectronic Devices and Systems of Ministry of Education and Guangdong Province, College of Optoelectronic Engineering, Shenzhen University, China
Shijie Jia
Xiaosong Lu
Yuxuan Jiang
Jibo Yu
Shunbin Wang
Elfed Lewis
Department of Electronic and Computer Engineering, Optical Fibre Sensors Research Centre, University of Limerick, Ireland
*Address all correspondence to: pengfei.wang@tudublin.ie
Advanced Functional MaterialsEdited by Nevin Tasaltin
Edited by Nevin Tasaltin, Paul Sunday Nnamchi and Safaa Saud
1. Introduction of tellurite glass
Tellurite glasses are noncrystalline solids with many applications in photonics, appear in a wide range of compositions, and can be operated over a large temperature range [1, 2, 3, 4]. Tellurite glasses have been studied for more than 150 years [5], but more recent versions have been produced with purities exceeding 98.5% [6]. They are characterized by a low melting point and the absence of hygroscopic properties, and hence tellurite glasses have limited the application of phosphate and borate glasses and aroused widespread interest in the field of photonics and associated technologies. Moreover, they have high density and a low transition temperature [7, 8]. Their optical properties include relatively high refractive index, high nonlinear refractive index, high dielectric constant, as well as good chemical stability and a wide infrared (IR) transmission range (1–6 μm) [9, 10, 11].
In 1952, Stanworth [1] conducted preliminary research on the formation and structure of tellurite glass. The main raw material is TeO2 and at that time this was relatively expensive, and hence tellurite glass was considered to be of low practical value and had not been further studied. Since the late 1980s to the mid of 1990s [12, 13], considerable progress had been made in the advancement and understanding of the optical and physical properties of new tellurite glasses, including their molecular structure and bonding properties.
Research in tellurite glass-based broadband fiber amplifiers was initially concentrated around erbium-doped tellurite fibers. This was primarily due to its relatively broadband gain spectrum, which led to it attracting a great deal of research attention which has persisted up to the present. Currently, many world-class university-based research institutions and industrial companies have investigated the potential of tellurite glass for use in fibers, and this has resulted in rapid progress. In this section, the composition, structure, and thermal stability of tellurite glasses will be considered.
1.1 Composition of tellurite glass
The selection of tellurite glass components when used in binary combinations with other materials is very important. It directly affects the glass-forming ability, thermal stability, refractive index, rare earth ion doping concentration, and spectral characteristics. Table 1 lists the range of TeO2 glass formation in several binary tellurite glass systems. Table 1 shows that TeO2 exhibits the largest glass formation range in the case of the three binary systems TeO2-ZnO (100–52 mol%), TeO2-WO3 (94.7–61.3 mol%), and TeO2-TiO2 (100–52 mol%).
Glass formation range
TeO2 mol%
Cs2O 98.0–87.5 ZnO 100–52.5
Rb2O 96.5–73.0 CdO 60.0–48.0
K2O 95.5–77.0 PbO 60.0–48.0
Na2O 91.5–59.5 Bi2O3 66–60
Li2O 87.0–69.5 WO3 94.7–61.3
BaO 93.0–80.0 Nb2O5 100–73.2
TiO2 100–52.5
The formation range of binary system tellurite glass.
The structure of tellurite glass is always generally based on binary systems. The ternary and multivariate tellurite glass systems have been generally used as rare earth-doped substrates for the investigation of the waveguide spectral properties. The diversity of components has helped to improve the chemical and thermal stability of tellurite glass-based devices. Table 2 [14] includes the composition of the tellurite glass systems that have been reported in recent years. In all cases TeO2 was used as the glass-forming material, and its content was generally higher than 50 mol% (as shown in Table 1). Other oxides were generally used as modified bodies. From Table 2 [14], it can be seen that the research objects of the binary system were more diversified. In addition to the common monovalent alkali metal oxides and divalent alkaline earth metal oxides, many other oxide components were involved, including CeO2, SmO2, V2O5, etc. It should be pointed out that in the case of the ternary tellurite glass systems, the TeO2-ZnO-RmOn and TeO2-WO3-RmOn glass systems were the most widely investigated, because these two systems possessed a wide range of glass formation regions and a wide range of adjustable components.
Ternary system
Multicomponent glass system
TeO2-R2O (R = Li, Na, K, Rb, Cs, Ti) [15] TeO2-ZnO-R2O (R = Li, Na, K) [16] TeO2-ZnO-B2O3-K2O [10]
TeO2-MO (M = Zn [17], Ba, Pb) [18] TeO2-ZnO-RO (R = Ba, Mg, Sr) [19] TeO2-ZnO-GeO2-Na2O [20]
TeO2-M3O4 (M = Co) [21] TeO2-WO3-R2O (R = Li, Na, K) [22] TeO2-ZnO-B2O3-GeO2-Na2O [23]
TeO2-M2O3 (M = Sm, La) [21] TeO2-WO3-BaO [15] TeO2-ZnO-Na2O-Bi2O3 [24]
TeO2-CeO2 [21] TeO2-WO3-Bi2O3 [15] TeO2-ZnO-WO3-TiO2-Na2O [25]
TeO2-M2O5 (M = P [21], V [26], Nb [27]) TeO2-WO3-Nb2O5 [28] TeO2-ZnO-Nb2O5-Nb2O3 [29]
TeO2-MO3 (M = W [30], Mo [31]) TeO2-B2O3-M2O3 (M = Al, Ga, Sc, La, Bi) [16] TeO2-Li2O-Nb2O5-K2O [32]
TeO2-PbF2 [33] TeO2-K2O-La2O3 [34] TeO2-ZnO-Nb2O5-Gd2O3 [35]
Tellurite glass systems [14].
1.2 The structure of tellurite glasses
Early research was reported to suggest that the molecular structure of pure tellurite glass molecules comprised TeO4 double triangular bipyramids (tbp's) [36]. In this polyhedron, one Te atom is surrounded by four oxygen atoms, of which two oxygen atoms Oeq are at the equator position and the other two oxygen atoms Oax at the axial position. The Te atoms are linked by Oax or Oeq into Te▬O▬Te; an apex of the tetrahedron on the equatorial plane remains unoccupied by oxygen atoms and is occupied by Te′s lone electron pair [16]. This special polyhedral structure and the chemical bonding were different from the traditional glass-forming bodies (B2O3, SiO2, GeO2, and P2O5), which determined the specificity of the tellurite glass structure.
Some scholars used various testing methods to conduct research and analysis on tellurite glasses, especially binary system tellurite glass. Jha et al. [37] considered that the main structural units of tellurite glass were TeO4 double triangular bipyramids (tbp's) and TeO3 bipyramids (bp's) triangular pyramids. In 1995, Neov et al. [36] were the first to perform neutron diffraction analysis on lithium tellurite glass and pointed out that in addition to the TeO4 structural unit, a deformed double triangular pyramid TeO3+1 existed in the glass network. One of the Te▬O bonds was significantly longer than the other three. Due to the short-range similarity between the glass and crystal structures, the structure of tellurite glasses can be studied and analyzed based on the structure of tellurite crystals with the same composition. Sakida et al. [32] compared the Raman spectra of alkali tellurite crystals, pure tellurite glasses, and alkali tellurite glasses. The resulting Raman spectra were considered to correspond to structural elements in the glass. TeO4 (tbp's) double triangular bipyramids were finally transformed into a TeO3 (bp's) triangular pyramid by TeO3+1. Tatsumisago et al. [38] studied the change of tellurite glass structure with temperature using Raman spectroscopy. Throughout the above research, the general laws could be classified as follows:
It was generally considered that there were two kinds of structural units that form a tellurite glass network. One was TeO4 (tbp's) double triangular pyramid in which the Te atoms were arranged as a four ligand, and the other was TeO3 (bp's) triangular pyramid in which the Te atoms were in a triple coordination. It was considered that there were generally five kinds of structural units in alkali tellurite crystals, as shown in Figure 1(a–e). Qnm can be used to represent the structural unit in Figure 1, where n is the number of bridge oxygen molecules in the [TeO4] group and m represents the number of covalent bonds. Research on the distribution of various structural units (a–e) in tellurite glass has become a significant focus of research in this field.
When an alkali metal oxide or alkaline earth metal oxide was introduced into tellurite glass as a network modifier, the original glass network structure was destroyed. TeO4 (tbp's) double triangular pyramid was finally transformed into TeO3 (bp's) triangular pyramid by TeO3+1. Sekiya [39] investigated the TeO2-MO1/2 binary system and considered that when the alkali metal oxide content was low, the glass was composed of TeO4 (tbp's) double triangular pyramid and TeO3+1 polyhedron. When the alkali content was less than 20 mol%, the number of TeO3+1 polyhedra increased with the increase of the alkali metal oxide content. When the alkali content was between 20 and 30 mol%, TeO3 (bp's) triangular pyramids with non-bridged oxygen bonds appeared in the glass network structure, and the numbers of TeO4 (tbp's) and TeO3+1 decreased accordingly. When the alkali metal oxide content exceeded 30 mol%, the Te2O52− polyhedron was formed in the network structure. When the alkali metal oxide content was greater than 50 mol%, it was considered that the glass network structure at this time was composed of TeO3 (bp's) polyhedrons, TeO3+1 polyhedrons, and independent Te2O52− and TeO32−. At this time, the number of TeO4 in the glass was very small, and the glass structure had become extremely complex.
Temperature also affects the structure of tellurite glass. For example, when the glass temperature was gradually increased and exceeded the melting temperature, the TeO4 (tbp's) double triangular pyramid would also be transformed into a TeO3 (bp's) triangular pyramid. This is mainly due to the fact that Te-Oax is caused by fracture with increasing temperature, and its structural transformation process is shown in Figure 2.
(a–e) Five basic structural units in alkali tellurite crystals. (f) Deformed bitriangular cone TeO3+1.
Transformation of glass structure during heating.
1.3 Thermal properties of tellurite glass
The thermal stability of tellurite glass is primarily dictated by composition and the doping concentration of rare earth ions. The characteristic glass temperature values include glass transition temperature Tg, incipient crystallization temperature Tx, peak crystallization temperature Tc, and glass-melting temperature Tm.
The thermal stability of glass is usually expressed by ΔT, which is the differential value between Tx and Tg. A higher value of ΔT generally means that the glass has good thermal stability. If the value of the Tx is close to Tf, it will lead to crystallization during a fiber drawing process which leads to an increase in the loss (attenuation) of the resulting glass fiber. Table 3 includes a listing of several kinds of tellurite glass with good thermal stability together with their characterized glass temperatures (Tg, Tx, and ΔT). In the case of TeO2-R2O (R = Li, Na, K, or other alkali metal) tellurite glass systems, as the content of the alkali metal oxide increases, Tg gradually increases, while Tx remains almost unchanged. Consequently, the ΔT increases correspondingly, and the resistance against crystallization of the tellurite glass also increases.
Glass component
Tg (°C)
Tx (°C)
Tx − Tg (°C)
85TeO2-15Na2O 277 447 170
70TeO2-10ZnO-20Li2O 265 392 127
70TeO2-20ZnO-10BaO [40] 339 495 156
82.5TeO2–7.5WO3-10Nb2O5 [41] 391 562 171
80TeO2-10WO3-10Nb2O5-1Yb2O3 [42] 404 566 162
60TeO2-20ZnO-7.5B2O3-7.5GeO2-5K2O 200 ± 5 378 ± 2 178
Characteristic temperature of tellurite glasses.
In addition, the introduction of rare earth ions also has an influence on the thermal stability of tellurite glasses. For example, 1 wt% Pr2O3 introduced to a 75TeO2-20ZnO-5Na2O [43] system increases the ΔT value from 118 to 150°C, while 1 wt% Er2O3 introduced to 90TeO2-10P2O5 [44] system decreases the ΔT value from 147 to 101°C. Furthermore, the concentration of the rare earth ion has a significant influences on the ΔT value of the 75TeO2-20ZnO-5Na2O [45] glass system.
2. Fiber lasers and fiber amplifier based on tellurite glass fibers
2.1 Tellurite glass-based fiber lasers
Since the discovery of the first ruby laser (Maiman in 1960), the laser has attracted worldwide attention for its excellent collimation, high brightness, and monochromaticity [46]. Since then, the development of the laser has accelerated. In 1961, Javan et al. developed the helium-neon gas laser [47], and in 1962, Hall et al. created the GaAs coherent light emission [48]. In 1963, Koester et al. first proposed the idea of fiber lasers and amplifiers [49]. However, due to the shortcomings of the optical fiber at that time, the development of the optical fiber laser was slow during this period. In 1966, Gao et al. proposed the basic concept of optical fiber communication [50]. Subsequently, optical fiber communication underwent a major research and development stage (1966–1976), a practical application stage (1976–1986), and a large-scale optical fiber communication infrastructure construction stage after 1986. With the rapid development of optical communication, optical fiber manufacturing technology and semiconductor laser production technology have matured, which formed the foundation for the subsequent development of doped fibers, optical fiber lasers, and fiber amplifiers.
The tellurite fiber laser is based on a tellurite glass fiber which acts as a gain medium. The first significant characterization of the optical properties of tellurite glass in fiber form was reported in 1994 [12]. In 1997, Mori et al. realized that Er3+-doped tellurite glass fiber could be used for broadband optical amplifiers [13]. Further research on tellurite fiber was initiated worldwide driven by the development of the communication industry. Over the next few years, Japan's NTT led the research in this field. They fabricated tellurite fiber with a loss of 0.02 dB/m and developed the first erbium-doped tellurite fiber amplifier (EDTFA) module for use in commercial WDM systems [51]. Further subsequent significant contributions to tellurite fiber laser development have been used by several university groups as well as industry-based research institutions including American Corning corporation, Fujitsu and Nippon of Japan, Korea's ETRI, etc.
Tellurite glass has a broad transmission window in the infrared wavelength range which extends up to 6 μm, a relatively low phonon energy of about 700 cm−1, and high solubility of rare earth ions. It is therefore an excellent host material for constructing single and high repetition frequency fiber lasers. Yao et al. measured the transmission spectrum of 2-mm-thick glass samples after they were immersed in deionized water for 12 days [52], and the results are shown in Figure 3. There was no obvious change in the transmission spectra, and no hydrated layer was formed at the end face of the tellurite glass, which proves its great resistance to water. Several researchers have studied the reduction of water molecules and hydroxyl groups, in order to further improve the performance of tellurite glass materials used in mid-infrared fiber lasers. Specific test procedures included melting the glass in a dry atmosphere, raw material dehydration, and the use of fluoride [52] or chloride raw materials [53], as eliminating hydroxyl groups diminishes loss (at specific wavelengths) and is therefore favorable for the commercialization of tellurite glass fibers.
Transmission spectra of two kinds of tellurite glasses before and after dipping in water [52].
With the above advantages coupled with excellent thermal stability, tellurite glass preforms could be handled with relative ease for casting [24, 53], drilling [54], and extrusion techniques [55], providing precursors for tellurite fiber-based nonlinear optical processing [56] and fiber lasers.
In 1994, Wang et al. successfully prepared a Nd3+-doped tellurite single-mode fiber for the first time. The numerical aperture of the fiber was determined as 0.21. The laser resonator was formed as a consequence of multiple Fresnel reflection (∼11.9%) from the end surfaces of the fiber. A laser with a wavelength of 0.818 μm was used as the pump source. A laser output with a wavelength of 1.061 μm was obtained from a 0.6 m long fiber, with a laser threshold of ∼27 mW. When only single ended output is considered, the slope efficiency of the laser was 23%, as shown in Figure 4 [12].
The relationship between the laser output power and the pump power (R1 = R2 = 11.9%) in Nd3+-doped tellurite fiber. Considering that the laser output power at both ends of the fiber is the same, the total slope efficiency should be 46% [12].
In 1998, Ohishi et al. used a 0.9-m-long Er3+-doped tellurite fiber as the gain medium to construct a ring laser cavity. When the pump power was 300 mW, a continuous tunable laser output covering 1529–1623 nm was obtained using a tunable filter. A 2.4-m-long Er3+-doped tellurite fiber was used as the gain medium to obtain laser output at ∼1624.5 nm, with a slope efficiency of 3.6% as shown in Figure 5 [57].
Laser characteristics of a tellurite-based fiber laser operating in the 1625 nm band. The inset shows the lasing spectrum of the fiber laser [57].
In 2011, Dong et al. demonstrated a high-performance Er3+/Ce3+ co-doped tellurite fiber amplifier and tunable fiber laser using a dual-pumping scheme. The short 22 cm fiber exhibits a net gain of 28 dB at 1558 μm, a wide positive net gain bandwidth of 122 μm, and a noise figure of 4.1 dB. As shown in Figure 6, a widely tunable Er3+/Ce3+ co-doped tellurite fiber ring laser with a tuning range of 83 μm was demonstrated [58].
Output spectra of the E Er3+/Ce3+ co-doped tellurite fiber ring laser [58].
In 2012, M. Oermann et al. fabricated Er3+-doped tellurite microstructured fibers with three air holes using an extruding method. The resulting fibers are shown in cross section in Figure 7. The core diameter of the fiber was about 1.5 μm, the loss was 1.3 dB/m, and the doping concentration of Er3+ was 0.022 mol %. A 2.2-m-long Er3+-doped tellurite microstructure fiber was used as the gain medium to construct the laser cavity and was pumped using a 976 nm laser source. As shown in Figure 8, its threshold power is only 1.5 mW, and its slope efficiency reaches 13% [59].
Photographs of (a) stainless steel die exit used for the extrusion of the structured preform and (b and c) the extruded structured and jacket preforms, respectively. SEM images of the (d) fabricated fiber cross section, (e) enlarged SEM image of the fiber's core and cladding, and (f) beam profile of the laser mode emitted from the output of the fiber [59].
Fiber laser output plotted against the coupled pump power for a fiber length of 2.2 m (circles). The figure inset is a plot of the laser output spectrum for 5 mW of coupled pump power into the 1 m (dashed) and 2.2 m (solid) lengths of fiber [59].
In the same year, Chillcce et al. fabricated an Er3+-doped tellurite microstructured fiber using the stack-and-draw technique. They demonstrated laser emission using a simple double-pump configuration with two sources at 980 μm. The fiber core had a hexagonal structure as shown in Figure 9, the Er2O3 doping concentration was 7500 ppm, and the background loss of the resulting microstructured fiber was 0.2 dB/cm at ∼1117 μm. Two short segments of fiber of 5 and 12 cm generated laser emissions at 1532.3, 1536.3, and 1558.5 μm, as shown in Figure 10. The maximum optical signal-to-noise ratio (OSNR) obtained was 21.2 dB [60].
(a) Preform with the first clad before eliminating the air trapped. The air regions are indicted with a white "a". (b) Preform without the air trapped. (c) Scanning electron microscope image of the microstructure fiber [60].
Laser emission spectra. (a) 5 cm fiber segment. (b) A zoom of the emission region observed in (a). (c) 12 cm fiber segment. (d) A zoom of the emission region observed in (c) [60].
In 2014, Yao et al. fabricated microstructured fibers consisting of a solid core surrounded by six air holes using a rod-in-tube method. A maximum unsaturated power of 9 mW laser operating at ∼1872 μm was obtained in a Tm3+-doped 2.8 cm long microstructure fiber with a slope efficiency of ∼ 6.53% and a threshold power of ∼200 mW. The results shown in Figure 11 indicate that the Tm3+-doped tellurite microstructure fiber is a promising material for achieving a compact 2 μm output fiber laser [61].
Laser spectrum of fiber laser pumped by 1560 μm band fiber laser. The figure inset shows cross section of Tm3+-doped TZNB microstructure fiber [61].
In 2015, Meng et al. used a 22-cm-long Tm3+/Ho3+ co-doped tellurite fiber to obtain a continuous laser output with a maximum output power of 8.34 mW and a wavelength of 2065 nm when the pump power was 507 mW, as shown in Figure 12. The slope efficiency was 2.97% [62].
Spectrum of the fiber laser pumped by 1560 μm band fiber laser [62].
2.2 Tellurite fiber-based supercontinuum light source
The supercontinuum (SC) light source is defined as a broadband laser source whose output spectrum is greatly broadened through the interaction of nonlinear effects and dispersion when a high peak power pulsed laser output (e.g., a soliton pulse) propagates in nonlinear optical medium. The SC spectra generated in transparent materials do not usually originate from a single nonlinear process—typically the initiated self-phase modulation (SPM) modulates the phase of the input laser, and then other nonlinear effects including cross-phase modulation (XPM), stimulated Raman scattering (SRS), four-wave mixing (FWM), soliton self-frequency shifting (SSFS), etc. broaden the output frequency (wavelength) spectrum [63]. The first observation and application of SC spectra were obtained in solids and liquids [64, 65, 66], but recent investigations and applications of SC light sources have utilized optical fibers including single-mode and microstructured fibers [67]. The latter is a widely used medium due to its unique geometry and low transmission loss that can accumulate the power intensity of pump sources and provide adequate interaction length to facilitate the occurrence of the nonlinear processes. In 2005, half the Nobel Prize in Physics were awarded for the development of optical frequency combs that was generated from the SC coherent light source employing microstructured silica fiber. SC light sources based on silica microstructured fiber with outputs spanning from the ultraviolet to the near infrared spectral regions have been widely commercialized by major optics firms, such as American Corning corporation, Fujitsu and Nippon of Japan, Korea's ETRI and so on.
The 2–5-μm-mid-infrared region is the typical wavelength range corresponding to the "atmospheric optics window," the "molecular fingerprint region," and "strong absorption band of hydroxyl and amino groups." Therefore, SC light sources in this region offer great possibilities for optical telecommunication, remote sensing, atmospheric pollution monitoring, molecular spectroscopy, medical diagnosis, hyperspectral imaging, laser surgery, and IR opto-electric countermeasures [63, 68], all of which greatly attracted intense worldwide research interest over the past two decades [69, 70, 71]. There are several requirements of nonlinear fibers used for 2–5 μm SC light sources, e.g., they must be transparent within the 2–5 μm window, they must have a relatively high laser damage threshold for potentially high-power light transmission, they should have a high nonlinear refractive index, and they need to be fabricated based on mature processing technology. Silica is not a candidate material for generating SC spectra at wavelengths longer than 2.2 μm, due to its high intrinsic loss and relatively low nonlinear parameters. Alternatively, soft glass fibers, mainly including fluoride, tellurite, and chalcogenide glass fibers, are being investigated to develop SC light sources in the 2–5 μm spectral region and have achieved remarkable progress to date with their broad IR transparency range as well as prominent optical nonlinearity.
Among the soft glass materials investigated, tellurite glass provides many several attractive features for use in high-power SC light sources. These include a broad IR transmission window (0.3–7 μm) that can be matched with fluoride glass while possessing lower intrinsic losses than chalcogenide glass and possessing the highest optical damage threshold than other soft glass materials. Moreover, with outstanding thermal and chemical stability, tellurite glass can be drawn as microstructured fiber from a preform constructed using the rod-in-tube method or extrusion technique. The dispersion profile and nonlinearity of the fabricated fiber can be readily optimized. In the past two decades, much effort has been concentrated on fabricating a microstructured tellurite fiber for SC generation.
Kumar et al. prepared low-loss tellurite microstructured fiber for the first time using an extrusion and rod-in-tube method, whose minimum loss was 2.3 dB/m at 1055 nm [72]. Photographs of the fiber are shown in Figure 13. In such a microstructured fiber with 1.02 m length, they studied the stimulated Raman scattering generation pumped using a 1064 nm pulsed laser.
(a) The cross section of the die used for extrusion. (b) Electron micrograph of an extruded tellurite preform, with outer diameter 1 mm. (c) Electron micrograph of tellurite PCF. (d) Transmission view of a tellurite PCF as seen in microscope [72].
In 2008, Domachuk et al. generated a SC spectrum with a broad bandwidth covering the spectral range 789–4870 nm in tellurite microstructured fiber pumped using a1550 nm pulsed laser [73]. As shown in Figure 14, the fiber core was surrounded by six large diameter air holes to achieve strong light confinement, and the calculated nonlinear waveguide coefficient at 1550 nm was 596 km−1 W−1, which broadened the SC spectrum spanning two and a half optical octaves in the fiber having only a length 0.8. Such a short fiber length results in flatter SC spectra, lower dispersion, and reduced material absorption at longer wavelengths.
Picture as seen in optical microscopy (a and c) and cross section profile of the tellurite PCF in electron microscopy (b). Scale bar in (b) is 1 μm [73].
In 2008, Feng et al. fabricated a large-mode-area tellurite holey fiber from an extruded preform, with a core diameter of ∼80 μm, attenuation of 2.9 dB/m at 1.55 μm, and zero-dispersion wavelength (ZDW) at 2.15 μm (Figure 15) [74]. Using such microstructured fiber with a 9 cm length, a broadband SC spanning of 0.9–2.5 μm was achieved.
Optical photographs of the cross-sectional views of (a) the extruded tellurite preform and (b) the resulting tellurite holey fiber with 410 μm outer diameter [74].
In 2009, Liao et al. fabricated the hexagonal core fiber (Figure 16) for the first time [75]. They studied the SC generation in such a fiber of 6 cm length pumped by a 1557 nm femtosecond laser and with a 30-cm-long fiber pumped using a 1064 nm picosecond fiber laser. Additionally, they demonstrated that the holey region has an important influence on the dispersion, nonlinear coefficient, and SC generation.
Scanning electron microscope (SEM) images of the fibers [75].
In 2010, a 36-cm-length tellurite microstructured fiber with four holes [76] was used to generate a flattened SC spectrum spanning from 900 to 2800 nm (Figure 17) and was pumped using a 1550 nm pulsed laser. The calculated nonlinear coefficient at 1550 nm was 539 km−1 W−1 [76].
SC spectrum generated from the tellurite fiber when the peak power of the pump laser is fixed at 3.9 kW [76].
In 2012, Savelii et al. prepared a low-loss suspended-core tellurite fiber, from which they generated a 0.75–2.8 μm SC spectrum when pumped at 1745 nm [77]. And in 2015, Belal et al. generated SC spectra extending to 3 μm in a suspended-core tellurite fiber. Their numerical study show that the structure of the fiber can have a significant impact on the dispersion profile and hence the nonlinear processes and SC broadening [78].
In 2013, Klimczak et al. reported a breakthrough in the design of optical fiber transverse structure. They produced a novel, regular hexagonal-lattice tellurite photonic crystal fiber (PCF) as shown in Figure 18 [79]. Pumping the 2-cm-long PCF with 150 fs/36 nJ/1580 nm pulses, they achieved an output of 800–2500 nm SC spectrum that is comparable to that generated in suspended-core tellurite PCF pumped at wavelengths over 1800 nm.
Microstructure of tellurite PCF: close-up picture of the structure with propagating mode as seen in a CCD camera, and SEM images of photonic structure [79].
Yao et al. proposed a novel fluorotellurite fiber with the composition 65TeO2-25BaF2-10Y2O3 (TBY) [80]; the authors claimed further improvement in the performance of tellurite fiber-based MIR laser sources. BaF2 was included for the purpose of reducing the OH▬ content, and the introduction of Y2O3 was for better thermal stability in fiber drawing process as well as providing a higher glass transition temperature raised by the high melting temperature of Y2O3. In 2016, Wang et al. achieved SC generation extending from 0.47 μm to 2.77 μm (zero-dispersion wavelength at 1730 nm) using a tapered TeO2-BaF2-Y2O3 (TBY)-based microstructured fiber whose core was surrounded by six air holes [81].
Tellurite microstructured fibers with dispersion modification and nonlinear coefficient enhancement have been widely studied and applied for SC generation, and significant progress has been achieved over the last 10 years. However, the air holes present in microstructured fibers readily accommodate moisture and dust particles from the atmosphere, which lead to incremental losses, which act to deteriorate the SC output. In addition, the performance of tellurite microstructured fiber for high-power output in the mid-IR SC is not satisfactory, because the thermal conductivity of the air holes and the core of microstructure fiber greatly differ, and hence means that heat dissipation is a significant problem of high-power light transmission in the fiber. Solid-state tellurite fibers (comprising a solid core and cladding with no air holes) have therefore become the nonlinear medium of choice for high-power mid-infrared SC light sources [82].
Hydroxyl ions have deleterious broad absorption peaks centered at ∼3.3 μm and ∼4.3 μm, which hinder the tellurite fiber from extending its spectrum to the multi-phonon edge (5 μm). In 2013, Thapa et al. of NP Photonics Incorporation developed ultra-low-loss solid-core tellurite fibers which eliminate almost all molecular species, especially hydroxyl ions [83]. Using a 1922-nm all-fiber-based mode-locked fiber laser oscillator, a 1–5 μm SC spectrum shown in Figure 19b was generated in a tellurite fiber with a W-type (Figure 19a) index profile for strong light confinement, and the ZDW shifted from 2.5 μm to ∼1.9 μm. It was argued that the broadened anti-Stokes wavelength portion originated from self-phase modulation (SPM) and the long wavelength portion with increased power originated from the generation of a Raman soliton because of the self-frequency Raman shift. In the same year, Savelii et al. reported SC generation extending from 840 nm to 3000 nm in a low-loss suspended-core tellurite fiber with different lengths (Figure 20), pumped at its anomalous dispersion regime at 1745 nm [54]. It was found that the introduction of fluoride ions into the tellurite glass reduced the OH▬ content and resulted in a fiber that was still transparent at 4.1 μm.
(a) Cross section of the W-type tellurite fiber. (b) SC spectra in W-type proprietary tellurite fiber pumped by 3 W of ∼20 ps pulses from a 32 MHz repetition rate amplified mode-locked laser at 1.92 μm. (Note: dotted line is the transmission measured in the corresponding 1-cm-thick tellurite glass sample.) [83].
(a) SEM picture of the cross section of the fiber. (b) SC spectra generated from the suspended-core tellurite fiber with different lengths [54].
The W-type index profile makes it possible to tailor the ZDW, and this fiber can be fusion spliced to robust step-index silica fiber with relative ease. In 2016 Kedenburg et al. studied SC generation spanning 2.6–4.6 μm in low-loss W-type index tellurite fiber with a length of 15 cm [84]. Additionally, they studied the variation of spectral bandwidth with core diameter, pump wavelength, length of fibers, and pump power. In 2017, Kedenburg et al. studied the effects of the core size, pump wavelength, and fiber length on SC generation in a robust step-index tellurite fiber, and they achieved broadband SC generation spanning 1.3–5.3 μm in the fiber with a length of 9 cm and a core diameter of 3.5 μm, when pumped using a 2.4 μm femtosecond pulsed laser [85].
In 2016, Shi et al. prepared a solid-state tellurite optical fiber with a numerical aperture (NA) of 0.21 and a core diameter of 12 μm [86]. Figure 21(a) shows a micrograph of the end face of the fiber. They studied the SC generation in the fiber which was 0.8 m-in length. Figure 21(b) shows the spectrum of the pump laser and SC output in the fiber when different pump powers were used. When the pump power was 9.8 W, the power spectral density of the SC spectrum in the wavelength range of 1975–3000 nm is above 5 dBm/nm. In this investigation, the maximum output power of the SC light source was 5.1 W, and the power of the spectrum at wavelengths longer than 2.5 μm was about 2.1 W.
(a) Photograph of the tellurite fiber. (b) Spectrum of thulium-doped fiber amplifier (TDFA) and the SC spectrum generated from the tellurite fiber, pumped by various power: 5.2 W, 7.1 W, and 9.8 W [86].
In 2017 Jia et al. obtained a stable 4.5 W SC output spanning 1017–3438 nm, using a TBY-based 60-cm-long all-solid fluorotellurite fiber fabricated using the rod-in-tube method. The fiber was pumped using a 2 μm femtosecond fiber 10.48 W output power laser and thus demonstrated the capability of all-solid fluorotellurite fibers for use as high-power mid-IR SC light sources [87]. The same authors used a tapered all-solid fluorotellurite fiber with ultra-high NA to generate an SC output spectrum covering the entire 0.4–5 μm transmission window and pumped using a 1560-nm mode-locked fiber laser [88]. Yao et al. achieved stable 10.4 W SC generation in the wavelength ranging from 947 to 3934 nm from a TBY-based all-solid fluorotellurite fiber when pumped using a high-power 1980 nm femtosecond fiber laser [52]; when the average pump power was increased to 1.1 W, large spectral broadening occurred as shown in Figure 22(a). Because the fiber was pumped at anomalous dispersion regime, the spectral broadening for a pump power of ≥1.1 W originated from the SPM, the formation of higher-order soliton, soliton fission, soliton self-frequency shift (SSFS), and the generation of blue-shifted dispersive waves. The average output power of the SC laser source increases linearly with the average pump power (Figure 22(b)), and the corresponding optical-to-optical conversion efficiency was measured to be as high as 65%. The successful achievement of a 10 W output power level represented a significant breakthrough in all-solid fluorotellurite fiber, demonstrating its bright future for high-power MIR SC light sources.
(a) Dependence of the measured SC spectra generated from 60-cm-long fluorotellurite fiber on the average power of the 1980 nm femtosecond fiber laser. (b) The dependence of the SC average power on the pump power. Inset: photograph of the power meter when the mid-IR SC laser source is operating at the output power of 10.4 W [52].
3. Tellurite glass-based microcavity lasers
3.1 Experimental preparation of tellurite glass microcavities
Over the past few decades, research interest in microsphere resonators has grown rapidly. For a microsphere resonator, the pump light can be coupled into the microsphere through a tapered optical fiber or via free space. Most current microsphere resonators are fabricated from the silica optical fiber, but it is also possible to fabricate microsphere resonators from compound glass materials (such as tellurite glass) other than silica. At present, the principal method used for making microsphere cavities is based on melting of the glass materials, which uses the surface tension of molten glass to form the microsphere when suspended at the tip of a fiber. There are two common methods for the preparation of tellurite glass microsphere cavities, one is to melt glass fiber and the other is a powder floating method.
3.1.1 Melting glass fiber method
Most glass microsphere cavities are prepared using a CO2 laser, arc discharge, or high temperature ceramics to melt glass fibers. These methods have also been widely applied for fabricating tellurite glass microsphere cavities and other compound glass microsphere cavities resulting in a good shape and high Q factor. The fabrication method using a CO2 laser is described here.
A schematic diagram of the experimental setup for manufacturing a microsphere resonator is shown in Figure 23. The main positioning and alignment instrument used in the experiment was a precision three-dimensional (3D) translation stage, a continuous CO2 laser with an output wavelength of 10.6 μm, and a ZnSe lens for focusing. The experimental step for fabricating the tellurite microsphere resonator was divided into three stages. In the first step, the tellurite fiber was mounted vertically on the 3D translation stage and a weight hung at the end of the fiber. The ZnSe lens was used to focus the laser beam on the tip of the tellurite fiber, causing it to absorb the incident light which resulted in a temperature rise. The glass softened and gradually stretched into a tapered fiber under the influence of the weight. The heating was terminated when the waist diameter of the tapered fiber reached around 30 μm. In the second step, the tapered fiber was accurately cleaved at the waist region to obtain a half-tapered fiber. In the third step, using a ZnSe lens once more to focus the laser beam on the end of the half-tapered fiber, the tellurite microsphere was formed at the fiber end due to the surface tension acting on the molten glass. A microscope image of a tellurite microspheres fabricated in this manner is shown in Figure 24.
Schematic diagram of the experimental setup for making a tellurite glass microsphere. (a) A ZnSe lens is used to focus a CO2 laser beam on the tellurite fiber. (b) The waist region of tapered fiber is cleaved. (c) A tellurite microsphere is obtained by focusing a CO2 laser beam on the end of the cleaved tapered [92].
Microscope image of tellurite microsphere made with CO2 laser.
Although the resulting microsphere cavity made of molten glass fiber includes a glass fiber attached at a pole of the sphere, the light field is mainly concentrated around the equatorial plane of the microsphere cavity, and hence the loss induced by the fiber to the whispering gallery mode (WGM) resonance is negligible [89, 90]. In general, the fiber rods are only used to hold the microspheres in place and to facilitate light coupling. However, in recent years, some other uses of fiber rods have attracted increasing attention. In 2017, Murphy et al. [91] reported an alternative method for precise coupling control using the fiber rod. In the experiment, 980 nm laser light was input into the fiber rod, and the coupling distance between the microsphere cavity and the tapered fiber was precisely controlled by heating the connection between the microsphere and the fiber rod using the 980 nm laser. The adjustment range of microsphere cavity position was from 0.61 ± 0.13 μm to 3.49 ± 0.13 μm.
3.1.2 Powder floating method
The previously mentioned method for fabricating tellurite glass microspheres was only capable of producing one microsphere at a time, and the powder floating represents an alternative method for preparing glass microspheres in large quantities. In this method, the tellurite glass was ground into powder and poured into a high temperature furnace, which was placed vertically with a proper protective gas (nitrogen or inert gas) from the bottom to top. The tellurite glass powder melts and forms into microspheres due to surface tension at high temperature. In addition, the protective gas reduced the falling speed of the glass powder and increased the exposure time of the powder to the high temperature in the furnace. Additionally, the method isolates the glass powder from the atmosphere [93]. For some glass materials with less stringent experimental requirements, the microspheres can be formed without the use of protective gas [94].
Tellurite microspheres prepared using this method have no attached fiber rods, which is different from melting glass fiber or sol-gel methods. Using the powdered method, a large number of microspheres with different diameters can be prepared simultaneously, which is beneficial to the selection of experimental size and enables the integration and commercialization of the microsphere laser on a mass produced basis. Figure 25 is a schematic diagram of fabrication of microspheres, and Figure 26 is a microscope image of the microspheres fabricated using the powder floating method.
Schematic diagram of fabrication of microsphere by powder floating method [95].
Microspheres fabricated by powder floating method.
3.2 Tellurite glass microsphere lasers
Tellurite glass has emerged as a promising material for use in microsphere resonators in the near infrared wavelength region and tellurite glass microsphere lasers have been widely reported. In 2002, Sasagawa et al. reported continuous-wave oscillation in an Nd3+-doped tellurite glass microsphere laser at 1.06 μm for the first time [96]. Tellurite glass microspheres with diameters in the range of 50 μm to a few hundred micrometers were fabricated by melting using a Kanthal wire heater. Resonances were excited in the microsphere pumped using a 800 nm laser, the threshold of the output laser was measured as 81 mW, and the emission spectrum is shown in Figure 27.
Emission spectra for 4F3/2 → 4I11/2 transition of Nd3+ ions in tellurite glass microsphere at various pumping powers [96].
Later in 2005, an Er3+-doped tellurite glass microsphere laser was reported by Peng et al. [97]. The threshold of 1561 nm microsphere laser with 0.5 wt% Er2O3 doped was measured to be as low as 1.4 mW, and the maximum output power achieves 124.5 μW. Figure 28 shows the relationship between the output laser power and the 1480 nm pump power.
The microsphere laser pumped by a 1480 nm laser. The Er2O3 doping concentration is 0.5 wt%, and the diameter of the microsphere is 32 μm. The maximum output power is 124.5 μW. The inset shows the single-mode profile of this L-band microsphere laser [97].
The output wavelength of the laser around 1.9 μm, and 1.47 μm band is generated from the transition of Tm3+ ions: 3F4 → 3H6 and 3H4 → 3F4 [98]. Wu et al. proposed a microcavity laser based on a Tm3+-doped tellurite glass microsphere at 1.9 μm [99]. However, there are two problems in realizing a laser at the wavelength 1.47 μm. Firstly, the lifetime of the 3H4 level is shorter than that of the 3F4 level in Tm3+ ions, so the transition is sometimes described as self-terminating [100]. Secondly, the glass host material should have very low phonon energy, as in the case of silica and phosphate glass lasers, and amplification is essential. Tellurite and other heavy metal fluoride glasses have been considered as key materials for thulium-doped fiber amplifier operation in the S band, mainly due to their lower phonon energies (∼580 cm−1) [12]. In 2004, Sasagawa et al. solved the population inversion problem in Tm3+ ions and realized a cascade laser with output wavelengths in the 1.47 μm and 1.9 μm bands using a tellurite glass microsphere [101]. The output spectrum of the Tm3+-doped tellurite glass laser is shown in Figure 29, which shows the laser emission in the S band and at 1.9 μm. The average output power is plotted as a function of the average pump power in Figure 30. The threshold of the laser in the S band is 4.6 mW, while the thresholds measured for 1.9 μm are 3.0 mW and 4.8 mW, respectively. The differential quantum efficiency in the S band and at 1.9 μm were calculated as 1.4% and 1.1% for bidirectional lasing.
Emission spectrum of a Tm3+-doped tellurite microsphere laser with diameter of 104 μm. (Inset) OSA emission spectrum [101].
Average laser output power against average pump power for a Tm3+-doped tellurite microsphere laser. (Inset) Laser emission spectrum at average pump power of 4.0 mW [101].
In 2019 [3], Li et al. fabricated Tm3+-Ho3+ co-doped tellurite glass samples to solve the problem of the population inversion and obtained a 1.47 μm output using a tellurite glass microsphere laser. Figure 31(a) shows the output spectrum at 1.47 μm of Tm3+-Ho3+ co-doped tellurite glass microspheres when pumped using a 802 nm laser source. It is clear from Figure 31(b) that the lifetime of 3F4 energy level is attenuated through the energy transfer process in Tm3+-Ho3+ co-doped tellurite glass. The Tm3+ ions are excited from 3F4 to the 3H4 energy level by the 802 nm pump laser, and the lifetime of Tm3+-doped and Tm3+-Ho3+ co-doped material are shown in Figure 32. The emission process originates from the Tm3+: 3H4 → 3F4 transition, and the energy transfer efficiency of the Tm3+: 3F4 level to Ho3+: 5I7 level is 34.9% in Tm3+-Ho3+ co-doped tellurite glass sample.
(a) Laser emission spectrum from the Tm3+-Ho3+ co-doped microsphere when the pump power was set to 2.5 mW. (b) Energy level diagram and energy transfer model in tellurite glass [3].
Fluorescence decay curves of Tm3+-Ho3+ co-doped and Tm3+-doped tellurite glass samples at 1.9 μm. The inset figure shows that the lifetime of Tm3+ at 1.9 μm is 2.32 ms in Tm3+-doped tellurite glass samples [3].
The last two decades have witnessed significant progress of tellurite fiber-based SC light sources, whose original progress was primarily implemented through the development of microstructured and all-solid fiber devices. The microstructured fiber demonstrated greater flexibility in tailoring the dispersion profile than the all-solid version, which provided greater options for using different pump sources, producing higher coherence. In the case of high-power output and stable MIR SC generation, the all-solid tellurite fiber performed much better than the microstructured one, and hence the fluorotellurite fiber is a promising candidate for high-power Mid-IR laser emission. Potentially this technology could be expected to reach the hundred-watt output level even after losses with careful design for heat management, fiber structure, and pump parameter optimization.
Tellurite glass microsphere resonators have overcome the limitations associated with traditional resonators in terms of glass materials. In the future, it is envisaged that tellurite glass microsphere resonators will have wide-ranging applications in photonics, having a high Q value and fast response. Meanwhile, doping rare earth ions in different host materials is expected to achieve higher-power output and more efficient lasers accessing different wavelength ranges, most notably in the infrared band.
1.Introduction of tellurite glass
2.Fiber lasers and fiber amplifier based on tellurite glass fibers
3.Tellurite glass-based microcavity lasers
Pengfei Wang, Shijie Jia, Xiaosong Lu, Yuxuan Jiang, Jibo Yu, Xin Wang, Shunbin Wang and Elfed Lewis (April 8th 2020). Tellurite Glass and Its Application in Lasers, Advanced Functional Materials, Nevin Tasaltin, Paul Sunday Nnamchi and Safaa Saud, IntechOpen, DOI: 10.5772/intechopen.91338. Available from:
231total chapter downloads
Edited by Nevin Tasaltin
Global Trend of Glass Bonding for Appliance Industry Assemblies
By Chulsoo Woo, Bin Liang and Jonghyuk Oh
SolidificationEdited by Alicia Esther Ares
Solidification
Edited by Alicia Esther Ares
Effect of Microalloying Elements on the Heat Treatment Response and Tensile Properties of Al-Si-Mg Alloys
By Mohamed F. Ibrahim, Mohamed H. Abdelaziz, Herbert W. Doty, Salvador Valtierra and Fawzy H. Samuel


text:
Q: Probability question on outcome without replacement, selecting $k$ balls with a different number. I am having a hard time understanding the following
Experiment 1.7.10:
Consider a box that contains n balls numbered $1, . . . , n$.
First, one ball is selected at random from the box and its number is noted. This ball
is then put back in the box and another ball is selected (it is possible that the same
ball will be selected again). As many balls as desired can be selected in this way.
This process is called sampling with replacement. It is assumed that each of the n
balls is equally likely to be selected at each stage and that all selections are made
independently of each other. Find the probability of each outcome being chosen.
Obtaining Different Numbers. For the experiment in Example 1.7.10,
we shall determine the probability of the event $E$ that each of the k balls that are selected will have
a different number.
If $k > n$, it is impossible for all the selected balls to have different numbers because there are only $n$ different numbers. Suppose, therefore, that $k ≤ n$. The number
of outcomes in the event $E$ is the number of vectors for which all $k$ components are
different. This equals $P_{n,k}$, since the first component $x_1$ of each vector can have $n$ possible values, the second component $x_2$ can then have anyone of the other $n−1$ values,
and so on. Since $S$ is a simple sample space containing $n^k$ vectors, the probability $p$
that $k$ different numbers will be selected is
$$p=\cfrac{P_{n,k}}{n^k}=\cfrac{n!}{(n-k)!n^k}$$.
I understand the $p=\cfrac{1}{n^k}$ part but not the rest.

A: As mentioned the number of ways to choose $k$ balls with the condition all being different is given by $P_{n,k} = \frac{n!}{(n-k)!}$. The answer does a pretty good job explaining why this is the case. Indeed we can draw any ball at the beginning so we have $n$ choices. After we return the ball we want to draw any of the other $n-1$ balls so we have $n-1$ choices. Similarly for the third ball there are $n-2$ choices and so on. So we get that the number of "good" draws is:
$$n \cdot (n-1) \cdot (n-2) \cdots (n-k+1) = \frac{n!}{(n-k)!} = P_{n,k}$$
On the other side there are $n^k$ possible draws. Thus the probability of getting different balls  is:
$$p = \frac{P_{n,k}}{n^k} = \frac{n!}{(n-k)!n^k}$$

redpajama_set_name: RedPajamaStackExchange


0%57°34°Night - Clear. Winds variable at 5 to 6 mph (8.0 to 9.7 kph). The overnight low will be 35 °F (1.7 °C).Mostly cloudy with a high of 58 °F (14.4 °C). Winds variable at 5 to 8 mph (8.0 to 12.9 kph).
Tonight - Clear. Winds variable at 5 to 6 mph (8.0 to 9.7 kph). The overnight low will be 35 °F (1.7 °C).
Today - Mostly cloudy with a high of 58 °F (14.4 °C). Winds variable at 5 to 8 mph (8.0 to 12.9 kph).


text:
CONCACAF Gold Cup 1963
Competitions Continental CONCACAF Gold Cup 1963
71st 4 3 1 0 6 3 +3 7
68th 4 1 3 0 10 5 +5 5
133rd 1221
92nd 4 1 2 1 7 6 +1 4
151st 4 0 0 4 2 15 -13 0
March 23rd, 1963 in El Salvador 1550 (+2)
57th (+1) 992
March 23rd, 1963 in El Salvador 1404 (-15)
91st (-3) 1404
-15 91st
March 25th, 1963 in El Salvador 1528 (-22)
March 25th, 1963 in El Salvador 1449 (+3)
+3 81st
81st (+3) 989
March 29th, 1963 in El Salvador 1482 (+21)
March 31st, 1963 in El Salvador 1502 (-14)
March 31st, 1963 in El Salvador 1491 (+9)
118th 3 0 0 3 1 16 -15 0
49th (+10) 1589
51st (-) 1581
51st 1574
April 3rd, 1963 in El Salvador 1474 (-28)
+28 23rd
April 3rd, 1963 in El Salvador 1614 (+33)
April 5th, 1963 in El Salvador 1779 (+15)
23rd (-) 1779
April 7th, 1963 in El Salvador 1785 (+6)
+6 23rd
63rd (+7) 1529

redpajama_set_name: RedPajamaCommonCrawl


With summer fast approaching and the spring days getting warmer and warmer, we love to be outside longer into the evening and are all reaching for bug repellent to avoid the sting of the mosquitoes. Our Bug off Bugs Balm is formulated with certified organic herbs and pure essential oils known for their qualities to repel mosquitoes and other annoying bugs. Simply rub it into the skin around 15 minutes before potential exposure. Completely natural.


Level lake Front property with approx 200 ft of lake frontage. This older cottage was built in 1959 and gives you the feeling that you are back in time at your grandparents lake cottage. They did choose the best lots to build on back then. This lot is level with its own small beach area. A double covered boat dock with a built in boat lift and a side floating dock.
This secluded 1BR, 2BA home is on over 11AC with 1,182 sq. ft. of finished space and an unfinished stubbed basement. Plus, it has a very picturesque setting with frontage on Lake Hope and Lake Love - two small ponds/lakes (see pictures). Full, 1,182 sq. ft. unfinished basement already stubbed for a laundry sink and full bath with drive under 1-car garage.
Imagine your Dream Home with a View from the Front & Back Porch. This Exclusive Opportunity is available at a Fair Price in the Prestigious Tranquility Community near Carter's Lake. Lot 251 butts up to the U.S. Army Corp of Engineers property, which surrounds Carter's Lake. Sitting Less than a mile to the boat ramp,Tranquility Phase 8 is ready to build.
Luxury meets the lake-life here on Lake Nottely in Union County. The NGA mtns doesn't get much better than enjoying life in this 4,000 SF - 3 level home in Eagle Bend S/D. Guests will ooh & ahh the moment they pull into the drive of this lake home w/ enticing entry & easy-to-maintain landscape. Grand foyer leads to the elegant grt room w/ FP overlooking beautiful lake.
NEW CONSTRUCTION! Brand new ranch 3br/2ba home offering one of the most spacious floor plans available for one level living, deeded Lake Blue Ridge access just a few steps away, privacy in a quiet neighborhood with no fees! All paved easy access, public utilities, large living room, dining alcove, spacious bedrooms, and a gorgeous lot overlooking pasture area.
Build your dream home in one of Lake Nottely's premier lakefront communities! This is a very gentle lot with a great buliding site that will utilize the long range mountain & lake views. Many amenties await you, underground power, county water, common area with pavillion & shared boat dock.
Additional 1.23 Acre Lot Available Beside this Lot! It simply doesn't get much better than Thirteen Hundred Community on Lake Nottely. Build Here on this amazing 1.65 seasonal mountain view acre lot in The Stables of the prestigious 1300 Community.
Additional 1.65 Acre Lot Available Beside this Lot! Building your luxury mountain home on Lake Nottely in the prestigious gated community of Thirteen Hundred will never be easier! Build Here on 1.23 Seasonal Mountain View Acres in one of the most sought after communities…The Stables at 1300.
Harmonizing w/ the natural environment, this spectacular lodge showcases the best of the grand rustic lifestyle. This picturesque architecture emphasizes native wood, stone, & skilled workmanship. From the moment you arrive, you'll notice exquisite attn to detail, & the majestic landscape overlooking the glistening waters of Lake BR sets the stage for the luxurious interior.
Look no further! Waterfront on North end of Lake Nottely, gentle lot with DEEP water, year round views of mountain (across from USFS) & lake. 2 Bed / 3 bath with Large Master bedroom & bath on main floor. Stone, Wood burning fireplace in Living Room with vaulted ceilings, lot's of glass to enjoy the view. Recently remodeled kitchen & laundry on main.
Check out this interior! This over sized, true log home, is located on a small private lake with 3.2 acres AND has it's own dock. All 3 spacious bedrooms have a view the water and the level yard. The wood burning fireplace insert is a nice feature for relaxing nights. There's a fire pit at the edge of the water-perfect for entertaining friends and family.


text:
Q: Accessing Oracle ATG variables with Javascript I am trying to pass the contents of a bean to javascript so that I can parse it and create a JSON object... (Yes I am still on ATG 9.1). However I am having trouble getting from serverside to client side.... I am new with this stuff and would appreciate any explanation as documentation on this is scarce and not helpful.
<dsp:tomap var="cartMap" bean="MyShoppingCartModifier.order" recursive="true"/>
<script>
    var myCartMap = "${cartMap}";
    //Logic (easy)
</script>

Doing this generates an "Uncaught SyntaxError: Unexpected token ILLEGAL" on my browser (Chrome)
Any wisdom will greatly help me in my quest in learning this stuff.

A: The problem is your usage of the tomap tag.  You can't just pass in an entire tomap'd object because the tomap tag isn't going to create a nice, parsable json object.
You should either:
1) Format the json yourself right within your  tags.  Choose only the values that you want from the order.
<script>
   var myCart = {
      total : '<dsp:valueof bean="MyShoppingCartModifier.order.priceInfo.total">'
      ...
   }

   // Then use myCart for something here
</script>

or 2) There's a little known JSP to JSON library found here, http://json-taglib.sourceforge.net, that is very useful.  To use that, you'd create a separate page, something like orderJSON.jspf, that is used to generate a pure json object from your order.  Then in the page that you require this js, you can do:
<script>
   var myCart = <%@ include file="/path/to/orderJSON.jspf" %>
   // Then use myCart for something here.
</script>


We are pleased to announce the return of KENDO to the Hamilton CJCC!
Sensei Yukio Yamada 5th Dan will be in charge of the Kendo Program.
We will have an "Open House" for the Kendo program on Monday April 29th 7:00-9:30 pm. You will be able to see demonstrations of Kendo, sign up and purchase a "shinai" (bamboo Kendo sword) before the classes start.
Please contact Yamada Sensei at yukio.g.yamada@gmail.com if you wish to buy a shinai at the open house. He would like to have an idea of how many shinai to bring. The Shinai are $30.
The classes will start on Monday May 6th @ 7:00-9:00 pm in the small gym. Classes wil continue on Mondays from 7:00-9:00 pm.
Please come out and register and learn the ancient ART of Kendo.


text:
Bel Air's Chase Kalisz captures 200 IM at world swimming championships
| BUDAPEST, Hungary
On a night when Katie Ledecky returned to a more familiar spot — the top rung of the medal podium — the U.S. men's team began passing the torch to a new generation at the world championships.
Step aside, Michael Phelps and Ryan Lochte. You've got a worthy successor in Bel Air's Chase Kalisz.
Sorry, Nathan Adrian. It's Caeleb Dressel's time to shine.
Kalisz extended American dominance in the 200-meter individual medley Thursday with a bit of Olympic redemption, ably filling the void left by Phelps' retirement and Lochte's absence in Budapest.
"Big congrats to my little bro!!!" Phelps wrote on Instagram to his former training partner at the North Baltimore Aquatic Club. "Love ya dude!!!"
The 20-year-old Dressel put the United States back on top in swimming's glamour event, pulling away to a dominant win in the 100 freestyle while Adrian settled for the silver.
"He crushed it," said Adrian, the 100 gold medalist at the 2012 London Olympics. "He's going to be incredible for years to come."
Kalisz extended American rule of the 200 IM with his first major international championship. The Americans have won the event at eight straight world championships, not to mention at the last four Olympics — with Phelps or Lochte winning every time.
"The U.S. has always been dominant in IMs, and that's been one of our proudest traditions," Kalisz said. "Michael and Ryan have been the centerpiece of that for almost 15 years now."
But Kalisz is still miffed about a silver medal in the 400 IM at Rio , a setback that ended America's Olympic dominance of that event stretching back to the 1992 Barcelona Games.
"It took a toll on me for a few months," he said. "The second I turned it around into motivation was kind of when I started making leaps forward. I think of that moment every single day. I never forget it."
The American reign of the 200 IM began with Phelps' coming-out at the 2003 worlds in Barcelona.
Lochte had won the last two world titles.
Neither is in Budapest, of course.
While it was Phelps' choice to step aside, Lochte missed out on a chance to qualify for the U.S. team because of a suspension for his embarrassing antics at last summer's Olympics .
Kalisz made sure the Americans didn't miss a beat, finally breaking through on a big stage. He had a bronze and a silver at the two previous worlds.
His first gold was a huge surprise. Kalisz was only fifth after the opening butterfly lap but stormed back to win in 1:55.56. Japan's Kosuke Hagino claimed the silver, with the bronze going to China's Wang Shun.
"If you had told me that this would be my first world title, I would have definitely laughed at you," Kalisz said. "Four months ago, I was over three seconds slower. I know that I was going to be able to go faster than that time, but to get to the level where I am right now like I said, I probably would have laughed."
Ledecky, of Bethesda, earned her fourth gold of the championships by anchoring the U.S. victory in the 4x200 free relay, taking over with a slight lead before powering away to win by a full body length.
About 24 hours after settling for silver in the 200 free, when she was passed on the final lap by Italy's Federica Pellegrini , Ledecky returned to form on a team that also included Leah Smith, Mallory Comerford and Melanie Margalis.
"I knew I would have a big race," said Ledecky, who now has 13 golds in the world championship career, along with that lone silver. "I had an off day yesterday. It happens. You just try to bounce back as best you can from it and move forward."
The U.S. was just 0.13 of a second ahead when Ledecky took over for Margalis. The Americans finished in 7 minutes, 43.39 seconds with a comfortable 1.57 margin over China. Australia took the bronze.
"Diving in when our anchor is a multi-time world-record holder just gives you the most confidence you can have," said Smith, who led off.
Also Thursday, Olympic champion Mireia Belmonte of Spain stayed on top in the women's 200 butterfly, finishing strong to deny Katinka Hosszu another gold before the home crowd. Hungary's "Iron Lady" was leading at the midway point, sending the packed house at Duna Arena into a frenzy, but Belmonte blazed past her to win in 2:05.26.
Germany's Franziska Hentke grabbed the silver, leaving Hosszu to settle for bronze.
Also, Brazil's Etiene Medeiros took gold in the women's 50 backstroke, which isn't an Olympic event. The silver went to China's Fu Yuanhui, while Aliaksandra Herasimenia of Belarus earned the bronze.
Dressel got off to a blistering start and won in a relative rout in the down-and-back race, touching in 47.17. Adrian surged from behind over the final strokes to claim the silver in 47.87, edging France's Mehdy Metella — the fastest qualifier from the semifinals and swimming between the two Americans — by just two-hundredths of a second.
Dressel climbed up on a lane rope and pounded the water with both fists.
Adrian glided quickly from two lanes over to embrace the new world champion.
"I'm very excited about that," Dressel said. "But more importantly, Americans went 1-2. I think that's more exciting than any time that could be shown on that board."
Katie Ledecky
Most Read • Olympics
Swimming great Michael Phelps still exercises obsessively, only now it's on a bike


Of particular note is the continued la vida es un regalo de dios emergence of the Content Marketing Platform category.
Social Media Management and Listening Tools Sprinklr Large global companies use this social media management system.
NRelate This platform helps content developers and publishers find an easier path to their target audience.Comindware Delivers Business Operations Management solutions to enable performance and efficiency optimization.Certain Designed specifically for marketers and other professionals to easily organize, manage and produce live events.Personalize the web experience, segment and analyze companies and more.Website Analytics Tools, webtrends Offers tools for measuring and optimizing digital campaigns.A predictive analytics tool.It has now been absorbed into the Oracle Marketing Cloud under the product name Oracle Eloqua Content Marketing.
Audio Creation Tools Audacity Record, edit and publish podcasts and interviews with this free software.
Double Dutch Mobile event applications, with a unique focus on capturing and surfacing data from live events.
Funnel Analytics Tools Full Circle Insights A marketing performance management tool that gives Salesforce users insight into their overall marketing impact.Optimize your site to increase conversions.Also offers social social media marketing tools.Bislr A marketing automation tool.Offers a personalized reader experience and exposes your content to engaged readers.Skyword codigos promocionales jetsmart This content production system allows companies to manage and pay writers, use an SEO scorecard to optimize content, and more.In this case, should Marketing AI fall into the Analytics or Optimization tools group?Woopra Uses real-time stats that can be broken down to an individual-level view.
Integrates email, social media, offline events, content, and more.
Manage notes, ideas, and sketches to create better, more organized writing.


Submit a property for inclusion in the UPMKT site, digital publication and/or social channels. There is no cost for inclusion; submissions are subject to approval of our Luxury Listing Curator staff. Please include a link to the property (such as an MLS link, Realtor/Zillow, or on your website).


text:
package parquet.hadoop;

import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static parquet.column.Encoding.BIT_PACKED;
import static parquet.column.Encoding.PLAIN;
import static parquet.schema.PrimitiveType.PrimitiveTypeName.BINARY;
import static parquet.schema.Type.Repetition.OPTIONAL;
import static parquet.schema.Type.Repetition.REPEATED;
import static parquet.schema.Type.Repetition.REQUIRED;

import java.io.File;
import java.io.IOException;
import java.util.*;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.PathFilter;
import org.junit.Test;

import parquet.Log;
import parquet.bytes.BytesInput;
import parquet.column.ColumnDescriptor;
import parquet.column.Encoding;
import parquet.column.page.Page;
import parquet.column.page.PageReadStore;
import parquet.column.page.PageReader;
import parquet.column.statistics.BinaryStatistics;
import parquet.column.statistics.LongStatistics;
import parquet.hadoop.metadata.BlockMetaData;
import parquet.hadoop.metadata.ColumnChunkMetaData;
import parquet.hadoop.metadata.CompressionCodecName;
import parquet.hadoop.metadata.FileMetaData;
import parquet.hadoop.metadata.GlobalMetaData;
import parquet.hadoop.metadata.ParquetMetadata;
import parquet.io.api.Binary;
import parquet.schema.MessageType;
import parquet.schema.MessageTypeParser;
import parquet.schema.PrimitiveType;
import parquet.schema.PrimitiveType.PrimitiveTypeName;
import parquet.format.Statistics;
import parquet.format.converter.ParquetMetadataConverter;

public class TestParquetFileWriter {
  private static final Log LOG = Log.getLog(TestParquetFileWriter.class);

  @Test
  public void testWriteRead() throws Exception {

    File testFile = new File("target/test/TestParquetFileWriter/testParquetFile").getAbsoluteFile();
    testFile.delete();

    Path path = new Path(testFile.toURI());
    Configuration configuration = new Configuration();

    MessageType schema = MessageTypeParser.parseMessageType("message m { required group a {required binary b;} required group c { required int64 d; }}");
    String[] path1 = {"a", "b"};
    ColumnDescriptor c1 = schema.getColumnDescription(path1);
    String[] path2 = {"c", "d"};
    ColumnDescriptor c2 = schema.getColumnDescription(path2);

    byte[] bytes1 = { 0, 1, 2, 3};
    byte[] bytes2 = { 1, 2, 3, 4};
    byte[] bytes3 = { 2, 3, 4, 5};
    byte[] bytes4 = { 3, 4, 5, 6};
    CompressionCodecName codec = CompressionCodecName.UNCOMPRESSED;

    BinaryStatistics stats1 = new BinaryStatistics();
    BinaryStatistics stats2 = new BinaryStatistics();

    ParquetFileWriter w = new ParquetFileWriter(configuration, schema, path);
    w.start();
    w.startBlock(3);
    w.startColumn(c1, 5, codec);
    long c1Starts = w.getPos();
    w.writeDataPage(2, 4, BytesInput.from(bytes1), stats1, BIT_PACKED, BIT_PACKED, PLAIN);
    w.writeDataPage(3, 4, BytesInput.from(bytes1), stats1, BIT_PACKED, BIT_PACKED, PLAIN);
    w.endColumn();
    long c1Ends = w.getPos();
    w.startColumn(c2, 6, codec);
    long c2Starts = w.getPos();
    w.writeDataPage(2, 4, BytesInput.from(bytes2), stats2, BIT_PACKED, BIT_PACKED, PLAIN);
    w.writeDataPage(3, 4, BytesInput.from(bytes2), stats2, BIT_PACKED, BIT_PACKED, PLAIN);
    w.writeDataPage(1, 4, BytesInput.from(bytes2), stats2, BIT_PACKED, BIT_PACKED, PLAIN);
    w.endColumn();
    long c2Ends = w.getPos();
    w.endBlock();
    w.startBlock(4);
    w.startColumn(c1, 7, codec);
    w.writeDataPage(7, 4, BytesInput.from(bytes3), stats1, BIT_PACKED, BIT_PACKED, PLAIN);
    w.endColumn();
    w.startColumn(c2, 8, codec);
    w.writeDataPage(8, 4, BytesInput.from(bytes4), stats2, BIT_PACKED, BIT_PACKED, PLAIN);
    w.endColumn();
    w.endBlock();
    w.end(new HashMap<String, String>());

    ParquetMetadata readFooter = ParquetFileReader.readFooter(configuration, path);
    assertEquals("footer: "+ readFooter, 2, readFooter.getBlocks().size());
    assertEquals(c1Ends - c1Starts, readFooter.getBlocks().get(0).getColumns().get(0).getTotalSize());
    assertEquals(c2Ends - c2Starts, readFooter.getBlocks().get(0).getColumns().get(1).getTotalSize());
    assertEquals(c2Ends - c1Starts, readFooter.getBlocks().get(0).getTotalByteSize());
    HashSet<Encoding> expectedEncoding=new HashSet<Encoding>();
    expectedEncoding.add(PLAIN);
    expectedEncoding.add(BIT_PACKED);
    assertEquals(expectedEncoding,readFooter.getBlocks().get(0).getColumns().get(0).getEncodings());

    { // read first block of col #1
      ParquetFileReader r = new ParquetFileReader(configuration, path, Arrays.asList(readFooter.getBlocks().get(0)), Arrays.asList(schema.getColumnDescription(path1)));
      PageReadStore pages = r.readNextRowGroup();
      assertEquals(3, pages.getRowCount());
      validateContains(schema, pages, path1, 2, BytesInput.from(bytes1));
      validateContains(schema, pages, path1, 3, BytesInput.from(bytes1));
      assertNull(r.readNextRowGroup());
    }

    { // read all blocks of col #1 and #2

      ParquetFileReader r = new ParquetFileReader(configuration, path, readFooter.getBlocks(), Arrays.asList(schema.getColumnDescription(path1), schema.getColumnDescription(path2)));

      PageReadStore pages = r.readNextRowGroup();
      assertEquals(3, pages.getRowCount());
      validateContains(schema, pages, path1, 2, BytesInput.from(bytes1));
      validateContains(schema, pages, path1, 3, BytesInput.from(bytes1));
      validateContains(schema, pages, path2, 2, BytesInput.from(bytes2));
      validateContains(schema, pages, path2, 3, BytesInput.from(bytes2));
      validateContains(schema, pages, path2, 1, BytesInput.from(bytes2));

      pages = r.readNextRowGroup();
      assertEquals(4, pages.getRowCount());

      validateContains(schema, pages, path1, 7, BytesInput.from(bytes3));
      validateContains(schema, pages, path2, 8, BytesInput.from(bytes4));

      assertNull(r.readNextRowGroup());
    }
    PrintFooter.main(new String[] {path.toString()});
  }

  @Test
  public void testConvertToThriftStatistics() throws Exception {
    long[] longArray = new long[] {39L, 99L, 12L, 1000L, 65L, 542L, 2533461316L, -253346131996L, Long.MAX_VALUE, Long.MIN_VALUE};
    LongStatistics parquetMRstats = new LongStatistics();

    for (long l: longArray) {
      parquetMRstats.updateStats(l);
    }
    Statistics thriftStats = parquet.format.converter.ParquetMetadataConverter.toParquetStatistics(parquetMRstats);
    LongStatistics convertedBackStats = (LongStatistics)parquet.format.converter.ParquetMetadataConverter.fromParquetStatistics(thriftStats, PrimitiveTypeName.INT64);

    assertEquals(parquetMRstats.getMax(), convertedBackStats.getMax());
    assertEquals(parquetMRstats.getMin(), convertedBackStats.getMin());
    assertEquals(parquetMRstats.getNumNulls(), convertedBackStats.getNumNulls());
  }

  @Test
  public void testWriteReadStatistics() throws Exception {

    File testFile = new File("target/test/TestParquetFileWriter/testParquetFile").getAbsoluteFile();
    testFile.delete();

    Path path = new Path(testFile.toURI());
    Configuration configuration = new Configuration();

    MessageType schema = MessageTypeParser.parseMessageType("message m { required group a {required binary b;} required group c { required int64 d; }}");
    String[] path1 = {"a", "b"};
    ColumnDescriptor c1 = schema.getColumnDescription(path1);
    String[] path2 = {"c", "d"};
    ColumnDescriptor c2 = schema.getColumnDescription(path2);

    byte[] bytes1 = { 0, 1, 2, 3};
    byte[] bytes2 = { 1, 2, 3, 4};
    byte[] bytes3 = { 2, 3, 4, 5};
    byte[] bytes4 = { 3, 4, 5, 6};
    CompressionCodecName codec = CompressionCodecName.UNCOMPRESSED;

    BinaryStatistics statsB1C1P1 = new BinaryStatistics();
    BinaryStatistics statsB1C1P2 = new BinaryStatistics();
    LongStatistics statsB1C2P1 = new LongStatistics();
    LongStatistics statsB1C2P2 = new LongStatistics();
    BinaryStatistics statsB2C1P1 = new BinaryStatistics();
    LongStatistics statsB2C2P1 = new LongStatistics();
    statsB1C1P1.setMinMax(Binary.fromString("s"), Binary.fromString("z"));
    statsB1C1P2.setMinMax(Binary.fromString("a"), Binary.fromString("b"));
    statsB1C2P1.setMinMax(2l, 10l);
    statsB1C2P2.setMinMax(-6l, 4l);
    statsB2C1P1.setMinMax(Binary.fromString("d"), Binary.fromString("e"));
    statsB2C2P1.setMinMax(11l, 122l);

    ParquetFileWriter w = new ParquetFileWriter(configuration, schema, path);
    w.start();
    w.startBlock(3);
    w.startColumn(c1, 5, codec);
    w.writeDataPage(2, 4, BytesInput.from(bytes1), statsB1C1P1, BIT_PACKED, BIT_PACKED, PLAIN);
    w.writeDataPage(3, 4, BytesInput.from(bytes1), statsB1C1P2, BIT_PACKED, BIT_PACKED, PLAIN);
    w.endColumn();
    w.startColumn(c2, 6, codec);
    w.writeDataPage(3, 4, BytesInput.from(bytes2), statsB1C2P1, BIT_PACKED, BIT_PACKED, PLAIN);
    w.writeDataPage(1, 4, BytesInput.from(bytes2), statsB1C2P2, BIT_PACKED, BIT_PACKED, PLAIN);
    w.endColumn();
    w.endBlock();

    w.startBlock(4);
    w.startColumn(c1, 7, codec);
    w.writeDataPage(7, 4, BytesInput.from(bytes3), statsB2C1P1, BIT_PACKED, BIT_PACKED, PLAIN);
    w.endColumn();
    w.startColumn(c2, 8, codec);
    w.writeDataPage(8, 4, BytesInput.from(bytes4), statsB2C2P1, BIT_PACKED, BIT_PACKED, PLAIN);
    w.endColumn();
    w.endBlock();
    w.end(new HashMap<String, String>());

    ParquetMetadata readFooter = ParquetFileReader.readFooter(configuration, path);
    for (BlockMetaData block : readFooter.getBlocks()) {
      for (ColumnChunkMetaData col : block.getColumns()) {
        col.getPath();
      }
    }
    // correct statistics
    BinaryStatistics bs1 = new BinaryStatistics();
    bs1.setMinMax(Binary.fromString("a"), Binary.fromString("z"));
    LongStatistics ls1 = new LongStatistics();
    ls1.setMinMax(-6l, 10l);

    BinaryStatistics bs2 = new BinaryStatistics();
    bs2.setMinMax(Binary.fromString("d"), Binary.fromString("e"));
    LongStatistics ls2 = new LongStatistics();
    ls2.setMinMax(11l, 122l);

    { // assert stats are correct for the first block
      BinaryStatistics bsout = (BinaryStatistics)readFooter.getBlocks().get(0).getColumns().get(0).getStatistics();
      String str = new String(bsout.getMaxBytes());
      String str2 = new String(bsout.getMinBytes());

      assertTrue(((BinaryStatistics)readFooter.getBlocks().get(0).getColumns().get(0).getStatistics()).equals(bs1));
      assertTrue(((LongStatistics)readFooter.getBlocks().get(0).getColumns().get(1).getStatistics()).equals(ls1));
    }
    { // assert stats are correct for the second block
      assertTrue(((BinaryStatistics)readFooter.getBlocks().get(1).getColumns().get(0).getStatistics()).equals(bs2));
      assertTrue(((LongStatistics)readFooter.getBlocks().get(1).getColumns().get(1).getStatistics()).equals(ls2));
    }
  }

  @Test
  public void testMetaDataFile() throws Exception {

    File testDir = new File("target/test/TestParquetFileWriter/testMetaDataFileDir").getAbsoluteFile();

    Path testDirPath = new Path(testDir.toURI());
    Configuration configuration = new Configuration();

    final FileSystem fs = testDirPath.getFileSystem(configuration);
    fs.delete(testDirPath, true);
    fs.mkdirs(testDirPath);

    MessageType schema = MessageTypeParser.parseMessageType("message m { required group a {required binary b;} required group c { required int64 d; }}");
    createFile(configuration, new Path(testDirPath, "part0"), schema);
    createFile(configuration, new Path(testDirPath, "part1"), schema);
    createFile(configuration, new Path(testDirPath, "part2"), schema);

    FileStatus outputStatus = fs.getFileStatus(testDirPath);
    List<Footer> footers = ParquetFileReader.readAllFootersInParallel(configuration, outputStatus);
    validateFooters(footers);
    ParquetFileWriter.writeMetadataFile(configuration, testDirPath, footers);

    footers = ParquetFileReader.readFooters(configuration, outputStatus);
    validateFooters(footers);
    footers = ParquetFileReader.readFooters(configuration, fs.getFileStatus(new Path(testDirPath, "part0")));
    assertEquals(1, footers.size());

    final FileStatus metadataFile = fs.getFileStatus(new Path(testDirPath, ParquetFileWriter.PARQUET_METADATA_FILE));
    final List<Footer> metadata = ParquetFileReader.readSummaryFile(configuration, metadataFile);

    validateFooters(metadata);

    footers = ParquetFileReader.readAllFootersInParallelUsingSummaryFiles(configuration, Arrays.asList(fs.listStatus(testDirPath, new PathFilter() {
      @Override
      public boolean accept(Path p) {
        return !p.getName().startsWith("_");
      }
    })));
    validateFooters(footers);

    fs.delete(metadataFile.getPath(), false);

    footers = ParquetFileReader.readAllFootersInParallelUsingSummaryFiles(configuration, Arrays.asList(fs.listStatus(testDirPath)));
    validateFooters(footers);

  }

  private void validateFooters(final List<Footer> metadata) {
    LOG.debug(metadata);
    assertEquals(3, metadata.size());
    for (Footer footer : metadata) {
      final File file = new File(footer.getFile().toUri());
      assertTrue(file.getName(), file.getName().startsWith("part"));
      assertTrue(file.getPath(), file.exists());
      final ParquetMetadata parquetMetadata = footer.getParquetMetadata();
      assertEquals(2, parquetMetadata.getBlocks().size());
      final Map<String, String> keyValueMetaData = parquetMetadata.getFileMetaData().getKeyValueMetaData();
      assertEquals("bar", keyValueMetaData.get("foo"));
      assertEquals(footer.getFile().getName(), keyValueMetaData.get(footer.getFile().getName()));
    }
  }

  private void createFile(Configuration configuration, Path path, MessageType schema) throws IOException {
    String[] path1 = {"a", "b"};
    ColumnDescriptor c1 = schema.getColumnDescription(path1);
    String[] path2 = {"c", "d"};
    ColumnDescriptor c2 = schema.getColumnDescription(path2);

    byte[] bytes1 = { 0, 1, 2, 3};
    byte[] bytes2 = { 1, 2, 3, 4};
    byte[] bytes3 = { 2, 3, 4, 5};
    byte[] bytes4 = { 3, 4, 5, 6};
    CompressionCodecName codec = CompressionCodecName.UNCOMPRESSED;

    BinaryStatistics stats1 = new BinaryStatistics();
    BinaryStatistics stats2 = new BinaryStatistics();

    ParquetFileWriter w = new ParquetFileWriter(configuration, schema, path);
    w.start();
    w.startBlock(3);
    w.startColumn(c1, 5, codec);
    w.writeDataPage(2, 4, BytesInput.from(bytes1), stats1, BIT_PACKED, BIT_PACKED, PLAIN);
    w.writeDataPage(3, 4, BytesInput.from(bytes1), stats1, BIT_PACKED, BIT_PACKED, PLAIN);
    w.endColumn();
    w.startColumn(c2, 6, codec);
    w.writeDataPage(2, 4, BytesInput.from(bytes2), stats2, BIT_PACKED, BIT_PACKED, PLAIN);
    w.writeDataPage(3, 4, BytesInput.from(bytes2), stats2, BIT_PACKED, BIT_PACKED, PLAIN);
    w.writeDataPage(1, 4, BytesInput.from(bytes2), stats2, BIT_PACKED, BIT_PACKED, PLAIN);
    w.endColumn();
    w.endBlock();
    w.startBlock(4);
    w.startColumn(c1, 7, codec);
    w.writeDataPage(7, 4, BytesInput.from(bytes3), stats1, BIT_PACKED, BIT_PACKED, PLAIN);
    w.endColumn();
    w.startColumn(c2, 8, codec);
    w.writeDataPage(8, 4, BytesInput.from(bytes4), stats2, BIT_PACKED, BIT_PACKED, PLAIN);
    w.endColumn();
    w.endBlock();
    final HashMap<String, String> extraMetaData = new HashMap<String, String>();
    extraMetaData.put("foo", "bar");
    extraMetaData.put(path.getName(), path.getName());
    w.end(extraMetaData);
  }

  private void validateContains(MessageType schema, PageReadStore pages, String[] path, int values, BytesInput bytes) throws IOException {
    PageReader pageReader = pages.getPageReader(schema.getColumnDescription(path));
    Page page = pageReader.readPage();
    assertEquals(values, page.getValueCount());
    assertArrayEquals(bytes.toByteArray(), page.getBytes().toByteArray());
  }

  @Test
  public void testMergeMetadata() {
    FileMetaData md1 = new FileMetaData(
        new MessageType("root1",
            new PrimitiveType(REPEATED, BINARY, "a"),
            new PrimitiveType(OPTIONAL, BINARY, "b")),
        new HashMap<String, String>(), "test");
    FileMetaData md2 = new FileMetaData(
        new MessageType("root2",
            new PrimitiveType(REQUIRED, BINARY, "c")),
        new HashMap<String, String>(), "test2");
    GlobalMetaData merged = ParquetFileWriter.mergeInto(md2, ParquetFileWriter.mergeInto(md1, null));
    assertEquals(
        merged.getSchema(),
        new MessageType("root1",
            new PrimitiveType(REPEATED, BINARY, "a"),
            new PrimitiveType(OPTIONAL, BINARY, "b"),
            new PrimitiveType(REQUIRED, BINARY, "c"))
        );

  }

}

redpajama_set_name: RedPajamaGithub


If method call resulted in no handler, this hookable method is called.
If you want to override this method with a hook, see the example below.
// you want the unknown method to return a value.
You can add your own hook events that are executed either before or after the $page->callUnknown(…) method is executed. Examples of both are included below. A good place for hook code such as this is in your /site/ready.php file.
The 'before' hooks are called immediately before each $page->callUnknown(…) method call is executed. This type of hook is especially useful for modifying arguments before they are sent to the method.
The 'after' hooks are called immediately after each $page->callUnknown(…) method call is executed. This type of hook is especially useful for modifying the value that was returned by the method call.


Nike Zoom Hyperrev-Cheap Nike Air Max OFF-WHITE,Cheap Nike Air Max 270,Cheap Air VaporMax Plus Official Store!
Nike, today, unveils Green's footwear for this evening's matchup – the Nike Zoom HyperRev 2016. Dressed in white and gold with his logo perched at the shoe's ankle collar, hopefully this look will help the former Michigan State All-American force a pivotal Game 6.


text:
See related artwork
Technical investigation and restoration
The Restoration of The Soult Immaculate Conception by Bartolomé Esteban Murillo Murillo, Bartolomé Esteban
Among the Madonnas painted by Murillo, The Immaculate Conception of Los Venerables in the Museo del Prado is without doubt one of the most beautiful and celebrated. The recent restoration of the painting undertaken by María Álvarez-Garcillán of the Museum's Restoration Department has recovered all the work's original aesthetic splendour.
Murillo, Bartolomé Esteban. The Immaculate Conception of Los Venerables, or of `Soult', Ca. 1678. oli on canvas. Before and after restoration P02809
Before the restauration
Technique and Materials Used
The Restoration Process
The fact that a painting does not attract the viewer's attention is the clearest sign that it is in need of restoration. The aim of any such restoration is to present the work in a worthy manner, recovering its full meaning and significance and once more revealing the artist's technical and pictorial skills. However, the various procedures involved in this process should not erase the marks of time, and respect for a work's history is one of the fundamental guidelines when carrying out the process in question.
The painting's history
In 1813 The Immaculate Conception of Los Venerables entered the collection of Marshal Soult and was re-lined while in his ownership. Excessive application of heat burned the painting, resulting in shrinkage and blistering (Fig. 1).
An incorrect elimination of old varnishes eroded the paint surface, negatively affecting the top glazes with which Murillo achieved effects of transparency. This damage was treated in the past by repainting almost the entire picture surface, to the point of altering the composition (Fig. 2, a, b, and c).
In 1852 the painting was acquired by the Musée du Louvre. We know that in 1937 Gaston Chauffrey at that museum was entrusted with re-lining it, but he finally opted not do so due to the "poor state of the work", and the painting was merely "refixé, régénéré et harmonisé".
In 1941 the painting entered the Museo del Prado. In 1974 it was again the subject of a restoration process regarding which no information is now available but which is evident from the modifications to the varnishes and various re-touchings.
In 1982 the painting was again the subject of treatment, this time to change the stretcher, "adding linen strips to the edges". In addition, old varnishes and areas of re-painting were eliminated and the "numerous areas of missing pigment and deteriorated zones" were re-integrated. However, the cleaning of the canvas must have been halted when it was noticed that pentimenti became inexplicably visible beneath the areas of re-painting, as well as the fact that the paint surface was extremely worn.
In 2007 the painting again entered the Museum's Restoration Department (Fig. 3 a, b, and c ). Recent technical studies made it possible to appreciate the extent of the damage and its effect on the painting as a whole. With a full knowledge of the materials used and the artist's technique it is easier to analyse the effects of time on the painting and to identify the vestiges of previous restorations.
Fig.1. Burned texture resulting from an old restoration
Fig. 2. a, b and c. Part of the Virgin's hair and blue mantel were concealed beneath a layer of orange pigment similar to the original background. Before, during and after restoration
Fig. 3. a, b and c. The different colour of the re-touchings was visible throughout the work
The lining canvas is a thick taffeta weave of a type very similar to the original canvas. On the back is a layer of whiteish coloured priming as well as linen strips added to the lateral edges.
Stratigraphic samples revealed that the canvas was covered with a layer of grey-brown preparation made up of earth pigments and small amounts of calcium carbonate, bone blacks and white lead, bound with linseed oil, as in the rest of the painting.
Over this layer Murillo applied a layer of priming that varies in colour between grey-blue, reddish-brown and dark greyish-brown depending on the area to which these colours act as the base. Over this tonal layer he added the colour, which is subtly graduated in some areas to achieve different aesthetic effects. Some areas are more reddish in tone and are visible through the top layer, while others are pinkish in order to reinforce the flesh tones of the angels, painted on top.
Analyses of micro-samples have revealed numerous areas of re-painting in zones of total or partial paint loss, as well as deterioration of some of the pigments, for example, the general darkening of the smalt (Fig. 4.)
The paint surface
The paint layers were applied with a brushstroke of varying dryness depending on the desired result. The lighter areas are the most heavily impastoed and dense, painted with long, firm brushstrokes (Fig. 5). Murillo gave the intermediary planes an ethereal, nebulous effect through the use of large amounts of binder in order to apply superimposed layers of transparent colour (Fig. 5b). The background areas achieve effects of chiaroscuro that are created by allowing the grey-brown priming to show through and hence produce an effect of depth.
Additional X-ray and Infra-red studies allowed the work's state of preservation to be analysed from other viewpoints. (Fig. 6). These studies show the wear, craquelure, losses to the preparatory layers and the paint surface, and traces of earlier restorations, as well as changes that Murillo made to the composition during the process of execution (Fig. 7, a and b). (Fig. 8.)
Fig.4. The stratigraphic sample reveals that the underlayers of the Virgin's mantel were painted in white lead, smalt and red lake, while the top layers use lapis lazuli
Fig.5b. Angels in the upper zone
Fig.5a. Loose, impastoed brushstroke of the white of the mantel
Fig.6. X-rays reveal the structure of the stretcher with its double cross-piece that was applied in the 19th century but is now lost
Fig.8. Infra-red reflectography shows that the positions of the Virgin's face and hands were altered during the execution of the work
Fig. 7a y b. The x-ray reveals the re-positioning further to the right of one of the angels in the lower zone)
The manner in which The Immaculate Conception of Los Venerables was restored took account of both the historical and physical data set out above.
The painting was consolidated with adhesives similar to the original used in the work. This process made the various paint layers more stable without modifying their structure.
Old varnishes and areas of re-painting were gradually eliminated paying due attention to the aesthetic unity of the work as a whole. The whites were more stable and better preserved than the earth pigments, which are more likely to alter with the passing of time. It was observed that the effects of heat and abrasive cleanings in the past had notably damaged the paint surface, resulting in the loss of some of the top glazes. These factors had to be borne in mind in order not to unbalance the composition and to prevent some areas becoming more prominent than others. The aim when cleaning the painting was to achieve an appearance as close as possible to Murillo's original intentions (Fig. 9, a, b, and c. ).
The process of re-integration has once again made the composition fully legible. Areas of loss and damaged glazes have been replaced with the intention of recovering the original intention of the brushstrokes and their beauty (Fig. 10, a, b, and c). Using visible brushstrokes or transparencies it has been possible to recreate the ethereal atmosphere of the work, while the glowing areas of light that give the composition its meaning have recovered their original splendour (Fig. 11, a, b, and c.).
Finally, the Museum's restorers applied a layer of transparent varnish that intensified the luminosity of the colours and acted as a protective barrier.
The painting's carved and gilded wooden frame in the Louis XV style was commissioned by Marshal Soult and made in France. It has now been restored to tone in with the painting.
Overall, and as a result of the recent restoration that has returned Murillo's work to all its technical and compositional splendour, the viewer can once again appreciate the celestial jubilation of the angels and accompany the Virgin on her fervent, spiritual journey.
Fig. 9. a b y c. Old restoration altered the Virgin's mantel, concealing the original fall of the drapery
Fig. 11. a, b and c. Old areas of re-painting concealed the face of one of the angels, as well as the subtle effects of glazing
Fig. 10. a, b and c


If you're looking for a contractor who can repair your tilting or bowing foundation walls, we at The Basement Doctor of Cincinnati are here to help. Our in-house foundation experts have solutions for making all kinds of foundation repairs, including straightening foundation walls.
We provide free, no-obligation foundation wall straightening quotes throughout our Ohio and Indiana service area, including Fairfield, Mason, West Chester, Hamilton, the surrounding areas of New Albany, Middletown, Fairfield, Loveland, Fairborn, Jeffersonville, West Chester, and nearby. Call or e-mail us today to schedule your appointment!
Cracks in the masonry are usually the first sign of wall failure. Then sections of the wall can actually start to buckle, bow, and tilt inwards. Left unchecked, this damage will worsen and can even result in walls that totally collapse. The good news is that the foundation damage mentioned above can be repaired using proven, long-lasting techniques that are much more affordable than the total foundation replacement.
At The Basement Doctor of Cincinnati, we recommend correcting the damage done to failing foundation walls with the GeoLock® Wall Anchor System.
Designed by Supportworks, Inc., this foundation wall system is currently being used by foundation contractors throughout the United States and Canada as a solution that permanently repairs failing foundation walls.
To relieve pressure placed on your foundation walls from outside moisture and soils, we at The Basement Doctor of Cincinnati begin the wall straightening process by excavating the soils out from around the foundation.
This earth anchor is made with high-quality galvanized steel to resist corrosion. Each earth anchor has a center hole for attaching the anchor rod that will be installed in the next step.
Contact Us For Foundation Wall Repair In Ohio and Indiana!
At The Basement Doctor of Cincinnati, we take pride in providing a clean solution for homeowners in need of foundation wall repair. To help you decide if we're the contractors for you, we offer free written basement wall repair quotes for property owners throughout our OH and IN service area.
We serve the West Chester, Hamilton, Fairfield, Mason, area, as well as Loveland, New Albany, Middletown, West Chester, Fairborn, Jeffersonville, Fairfield, and many outlying areas. To schedule an appointment, call or e-mail us today!