Villa Kemala is a newly built five bedroom luxury villa located on 1,750sq min the scenic south-west area of Berawa, Canggu. This secluded villa was created by a family who has been coming to Bali for many years. Villa Kemala embraces all they love about being on the island of the Gods. Villa Kemala is located 45 minutes from the airport and only 15 minutes from the chic shopping and dining district of Seminyak.
The villa's design combines contemporary Balinese architecture with clean modern lines, numerous indoor and outdoor spaces that allow groups to gather but also allow guests to enjoy privacy.The villa features a spacious living area with comfortable sofas, a dining area that can seat up to 12 people and two kitchens. The kitchens are fully equipped including wine fridges and premium coffee machine. In addition cooking classes can be arranged upon request. Located off the living room is a hanging terrace which is perfect for relaxation or outdoor dining. Enjoy the sights of rice fields and sounds of nature, butterflies and birds.
Additional facilities include –safe deposit boxes, fiber optic wireless internet access, telephone and complimentary guest access to the Canggu Club. Guests can enjoy all the club facilities including various sports facilities and F&B options. In addition a VIP rate for golf at the renowned Bali Nirwana Golf Course is available.
A fun bale is situated at the bottom of the property and features a pool table and bar area. The massage bale has anoutdoor river stone bathtub. In-villa spa or yoga can be arranged. (Onrequest)The 20mx 5m swimming pool and built in Jacuzzi is surrounded by tropical landscaped gardens which overlook lush emerald rice fields. The gardens are a talking point at Villa Kemala dotted with frangipani, yellow palms, jasmine, yuccas, hibiscusand orchids. There is also a waterfall which forms into a river with lotus flowers gently flowing through the garden.
There are eight dedicated and discreet staffs in Villa Kemala including a villa manager, chef, villa attendants, gardeners and evening/night security. The staff looks after you during your stay and tends to any special requests. The chef can prepare both Western, Asian and Balinese meals where all ingredients are purchased fresh daily from the local markets.
• Use of local phone to call Bali with complimentary start credit.


Published: July 12, 2013 at 05:48 p.m.
Updated: July 12, 2013 at 09:20 p.m.
Ron Jaworski is no fan of Tennessee Titans quarterback Jake Locker.
The former NFL quarterback-turned-ESPN analyst ranked Locker 31 out of 32 starting quarterbacks entering the 2013 season. Only Matt Flynn of the Oakland Raiders fared worse in Jaws' eyes.
As you might imagine, Locker didn't think much of the analysis.
"It doesn't matter to me," Locker said Friday at his annual football camp, according to The City Paper in Nashville. "It is a preseason ranking, no games have been played. So in my opinion, it means nothing."
Jaworski questioned Locker's accuracy and awareness in the pocket.
"People can judge, do whatever they want," Locker said. "I am going to go out and play and do what I always have and do the best I can to put us in a position to win. That is my goal, and people can say and do what they want. To me, it doesn't really matter."
We wouldn't rank Locker quite as low as Jaworski did, but there's no doubt the pressure will be on for a substantial jump in production as Locker enters his third season. The Titans have given Locker weapons to throw to, a strong running game and a rebuilt offensive line.
If Locker can't move the Titans now, they'll find somebody else who will.


The 5215 series satisfies the requirements of many applications on PCBs for a precise, secure, compact and space-optimised design.
The pin and female header series complements W+P's range of friction lock headers in the field of surface-mounted SMT components, and is accordingly ideally suited for economical automated assembly.
SMT wire-to-board connectors are designed for a cable cross-section of AWG 36 – 30, and are also available as a single row version in horizontal design with a 1.2mm pitch.
The current rating of the copper alloy contacts is 1 A, the insulation material satisfies the flammability rating UL94V-0, and the temperature range of -25 to +85°C offers reliable functionality.
In light of the market trend towards miniaturisation, compact wire-to-board connectors are currently in high demand and they bring with them interesting solution possibilities, for example in the fields of instrumentation and control technology, communication engineering and medical technology.
« Electronics experts met at 'electronica' in Munich!


Many small businesses have started producing their own mobile apps as a way of increasing visibility and customer interest. While creating a functional mobile app requires a certain level of technological savviness, virtually anyone can come up with an idea and get the ball rolling. If you've always wanted to build an app from the convenience of your own home or virtual office, but the time and financial investment is a hindrance, you still have options. Fortunately, there are many mobile platforms available that can help you build an app on a budget, quickly and efficiently, with no coding knowledge required.
This cloud-based mobile app builder can be used to create apps for Android, iOS, and even the Windows Phone. Since this builder operates in the cloud, you won't have to install or download any software onto your own desktop or laptop, making this platform easy to get started with quickly. The platform includes a visual editor with drag and drop components, which make it easy to build the UI. With Appery.io you can connect to any REST API and use it in your app. With plans that range from free to $180/month for Premium, you'll be able to create a functional app while easily sticking to your marketing budget.
BuildFire's goal is to make it easy for businesses to create their own mobile aps. Within the platform there are two ways to build an app: do it yourself, or have a BuildFire developer do it for you for free. Ideal for those with very little technological experience, the click and edit dashboard, no-coding platform, and ease of changing designs, colors, layout, and content lets anyone with zero tech skills create and develop a high-quality app in just a few minutes. With small business-friendly features, such as push notifications, calendar integration, and a mobile website, BuildFire is great choice for anyone.
This platform allows anyone to create and manage their own iOS or Android app. Mobile Roadie supports all media types, and automatically imports RSS, Twitter, or Google News keywords. Also included in the platform is an auto-refreshing fan wall which allows users to chat with each other in real time. Although the platform's plans start at $125/month and cap out at $667/month for the Pro edition, you can use the free Mobile Roadie Connect app to preview your app from all multiple devices.
Appy Pie is one of the fastest growing cloud-based DIY mobile app creation tools for Windows, Android, and iOS apps for a reason – it's quick, easy, and subscription plans start at only $7/month for a single app. One advantage of this platform is that the apps are automatically published to their respective app stores, including Appy Pie's own marketplace. With the platform, you'll have the options to send push notifications, monetize with ads, see live analytics, and use GPS to track location. Appy Pie's app management tools allow for real-time updates, custom coding, and better customer interactions.
Formerly Conduit Mobile, this three-in-one app maker allows all types of businesses to create, promote, and manage mobile apps. In addition to being a DIY mobile app builder, Como also helps with distributing and managing your app. The platform's Marketing Genie provides a wide range of services to promote your app both on- and offline – including Facebook advertising campaigns, QR codes, window stickers, and other print materials. Como's paid plans start at $33/month and include unlimited downloads and the ability to quickly and efficiently build feature-rich apps.


Pictured in the Governor's office is Senator Mae Beavers, Governor Bill Haslam and Rep. Terri Lynn Weaver upon the signing of the Tennessee Health Care Freedom Act on Friday.
Governor Bill Haslam on Friday signed legislation approved by the General Assembly to allow Tennessee patients to make their own health care choices regardless of the federal action taken in Washington last year.
Senate Bill 79, sponsored by Senator Mae Beavers (R-Mt. Juliet) and Representative Terri Lynn Weaver (R-Lancaster), does not seek to "nullify" any federal law, as it would allow individuals the option to participate in a federal program.
However, it acknowledges the right of Tennesseans to refuse to participate in a government-run health insurance program.
The legislation, called the Tennessee Health Care Freedom Act, seeks to protect a citizen's right to participate, or not participate, in any healthcare system in Tennessee, and would prohibit the federal government from imposing fines or penalties on that person's decision.
That's great news. We may finally have some true courageous folks in office who have a sense of responsibility. The Federal Courts have ruled that it is un-constitutional to require a citizen of the United States of America to purchase something based on a Federal mandate.


The discharge rate capability of Li–air batteries is substantially increased by using perfluorinated compounds as oxygen carriers. The solubility of oxygen in a non-aqueous electrolyte can be significantly increased by the introduction of such compounds, which leads to the increase in the diffusion-limited current of oxygen reduction on the gas diffusion electrode in a Li–air battery. The perfluorinated compound is found to be stable within the electrochemical window of the electrolyte. A powder microelectrode and a rotating disk electrode were used to study the gas diffusion-limited current together with a rotating disk electrode. A 5 mA cm−2 discharge rate is demonstrated in a lab Li–O2cell.


Is there any good reason why ghost won't leave? That is a superb inquiry. In any case, the best way to answer that inquiry is to request that the apparition or turn into a phantom and discover direct. On the off chance that you ask 100 diverse paranormal specialists or phantom seekers, you will find no less than 100 unique solutions regarding why apparition won't leave.
To begin with we have to comprehend the hypotheses behind phantom and why they remain and why some of them are never observed or gotten notification from again.
The hypotheses cover an extensive variety of themes and any paranormal examiner can make their hypothesis fit the sensible clarification they have concocted.
For those of us that have confidence in apparitions and spirits, we comprehend that most hypotheses spin around the way that the phantom may not understand they have passed and may have un-completed business on earth.
I know it sounds insane, an apparition having incomplete business however in a considerable measure of hypotheses about phantoms this is one of the primary reasons apparitions will stay nearby.
For instance, at a few areas that have had a considerable measure of brutal violations (kill) phantom will probably stay in that area.
A large portion of the speculations spun around the individual were killed before the time had come to pass on to life following death. Now and again the phantom might possibly even acknowledge they are presently an apparition. At that point obviously if the apparition doesn't understand they are expired then it is likely they will stay on earth.
A few people have posted speculations of phantom tend to hang out in a region where there are a variety of feelings and energies. For instance, when I initially began apparition chasing I never acknowledged what number of government funded schools have detailed paranormal action. As I continued examining the exercises at the schools on hypothesis I continued running crosswise over was that there are such a large number of understudies in a school each school day and with those understudies comes an over whelming measure of vitality. With the vitality will likewise come each conceivable feeling you could think about all consolidated into one area. Since the hypotheses states phantoms require vitality, what better place to get all the vitality an apparition required.
Another area that appeared to have a ton of action has been inn/motels. At the end of the day this hypothesis all focuses back to the quantity of individuals there in a days' chance and all of vitality and distinctive passionate that every one of the general population carry with them when they check in.
Presently likewise with the inn/motel hauntings, I have additionally perused a considerable measure of the inns have been based on frequented grounds. The apparition may have nothing to do with the lodging at everything except in light of the fact that this was the area of their passing before the inn was constructed, the phantom has chosen to hang out and watch you check in. Ideally you can look at.


text:
Domain Name System (DNS) 9 February 2016
Sudanese new IDN ccTLD domain in Arabic (سودان.) launched by the Internet Society Sudan Chapter
By Betel HailuManager, Organization Members Engagement
The Internet Society Sudan Chapter has launched the new Arabic Internationalized Domain Name (IDN) (سودان.), on 26 January 2016. The event was attended by the Minister of Telecommunication of Sudan, Heads of Universities, Telecom Operators and Members of the Community.
During the launch, the Minister of Telecommunication of Sudan expressed his gratitude to the Internet Society Sudan Chapter for the great work it has done in successfully accomplishing the IDN project.
The president of the Internet Society Sudan Chapter, Engineer Nadir Ahmed also extended his encouragement to registrars, resellers and all interested parties to follow the good example and obtain their own (سودان.) Domain Names.
According to the Internet Society Sudan Chapter the registration of the IDN ccTLD Domain in Arabic language (سودان.) is composed of three stages, which are:
SUNRISE – from 26 January to 26 February 2016: the registration will be open only for registered trade marks owners
LANDRUSH – from 1 to 15 March 2016: the registration will be open for a special price of about 1 USD
GENERAL REGISTRATION – 25 March 2016 onward: the registration will be open for everyone at a regular price
The new Domain will help increase Internet usage penetration in Sudan and promote the development of local content.
The launch was an occasion to award trophies to various Universities, Governments agencies, Operators and Individuals who have relentlessly supported the IDN project right from the start.
A big congratulation to the Internet Society Sudan Chapter!
About the Internet Society Sudan Chapter
The Internet Society Sudan Chapter provides the Sudanese community leadership in addressing key issues about the roles of the Internet. It also leads and supports the society in making best use of the Internet in order to promote Sudanese socio-economic development and growth. The Chapter also aims at providing support and information on all Internet related-issues in order to enable individuals, businesses and professional organizations to effectively achieve their objectives.
Website of the Internet Society Sudan Chapter
Find out more about the Internet Society and its Chapters
Domain Name System (DNS), Africa, ccTLD, Chapters
Internet Society Joins Leading Internet Advocates to Call on ISPs to Commit to Basic User Privacy Protections
Mozilla, the Electronic Frontier Foundation, and the Internet Society call on AT&T, T-Mobile, and Verizon to commit to limiting...
Improving Technical Security 15 March 2019
DNS Privacy Frequently Asked Questions (FAQ)
We previously posted about how the DNS does not inherently employ any mechanisms to provide confidentiality for DNS transactions,...
Introduction to DNS Privacy
Almost every time we use an Internet application, it starts with a DNS (Domain Name System) transaction to map...

redpajama_set_name: RedPajamaCommonCrawl


Several years ago, poet/farmer Wendell Berry penned a controversial essay titled "Why I am Not Going to Buy a Computer," in which he presented a clearheaded rationale for not buying into this form of technological slavery. His critics countered that computers enable them to follow and respond to the numerous environmental issues we face.
Berry replied that he didn't need a computer to tell him the planet was in environmental crisis—all he had to do was drive down the road or look out his window. I do own a computer, but I find more truth in his observation every day. More and more, I find myself wishing I could throw the cursed thing out the window.
Out in North Dakota for the annual conference of the Outdoor Writers Association of America, I called home daily, asking my wife if we'd received any rain at our home in Macon County. For a whole week, the answer was the same: No. It was only late June and already there was drought, with record temperatures twice that month. Something isn't right with this weather, and I've been hearing this for several years now from various elders in my community—many of whom, I daresay, have never turned on a computer.
John Cooper of the Wildlife Management Institute and the Bipartisan Policy Center opened the session by handing out copies of a new publication titled Season's End: Global Warming's Threat to Hunting and Fishing. Drawing on a massive compilation of climate data, the publication also discusses shifting waterfowl migration patterns, a predicted loss of range for the Southern Appalachian brook trout, and temperature impacts on a wide range of species. His presentation was sound, measured and tinged with a certain sadness concerning his predictions about the world his grandchildren would inherit.
But James Taylor of The Heartland Institute was upbeat, positive and armed with his own data aiming to prove Cooper and the other panelist, Doug Inkley of the National Wildlife Federation, wrong.
Taylor presented slide after slide of graphs showing planetary temperature trends over thousands of years. North America, he said, is wetter than ever, and the Arctic ice packs aren't really melting. Citing long lists of scientists who've refuted climate change, Taylor mounted a frontal assault on groups like Greenpeace and the Environmental Defense Fund, which he said are behind many of the reports on climate change.
Back in my hotel room, it didn't take much time online to find out where Taylor's group gets its funding. ExxonMobil is the biggest contributor, followed by Philip Morris (The Heartland Institute previously spent a fortune fighting scientific reports on the health effects of secondhand smoke). Yet many in attendance responded quite favorably to Taylor's presentation. One yelled "God bless you!"; another went up and gave him a hug. And these were outdoors writers.
Many other conference attendees seemed to share my dismay, however, feeling that Taylor's presentation had further confused what is probably the gravest situation facing the planet. It made me think of the proverbial saying, "There are three kinds of lies: lies, damn lies, and statistics." I felt Taylor did a good job of representing all three categories.
That same day, the U.S. Climate Change Science Program released a report on the effects of climate change on agriculture, land and water resources, and biodiversity. The report finds that climate change is already affecting U.S. water resources, agriculture, land resources and biodiversity and will continue to do so. Among the highlights are: Grain and oil-seed crops will mature more rapidly, but rising temperatures will increase the risk of crop failure, particularly if precipitation decreases or becomes more variable. Predicted higher temperatures will reduce winter livestock mortality, but hotter summers will produce far greater mortality. Higher temperatures will also reduce the productivity of livestock and dairy animals. Elevated atmospheric carbon-dioxide levels will cause weeds to grow faster and migrate northward while becoming less vulnerable to herbicides.
There are some hopeful signs however. The Climate Security Act proposed by Sens. John Warner and Joseph Lieberman recently reached the Senate floor, and though it's not likely to pass soon, it would cover a 39-year period (2012 through 2050), providing roughly $487 billion to protect natural resources. That's an average investment of $12.5 billion per year—an unprecedented commitment to conserving our natural heritage for future generations. The funding would come from a cap-and trade program under which a declining number of "allowances" (permits to release greenhouse-gas pollution) would be distributed annually to industries and government entities, which could then sell them on the open market.
But as my computer churned away in the Bismarck Airport after the conference had ended, I was thinking about the coal being strip-mined in Appalachia to provide the electricity I was using to write this article. It wasn't a good feeling.
On the flight home, I could look out the window and see first the drought-ridden plains that Dakotans had complained about all week, and then the flooding Missouri River. Flying over the Southern Appalachians, I looked for those thirsty, ancient mountain rivers that I love so much, wondering how my own river at home looked. The laptop was in my carryon, silent—and there's nothing it could tell me that I couldn't already see.


text:
Journal of Nanomaterials
Annual Issues ·
To receive news and publication updates for Journal of Nanomaterials, enter your email address in the box below.
Full-Text HTML
Full-Text ePUB
Full-Text XML
Linked References
ePub 30
Volume 2013, Article ID 320375, 5 pages
Fabrication and Characterization of Thin Film Solar Cell Made from CuIn0.75Ga0.25S2 Wurtzite Nanoparticles
Fengyan Zhang,1 Chivin Sun,2 Cyril Bajracharya,2 Rene G. Rodriguez,2 and Joshua J. Pak2
1Institute for Solar Energy, Xiamen University, Xiamen, Fujian, China
2Department of Chemistry, Idaho State University, Pocatello, ID 83209, USA
Received 20 February 2013; Revised 17 April 2013; Accepted 7 May 2013
Academic Editor: Weidong Zhou
Copyright © 2013 Fengyan Zhang et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
CuIn0.75Ga0.25S2 (CIGS) thin film solar cells have been successfully fabricated using CIGS Wurtzite phase nanoparticles for the first time. The structure of the cell is Glass/Mo/CIGS/CdS/ZnO/ZnO:Al/Ag. The light absorption layer is made from CIGS Wurtzite phase nanoparticles that are formed from single-source precursors through a microwave irradiation. The Wurtzite phase nanoparticles were converted to Chalcopyrite phase film through a single-step annealing process in the presence of argon and sulfur at 450°C. The solar cell made from Wurtzite phase nanoparticles showed 1.6% efficiency and 0.42 fill factor.
Current CIGS thin film solar cells using evaporation or sputtering processes are expensive, and the composition uniformity is difficult to control on a large scale. Recent studies show that through spraying or printing, the light absorption layer can be made from a nanoparticle ink, which shows promise to reduce the fabrication cost of the solar cell significantly [1–5]. But, the process to convert nanoparticle layers into a dense film with large grain-sizes and a pin hole/crack-free surface is difficult to achieve. Large particle sizes with more labile passivation ligands are preferred in order to lower the thermal budget and reduce the cost of the sintering process. More labile ligands require a lower temperature for their removal, and larger particles have less passivation layer to remove, relatively speaking, since their surface area to volume ratio is lower. The solution method does not lend itself well to the growth of larger CIGS nanoparticles in the Chalcopyrite phase. In our case, we chose to use large-sized CIGS particles in a different metastable phase, Wurtzite particles, and then convert them into a Chalcopyrite phase CIGS thin film at higher temperature.
The CIGS Wurtzite phase has been prepared by several research groups recently [6–15], and it has the same composition as the Chalcopyrite phase. Wurtzite phase is a cation disordered polymorph of Chalcopyrite with copper and indium cations randomly sharing common lattice sites. It belongs to space group P63mc with nm and nm. The hexagonal plate-shaped nanocrystals offer potential to be packed differently compared to spherical Chalcopyrite nanoparticles and ultimately produce a large grain size and better connectivity in the resulting film when annealed. Since the CIGS Wurtzite phase is a metastable phase, it can be effectively converted to a Chalcopyrite phase via simple thermal treatment at high temperature [6]. The growth process of the Wurtzite phase nanoparticles is also controllable, and it has been demonstrated that certain reaction conditions can be used to produce large-sized hexagonal plate particles with a lower surface area to volume ratio than smaller Chalcopyrite particles. Steinhagen et al. recently reported the use of CuInSe2 Wurtzite nanowires in the fabrication of solar cells with 0.1% efficiency [15]. To the best of our knowledge, Wurtzite structured CIGS nanoparticles have not been fabricated into a solar cell. In this paper, we describe the procedures of fabricating a CIGS thin film solar cell from large metastable Wurtzite phase nanoparticles.
2.1. Device Construction
The device structure used in these studies is one that is commonly used for CIGS thin film cell construction, Glass/Mo/CIGS/CdS/ZnO/ZnO:Al/Ag [16]. The Mo layer was deposited by DC sputtering using a Denton Desktop Pro. The current used was 300 mA and the pressure was held at 0.67 Pa. The thickness of Mo layer was 0.5 μm with resistivity of 5 × 10−5 ohm-cm. Thin film of Wurtzite CIGS absorber layer was deposited using an ink containing 20 wt% nanoparticles in toluene on top of the Mo.
The CIGS nanoparticles were synthesized by decomposing the appropriate single source precursors (SSPs), (Ph3P)2Cu(μ-SC2H5)2In(SC2H5)2 (1) and (Ph3P)2Cu(μ-SC2H5)2Ga(SC2H5)2 (2), as described in the literature [17–21]. Using this established procedure, CIGS nanoparticles containing 75% In and 25% Ga, in primarily Wurtzite phase, were obtained. In Figure 1, the TEM micrograph of CIGS nanoparticles clearly shows hexagonal plate features of Wurtzite phase mixed with some very smaller Chalcopyrite nanoparticles. The SAED data is consistent with predominant Wurtzite phase mixed in with Chalcopyrite (Figure 1).
Figure 1: TEM micrograph with SAED inserts of the Wurtzite CIGS nanoparticles.
The Wurtzite CIGS nanoparticles were made into an ink containing 20 wt% nanoparticles in toluene. The doctor blade technique was used to apply the film onto the Mo surface; then a pressure of 68.9 MPa was used to increase the density of the film. Annealing in a sulfur and argon atmosphere was then performed at 450°C. This temperature was chosen because thermal gravimetric analysis/mass spectrometry analysis of Wurtzite nanoparticles indicated that alkyl sulfide passivating groups leave the CIGS nanoparticle at temperatures between 250 and 350°C [18]. In addition, the phase conversion from Wurtzite to Chalcopyrite, recrystallization and grain growth of the CIGS thin films normally occur between 450–600°C [6]. In order to minimize the defects in the CIGS film and to achieve the required thickness, three applications of the CIGS layer were performed followed by annealing at 450°C. The thickness of CIGS layer used in the solar cells was 5 μm based on SEM measurements. After forming the light absorbing layer, the rest of the CdS/ZnO/ZnO:Al layers were fabricated.
The CdS buffer layer was deposited on the CIGS using the chemical bath deposition method from aqueous solutions of CdCl2·2H2O, NH4OH, NH4Cl, and thiourea. The concentrations were 0.0036 M, 0.360 M, 0.024 M, and 0.009 M, respectively. The deposition temperature was kept at 70°C using a water bath, and the deposition time was 45 min with continuous stirring. The achieved film thickness was about 100 nm. After the CdS deposition, the Glass/Mo/CIGS/CdS portion of the cell was subjected to further annealing in a sulfur and argon atmosphere at 200°C for 30 min to increase the density of the CdS layer.
The ZnO film was then deposited using the Denton sputtering tool. Some experimentation with this layer was necessary in order to achieve a high transparency and low resistivity. The optimal parameters to form a 100 nm ZnO thin film were (1) the current at 80 mA, (2) an Ar/O2 flow of 21 sccm/14 sccm, (3) the chamber pressure of 0.67 Pa, and (4) a temperature of 160°C. The resulting ZnO film exhibited resistivity of ohm-cm with 90% transparency. The ZnO:Al film was deposited with the same sputtering tool. However, for this layer, RF sputtering was used. The composition of the RF target was ZnO with 2 wt% Al2O3. The RF power was kept at 100 W and the substrate temperature was 160°C. The achieved resistivity of the RF sputtered ZnO:Al was ohm-cm with 90% transparency at 700 nm wavelength. The thickness of the ZnO:Al used in the solar cell was around 400 nm.
The device was completed by applying Ag paste in a line for the top contact. The electrical contacts were then made to the silver paste on the top and the Mo layer on the bottom.
2.2. Synthesis of CuIn0.75Ga0.25S2 Wurtzite Nanoparticles
Equal amounts of SSPs 1 and 2, (Ph3P)2Cu(μ-SEt)2In(SEt)2 (SSP 1, 6.00 g, 6.33 mmol) and (Ph3P)2Cu(μ-SEt)2Ga(SEt)2 (SSP 2, 5.71 g, 6.33 mmol), are dissolved in dried benzene (60 mL) in the presence of one equiv of 1,2-ethanedithiol (1.06 mL, 12.66 mmol). The mixture was stirred at room temperature for 5 min and the liquid was evaporated off to afford a solid precursor 3. In a dry Milestone microwave vessel, the precursor 3 (1.714 g) and (Ph3P)2Cu(μ-SEt)2In(SEt)2 (SSP 1, 1.243 g) was dissolved in benzyl acetate (20.0 mL) followed by addition of 3-mercaptopropionic acid (4.0 mL). The solution was capped and stirred for 5 min at room temperature. The reaction mixture was then irradiated with microwaves in a Milestone Microwave (Labstation ETHOS EX). The reaction was ramped for 15 min to reach the temperature of 240°C and was held for 1 h. Upon completion, the reaction was cooled to room temperature to yield black precipitation of CuIn0.75Ga0.25S2 Wurtzite nanoparticles. The resulting nanoparticles were isolated from the benzyl acetate solution by centrifugation and washed three times with CH3OH to remove any impurities. The product was then dried in vacuo to provide a black powder. The nanoparticles were dispersed in toluene as 20 wt% ink.
Characterization of the nanoparticles was performed with a JEOL 2010 high-resolution transmission electron microscope (HRTEM) with a spatial resolution of 0.194 nm. Powder X-ray diffraction (XRD) patterns were acquired with a Bruker D8 Discover diffractometer using CuKa radiation and a scintillation detector. Scans were collected for 4 hrs employing a 0.06° step width at a rate of 10 s/step resulting in a 2θ scan range from 10–60°.
As seen in Figure 2, the XRD data of CIGS thin film made from the Wurtzite phase nanoparticles displays three characteristic peaks between 2θ of 25 and 33 with significant broadness indicating small nanoparticle sizes. Upon annealing at 450°C for 1 hour, in a sulfur and argon atmosphere, the peaks converged and the characteristic XRD pattern for Chalcopyrite phase emerged. The widths of the peaks in the post-annealed XRD trace clearly show that the films made from Wurtzite CIGS nanoparticles were converted into a large crystalline Chalcopyrite phase film indicated by sharp peaks [6].
Figure 2: XRD spectra of the nanoparticles before and after annealing.
In Figure 3, SEM images of thin films deposited with the Wurtzite nanoparticles before and after annealing show that the grain sizes have grown to about 150 nm after annealing. Although a significantly larger grain size cannot be clearly seen in the SEM images, the nanoparticles appear to have fused together to make a continuous path for the carriers.
Figure 3: SEM images of the Wurtzite nanoparticles deposited in a thin film. The preannealed image is on the left, and the postannealed figure is on the right.
The light collecting area of the solar cells was measured to be about 0.25 mm2. A Sciencetech AM 1.5 Solar Simulator was used as the light source and electrical characteristics were measured using a Keithley 2400 source meter. Calibration of the light intensity was accomplished with an Ocean Optics light sensor. Cell parameters were derived from the current-voltage ( - ) curves, (Figure 4), of the solar cell. The efficiency of our best CIGS Wurtzite solar cell was reported in Table 1 in comparison to our best CIGS Chalcopyrite solar cell. An efficiency of 1.6% with a fill factor (ff) of 0.42 was achieved for the solar cell made from CIGS Wurtzite phase nanoparticles.
Table 1: Comparison of cell properties including open-circuit voltage, short-circuit current, between Wurtzite-based and Chalcopyrite-based solar cells annealed at 450°C.
Figure 4: Representative - curves for a Wurtzite-based solar cell collected in the dark and in the light.
There are several potential explanations for why our Wurtzite-based solar cells had better efficiency than the cell constructed with Chalcopyrite nanoparticles. One explanation is that our hexagonal plate Wurtzite phase nanoparticles were much bigger in size thus had less surface area than smaller spherical Chalcopyrite phase nanoparticles. Less surface area means less organic passivation layer that needs to be removed to achieve a well-connected, large grain size CIGS layer. From our previous experience, the annealing temperature using Chalcopyrite phase nanoparticles normally needs to be 550°C or higher. We have observed that annealing Wurtzite nanoparticles at 450°C provide similar or better PV properties than Chalcopyrite nanoparticles that are annealed at 550°C.
A second explanation is that Wurtzite-based solar cells should show higher efficiency than our own Chalcopyrite-based solar cells is related to the relative stability of the Wurtzite phase. Since, the Wurtzite phase is a metastable phase, conversion to the Chalcopyrite phase results in a net release of energy, once the activation barrier has been overcome. The larger Wurtzite nanoparticles thus must lose energy to become large Chalcopyrite particles, and the excess energy could be used to shed the passivation layers allowing for a larger grain size.
Finally, when making solar cells using Wurtzite phase nanoparticles, the phase change of the nanoparticles from Wurtzite to Chalcopyrite is accompanied by a density change. For CuIn0.75Ga0.25S2, the unit cell parameters are nm, nm for Wurtzite and nm, nm for Chalcopyrite, and these values yield calculated densities of 4.57 g/cm3 and 4.24 g/cm3, respectively. The more dense Wurtzite material is converted to the less dense Chalcopyrite phase during the 450°C annealing step. The volume per mass must increase suggesting that the CIGS material must swell. This swelling would likely help reduce the presence of defect sites and produce a more efficient absorber layer in the final cell.
Figure 4 shows the current-voltage ( ) plots in the light and in the dark of a solar cell processed from CIGS Wurtzite phase nanoparticles. These plots and the fill factor given in Table 1 are comparable with many published results using Chalcopyrite thin films, which were normally fabricated at 450°C or higher annealing temperatures [22]. In addition, for comparison, our own reference Chalcopyrite reference cells had much lower efficiency of 0.015% and a fill factor of 0.35 when constructed in analogous manner. Thus, the use of Wurtzite phase CIGS nanoparticles as a basis for the production of the absorber layer has no detrimental effects and has the potential to produce nanoparticle-based solar cells with higher efficiency than cells made from the Chalcopyrite phase nanoparticles.
In conclusion, an alternative route using CIGS Wurtzite nanoparticles for the fabrication of CIGS thin film photovoltaic devices has been demonstrated. The 0.25 mm2 solar cell showed an efficiency of 1.6% with a fill factor of 0.42. The and of the cell were 15 mA/cm2 and 230 mV, respectively after annealing the cell by a single step in a sulfur and argon atmosphere at 450°C. The utility of CIGS Wurtzite nanoparticles is promising for a high-throughput and high-yield process for low-cost thin film solar cells. The large Wurtzite particle size, less organic ligands, and density change associated with converting the Wurtzite phase to Chalcopyrite phase may all play an important role on making a better quality absorber layer with less defects and less energy. These properties are critical for improving the thin film CIGS solar cell's performance. Further optimization of the annealing process by increasing the annealing temperature and adjusting the time or by using a RTA process will likely further improve the cell efficiency.
The authors Chivin Sun, Rene G. Rodriguez, and Joshua J. Pak would like to acknowledge partial support from DOE EPSCoR Grant no. (DE-FG02-04ER46142) for this work. Analysis of materials in this work was partially supported by the National Science Foundation under Grant no. (NSF CHE-1048714). Synthetic efforts in this work were partially supported by the National Science Foundation under Grant no. (NSF CHE-108952). The authors would also like to thank Anna Hoskins for help with the electrical measurements and Aaron Thurber at Boise State University for the assistance with TEM work.
Q. Guo, G. M. Ford, H. W. Hillhouse, and R. Agrawal, "Sulfide nanocrystal inks for dense Cu(In1−xGax)(S1−ySey)2 absorber films and their photovoltaic performance," Nano Letters, vol. 9, no. 8, pp. 3060–3065, 2009. View at Publisher · View at Google Scholar · View at Scopus
Q. Guo, S. J. Kim, M. Kar et al., "Development of CulnSe2 nanocrystal and nanoring inks for low-cost solar cells," Nano Letters, vol. 8, no. 9, pp. 2982–2987, 2008. View at Publisher · View at Google Scholar · View at Scopus
B. D. Weil, S. T. Connor, and Y. Cui, "CuInS2 solar cells by air-stable ink rolling," Journal of the American Chemical Society, vol. 132, no. 19, pp. 6642–6643, 2010. View at Publisher · View at Google Scholar · View at Scopus
M. G. Panthani, V. Akhavan, B. Goodfellow et al., "Synthesis of CuInS2, CuInSe2, and Cu(InxGa1−x)Se2 (CIGS) nanocrystal "inks" for printable photovoltaics," Journal of the American Chemical Society, vol. 130, no. 49, pp. 16770–16777, 2008. View at Publisher · View at Google Scholar · View at Scopus
L. Li, N. Coates, and D. Moses, "Solution-processed inorganic solar cell based on in situ synthesis and film deposition of CuInS2 nanocrystals," Journal of the American Chemical Society, vol. 132, no. 1, pp. 22–23, 2010. View at Publisher · View at Google Scholar · View at Scopus
Q. Yunxia, L. Qiangchun, T. Kaibin, L. Zhenghua, R. Zhibiao, and L. Xianming, "Synthesis and characterization of nanostructured wurtzite CuInS2: a new cation disordered polymorph of CuInS2," Journal of Physical Chemistry C, vol. 113, no. 10, pp. 3939–3944, 2009. View at Publisher · View at Google Scholar · View at Scopus
M. E. Norako and R. L. Brutchey, "Synthesis of metastable wurtzite CuInSe2 nanocrystals," Chemistry of Materials, vol. 22, no. 5, pp. 1613–1615, 2010. View at Publisher · View at Google Scholar · View at Scopus
M. E. Norako, M. A. Franzman, and R. L. Brutchey, "Growth kinetics of monodisperse Cu-In-S nanocrystals using a dialkyl disulfide sulfur source," Chemistry of Materials, vol. 21, no. 18, pp. 4299–4304, 2009. View at Publisher · View at Google Scholar · View at Scopus
D. Pan, L. An, Z. Sun et al., "Synthesis of Cu-In-S ternary nanocrystals with tunable structure and composition," Journal of the American Chemical Society, vol. 130, no. 17, pp. 5620–5621, 2008. View at Publisher · View at Google Scholar · View at Scopus
S. K. Batabyal, L. Tian, N. Venkatram, W. Ji, and J. J. Vittal, "Phase-selective synthesis of CuInS2 nanocrystals," Journal of Physical Chemistry C, vol. 113, no. 33, pp. 15037–15042, 2009. View at Publisher · View at Google Scholar · View at Scopus
Y.-H. A. Wang, X. Zhang, N. Bao, B. Lin, and A. Gupta, "Synthesis of shape-controlled monodisperse wurtzite CuInxGa1−xS2 semiconductor nanocrystals with tunable band gap," Journal of the American Chemical Society, vol. 133, no. 29, pp. 11072–11075, 2011. View at Publisher · View at Google Scholar · View at Scopus
S. T. Connor, C.-M. Hsu, B. D. Weil, S. Aloni, and Y. Cui, "Phase transformation of biphasic Cu2S-CuInS2 to monophasic CuInS2 nanorods," Journal of the American Chemical Society, vol. 131, no. 13, pp. 4962–4966, 2009. View at Publisher · View at Google Scholar · View at Scopus
B. Koo, R. N. Patel, and B. A. Korgel, "Wurtzite-Chalcopyrite polytypism in CuInS2 nanodisks," Chemistry of Materials, vol. 21, no. 9, pp. 1962–1966, 2009. View at Publisher · View at Google Scholar · View at Scopus
K. Nose, Y. Soma, T. Omata, and S. Otsuka-Yao-Matsuo, "Synthesis of ternary CuInS2 nanocrystals; phase determination by complex ligand species," Chemistry of Materials, vol. 21, no. 13, pp. 2607–2613, 2009. View at Publisher · View at Google Scholar · View at Scopus
C. Steinhagen, V. A. Akhavan, B. W. Goodfellow et al., "Solution-liquid-solid synthesis of CuInSe2 nanowires and their implementation in photovoltaic devices," ACS Applied Materials and Interfaces, vol. 3, no. 5, pp. 1781–1785, 2011. View at Publisher · View at Google Scholar · View at Scopus
U. Rau and H. W. Schock, Clean Electricity from Photovolatics, vol. 1, Imperial College Press, London, UK, 2001.
C. Sun, J. S. Gardner, G. Long et al., "Controlled stoichiometry for quaternary CuInxGa1-xS2 chalcopyrite nanoparticles from single-source precursors via microwave irradiation," Chemistry of Materials, vol. 22, no. 9, pp. 2699–2701, 2010. View at Publisher · View at Google Scholar · View at Scopus
C. Sun, R. D. Westover, G. Long et al., "A large-scale synthesis and characterization of quaternary CuInxGa1-xS2 chalcopyrite nanoparticles via microwave batch reactions," International Journal of Chemical Engineering, vol. 2011, Article ID 545234, 8 pages, 2011. View at Publisher · View at Google Scholar · View at Scopus
K. R. Margulieux, C. Sun, L. N. Zakharov, A. W. Holland, and J. J. Pak, "Stepwise introduction of thiolates in copper-indium binuclear complexes," Inorganic Chemistry, vol. 49, no. 9, pp. 3959–3961, 2010. View at Publisher · View at Google Scholar · View at Scopus
W. Hirpo, S. Dhingra, A. C. Sutorik, and M. G. Kanatzidis, "Synthesis of mixed copper-indium chalcogenolates. single-source precursors for the photovoltaic materials CuInQ2 (Q = S, Se)," Journal of the American Chemical Society, vol. 115, no. 4, pp. 1597–1599, 1993. View at Google Scholar · View at Scopus
K. K. Banger, M. H.-C. Jin, J. D. Harris, P. E. Fanwick, and A. F. Hepp, "A new facile route for the preparation of single-source precursors for bulk, thin-film, and nanocrystallite I-III-VI semiconductors," Inorganic Chemistry, vol. 42, no. 24, pp. 7713–7715, 2003. View at Publisher · View at Google Scholar · View at Scopus
R. Brini, M. Kanzari, B. Rezig, and J. Werckmann, "Effect of annealing on properties of CuInS2 thin films," The European Physical Journal Applied Physics, vol. 30, no. 3, pp. 153–158, 2005. View at Publisher · View at Google Scholar · View at Scopus


Enjoy tables and tables of delicious desserts while trying your luck in our HUGE Chinese auction. The prizes get better every year! Bring your family and friends for a fun night to help save animals from abuse.


I have dreamed to become a lawyer since my childhood. Now I am the student of a Law Department and I am still puzzling all over my dream. I devote all time my dream comes true. Yes, dreams really come true if we believe and do our best for that. I am pretty talkative and a sociable person, so I am sure we will find a lot of topics to discuss with. During my whole life I attend myself with best people and I feel special. My spare time I spend with my close people and share out thoughts, secrets and dreams. We are often going for a walk, visit cinemas, theatres, cafes etc. I care about my body and health so I play tennis and visit fitness club, it keeps me fit and brisk. The other thing which makes me happy is travelling .I find this hobby pretty important part of my life. I try to travel at the first opportunity and think all impressions must be shared with somebody, otherwise it is meaningless. Moreover I want to see the world as much as possible keeping your hand next to me.
Are you looking for someone who will make your life more interesting, brighter and full of happiness and joy? Then you are at the right place. Welcome! Here is a lady whose heart and soul are open for you! My name is Laura and I am a cheerful, confident, sociable, simple and a funny woman! Life is fleeting and colorful that is why we should take just the best moments. Do you see the magic and tale around us? We need and we should believe in Love and learn how to feel it. This is so important to share and appreciate every moment with the special man, enjoy small things and to be excited with the big ones together. There is nothing better than to feel the strong shoulder next to you, to smell the beloved aroma, to touch the precious hands, to kiss the sweetest lips. I hope I will touch your lonely soul with my words and action. Do you feel the Chemistry of Love in the air? I do! I am always open for communication and hope to find you, my true love.
I am looking for a man that first of all will be honest with me and who is ready to assume responsibility for our relations. There are two points which I find very important for making any relations. I am here to find an optimistic man who does not afraid to take risks and will be able to surprise. You know a lady appreciates nice words and flowers but mostly the actions play a huge role. I do not think the romance can be banal and I do not agree with people who really think so. Taking a bath full of champagne together and leaves of roses will be always appropriated. Are you ready? Finally must admit that real relationship should be based on friendship and respect. Being best friends during the day and perfect lovers at the night this is all that I want. And what about you?


Are you looking for a dress that will suit your daughter on the auspicious communion day? Well, then, it is time that you start visiting the local shops and the online stores in order to get the best for her communion day. This is one of the important days of her life and certainly, she would love it to be a memorable one. To do so, you will need to buy the best Communion Dress that you can get at the stores.
But before going to different stores, checking out styles and designs and comparing prices, you need to visit the church once where she will receive her communion. This is indeed necessary as all churches do not have the same traditions, and many of them would not approve any other style of dresses other than the traditional full sleeve ones. Once you are certain about what your requirement is, it will be a lot easier for you to choose from the options that you have.
Also, while choosing the dress for your daughter, try to focus on the kind of decoration you have planned and the kind of style she likes to wear. Most importantly order the dress at least a month in advance, so that in case the dress needs to be changed, it will be ready by the special day for sure. In case you are really confused with the choice and are unable to decide, it will be really wise to visit First Holy Communion as they have one of the best collections and no matter which one you choose, your daughter will look really great and you can be assured about that.


Mother's day is May 8th this year. What better way to spend a day with your Mom than on a photo safari. Join NYC Photo Safari for a photography workshop on May 11th or 12th and receive a $50 rebate.
To qualify you must register 2 participants for any single photo safari on May 11th or 12th. Rebate will be sent in the form of a check via regular mail following your a photo tour to the purchaser.
New York City Photo Safari, LLC is owned and operated by local New Yorkers! More Information about Our Photographers (link).
Register now space is limited.


Pupils will follow Kadel the Kangaroo around France's beautiful regions. The Alliance Française de Sydney was chosen by the NSW Department of Education in order to create culturally and linguistically enhancing lessons to complement language teaching in local schools. This workshop consists of independent 10 units. With Kadel you will enjoy learning French grammar with various fun activities.
Is your school equipped with the Distance And Rural Technologies (DART) platform? Then don't wait to register! You are a few clicks away from booking incredible interactive learning experiences for your students.


text:
La Casa degli Emigranti era un servizio milanese promosso e costituito nel 1907 dalla Società Umanitaria con il concorso del Comune di Milano. Sede della Casa era un fabbricato appositamente eretto nel piazzale posteriore della vecchia Stazione Centrale di Milano sorta nel 1864 nell'area oggi corrispondente a piazza della Repubblica: l'edificio fu inaugurato domenica 22 dicembre 1907. Scopo della Casa era di dare assistenza e ricovero agli italiani in procinto di emigrare all'estero durante la loro permanenza nei pressi della stazione ferroviaria. La Casa fu attiva per circa venti anni e venne demolita insieme alla Stazione quando divenne operativa la nuova Centrale terminata nel 1931.

Storia

La fondazione dell'Umanitaria aveva assunto i vari servizi di assistenza agli emigranti a seguito dello scioglimento, in quello stesso 1907, del Consorzio per la tutela dell'emigrazione temporanea in Europa, istituzione che l'Umanitaria aveva promosso dal 1894 e che aveva come scopo l'assistenza agli emigranti italiani verso la Svizzera, l'Austria, la Germania, la Francia, il Lussemburgo e gli Stati balcanici. Il Consorzio ebbe vita breve e si sciolse lasciando in eredità all'Ufficio per ì'emigrazinne della Società Umanitaria alcune istituzioni discretamente organizzate e un capitale d'esperienze e di studi prezioso. La costruzione della Casa fu dunque una delle attività che l'Umanitaria svolse a partire dal 1907 oer ovviare allo stazionamento di emigranti nell'atrio e sotto le tettoie esterne della stazione e per fornire servizi rispondenti agli speciali bisogni degli emigranti. In particolare la Casa entrava in funzione alle ore 20, chiudeva le porte a mezzanotte per riaprire alle sette del mattino. Nei suoi primi cinque anni di vita diede ospitalità gratuita a mezzo milioni di emigranti che potevano così trovare ospitalità, un pasto e un letto a prezzi modici e venire informati su orari ferroviari, coincidenze e cambi, organizzazione sindacale del Paese verso il quale stavano viaggiando e informazioni sul mercato del lavoro. Un'altra casa fu costituita a Piacenza, seguita da una a Bologna.

Architettura

L'edificio occupava parte del piazzale posteriore della Centrale (l'allora piazza G. Miani) ed era possibile accedervi direttamente dalla stazione. Era costituito da un ampio padiglione rettangolare a un piano della superficie di circa 350 mq all'interno del quale erano ospitati la sala d'aspetto, due dormitori, un ristorante, la cucina, i locali d'ufficio del dirigente e l'abitazione del custode. In un edificio aggiuntivo di 80 mq erano presenti gabinetti, docce e lavatoi. Il progetto del fabbricato e la direzione dei lavori fu assunto dall'Ufficio tecnico del municipale di Milano in accordo con l'Ufficio emigrazione dell'Umanitaria.

la casa venne definita dalla Rivista della beneficenza pubblica delle istituzioni di previdenza e di igiene sociale (gennaio 1908, Volume 36, Fascicolo 1) come segue: «La impressione riassuntiva dell'ambiente è quella di una ben riuscita iniziativa che aggiunge decoro a Milano, indice di buon patriottismo e fonte augurabile di benessere materiale e morale alla classe degli emigranti.»

Note

Bibliografia

Architetture di Milano scomparse

redpajama_set_name: RedPajamaWikipedia


text:
Still Dunno Much About History, but I'm Learning!
As I've gushed many times, many places, and just reminded myself deep in my controversy files, studying history does put things in perspective.
Cultural historian Jacques Barzun if he were still alive, might observe that the fires of the American Revolution helped define the era of the individual, but that was a good century after the old era's decay had been left behind. (Maybe more!)
Now here in 2007, the decadence is upon us full force and The Era of Exalting the Individual has gone as far as it can go — the party's over, and it's time to stop holding on. Baby boomers aren't gonna buy this, most likely, but that won't matter. It'll happen anyway. And it won't be pretty, not for the rest of OUR lives anyway; maybe our kids–or their grandkids–will get some amazing historical progress out of it though.
Barzun's turn-of-the-millennium masterwork "From Dawn to Decadence" covers the last 500 years. It was a surprise bestseller and National Book Award Finalist. All we can know about the next 500-year era, is that we can't know what's on the other side of all this culture clash and turmoil preceding its birth.
"The peoples of the West offered the world a set of ideas and
institutions not found earlier or elsewhere. . . it has been a unity combined
with enormous diversity. Borrowing widely from other lands, thriving on dissent and originality, the West has been the mongrel civilization par excellence. But . . .now these purposes, carried out to their utmost possibility, are bringing about its demise.
This ending is shown by the deadlocks of out times: for and against nationalism, for and against individualism, for and against the high
arts, for and against strict morals and religious beliefs.
The now-full-blown individual wields a panoply of rights, including
the right to do 'his own thing' without hindrance from authority. . . and of
course it requires more and more limitations in order to prevent my right from
infringing yours."
– Jacques Barzun, prologue of "From Dawn to Decadence"
Categories : Books, Change, Creative Class, Culture, History, Human Networking, Identity, Institutions and Individuals, Law & Politics, organizational behavior, Power of Story, Quotes, Thinking Parents
Net-working for Thinking Parents
Recent events have brought back one of my favorite thinking themes: how independent humans work and network with each other, how we create our own cultures of communication and why they work or don't work the ways we want and expect.
Systems theory may not hold the answers but its questions are fascinating, like what do home educators and jazz musicians have in common as self-governing communications networks?
"Thinking now that maybe jazz is a fine analogy to home education. Nobody owns it –except the individuals who love it. It is a subject for educators but it can't be taught or controlled or contained. (And "paying one's dues" has a whole different meaning from HSLDA or NHELD!) Not all jazz musicians know or like each other, nor are they like each other, yet independently they transcend labels and categories and network as they please to create transporting music, and build upon their diversity and free communication, something that DOES change the world. . .
. . .we needn't always default to some one absolute that's the *only* way to work together.
Consider "The Playful World: How Technology is Transforming Our Imagination" by Mark Pesce.
"In a world where our intelligence is embedded and distributed, where we have made the deep structures of the material world responsive, and we have nearly instantaneous access to anything known or thought or felt, we consequently have powers that would be described — just a few generations ago — as magical. . .
It will create new forms of culture and require us to learn a new language; our own languages can't quite cope with the confusion of tongues, mixed meanings and ambiguities . . ."
So when I hear people for the umpteeumpth time clash over mixed meanings or declare the superordinance of some obsolescing cultural concept like labor unions, school, factories, punishment, protectionism, war, or whatever, I — well, I — long for this conversation instead!
Categories : Books, Cognitive Psychology, Creative Class, Discipline-behavior, experimental, homeschooling, Human Networking, Institutions and Individuals, Internet Culture, Leadership, music, organizational behavior, Power of Story, Public Communication, Thinking Parents
Banging on College Doors With a Number 2 Pencil
So not only are college leaders perpetually confused about why their institutions exist and what their service to the community is meant to achieve (other than their own self-aggrandizement), but now they can't even figure out criteria to successfully match students and programs, without continuing to use a standardized commercial system they already know is indefensible? And these are the HIGHER education minds? Heaven help us all.
Nance found this news today:
Questions and topics covered by "College Admission Testing" are some of the most consistent and difficult issues to address in an admission environment in which institutions maintain a commitment to fairness, but which is also fundamentally exclusive at the highest levels.
Dr. Zwick offers provocative assessments of the admission testing landscape:
– "On the one hand, we think [selective admission] 'has unpleasant connotations of elitism, unfairness, snobbishness and uniformity.' On the other hand, we 'laud excellence, recognize its scarcity and utility, and endorse admissions on the basis of merit…'"
– "Testing experts have not been particularly helpful in clarifying the niche that admission tests are intended to fill, and disputes on this point have been prominent in recent debates about the fairness of the SAT."
– "Despite the fact that these debates are unresolved, SAT and ACT scores continue to be a key factor in admission decisions at most institutions."
– "The college admission tests of the future … are likely to be more focused on material that is taught in the classroom and on skills that clearly resemble those needed for college study."
Categories : colleges and universities, education, Institutions and Individuals, Law & Politics, Liberties and Rights, Power of Story, Research and Science, School versus Education, Shopping/consumerism, Standardized Testing, Thinking Parents, trends


text:
import mock
from oslo.config import cfg
from oslo.serialization import jsonutils
import webob

from nova import compute
from nova import exception
from nova import test
from nova.tests.unit.api.openstack import fakes

CONF = cfg.CONF
CONF.import_opt('password_length', 'nova.utils')

def rescue(self, context, instance, rescue_password=None,
           rescue_image_ref=None):
    pass

def unrescue(self, context, instance):
    pass

def fake_compute_get(*args, **kwargs):
    uuid = '70f6db34-de8d-4fbd-aafb-4065bdfa6114'
    return {'id': 1, 'uuid': uuid}

class RescueTestV21(test.NoDBTestCase):
    _prefix = '/v2/fake'

    def setUp(self):
        super(RescueTestV21, self).setUp()

        self.stubs.Set(compute.api.API, "get", fake_compute_get)
        self.stubs.Set(compute.api.API, "rescue", rescue)
        self.stubs.Set(compute.api.API, "unrescue", unrescue)
        self.app = self._get_app()

    def _get_app(self):
        return fakes.wsgi_app_v21(init_only=('servers', 'os-rescue'))

    def test_rescue_from_locked_server(self):
        def fake_rescue_from_locked_server(self, context,
            instance, rescue_password=None, rescue_image_ref=None):
            raise exception.InstanceIsLocked(instance_uuid=instance['uuid'])

        self.stubs.Set(compute.api.API,
                       'rescue',
                       fake_rescue_from_locked_server)
        body = {"rescue": {"adminPass": "AABBCC112233"}}
        req = webob.Request.blank(self._prefix + '/servers/test_inst/action')
        req.method = "POST"
        req.body = jsonutils.dumps(body)
        req.headers["content-type"] = "application/json"

        resp = req.get_response(self.app)
        self.assertEqual(resp.status_int, 409)

    def test_rescue_with_preset_password(self):
        body = {"rescue": {"adminPass": "AABBCC112233"}}
        req = webob.Request.blank(self._prefix + '/servers/test_inst/action')
        req.method = "POST"
        req.body = jsonutils.dumps(body)
        req.headers["content-type"] = "application/json"

        resp = req.get_response(self.app)
        self.assertEqual(resp.status_int, 200)
        resp_json = jsonutils.loads(resp.body)
        self.assertEqual("AABBCC112233", resp_json['adminPass'])

    def test_rescue_generates_password(self):
        body = dict(rescue=None)
        req = webob.Request.blank(self._prefix + '/servers/test_inst/action')
        req.method = "POST"
        req.body = jsonutils.dumps(body)
        req.headers["content-type"] = "application/json"

        resp = req.get_response(self.app)
        self.assertEqual(resp.status_int, 200)
        resp_json = jsonutils.loads(resp.body)
        self.assertEqual(CONF.password_length, len(resp_json['adminPass']))

    def test_rescue_of_rescued_instance(self):
        body = dict(rescue=None)

        def fake_rescue(*args, **kwargs):
            raise exception.InstanceInvalidState('fake message')

        self.stubs.Set(compute.api.API, "rescue", fake_rescue)
        req = webob.Request.blank(self._prefix + '/servers/test_inst/action')
        req.method = "POST"
        req.body = jsonutils.dumps(body)
        req.headers["content-type"] = "application/json"

        resp = req.get_response(self.app)
        self.assertEqual(resp.status_int, 409)

    def test_unrescue(self):
        body = dict(unrescue=None)
        req = webob.Request.blank(self._prefix + '/servers/test_inst/action')
        req.method = "POST"
        req.body = jsonutils.dumps(body)
        req.headers["content-type"] = "application/json"

        resp = req.get_response(self.app)
        self.assertEqual(resp.status_int, 202)

    def test_unrescue_from_locked_server(self):
        def fake_unrescue_from_locked_server(self, context,
            instance):
            raise exception.InstanceIsLocked(instance_uuid=instance['uuid'])

        self.stubs.Set(compute.api.API,
                       'unrescue',
                       fake_unrescue_from_locked_server)

        body = dict(unrescue=None)
        req = webob.Request.blank(self._prefix + '/servers/test_inst/action')
        req.method = "POST"
        req.body = jsonutils.dumps(body)
        req.headers["content-type"] = "application/json"

        resp = req.get_response(self.app)
        self.assertEqual(resp.status_int, 409)

    def test_unrescue_of_active_instance(self):
        body = dict(unrescue=None)

        def fake_unrescue(*args, **kwargs):
            raise exception.InstanceInvalidState('fake message')

        self.stubs.Set(compute.api.API, "unrescue", fake_unrescue)
        req = webob.Request.blank(self._prefix + '/servers/test_inst/action')
        req.method = "POST"
        req.body = jsonutils.dumps(body)
        req.headers["content-type"] = "application/json"

        resp = req.get_response(self.app)
        self.assertEqual(resp.status_int, 409)

    def test_rescue_raises_unrescuable(self):
        body = dict(rescue=None)

        def fake_rescue(*args, **kwargs):
            raise exception.InstanceNotRescuable('fake message')

        self.stubs.Set(compute.api.API, "rescue", fake_rescue)
        req = webob.Request.blank(self._prefix + '/servers/test_inst/action')
        req.method = "POST"
        req.body = jsonutils.dumps(body)
        req.headers["content-type"] = "application/json"

        resp = req.get_response(self.app)
        self.assertEqual(resp.status_int, 400)

    @mock.patch('nova.compute.api.API.rescue')
    def test_rescue_with_image_specified(self, mock_compute_api_rescue):
        instance = fake_compute_get()
        body = {"rescue": {"adminPass": "ABC123",
                           "rescue_image_ref": "img-id"}}
        req = webob.Request.blank(self._prefix + '/servers/test_inst/action')
        req.method = "POST"
        req.body = jsonutils.dumps(body)
        req.headers["content-type"] = "application/json"

        resp = req.get_response(self.app)
        self.assertEqual(resp.status_int, 200)
        resp_json = jsonutils.loads(resp.body)
        self.assertEqual("ABC123", resp_json['adminPass'])

        mock_compute_api_rescue.assert_called_with(mock.ANY, instance,
                                                   rescue_password=u'ABC123',
                                                   rescue_image_ref=u'img-id')

    @mock.patch('nova.compute.api.API.rescue')
    def test_rescue_without_image_specified(self, mock_compute_api_rescue):
        instance = fake_compute_get()
        body = {"rescue": {"adminPass": "ABC123"}}

        req = webob.Request.blank(self._prefix + '/servers/test_inst/action')
        req.method = "POST"
        req.body = jsonutils.dumps(body)
        req.headers["content-type"] = "application/json"

        resp = req.get_response(self.app)
        self.assertEqual(resp.status_int, 200)
        resp_json = jsonutils.loads(resp.body)
        self.assertEqual("ABC123", resp_json['adminPass'])

        mock_compute_api_rescue.assert_called_with(mock.ANY, instance,
                                                   rescue_password=u'ABC123',
                                                   rescue_image_ref=None)

    def test_rescue_with_none(self):
        body = dict(rescue=None)
        req = webob.Request.blank(self._prefix + '/servers/test_inst/action')
        req.method = "POST"
        req.body = jsonutils.dumps(body)
        req.headers["content-type"] = "application/json"

        resp = req.get_response(self.app)
        self.assertEqual(200, resp.status_int)

    def test_rescue_with_empty_dict(self):
        body = dict(rescue=dict())
        req = webob.Request.blank(self._prefix + '/servers/test_inst/action')
        req.method = "POST"
        req.body = jsonutils.dumps(body)
        req.headers["content-type"] = "application/json"

        resp = req.get_response(self.app)
        self.assertEqual(200, resp.status_int)

    def test_rescue_disable_password(self):
        self.flags(enable_instance_password=False)
        body = dict(rescue=None)
        req = webob.Request.blank(self._prefix + '/servers/test_inst/action')
        req.method = "POST"
        req.body = jsonutils.dumps(body)
        req.headers["content-type"] = "application/json"

        resp = req.get_response(self.app)
        self.assertEqual(200, resp.status_int)
        resp_json = jsonutils.loads(resp.body)
        self.assertNotIn('adminPass', resp_json)

    def test_rescue_with_invalid_property(self):
        body = {"rescue": {"test": "test"}}
        req = webob.Request.blank(self._prefix + '/servers/test_inst/action')
        req.method = "POST"
        req.body = jsonutils.dumps(body)
        req.headers["content-type"] = "application/json"

        resp = req.get_response(self.app)
        self.assertEqual(400, resp.status_int)

class RescueTestV20(RescueTestV21):

    def _get_app(self):
        self.flags(
            osapi_compute_extension=[
                'nova.api.openstack.compute.contrib.select_extensions'],
            osapi_compute_ext_list=None)
        return fakes.wsgi_app(init_only=('servers',))

    def test_rescue_with_invalid_property(self):
        # NOTE(cyeoh): input validation in original v2 code does not
        # check for invalid properties.
        pass

    def test_rescue_disable_password(self):
        # NOTE(cyeoh): Original v2.0 code does not support disabling
        # the admin password being returned through a conf setting
        pass

redpajama_set_name: RedPajamaGithub


Everything Else » When using Eagle to create board layouts what are good/cheap options for getting the boards made?
of identical board designs that look nice/professional.
After the background now the question.
The minimum order is 3 which means I usually populate one, figure out where I messed up and use the other two as Christmas ornaments.
They have there design rules laid out.
They will do 2 or 4 layered boars, with top and bottom silk screen.
The part I love is I can just drag eagle files into the browser and it loads them then shows me what each layer will look like and the cost.
I used a LPKF machine at school that I seemed to crash every other board because I never got any training. Then I messed around with trying to etch my own, not worth it.
I use Itead Studio's PCB Service in China. I have had great results from them with the only problems being one's I created and didn't catch in my own layout. You can get 10 green lacquered boards with soldermask top & bottom silk for $19.90 plus shipping which I think is less than $10. They 100% etest the boards to make sure they are good prior to shipment. Here is a LINK to their service. You essentially create the files they need in Eagle, submit them to them, and wait. That is the only hard part as it does take a month or so typically. But for the price, I feel it's worth it. They will do other colors of lacquer but at a surcharge.


text:
package pf

import (
	"fmt"
	"net/http"
	"time"

	"github.com/prometheus/client_golang/prometheus/promhttp"

	log "github.com/apache/pulsar/pulsar-function-go/logutil"
	"github.com/prometheus/client_golang/prometheus"
	prometheus_client "github.com/prometheus/client_model/go"
)

var (
	metricsLabelNames          = []string{"tenant", "namespace", "name", "instance_id", "cluster", "fqfn"}
	exceptionLabelNames        = []string{"error"}
	exceptionMetricsLabelNames = append(metricsLabelNames, exceptionLabelNames...)
	userLabelNames             = []string{"metric"}
	userMetricLabelNames       = append(metricsLabelNames, userLabelNames...)
)

const (
	PulsarFunctionMetricsPrefix = "pulsar_function_"

	TotalSuccessfullyProcessed = "processed_successfully_total"
	TotalSystemExceptions      = "system_exceptions_total"
	TotalUserExceptions        = "user_exceptions_total"
	ProcessLatencyMs           = "process_latency_ms"
	LastInvocation             = "last_invocation"
	TotalReceived              = "received_total"

	TotalSuccessfullyProcessed1min = "processed_successfully_total_1min"
	TotalSystemExceptions1min      = "system_exceptions_total_1min"
	TotalUserExceptions1min        = "user_exceptions_total_1min"
	ProcessLatencyMs1min           = "process_latency_ms_1min"
	TotalReceived1min              = "received_total_1min"

	UserMetric = "user_metric"
)

// Declare Prometheus
var (
	statTotalProcessedSuccessfully = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: PulsarFunctionMetricsPrefix + TotalSuccessfullyProcessed,
			Help: "Total number of messages processed successfully."},
		metricsLabelNames)
	statTotalSysExceptions = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: PulsarFunctionMetricsPrefix + TotalSystemExceptions,
			Help: "Total number of system exceptions."},
		metricsLabelNames)
	statTotalUserExceptions = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: PulsarFunctionMetricsPrefix + TotalUserExceptions,
			Help: "Total number of user exceptions."},
		metricsLabelNames)

	statProcessLatencyMs = prometheus.NewSummaryVec(
		prometheus.SummaryOpts{
			Name: PulsarFunctionMetricsPrefix + ProcessLatencyMs,
			Help: "Process latency in milliseconds."}, metricsLabelNames)

	statLastInvocation = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: PulsarFunctionMetricsPrefix + LastInvocation,
			Help: "The timestamp of the last invocation of the function."}, metricsLabelNames)

	statTotalReceived = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: PulsarFunctionMetricsPrefix + TotalReceived,
			Help: "Total number of messages received from source."}, metricsLabelNames)

	// 1min windowed metrics
	statTotalProcessedSuccessfully1min = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: PulsarFunctionMetricsPrefix + TotalSuccessfullyProcessed1min,
			Help: "Total number of messages processed successfully in the last 1 minute."}, metricsLabelNames)
	statTotalSysExceptions1min = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: PulsarFunctionMetricsPrefix + TotalSystemExceptions1min,
			Help: "Total number of system exceptions in the last 1 minute."},
		metricsLabelNames)
	statTotalUserExceptions1min = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: PulsarFunctionMetricsPrefix + TotalUserExceptions1min,
			Help: "Total number of user exceptions in the last 1 minute."},
		metricsLabelNames)

	statProcessLatencyMs1min = prometheus.NewSummaryVec(
		prometheus.SummaryOpts{
			Name: PulsarFunctionMetricsPrefix + ProcessLatencyMs1min,
			Help: "Process latency in milliseconds in the last 1 minute."}, metricsLabelNames)

	statTotalReceived1min = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: PulsarFunctionMetricsPrefix + TotalReceived1min,
			Help: "Total number of messages received from source in the last 1 minute."}, metricsLabelNames)

	userExceptions = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: PulsarFunctionMetricsPrefix + "user_exception",
			Help: "Exception from user code."}, exceptionMetricsLabelNames)

	systemExceptions = prometheus.NewGaugeVec(
		prometheus.GaugeOpts{
			Name: PulsarFunctionMetricsPrefix + "system_exception",
			Help: "Exception from system code."}, exceptionMetricsLabelNames)

	userMetricSummary = prometheus.NewSummaryVec(
		prometheus.SummaryOpts{
			Name: PulsarFunctionMetricsPrefix + UserMetric,
			Help: "User defined metric.",
			Objectives: map[float64]float64{
				0.5:   0.01,
				0.9:   0.01,
				0.99:  0.01,
				0.999: 0.01,
			},
		}, userMetricLabelNames)
)

type MetricsServicer struct {
	goInstance *goInstance
	server     *http.Server
}

var reg *prometheus.Registry

func init() {
	reg = prometheus.NewRegistry()
	reg.MustRegister(statTotalProcessedSuccessfully)
	reg.MustRegister(statTotalSysExceptions)
	reg.MustRegister(statTotalUserExceptions)
	reg.MustRegister(statProcessLatencyMs)
	reg.MustRegister(statLastInvocation)
	reg.MustRegister(statTotalReceived)
	reg.MustRegister(statTotalProcessedSuccessfully1min)
	reg.MustRegister(statTotalSysExceptions1min)
	reg.MustRegister(statTotalUserExceptions1min)
	reg.MustRegister(statProcessLatencyMs1min)
	reg.MustRegister(statTotalReceived1min)
	reg.MustRegister(userExceptions)
	reg.MustRegister(systemExceptions)
	reg.MustRegister(userMetricSummary)

}

type LatestException struct {
	exception error
	timestamp int64
}

// Be sure to use the constructor method: NewStatWithLabelValues
type StatWithLabelValues struct {
	statTotalProcessedSuccessfully     prometheus.Gauge
	statTotalSysExceptions             prometheus.Gauge
	statTotalUserExceptions            prometheus.Gauge
	statProcessLatencyMs               prometheus.Observer
	statLastInvocation                 prometheus.Gauge
	statTotalReceived                  prometheus.Gauge
	statTotalProcessedSuccessfully1min prometheus.Gauge
	statTotalSysExceptions1min         prometheus.Gauge
	statTotalUserExceptions1min        prometheus.Gauge
	statTotalReceived1min              prometheus.Gauge
	latestUserException                []LatestException
	latestSysException                 []LatestException
	processStartTime                   int64
	metricsLabels                      []string
}

func NewStatWithLabelValues(metricsLabels ...string) StatWithLabelValues {
	// as optimization
	var statTotalProcessedSuccessfully = statTotalProcessedSuccessfully.WithLabelValues(metricsLabels...)
	var statTotalSysExceptions = statTotalSysExceptions.WithLabelValues(metricsLabels...)
	var statTotalUserExceptions = statTotalUserExceptions.WithLabelValues(metricsLabels...)
	var statProcessLatencyMs = statProcessLatencyMs.WithLabelValues(metricsLabels...)
	var statLastInvocation = statLastInvocation.WithLabelValues(metricsLabels...)
	var statTotalReceived = statTotalReceived.WithLabelValues(metricsLabels...)
	var statTotalProcessedSuccessfully1min = statTotalProcessedSuccessfully1min.WithLabelValues(metricsLabels...)
	var statTotalSysExceptions1min = statTotalSysExceptions1min.WithLabelValues(metricsLabels...)
	var statTotalUserExceptions1min = statTotalUserExceptions1min.WithLabelValues(metricsLabels...)
	//var _stat_process_latency_ms_1min = stat_process_latency_ms_1min.WithLabelValues(metrics_labels...)
	var statTotalReceived1min = statTotalReceived1min.WithLabelValues(metricsLabels...)

	statObj := StatWithLabelValues{
		statTotalProcessedSuccessfully,
		statTotalSysExceptions,
		statTotalUserExceptions,
		statProcessLatencyMs,
		statLastInvocation,
		statTotalReceived,
		statTotalProcessedSuccessfully1min,
		statTotalSysExceptions1min,
		statTotalUserExceptions1min,
		statTotalReceived1min,
		[]LatestException{},
		[]LatestException{},
		0,
		metricsLabels,
	}
	return statObj
}

func filter(
	ss []*prometheus_client.MetricFamily,
	test func(*prometheus_client.MetricFamily) bool) (ret []*prometheus_client.MetricFamily) {
	for _, s := range ss {
		if test(s) {
			ret = append(ret, s)
		}
	}
	return
}

func getFirstMatch(
	metrics []*prometheus_client.Metric,
	test func(*prometheus_client.LabelPair) bool) *prometheus_client.Metric {
	for _, met := range metrics {
		for _, lbl := range met.Label {
			if test(lbl) {
				return met
			}
		}
	}
	return nil
}

func (stat *StatWithLabelValues) setLastInvocation() {
	now := time.Now()
	stat.statLastInvocation.Set(float64(now.UnixNano()))
}

func (stat *StatWithLabelValues) processTimeStart() {
	now := time.Now()
	stat.processStartTime = now.UnixNano()
}

func (stat *StatWithLabelValues) processTimeEnd() {
	if stat.processStartTime != 0 {
		now := time.Now()
		duration := now.UnixNano() - stat.processStartTime
		stat.statProcessLatencyMs.Observe(float64(duration) / 1e6)
	}
}

func (stat *StatWithLabelValues) incrTotalUserExceptions(err error) {
	stat.statTotalUserExceptions.Inc()
	stat.statTotalUserExceptions1min.Inc()
	stat.addUserException(err)
}

func (stat *StatWithLabelValues) addUserException(err error) {
	now := time.Now()
	ts := now.UnixNano()
	errorTS := LatestException{err, ts}
	stat.latestUserException = append(stat.latestUserException, errorTS)
	if len(stat.latestUserException) > 10 {
		stat.latestUserException = stat.latestUserException[1:]
	}
	// report exception via prometheus
	stat.reportUserExceptionPrometheus(err)
}

//@limits(calls=5, period=60)
func (stat *StatWithLabelValues) reportUserExceptionPrometheus(exception error) {
	errorTS := []string{exception.Error()}
	exceptionMetricLabels := append(stat.metricsLabels, errorTS...)
	userExceptions.WithLabelValues(exceptionMetricLabels...).Set(1.0)
}

func (stat *StatWithLabelValues) incrTotalProcessedSuccessfully() {
	stat.statTotalProcessedSuccessfully.Inc()
	stat.statTotalProcessedSuccessfully1min.Inc()
}

func (stat *StatWithLabelValues) incrTotalSysExceptions(exception error) {
	stat.statTotalSysExceptions.Inc()
	stat.statTotalSysExceptions1min.Inc()
	stat.addSysException(exception)
}

func (stat *StatWithLabelValues) addSysException(exception error) {
	now := time.Now()
	ts := now.UnixNano()
	errorTS := LatestException{exception, ts}
	stat.latestSysException = append(stat.latestSysException, errorTS)
	if len(stat.latestSysException) > 10 {
		stat.latestSysException = stat.latestSysException[1:]
	}
	// report exception via prometheus
	stat.reportSystemExceptionPrometheus(exception)
}

//@limits(calls=5, period=60)
func (stat *StatWithLabelValues) reportSystemExceptionPrometheus(exception error) {
	errorTS := []string{exception.Error()}
	exceptionMetricLabels := append(stat.metricsLabels, errorTS...)
	systemExceptions.WithLabelValues(exceptionMetricLabels...).Set(1.0)
}

func (stat *StatWithLabelValues) incrTotalReceived() {
	stat.statTotalReceived.Inc()
	stat.statTotalReceived1min.Inc()
}

func (stat *StatWithLabelValues) reset() {
	stat.statTotalProcessedSuccessfully1min.Set(0.0)
	stat.statTotalUserExceptions1min.Set(0.0)
	stat.statTotalSysExceptions1min.Set(0.0)
	stat.statTotalReceived1min.Set(0.0)
}

func NewMetricsServicer(goInstance *goInstance) *MetricsServicer {
	serveMux := http.NewServeMux()
	pHandler := promhttp.HandlerFor(
		reg,
		promhttp.HandlerOpts{
			EnableOpenMetrics: true,
		},
	)
	serveMux.Handle("/", pHandler)
	serveMux.Handle("/metrics", pHandler)
	server := &http.Server{
		Addr:    fmt.Sprintf(":%d", goInstance.context.GetMetricsPort()),
		Handler: serveMux,
	}
	return &MetricsServicer{
		goInstance,
		server,
	}
}

func (s *MetricsServicer) serve() {
	go func() {
		// create a listener on metrics port
		log.Infof("Starting metrics server on port %d", s.goInstance.context.GetMetricsPort())
		err := s.server.ListenAndServe()
		switch err {
		case nil, http.ErrServerClosed:
		default:
			log.Fatalf("failed to start metrics server: %v", err)
		}
	}()
}

func (s *MetricsServicer) close() {
	err := s.server.Close()
	if err != nil {
		log.Fatalf("failed to close metrics server: %v", err)
	}
}


The key to choosing the right ponytail hairstyles for brunettes is right proportion. Other things you should consider are simply how much work you want to put to the ponytail hairstyles, what kind of search you want, and if you wish to enjoy up or play down specific features. Modify is good, a new and fresh ponytail hairstyles could provide you with the energy and confidence. The ponytail hairstyles for brunettes can change your appearance and confidence throughout a period when you may want it the most.
For some people, the ponytail hairstyles for brunettes is important to maneuver from a previous style to a more sophisticated look. Our hairstyles will add or subtract years to our age, so select wisely, depending which way you want to go! Many of us only want to be any way you like and updated. Finding a new hairstyle raises your assurance, ponytail hairstyles is a easy solution to replicate yourself and put in a great appearance.
Check out the ponytail hairstyles for brunettes that will you have completely to create an inspirations with your barber. These hairstyles and haircuts are typically the most popular all over the world. A lot of them are everlasting and can be classic in just about any era. Have a great time and enjoy, many of these haircuts are simple and easy to achieve and were select for their particular classiness, and fun style. We suggest picking the effective three you prefer the best and discussing what type is best for you along with your barber.
Whether you are vying for a fresh hairstyle, or are only trying to mix points up a bit. Keep your facial form, your own hair, and your styling needs in your mind and you will find a great haircut. That you don't must be an expert to possess great ponytail hairstyles for brunettes all day long. You simply need to know a couple of tricks and get your on the job to the proper ponytail hairstyles.
Ponytail hairstyles for brunettes may very easy, in spite of that is really rather tricky. A few improvements ought to be made. Exactly like if you are picking the most effective style of gown, the hair must also be properly considered. You need to find out the tricks of finding the correct style of clothes, and you have a number of them for you to use. To try that hair is quite simple, you may even DIY at home. It's an exciting suggestion.
Get a latest ponytail hairstyles for brunettes, this is your actual stage to get lovely ponytail hairstyles. Before you decide to the barbershop, use your time for seeking the websites and figure out everything you want. When possible, make sure to show the hairstylist a photo as illustration so you could be close to fully guaranteed to have it the way you love it. Some ponytail hairstyles remain favorite over time due to their flexibility to work with the trends in fashion.
Ponytail hairstyles for brunettes is a quite powerful, it will raise your strong skin characteristics and take emphasis away from weaker features. Here is how to improve your ponytail hairstyles in the proper way, your hair structures your look, so it's really the next thing persons recognize about you. When selecting a haircut, it is frequently beneficial to look a pictures of related haircuts to determine what you prefer, choose inspirations of ponytail hairstyles with related hair form and facial shape.
It's time to make your ponytail hairstyles for brunettes being good, since you've got a beautiful haircut, time to show off! Remember to do your own hair frequently. Focus on to the products you put on it. Messing with your own hair too often can result in ruined hair, hair loss or split ends. Hair is really a symbol of beauty. Therefore, the hair also provides lots of hair-dos to give it more amazing.


Now that the endless wintery wilderness of January is finally over, it's time to start thinking about Valentine's Day and what you will buy for your friends and lovers (and also yourself) for this special day. Sparkling Direct very kindly sent me one of their prosecco gift sets, a range of premium white and rose proseccos beautifully packaged with a choice of extras including flowers, chocolates, teddy bears and even pate. I love this wooden crate, it gives the set an little bit of extra something, though you can also select a card box. Sparkling Direct has to be the most ideal delivery service I can think of, being prosecco's biggest fan of all time (probably), but it's not just sparkles you can gift, they have every wine and spirit known to man, check out their huge A-Z brand list. This is the perfect service for when you need to send any kind of quick but well presented thank you or special occasion gift.


SH2SIIM Illumina Silver: Decorative Films, LLC.
3M™ Fasara™: SH2SIIM Illumina Silver. A silver dot gradation film that gradually changes from solid silver dots to transparent (more spacing). Gradient is 50" high.


He was of the mindset that all Christians must be out of their minds. Education, Homework help service, Learning 789 Words 3 Pages An important question regarding people today, from the ages of 9 to 90 is why is physical education important? It follows that teachers are more important because they garner everything a doctor does, plus all the great benefits of passing on information that would otherwise disappear to the next generation. Through his stories, I realized that a lot of doctors have laughable financial situations. Actually, though, it depends on what your needs are which one is most important. There's really a touchy post on the following link, you must visit and also suggest your friends.
Adverse drug reaction, Health care, Health care in the United States 499 Words 4 Pages Teacher plays an important role in education of every student. Axiology, Ethics, Moral psychology 1341 Words 4 Pages Why I Would Be a Teacher Teaching is a very noble profession. Now there's a valuable technique for study. It is the basis of all other professions. No, neither skill achievement noreducations are more important than the other. These are just two bits of writing that address the question directly, and if you ask Google if teens are more worldly than their parents Google has about 563,000 entries for this question alone.
Your parents, teach you, feed you, cloth you, educate you, and love you can your friends do all that. I believe that American school teachers are. In addition men describe themselves. Today's teenagers have more access to information than any generation before them but this does not necessarily mean that todays teenagers are accessing that information or that if they are accessing it that they are understanding what it means. It's not terribly uncommon for a student toknow more about some particular small portion of the subject thanhis or her teacher does though, again, less common than manystudents believe , but the teacher will almost … always have a muchbroader knowledge of the subject.
Why are doctors more important than teachers?
Education, History of education, Pedagogy 493 Words 3 Pages ------------------------------------------------- why i want to become a doctor ------------------------------------------------- I think that wanting to become a doctor is almost something people are born with. If we talk about any profession such as doctor, dentist, engineering, pilot, policeman or many other but the reach at that level only because of teacher. A teacher will instruct you on method, true, but the individual has as much responsibility to learn as the teacher has to teach. Then farmers are the most important ones. The quality of life is obviously much more important than quantity, just look at how many people smoke pot.
Women who went into teaching became boarders at a student's house, could not be married and earned basically pocket money. However, it has been agreed that learning is not only an. This is why there are far fewer men in the lower primary level than in high school. I think the simple answer to the question is this means: the Internet, something our parents, even the parents of todays teenagers barely dreamt of. On the other side, the revolutionaries had many obstacles to be able to unite the Germans into one whole country.
This can then be transferred into the student's everyday life, no matter what task they may be undertaking. . For good write-up, or you need my service mail me on ibkemmanuel79 gmail. Substitutesusually are just required to have had some college courses, whichmay not have been at all related to the topic of the class they'resubstituting for, and it's fairly common for a substitute to bepretty much limited to reading the actual teacher's lesson plan andhoping it makes sense to the students in advanced classes. We make no representations as to the accuracy or completeness of any information on this site or found by following any link on this site. Therefore, high wages are perfect incentive to choose a doctor profession.
Why do the higher teachers fails students and reduce the standards of education by receiving bribe from their students? There are so many reasons why people want to become teachers. Although the destination is important, the inner journey that takes place during a physical journey is often more significant. However, the punishment if caught would be that I would have to return the excess cookies. My opponent will argue that the teachers are the who has to tell you what to do and when to do it buts that's not true. When he took on this project more than 30 years ago, he did so with the idea of refuting Christianity.
Who Contributes More To The Society: Doctors Or Teachers???
While this type of image can calm some fears, the scanner is now a controversial issue. It is due to science that man is leading a comfortable and secured life, unlike the life his ancestors struggled to get through. That's why all jobs are important. While the secrets to success may vary among different organizations, and may have been modified and informed from different standpoint, the fundamentals remain essentially true. Not only can they instruct them in their specialist subject or field, they also possess the capacity to instill a general way of thinking in a student. Otherwise, without treatment, the teacher would die and, so, fail to teach. I know that this is not an easy job.
Defeated, Queen Zenobia was forced to abase. I mean I know it sounds kinda funny but those that truly want to become a doctor have a pretty difficult time explaining why. Education, High school, History of education 1776 Words 8 Pages June 7, 2013 is important reading Reading is a complex cognitive process of decoding symbols in order to construct or derive meaning reading comprehension. Doctors and teachers are equally important. Everyone of us is a bundle of unique gifts and talents.


Agricultural Scientists Recruitment Board (ASRB) successfully conducted Agriculture Research Service Mains Exam. This exam is conducted on 8th July 2017. This notification is regarding the release of the ASRB Agriculture Research Service Mains Answer Key 2017 for Written Exam. Huge number of candidates who had applied online for this recruitment drive appeared in the ASRB Agriculture Research Service Mains Test. Candidates are now looking eagerly for the ASRB ARS Mains Answer Key 2017 with Expected Cut off Marks. This notification is to provide the complete details regarding the IPR Examination like result, cut off, merit list and key of the written test. ASRB Agriculture Research Service Mains Answer Key 2017.
Solutions are very important as with the help of the correct answers candidates can calculate their expected marks. So, candidate can achieve in the written exam and can prepare themselves for the further selection process. Department usually provides the Answer Key of ASRB Agriculture Research Service Mains Exam 2017 on its official portal from which it can downloaded in PDF format. The key will available at official website which is www.asrb.org.in and students can match their answers with the key of the paper. Answer Key of ASRB ARS Mains Exam 2017 consists of four sets like Set-A, Set-B, Set-C and Set-D and applicants who appeared in this exam should confirm their paper code and should start checking their answers in order to evaluate the expected performance they can attain in the ASRB Agriculture Research Service Mains Examination.
Every year, Agricultural Scientists Recruitment Board (ASRB) conducts various competitive examinations for different job positions to hire eligible candidates to work in their department with good salary packages. Now the commission will upload the ASRB Agriculture Research Service Mains 8th July Exam Answer 2017 in order to provide expected result to all the applicants waiting eagerly for the announcement of the results and merit list.
Here we will provide you the complete details and important steps that are needed to be followed in order to download ASRB Agriculture Research Service Mains Answer Key 2017. Moreover candidates can also search for ASRB ARS Mains Answer Key 2017, ASRB ARS Mains (Written Test) Answer Key 2017, Expected Cutoff Marks for ASRB ARS Mains Exam 2017, ASRB ARS Mains Merit List 2017, ASRB ARS Mains Cutoff Marks 2017.
So applicants must stay in tuned with this page in order to get latest updates. Candidates also need to obtain the cut off marks in order to qualify the written test. There are minimum scores that are needed to be qualified in the examination. If candidate fails to achieve the cut off marks he or she is not considered eligible for further selection process. The ASRB ARS Mains Exam Cut off Marks 2017 for SC, ST, PWD, OBC, EXSM and General Category Candidates can be obtained from the official website with the release of the results. Candidates can also check their expected cut off marks on the basis of the previous year results. ASRB Agriculture Research Service Mains Answer Key 2017.
Candidates who attended exam are curious to know Expected Cut off Marks for ASRB Agriculture Research Service Mains Exam 2017. This can calculated with the help of the exam key. With this applicants can prepare themselves for the next selection process and other related upcoming competitive exams. Each year it varies for different categories like SC, ST, OBC and PWD Candidates depending upon the performance of the applicants. Candidates can take a look at the Answer Key of ASRB Agriculture Research Service Mains Exam 2017 in order to arrive at the expected possible marks and their performance by matching their answers with the correct solutions of the answer sheet. ASRB Agriculture Research Service Mains Answer Key 2017.
Your ASRB Agriculture Research Service Mains Answer Key 2017 will downloaded.