If you are looking for a Placerville roofing contractor, you want to be sure you find one you can count on to take care of your roofing needs in a prompt and professional manner. You want one who is experienced in many areas of expertise, offers quality service, has a strong commitment to the community and is a licensed and qualified contractor. They should be able to help you with everything from roof repair to total roof replacement.
Choosing Straight Line Roofing as your roofing contractor means you are getting a company with an excellent reputation who is dedicated to offering customers the best in quality and service. We strive to provide our customers with fast, high quality service at a price they can afford. When you are looking for a Placerville roofing contractor, you should also know we are GAF Master Elite certified, an Owens Corning Platinum Preferred Contractor and a Certainteed Select Shingle Master.
Straight Line Roofing is a rapidly growing roofing company and we plan on being around for a long time to come. We can help you if you need roof repair, roof replacement, roof maintenance or a solar heating system added to your roof, among other things. We focus on offering our customers the best in quality and using roofing products that provide longevity.
We also provide our customers with customer support they can count on. At Straight Line Roofing, we take the time to answer your questions and make sure you have a complete understanding of the condition of your roof and everything entailed with the job. This way, you get the whole picture and know you are taking the necessary steps to repair your roof in a manner which ensures you will get the most out of it.
Your roof protects your family and your home from the elements. Choosing a Placerville roofing contractor you know you can count on for all your roofing needs is important, As 3rd generation roofing contractors, we put our customers first and strive for high standards of quality.
If you have any questions or concerns about the condition of your roof, contact Straight Line Roofing; we are more than willing to help you. Putting off the inevitable will only end up costing you more time and energy down the line.


At the crossroads of the young United States, the mid-Atlantic region became the site of ongoing struggles for two kinds of liberty: freedom of worship and abolition of slavery. Jews made a home in New York despite the colonial government's reluctance to host them. Catholics attempted to establish Maryland as their only safe haven in English North America. Formerly enslaved men and women founded churches of their own in Pennsylvania, which had long served as a refuge for those wanting to practice religion as they pleased.
For many in early America, religion was particularly significant at the beginning and the end of life. Mourning jewelry like this 18th century pendant was worn by mothers to commemorate the death of children, while German immigrants in Pennsylvania crafted elaborate fraktur birth and baptismal certificates to mark more joyous occasions.
Edward Hicks (1780–1849) was a Society of Friends minister and folk artist whose paintings Quakers came to see as statements of religious sensibilities and ideals. Quakers emphasized pacifism, missionary work, and friendly relations with Native Americans, as seen in the background of this painting.
Courtesy of National Gallery of Art, Washington, D.C.
On the Christian Sabbath, many children were allowed to amuse themselves only with "Sunday toys," simple playthings that taught biblical or moral lessons. This is among the earliest surviving examples of Noah's Ark playsets, fashioned in England in the 1820s and later brought to America.
As the only Catholic-founded colony in English North America, Maryland was a vanguard in the struggle for religious tolerance. Pennsylvania and New York likewise became safe havens for minority religions, as well as the rights of African Americans fighting for their freedom.
America's first Roman Catholic Cathedral, the Baltimore Basilica, was designed by Benjamin Latrobe, the Architect of the U.S. Capitol appointed by Thomas Jefferson. The basilica was constructed between 1806 and 1821 with funds raised in part through the sale of lottery tickets.
Archbishop John Carroll (1735–1815) was the first Roman Catholic bishop in the United States, and the founder of Georgetown University. At a time of rampant anti-Catholic sentiment, priests often traveled with a "saddle chalice," a communion cup that could be dismantled and hung on a saddle, disguised as a bell.
Facing widespread suspicion, Catholics often worshipped in private. This tabernacle held the ritual elements of the Eucharist at the earliest Jesuit chapel in Maryland. It was later kept in the home of Charles Carroll of Carrollton (1737–1832), Archbishop John Carroll's cousin and the only Catholic signer of the Declaration of Independence.
Haitian immigrant Elizabeth Lange (1784–1882) established the first Catholic order for women of African descent in America, as well as a school for African American girls in Baltimore, where student Mary Pets stitched this sampler in 1831. These crosses worn by Mother Lange remain sealed in their case while she is being considered for sainthood.
Used in Catholic liturgies at the earliest Jesuit missions in English North America, this cross is said to be made from iron taken from the Ark and the Dove, on which the first English Catholics arrived in Maryland in 1634. It is still in use today at Georgetown University.
Joseph Smith (1805–1844) founded The Church of Jesus Christ of Latter-day Saints in 1830 after publishing a new scripture he called the Book of Mormon. According to tradition, an angel led Smith to a hilltop in New York where he discovered golden plates inscribed in an ancient language. He dictated a translation to a scribe who wrote the manuscript page here. The first edition of the Book of Mormon appeared soon after; since then, more than 150 million copies have been published, making it among the most printed books of all time.
Though their movement began in New York, the Mormons soon relocated to Ohio and Missouri before moving farther west. In frequent conflict with the federal government, they established their own currency and proposed creating a new state beyond existing U.S. borders, in the area now including Utah, Nevada, and New Mexico.
Freeborn Garrettson (1752–1827) was a major figure in early American Methodism. A former slave owner, he freed the people he enslaved upon hearing a voice interrupt his prayers to tell him, "You must let the oppressed go free." He became an abolitionist preacher, traveling with these saddlebags as he visited plantations.
Richard Allen (1760–1831) founded the African Methodist Episcopal Church, established in Philadelphia in 1816. Allen had been enslaved on a Delaware plantation when the abolitionist preacher Freeborn Garrettson arrived and convinced the plantation owner to allow the people he enslaved to buy their freedom.
While slavery was often justified with passages from scripture, among its most stalwart opponents were Christians who argued for its abolition on religious grounds. Abolitionists often risked their lives for the unpopular idea that a nation built on forced labor must change its ways and repent.
The first Jews arrived in the city then called New Amsterdam in 1654. Though the colony's governor, Pieter Stuyvesant, hoped they would not remain, the backers of the Dutch West India Company pressured him to let them stay.
Gershom Mendes Seixas (1745–1816) was the first native-born Jewish religious leader in America. As cantor of New York's Congregation Shearith Israel, he led the synagogue in the Revolutionary era, safeguarding many of its sacred objects during the war. In 1789 he attended George Washington's inauguration on the steps of Federal Hall.
Founded in 1654, Congregation Shearith Israel was the first Jewish religious community in North America, and operated the only synagogue in New York City until 1825. During the British occupation of Manhattan in 1776, Hessian soldiers set the building's sanctuary on fire, damaging this Torah scroll and making it unfit for ritual use.


Just after arriving for the Packers/Vikings game a group of us noticed 3 white lights in a triangular pattern come above us and directly over Lambeau Field heading East to West. At first we thought it might be a plane leaving Austin Strabel Airport (several had passed over already), but there was no noticeable sound coming from the object. Due to the wind patterns aircraft had been cleared to take off and approach the airport directly over Lambeau (This was broadcast during the game.) Since it was dark at the time we seen the object we can only give a description of the pattern not the overall size or distance.
Due to it being a prime time broadcast football game(ESPN) a group of us think it might have been some sort of surveillance aircraft, however I have decided to report it just in case.


10:44 While Peter was still speaking, the Holy Spirit fell upon all who heard the word. 45 The circumcised believers who had come with Peter were astounded that the gift of the Holy Spirit had been poured out even on the Gentiles, 46 for they heard them speaking in tongues and extolling God. Then Peter said, 47 "Can anyone withhold the water for baptizing these people who have received the Holy Spirit just as we have?" 48 So he ordered them to be baptized in the name of Jesus Christ. Then they invited him to stay for several days.
5:1 Everyone who believes that Jesus is the Christ has been born of God, and everyone who loves the parent loves the child. 2 By this we know that we love the children of God, when we love God and obey his commandments. 3 For the love of God is this, that we obey his commandments. And his commandments are not burdensome, 4 for whatever is born of God conquers the world. And this is the victory that conquers the world, our faith. 5 Who is it that conquers the world but the one who believes that Jesus is the Son of God?
15:9 As the Father has loved me, so I have loved you; abide in my love. 10 If you keep my commandments, you will abide in my love, just as I have kept my Father's commandments and abide in his love. 11 I have said these things to you so that my joy may be in you, and that your joy may be complete. 12 "This is my commandment, that you love one another as I have loved you. 13 No one has greater love than this, to lay down one's life for one's friends. 14 You are my friends if you do what I command you. 15 I do not call you servants any longer, because the servant does not know what the master is doing; but I have called you friends, because I have made known to you everything that I have heard from my Father. 16 You did not choose me but I chose you. And I appointed you to go and bear fruit, fruit that will last, so that the Father will give you whatever you ask him in my name. 17 I am giving you these commands so that you may love one another.
Jesus said, "As the Father has loved me, so I have loved you; abide in my love."
"The Language Makes The Message"
I remember reading a commentary that transported me back in time to when I was just beginning my high school education. Of course, I, like many of the students in my class, found entering the "Big School" as we called it, a little anxiety producing. And there was little to ease that anxiety for those of us who encountered Ms. Blouse for English class. She had to be ten years past retirement age, carried a long pointing stick that she would slap on your desk with a bang when she wanted you to answer her question. My classmates and I determined that she had to have graduated from Satan University.
I will also admit that I considered a high school course in English to be a waist of time, since we all spoke the language, and understood each other perfectly. But being able to speak and communicate with each other was not enough for this lady. She taught the class as if we were studying biology. She had us dissecting sentences as if they were a frog on the table in the science lab. It wasn't enough for her to have us realize that you need a noun and a verb to make a complete sentence. It wasn't enough for her to have us know the difference between an adverb and an adjective. No, we had to learn the difference between the indicative and the imperative, and understand syntax.
Well, after struggling through that course from Hades High School with a passing grade I wasn't proud of, I hoped that I would never have to deal with that nonsense again. And my hope almost came true. I didn't have to think about that grammar stuff throughout the rest of my high school classes, or in college. And by that time, I had forgotten about all about that class, and everything Ms. Blouse tried to teach us.
And then came seminary, and with it, courses that made me wish that I had paid more attention in that course in English I had to take in my freshman year of high school. In particular, were two courses with a title that I didn't even know what it meant – Hermeneutics. Hermeneutics is a fancy word that means, quite simply, the art of interpreting Scripture. And for this course, syntax, and the ability to understand the difference between the imperative and the indicative of sentence structure was a must.
At the time, all I remember hearing from my Dad was Ron, behave yourself. Like most teens, what I heard from my Dad was just another commandment to infringe on my freedom and fun. I had to be on my best behavior, or he wouldn't be happy with me. But the way that I had interpreted what my Dad said to me, was to ignore the indicative.
The truth is, I only heard half of my Dad's statement. My Dad began his comment with the indicative, to remember who I was. He was asking me to remember that I was loved and a member of a family that loved me, and cared about me. And yes, as a member of this family, he was asking me to remember that there are certain values, certain principles around which we are united and bound to each other. That was what my Dad was first asking me to do, to remember that I was a part of a family that loved me.
Out of this knowledge, comes the imperative. By remembering that I am loved and cared about as a member of the family, I am to reflect this fact in the way I live my life. My father's plea that I behave myself when out on my own, was really a call to reflect the love and values by which I have been embraced by our family. The imperative, the call to action that my Dad was giving me was to live my life as a person who knows the love and nurture of the family, whose name I bear.
Dad was not saying to me, "Behave yourself, or I won't love you, and you can't be a Harbaugh any more." He was saying to me, Ron, you are a Harbaugh, and we love you, reflect that fact as you go out from this home on your own, by your actions to those around you.
In this statement, the indicative, the statement of fact from which our call to action originates, is quite clear. Jesus tells us, his disciples, those whom he has embraced in baptism to be a member of his heavenly family, "that as God the Father has loved him, so does he love us." That is the given! That is what is beyond our ability to control! Of this we are assured. Jesus loves us, just as the Father loved him. Just as I was assured of being loved by my family by my Dad, so are we assured of being loved by our crucified and risen Lord.
The imperative, the call to action, grows out of the knowledge that we are loved by God, and embraced by God as a cherished member of his family, forgiven by his grace and loved beyond all expectations. To know this, to remember this, is what give rise to Jesus' request that we live our lives reflecting to those around us that we are a member of God's family by keeping his commandment to love one another, as he has loved us.
I think it is important that we grasp the significance of this text clearly. It would be easy for us to turn this text upside down, just as I did as a teen, and interpret the message to read backwards, as if Jesus said, "If you keep my commandment, you will abide in my love. Or even worse, would be to read these words of Jesus as if they said, "God will love us, if we keep God's commandments. But that is not what Jesus is saying. He is telling us that we are loved by God, so live your life reflecting that fact. In this way, we will continue to reflect that we know that we are a member of God's family, and through our love, invite others to embrace the redeeming love of God.
To me, understanding these verses in their proper syntax makes all the difference to knowing the unmerited grace of God. It tells me that I am first loved by God, even before I am called upon to reflect his love to others. It tells me that God's love for me is not conditioned upon my actions, as if I must somehow merit his love for me, through earning his love, by my loving others. It tells me that God already loves me, just as my Dad tried to tell me he loved me, so many years ago. And even though I knew that to be a fact, as time went on, I came to hear his true message, and, like a good parent, repeat it to my own children, much to the same closed ears that I once had.
But as the years progressed, I must admit that my children came to hear the imperative flowing out of the indicative. They came to understand, through the love of their own children, what it meant to issue a command stemming from love.
May God's Spirit so grant us the wisdom to see this text this morning as our risen Lord truly meant it. We are first of all, members of his family. We are redeemed, forgiven and loved by God. We are, through our faith and baptism, members of his family. That is the indicative. That is who we are. Through the power of God's Spirit, may we be reminded of this fact, each moment of our life, and strive to reflect the love and ethics of the family to which we belong.
Let us pray: Dear Heavenly Father, through your gift of grace, revealed to us in the life, death and resurrection of your Son, Jesus the Christ, you have redeemed us from sin and death, and have made us children of your eternal kingdom. Through our baptism, you have promised to love us and accept us as your own, without condition. Still, we are confronted with you commandments, your will for our lives. Through the power of your Holy Spirit, help us to be obedient disciples of our crucified and risen Lord, and live our lives according to command to love one another. This we ask in his holy name. Amen.
The Bible texts of the Old Testament, Epistle and Gospel lessons are from the New Revised Standard Version Bible, copyright 1989 by the Division of Christian Education of the National Council of the Church of Christ in the USA, and used by permission. Sermon contributed by Rev. Ronald Harbaugh on May 15, 2009.
O God, you have prepared for those who love you such good things as surpass our understanding: Pour into our hearts such love towards you, that we, loving you in all things and above all things, may obtain your promises, which exceed all that we can desire; through Jesus Christ our Lord, who lives and reigns with you and the Holy Spirit, one God, for ever and ever.
John 15:9 (NIV) "As the Father has loved me, so have I loved you. Now remain in my love.
Ustedes, padres, no hagan enojar a sus hijos, sino críenlos según la disciplina e instrucción del Señor.
Mi Dios, gracias porque puedo colocar el nombre de mis hijos en esta oración.
Gracias porque he comprendido que los hijos son más que una extensión de mi vida, que son una herencia tuya y que tengo mucho que aprender de ellos.
Te agradezco porque a partir de hoy, y con tu ayuda, sacaré adelante a mis hijos. Tendré más en cuenta sus talentos y sus sueños para instruirles y no para ser un obstáculo en sus vidas.
Como padres, te pedimos perdón por las veces que los humillamos con malas palabras.
Te pedimos perdón por las veces que los maltratamos de manera física para disciplinarlo.
Perdóname también por las veces que los reprendimos injustamente.
Ahora, te suplico que me ayudes a ganar el tiempo perdido y me des las palabras oportunas para pedirles perdón.
Sana sus corazones y danos la oportunidad de ser una nueva familia en Cristo Jesús.
And do not get drunk with wine, for that is debauchery, but be filled with the Spirit, addressing one another in psalms and hymns and spiritual songs, singing and making melody to the Lord with your heart, giving thanks always and for everything to God the Father in the Name of our Lord Jesus Christ.
As far as I can tell, there are all kinds of ways to say thank you to someone.
For example, you can express your appreciation through a formal card, or you can shoot someone an email. You might send them flowers or some other token which show your gratitude. You might even visit with your benefactor face to face.
Of course, you could always play a baseball game in their backyard.
What, you've never heard of showing gratitude through a baseball game? I guess I hadn't either until I heard the story of 19-year-old Zach Seavers. He plays college ball for Lewis and Clark College. What follows is his story.
For years Zach had been close to his grandmother, Marilyn.
You see, Marilyn had been more than a grandmother to Zach and his sister. She had been a friend. She was a friend who took them shopping and to the movies. Goodness, they even played practical jokes on each other. Oh, one other thing Marilyn did ... she attended all of Zach's baseball games.
Hardly ever missed a game until she was diagnosed with Stage IV lung cancer.
Knowing that grandma was no longer able to come to his games, Zach asked his teammates if they would be willing to help him take the game to grandma. To their credit, they agreed. The next day he had his aunt place grandma in her wheelchair and bring her to the window overlooking the backyard.
When the drapes were open, grandma saw Zach and almost a dozen of his fellow players had laid out a baseball diamond in her backyard. Zach's sister who plays a pretty mean game of softball was also on the field.
Zach's aunt reports that grandma, who has since gone to her Lord, sported a big grin and shed a few very happy tears.
Now it occurs to me that all of us probably have someone or maybe a number of someones who are very special to us. Sadly, we don't often get around to thanking them until the doctor pronounces some terrible diagnosis. Now I don't know who is on your list. Maybe there is a lifelong friend, possibly a teacher, maybe even a spouse or parent to whom you owe a debt of gratitude.
If that is the case, I encourage you, don't let this week slip away without letting them know of your appreciation. Remember, there are a lot of ways to give thanks.
And as long as you are doing that, why not begin each day with a very special prayer of appreciation to the Lord. It is He who has redeemed you from certain death and damnation; it is He who has been with you every moment of your life, and it is He who is responsible for every good and perfect gift you enjoy.
THE PRAYER: Dear Lord, for all You have done, I give thanks. For salvation and things important, I give thanks. For small things, even things I never knew about, I give thanks. Most of all, for my Savior, I am in Your debt. In Jesus' Name I give thanks. Amen.
L'ami de mon frère (lorsqu'ils étaient tous les deux enfants) a assuré à sa sœur qu'un parapluie suffirait à la garder dans les airs si seulement elle « y croyait ». C'est ainsi que, « par la foi », elle s'est jetée du toit de la grange et s'est assommée au sol, souffrant d'une commotion mineure.
Ce que Dieu promet de faire, il le fait. Reste que nous devons veiller à nous appuyer sur ses véritables paroles lorsque nous lui demandons de tenir promesse, car ce n'est qu'alors que nous aurons l'assurance qu'il fera ou nous donnera ce qu'il a promis de faire ou de nous donner. La foi ne détient aucun pouvoir en soi. Elle ne compte que lorsqu'elle repose sur une promesse limpide de Dieu. Toute autre chose n'est que vœux pieux.
Voici un cas d'espèce : Dieu nous a fait la promesse suivante. « [Demandez] ce que vous voudrez, et cela vous sera accordé. Si vous portez beaucoup de fruit, c'est ainsi que mon Père sera glorifié » (JN 15.7,8). Par ces versets, Dieu ne promet pas d'exaucer toutes les prières que nous lui adressons, mais plutôt de répondre chaque fois à notre désir de droiture, ce que Paul appelle « le fruit de l'Esprit » (GA 5.22,23). Si nous avons faim et soif de sainteté et que nous la sollicitons auprès de Dieu, il se mettra à nous accorder satisfaction. Il faudra du temps, car la croissance spirituelle, comme la croissance physique, est progressive. Ne baissez pas les bras. Continuez de demander à Dieu de vous rendre saint. En son temps et à son rythme, « il le fera pour vous ». Dieu ne fait pas de promesses en l'air.
Nous avons un Dieu qui tient ses promesses.
L'ami de mon frère (lorsqu'ils étaient tous les deux enfants) a assuré à sa sœur qu'un parapluie suffirait à la garder dans les airs si seulement elle « y croyait ».


text:
package aur

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"net/url"
	"sort"
	"time"
)

const AUR_RPC_URL = "https://aur.archlinux.org/rpc.php"

type AURResponseType struct {
	Type string
}

type ErrorResponse struct {
	AURResponseType
	Msg string
}

type InfoResponse struct {
	Type        string
	ResultCount int
	Results     *PkgInfo
}

type SearchResponse struct {
	Type    string
	Results []PkgInfo
}

func (s SearchResponse) Len() int           {
	return len(s.Results)
}

func (s SearchResponse) Less(i, j int) bool {
	return s.Results[i].Name < s.Results[j].Name
}

func (s SearchResponse) Swap(i, j int)      {
	s.Results[i], s.Results[j] = s.Results[j], s.Results[i]
}

var _ sort.Interface = SearchResponse{}

type PkgInfo struct {
	Maintainer     *string
	ID             int64
	Name           string
	Version        string
	CategoryID     int64
	Description    string
	URL, URLPath   string
	License        string
	NumVotes       int
	OutOfDate      int
	FirstSubmitted *JSONTime
	LastModified   *JSONTime
}

func genericQuery(querytype, arg string, target interface{}) error {
	form := make(url.Values)
	form.Add("type", querytype)
	form.Add("arg", arg)
	url := AUR_RPC_URL + "?" + form.Encode()
	resp, er := http.Get(url)
	if er != nil {
		return er
	}

	buf := new(bytes.Buffer)
	_, er = io.CopyN(buf, resp.Body, 1e6)
	if er != nil && er != io.EOF {
		return er
	}
	jsonthings := buf.Bytes()

	// fmt.Println("Yolo:", string(jsonthings))
	var dummy AURResponseType
	er = json.Unmarshal(jsonthings, &dummy)

	switch {
	case dummy.Type == "error":
		var aur_err ErrorResponse
		er = json.Unmarshal(jsonthings, &aur_err)
		return fmt.Errorf("Error from AUR server: %s", aur_err.Msg)
	case er != nil:
		return fmt.Errorf("error in JSON parser: %s", er)
	default:
		er = json.Unmarshal(jsonthings, target)
		return er
	}
	panic("impossible")
}

func GetInfo(pkg string) (*PkgInfo, error) {
	var info InfoResponse
	er := genericQuery("info", pkg, &info)
	return info.Results, er
}

func DoSearch(pattern string) ([]PkgInfo, error) {
	var info SearchResponse
	er := genericQuery("search", pattern, &info)
	sort.Sort(info)
	return info.Results, er
}

type JSONTime time.Time

func (t *JSONTime) UnmarshalJSON(j []byte) error {
	var x int64
	if er := json.Unmarshal(j, &x); er != nil {
		return er
	}
	*t = JSONTime(time.Unix(x, 0))
	return nil
}

func (t *JSONTime) String() string {
	t2 := time.Time(*t)
	return t2.Format("2006-01-02 15:04:05 MST")
}

redpajama_set_name: RedPajamaGithub


Every year, I look forward to this event. In 2009, it is where I first met AJ Kelton and many of the folks to whom I later became close colleagues. The full transcript of the meeting can be found here. It's full of good advice and links for educators.
Now that Iggy, my avatar, has turned five years old (500 years in SL time) it's informative for me to compare the notes by our panel of experts who met on January 5 with my own youthful enthusiasm from 2007. This year our panelists were not grim, but they advised diversity and moving past a focus solely upon Second Life. Sarah Smith-Robbins, who could not attend our meeting but has been a regular in years past, has a worthwhile and detailed assessment of the situation, "Are Virtual Worlds (Still) Relevant in Education?"
Our answers will differ. For me, "yes, when I again teach a course using 3D simulations, probably in two years."
All of the panelists felt it had been a hard year for educators in Second Life, and that the sector has diminished as faculty look to alternatives that are cheaper and more autonomous of one company's control.
Interest in other virtual worlds has not necessarily spiked at the universities represented by the panelists; budgetary issues and the rise of mobile technology have worked against the expansion of faculty and student use of virtual worlds.
Ken Hubble, of the Canadian Border Crossing Project, will move his work from Second Life to Unity 3D. He prefers the interface and learning curve for Unity 3D, when designing simulations.
Wainbrave Bernal (Jonathon Richter) notes "I am seeing more researching into practice – applied research. . . . check out the ARVEL wiki for growing body of research in virtual worlds, augmented reality, and games – as well as emerging technology."
Despite a rough year behind us, none of the VWER guests were pessimistic. As Fleep Tuque (Chris Collins) notes about the year to come, "the focus will be less on a specific platform than on how we can bring together various technologies. My focus more on helping faculty and students learn."
And that sounds right to this blogger and educator.


text:
Q: Rerun on failed hosts only from workflow and inventory I have written a playbook to do a service check, for this example lets say to check if port 110 and 143 is listening - Dovecot service.
My inventory contains 16 hosts. IP's .1 - .16 respectively.
What I aim to achieve is: If dovecot is up do nothing however if it is off do X.
The issue I am having is - If dovecot or the ports are not listening it does not restart the service on that failed host alone but all the hosts within the inventory
- hosts: all
  gather_facts: true
  tasks:
- name: Check IMAP status
      shell: echo exit | telnet 127.0.0.1 143 | grep Connected
      register: imapconn
      ignore_errors: true
- name: Restart failed services
      service:
        name: dovecot
        state: restarted
         when: imapconn.stdout_lines != "Connected to 127.0.0.1."

Example playbook above
EDIT::
Could I not achieve the below:
 hosts:
 - "{{ item }}"
 gather_facts: true

 tasks:

   - name: Check IMAP status

     shell: echo exit | telnet 127.0.0.1 143 | grep Connected

     register: imapconn

     ignore_errors: true

   - debug:

           msg: var={{hostvars.item }}

     with_items: "{{ groups['devgroup1'] }}"

 with_items:

   - "{{ groups['mailstorage'] }}"

Servers 1 - 16 are in mailstorage, want to sequentially do service check 1 on .1 then once completed move to 2 and so on until end of inventory

redpajama_set_name: RedPajamaStackExchange


Cluj-Napoca is a city in Romania, Cluj county , with 324,576 inhabitants. It is located in the region(s) Transylvania, Erdélyi-középhegység, Bihar-hegység, Aranyosszék, Kalotaszeg. Nearby attractions are the Turda Salt Mine, Turda Gorge, Durgău Lakes, Székelykő and Lake Fântânele. Close to Cluj-Napoca are located the Feleacu Ski Slope, as well as Dângău Mic Ski Slope.
1 accommodation is in the surroundings of Cluj-Napoca and a total of 3 places in the whole region, available for free booking. In the area there are 2 chalets and 1 bed & breakfast, 1 can be booked without any deposit, 1 offers dining options (breakfast, lunch, dinner, half board, full board or all inclusive), 3 have a swimming pool. Accommodations of Cluj-Napoca can be seen on the map. Cluj-Napoca's accommodations have a score of 98% based on 41 guest reviews. Prices range between 16 and 274 $.
Related search terms: weekend package cluj-napoca accommodation accommodations stays places where to stay book booking reservation online phone contact owner dinner breakfast lunch half board full board all inclusive hotels pensions hostels bed and breakfast apartments villas guesthouses chalets vacation homes campings rent rental rentals map direction directions excursion trip group plan planing bus car.


text:
package hudson.model;

import com.google.common.collect.ImmutableList;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.converters.Converter;
import com.thoughtworks.xstream.converters.MarshallingContext;
import com.thoughtworks.xstream.converters.UnmarshallingContext;
import com.thoughtworks.xstream.converters.basic.DateConverter;
import com.thoughtworks.xstream.converters.collections.CollectionConverter;
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import hudson.Util;
import hudson.XmlFile;
import hudson.BulkChange;
import hudson.Extension;
import hudson.model.listeners.ItemListener;
import hudson.model.listeners.SaveableListener;
import hudson.util.HexBinaryConverter;
import hudson.util.Iterators;
import hudson.util.PersistedList;
import hudson.util.RunList;
import hudson.util.XStream2;
import jenkins.model.FingerprintFacet;
import jenkins.model.Jenkins;
import jenkins.model.TransientFingerprintFacetFactory;
import org.kohsuke.stapler.export.Exported;
import org.kohsuke.stapler.export.ExportedBean;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.AbstractCollection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * A file being tracked by Jenkins.
 *
 *

 * Lifecycle is managed by {@link FingerprintMap}.
 *
 * @author Kohsuke Kawaguchi
 * @see FingerprintMap
 */
@ExportedBean
public class Fingerprint implements ModelObject, Saveable {
    /**
     * Pointer to a {@link Build}.
     */
    @ExportedBean(defaultVisibility=2)
    public static class BuildPtr {
        String name;
        final int number;

        public BuildPtr(String name, int number) {
            this.name = name;
            this.number = number;
        }

        public BuildPtr(Run run) {
            this( run.getParent().getFullName(), run.getNumber() );
        }

        /**
         * Gets {@link Job#getFullName() the full name of the job}.
         *

         * Such job could be since then removed,
         * so there might not be a corresponding
         * {@link Job}.
         */
        @Exported
        public String getName() {
            return name;
        }

        void setName(String newName) {
            name = newName;
        }

        /**
         * Gets the {@link Job} that this pointer points to,
         * or null if such a job no longer exists.
         */
        public AbstractProject getJob() {
            return Jenkins.getInstance().getItemByFullName(name,AbstractProject.class);
        }

        /**
         * Gets the project build number.
         *

         * Such {@link Run} could be since then
         * discarded.
         */
        @Exported
        public int getNumber() {
            return number;
        }

        /**
         * Gets the {@link Job} that this pointer points to,
         * or null if such a job no longer exists.
         */
        public Run getRun() {
            Job j = getJob();
            if(j==null)     return null;
            return j.getBuildByNumber(number);
        }

        private boolean isAlive() {
            return getRun()!=null;
        }

        /**
         * Returns true if {@link BuildPtr} points to the given run.
         */
        public boolean is(Run r) {
            return r.getNumber()==number && r.getParent().getFullName().equals(name);
        }

        /**
         * Returns true if {@link BuildPtr} points to the given job.
         */
        public boolean is(Job job) {
            return job.getFullName().equals(name);
        }

        /**
         * Returns true if {@link BuildPtr} points to the given job
         * or one of its subordinates.
         *
         *

         * This is useful to check if an artifact in MavenModule
         * belongs to MavenModuleSet.
         */
        public boolean belongsTo(Job job) {
            Item p = Jenkins.getInstance().getItemByFullName(name);
            while(p!=null) {
                if(p==job)
                    return true;

                // go up the chain while we
                ItemGroup<? extends Item> parent = p.getParent();
                if (!(parent instanceof Item)) {
                    return false;
                }

                p = (Item) parent;
            }

            return false;
        }

        @Override public String toString() {
            return name + " #" + number;
        }
    }

    /**
     * Range of build numbers [start,end). Immutable.
     */
    @ExportedBean(defaultVisibility=4)
    public static final class Range {
        final int start;
        final int end;

        public Range(int start, int end) {
            assert start<end;
            this.start = start;
            this.end = end;
        }

        @Exported
        public int getStart() {
            return start;
        }

        @Exported
        public int getEnd() {
            return end;
        }

        public boolean isSmallerThan(int i) {
            return end<=i;
        }

        public boolean isBiggerThan(int i) {
            return i<start;
        }

        public boolean includes(int i) {
            return start<=i && i<end;
        }

        public Range expandRight() {
            return new Range(start,end+1);
        }

        public Range expandLeft() {
            return new Range(start-1,end);
        }

        public boolean isAdjacentTo(Range that) {
            return this.end==that.start;
        }

        @Override
        public String toString() {
            return "["+start+","+end+")";
        }

        /**
         * Returns true if two {@link Range}s can't be combined into a single range.
         */
        public boolean isIndependent(Range that) {
            return this.end<that.start ||that.end<this.start;
        }

        /**
         * Returns true if this range only represents a single number.
         */
        public boolean isSingle() {
            return end-1==start;
        }

        /**
         * Returns the {@link Range} that combines two ranges.
         */
        public Range combine(Range that) {
            assert !isIndependent(that);
            return new Range(
                Math.min(this.start,that.start),
                Math.max(this.end  ,that.end  ));
        }
    }

    /**
     * Set of {@link Range}s.
     */
    @ExportedBean(defaultVisibility=3)
    public static final class RangeSet {
        // sorted
        private final List<Range> ranges;

        public RangeSet() {
            this(new ArrayList<Range>());
        }

        private RangeSet(List<Range> data) {
            this.ranges = data;
        }

        /**
         * List all numbers in this range set, in the ascending order.
         */
        public Iterable<Integer> listNumbers() {
            final List<Range> ranges = getRanges();
            return new Iterable<Integer>() {
                public Iterator<Integer> iterator() {
                    return new Iterators.FlattenIterator<Integer,Range>(ranges) {
                        protected Iterator<Integer> expand(Range range) {
                            return Iterators.sequence(range.start,range.end).iterator();
                        }
                    };
                }
            };
        }

//        /**
//         * List up builds.
//         */
//        public <J extends Job<J,R>,R extends Run<J,R>>  Iterable<R> listBuilds(final J job) {
//            return new Iterable<R>() {
//                public Iterator<R> iterator() {
//                    return new Iterators.FilterIterator<R>(new AdaptedIterator<Integer,R>(listNumbers().iterator()) {
//                        protected R adapt(Integer n) {
//                            return job.getBuildByNumber(n);
//                        }
//                    }) {
//                        protected boolean filter(R r) {
//                            return r!=null;
//                        }
//                    };
//                }
//            };
//        }

        /**
         * List all numbers in this range set in the descending order.
         */
        public Iterable<Integer> listNumbersReverse() {
            final List<Range> ranges = getRanges();
            return new Iterable<Integer>() {
                public Iterator<Integer> iterator() {
                    return new Iterators.FlattenIterator<Integer,Range>(Iterators.reverse(ranges)) {
                        protected Iterator<Integer> expand(Range range) {
                            return Iterators.reverseSequence(range.start,range.end).iterator();
                        }
                    };
                }
            };
        }

        /**
         * Gets all the ranges.
         */
        @Exported
        public synchronized List<Range> getRanges() {
            return new ArrayList<Range>(ranges);
        }

        /**
         * Expands the range set to include the given value.
         * If the set already includes this number, this will be a no-op.
         */
        public synchronized void add(int n) {
            for( int i=0; i<ranges.size(); i++ ) {
                Range r = ranges.get(i);
                if(r.includes(n))   return; // already included
                if(r.end==n) {
                    ranges.set(i,r.expandRight());
                    checkCollapse(i);
                    return;
                }
                if(r.start==n+1) {
                    ranges.set(i,r.expandLeft());
                    checkCollapse(i-1);
                    return;
                }
                if(r.isBiggerThan(n)) {
                    // needs to insert a single-value Range
                    ranges.add(i,new Range(n,n+1));
                    return;
                }
            }

            ranges.add(new Range(n,n+1));
        }

        private void checkCollapse(int i) {
            if(i<0 || i==ranges.size()-1)     return;
            Range lhs = ranges.get(i);
            Range rhs = ranges.get(i+1);
            if(lhs.isAdjacentTo(rhs)) {
                // collapsed
                Range r = new Range(lhs.start,rhs.end);
                ranges.set(i,r);
                ranges.remove(i+1);
            }
        }

        public synchronized boolean includes(int i) {
            for (Range r : ranges) {
                if(r.includes(i))
                    return true;
            }
            return false;
        }

        public synchronized void add(RangeSet that) {
            int lhs=0,rhs=0;
            while(lhs<this.ranges.size() && rhs<that.ranges.size()) {
                Range lr = this.ranges.get(lhs);
                Range rr = that.ranges.get(rhs);

                // no overlap
                if(lr.end<rr.start) {
                    lhs++;
                    continue;
                }
                if(rr.end<lr.start) {
                    ranges.add(lhs,rr);
                    lhs++;
                    rhs++;
                    continue;
                }

                // overlap. merge two
                Range m = lr.combine(rr);
                rhs++;

                // since ranges[lhs] is expanded, it might overlap with others in this.ranges
                while(lhs+1<this.ranges.size() && !m.isIndependent(this.ranges.get(lhs+1))) {
                    m = m.combine(this.ranges.get(lhs+1));
                    this.ranges.remove(lhs+1);
                }

                this.ranges.set(lhs,m);
            }

            // if anything is left in that.ranges, add them all
            this.ranges.addAll(that.ranges.subList(rhs,that.ranges.size()));
        }

        @Override
        public synchronized String toString() {
            StringBuilder buf = new StringBuilder();
            for (Range r : ranges) {
                if(buf.length()>0)  buf.append(',');
                buf.append(r);
            }
            return buf.toString();
        }

        public synchronized boolean isEmpty() {
            return ranges.isEmpty();
        }

        /**
         * Returns the smallest value in this range.
         *

         * If this range is empty, this method throws an exception.
         */
        public synchronized int min() {
            return ranges.get(0).start;
        }

        /**
         * Returns the largest value in this range.
         *

         * If this range is empty, this method throws an exception.
         */
        public synchronized int max() {
            return ranges.get(ranges.size()-1).end;
        }

        /**
         * Returns true if all the integers logically in this {@link RangeSet}
         * is smaller than the given integer. For example, {[1,3)} is smaller than 3,
         * but {[1,3),[100,105)} is not smaller than anything less than 105.
         *
         * Note that {} is smaller than any n.
         */
        public synchronized boolean isSmallerThan(int n) {
            if(ranges.isEmpty())    return true;

            return ranges.get(ranges.size() - 1).isSmallerThan(n);
        }

        /**
         * Parses a {@link RangeSet} from a string like "1-3,5,7-9"
         */
        public static RangeSet fromString(String list, boolean skipError) {
            RangeSet rs = new RangeSet();
            for (String s : Util.tokenize(list,",")) {
                s = s.trim();
                // s is either single number or range "x-y".
                // note that the end range is inclusive in this notation, but not in the Range class
                try {
                    if(s.contains("-")) {
                        String[] tokens = Util.tokenize(s,"-");
                        rs.ranges.add(new Range(Integer.parseInt(tokens[0]),Integer.parseInt(tokens[1])+1));
                    } else {
                        int n = Integer.parseInt(s);
                        rs.ranges.add(new Range(n,n+1));
                    }
                } catch (NumberFormatException e) {
                    if (!skipError)
                        throw new IllegalArgumentException("Unable to parse "+list);
                    // ignore malformed text

                }
            }
            return rs;
        }

        static final class ConverterImpl implements Converter {
            private final Converter collectionConv; // used to convert ArrayList in it

            public ConverterImpl(Converter collectionConv) {
                this.collectionConv = collectionConv;
            }

            public boolean canConvert(Class type) {
                return type==RangeSet.class;
            }

            public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) {
                RangeSet src = (RangeSet) source;
                writer.setValue(serialize(src));
            }

            static String serialize(RangeSet src) {
                StringBuilder buf = new StringBuilder(src.ranges.size()*10);
                for (Range r : src.ranges) {
                    if(buf.length()>0)  buf.append(',');
                    if(r.isSingle())
                        buf.append(r.start);
                    else
                        buf.append(r.start).append('-').append(r.end-1);
                }
                return buf.toString();
            }

            public Object unmarshal(HierarchicalStreamReader reader, final UnmarshallingContext context) {
                if(reader.hasMoreChildren()) {
                    /* old format where <range> elements are nested like
                            <range>
                              <start>1337</start>
                              <end>1479</end>
                            </range>
                     */
                    return new RangeSet((List<Range>)(collectionConv.unmarshal(reader,context)));
                } else {
                    return RangeSet.fromString(reader.getValue(),true);
                }
            }
        }
    }

    @Extension
    public static final class ProjectRenameListener extends ItemListener {
        @Override
        public void onRenamed(Item item, String oldName, String newName) {
            if (item instanceof AbstractProject) {
                AbstractProject p = Hudson.getInstance().getItemByFullName(newName, AbstractProject.class);
                if (p != null) {
                    RunList builds = p.getBuilds();
                    for (Object build : builds) {
                        if (build instanceof AbstractBuild) {
                            Collection<Fingerprint> fingerprints = ((AbstractBuild)build).getBuildFingerprints();
                            for (Fingerprint f : fingerprints) {
                                try {
                                    f.rename(oldName, newName);
                                } catch (IOException e) {
                                    logger.log(Level.WARNING, "Failed to update fingerprint record " + f.getFileName() + " when " + oldName + " was renamed to " + newName, e);
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    private static final DateConverter DATE_CONVERTER = new DateConverter();

    private final Date timestamp;

    /**
     * Null if this fingerprint is for a file that's
     * apparently produced outside.
     */
    private final BuildPtr original;

    private final byte[] md5sum;

    private final String fileName;

    /**
     * Range of builds that use this file keyed by a job full name.
     */
    private final Hashtable<String,RangeSet> usages = new Hashtable<String,RangeSet>();

    PersistedList<FingerprintFacet> facets = new PersistedList<FingerprintFacet>(this);

    /**
     * Lazily computed immutable {@link FingerprintFacet}s created from {@link TransientFingerprintFacetFactory}.
     */
    private transient volatile List<FingerprintFacet> transientFacets = null;

    public Fingerprint(Run build, String fileName, byte[] md5sum) throws IOException {
        this(build==null ? null : new BuildPtr(build), fileName, md5sum);
        save();
    }

    Fingerprint(BuildPtr original, String fileName, byte[] md5sum) {
        this.original = original;
        this.md5sum = md5sum;
        this.fileName = fileName;
        this.timestamp = new Date();
    }

    /**
     * The first build in which this file showed up,
     * if the file looked like it's created there.
     *

     * This is considered as the "source" of this file,
     * or the owner, in the sense that this project "owns"
     * this file.
     *
     * @return null
     *      if the file is apparently created outside Hudson.
     */
    @Exported
    public BuildPtr getOriginal() {
        return original;
    }

    public String getDisplayName() {
        return fileName;
    }

    /**
     * The file name (like "foo.jar" without path).
     */
    @Exported
    public String getFileName() {
        return fileName;
    }

    /**
     * Gets the MD5 hash string.
     */
    @Exported(name="hash")
    public String getHashString() {
        return Util.toHexString(md5sum);
    }

    /**
     * Gets the timestamp when this record is created.
     */
    @Exported
    public Date getTimestamp() {
        return timestamp;
    }

    /**
     * Gets the string that says how long since this build has scheduled.
     *
     * @return
     *      string like "3 minutes" "1 day" etc.
     */
    public String getTimestampString() {
        long duration = System.currentTimeMillis()-timestamp.getTime();
        return Util.getPastTimeString(duration);
    }

    /**
     * Gets the build range set for the given job name.
     *
     *

     * These builds of this job has used this file.
     */
    public RangeSet getRangeSet(String jobFullName) {
        RangeSet r = usages.get(jobFullName);
        if(r==null) r = new RangeSet();
        return r;
    }

    public RangeSet getRangeSet(Job job) {
        return getRangeSet(job.getFullName());
    }

    /**
     * Gets the sorted list of job names where this jar is used.
     */
    public List<String> getJobs() {
        List<String> r = new ArrayList<String>();
        r.addAll(usages.keySet());
        Collections.sort(r);
        return r;
    }

    public Hashtable<String,RangeSet> getUsages() {
        return usages;
    }

    @ExportedBean(defaultVisibility=2)
    public static final class RangeItem {
        @Exported
        public final String name;
        @Exported
        public final RangeSet ranges;

        public RangeItem(String name, RangeSet ranges) {
            this.name = name;
            this.ranges = ranges;
        }
    }

    // this is for remote API
    @Exported(name="usage")
    public List<RangeItem> _getUsages() {
        List<RangeItem> r = new ArrayList<RangeItem>();
        for (Entry<String, RangeSet> e : usages.entrySet())
            r.add(new RangeItem(e.getKey(),e.getValue()));
        return r;
    }

    public synchronized void add(AbstractBuild b) throws IOException {
        add(b.getParent().getFullName(),b.getNumber());
    }

    /**
     * Records that a build of a job has used this file.
     */
    public synchronized void add(String jobFullName, int n) throws IOException {
        addWithoutSaving(jobFullName, n);
        save();
    }

    void addWithoutSaving(String jobFullName, int n) {
        synchronized(usages) { // XXX why not synchronized (this) like some, though not all, other accesses?
            RangeSet r = usages.get(jobFullName);
            if(r==null) {
                r = new RangeSet();
                usages.put(jobFullName,r);
            }
            r.add(n);
        }
    }

    /**
     * Returns true if any of the builds recorded in this fingerprint
     * is still retained.
     *
     *

     * This is used to find out old fingerprint records that can be removed
     * without losing too much information.
     */
    public synchronized boolean isAlive() {
        if(original!=null && original.isAlive())
            return true;

        for (Entry<String,RangeSet> e : usages.entrySet()) {
            Job j = Jenkins.getInstance().getItemByFullName(e.getKey(),Job.class);
            if(j==null)
                continue;

            Run firstBuild = j.getFirstBuild();
            if(firstBuild==null)
                continue;

            int oldest = firstBuild.getNumber();
            if(!e.getValue().isSmallerThan(oldest))
                return true;
        }
        return false;
    }

    /**
     * Gets the associated {@link FingerprintFacet}s.
     *
     *

     * This method always return a non-empty collection, which is a synthetic collection.
     * It contains persisted {@link FingerprintFacet}s (those that are added explicitly, like
     * {@code fingerprint.getFacets().add(x)}), as well those {@linkplain TransientFingerprintFacetFactory that are transient}.
     *
     *

     * Mutation to this collection will manipulate persisted set of {@link FingerprintFacet}s, and therefore regardless
     * of what you do, this collection will always contain a set of {@link FingerprintFacet}s that are added
     * by {@link TransientFingerprintFacetFactory}s.
     *
     * @since 1.421
     */
    public Collection<FingerprintFacet> getFacets() {
        if (transientFacets==null) {
            List<FingerprintFacet> transientFacets = new ArrayList<FingerprintFacet>();
            for (TransientFingerprintFacetFactory fff : TransientFingerprintFacetFactory.all()) {
                fff.createFor(this,transientFacets);
            }
            this.transientFacets = ImmutableList.copyOf(transientFacets);
        }

        return new AbstractCollection<FingerprintFacet>() {
            @Override
            public Iterator<FingerprintFacet> iterator() {
                return Iterators.sequence(facets.iterator(), transientFacets.iterator());
            }

            @Override
            public boolean add(FingerprintFacet e) {
                try {
                    facets.add(e);
                    return true;
                } catch (IOException x) {
                    throw new Error(x);
                }
            }

            @Override
            public boolean remove(Object o) {
                try {
                    return facets.remove((FingerprintFacet)o);
                } catch (IOException x) {
                    throw new Error(x);
                }
            }

            @Override
            public boolean contains(Object o) {
                return facets.contains(o) || transientFacets.contains(o);
            }

            @Override
            public int size() {
                return facets.size()+transientFacets.size();
            }
        };
    }

    public Collection<FingerprintFacet> getSortedFacets() {
        List<FingerprintFacet> r = new ArrayList<FingerprintFacet>(getFacets());
        Collections.sort(r,new Comparator<FingerprintFacet>() {
            public int compare(FingerprintFacet o1, FingerprintFacet o2) {
                long a = o1.getTimestamp();
                long b = o2.getTimestamp();
                if (a<b)    return -1;
                if (a==b)   return 0;
                return 1;
            }
        });
        return r;
    }

    /**
     * Returns the actions contributed from {@link #getFacets()}
     */
    public List<Action> getActions() {
        List<Action> r = new ArrayList<Action>();
        for (FingerprintFacet ff : getFacets())
            ff.createActions(r);
        return Collections.unmodifiableList(r);
    }

    /**
     * Save the settings to a file.
     */
    public synchronized void save() throws IOException {
        if(BulkChange.contains(this))   return;

        long start=0;
        if(logger.isLoggable(Level.FINE))
            start = System.currentTimeMillis();

        File file = getFingerprintFile(md5sum);
        save(file);
        SaveableListener.fireOnChange(this, getConfigFile(file));

        if(logger.isLoggable(Level.FINE))
            logger.fine("Saving fingerprint "+file+" took "+(System.currentTimeMillis()-start)+"ms");
    }

    void save(File file) throws IOException {
        if (facets.isEmpty()) {
            file.getParentFile().mkdirs();
            // JENKINS-16301: fast path for the common case.
            PrintWriter w = new PrintWriter(file, "UTF-8");
            try {
                w.println("<?xml version='1.0' encoding='UTF-8'?>");
                w.println("<fingerprint>");
                w.print("  <timestamp>");
                w.print(DATE_CONVERTER.toString(timestamp));
                w.println("</timestamp>");
                if (original != null) {
                    w.println("  <original>");
                    w.print("    <name>");
                    w.print(original.name);
                    w.println("</name>");
                    w.print("    <number>");
                    w.print(original.number);
                    w.println("</number>");
                    w.println("  </original>");
                }
                w.print("  <md5sum>");
                w.print(Util.toHexString(md5sum));
                w.println("</md5sum>");
                w.print("  <fileName>");
                w.print(fileName);
                w.println("</fileName>");
                w.println("  <usages>");
                for (Map.Entry<String,RangeSet> e : usages.entrySet()) {
                    w.println("    <entry>");
                    w.print("      <string>");
                    w.print(e.getKey());
                    w.println("</string>");
                    w.print("      <ranges>");
                    w.print(RangeSet.ConverterImpl.serialize(e.getValue()));
                    w.println("</ranges>");
                    w.println("    </entry>");
                }
                w.println("  </usages>");
                w.println("  <facets/>");
                w.print("</fingerprint>");
                w.flush();
            } finally {
                w.close();
            }
        } else {
            // Slower fallback that can persist facets.
            getConfigFile(file).write(this);
        }
    }

    /**
     * Update references to a renamed job in the fingerprint
     */
    public synchronized void rename(String oldName, String newName) throws IOException {
        boolean touched = false;
        if (original != null) {
            if (original.getName().equals(oldName)) {
                original.setName(newName);
                touched = true;
            }
        }

        if (usages != null) {
            RangeSet r = usages.get(oldName);
            if (r != null) {
                usages.put(newName, r);
                usages.remove(oldName);
                touched = true;
            }
        }

        if (touched) {
            save();
        }
    }

    public Api getApi() {
        return new Api(this);
    }

    /**
     * The file we save our configuration.
     */
    private static XmlFile getConfigFile(File file) {
        return new XmlFile(XSTREAM,file);
    }

    /**
     * Determines the file name from md5sum.
     */
    private static File getFingerprintFile(byte[] md5sum) {
        assert md5sum.length==16;
        return new File( Jenkins.getInstance().getRootDir(),
            "fingerprints/"+ Util.toHexString(md5sum,0,1)+'/'+Util.toHexString(md5sum,1,1)+'/'+Util.toHexString(md5sum,2,md5sum.length-2)+".xml");
    }

    /**
     * Loads a {@link Fingerprint} from a file in the image.
     */
    /*package*/ static Fingerprint load(byte[] md5sum) throws IOException {
        return load(getFingerprintFile(md5sum));
    }
    /*package*/ static Fingerprint load(File file) throws IOException {
        XmlFile configFile = getConfigFile(file);
        if(!configFile.exists())
            return null;

        long start=0;
        if(logger.isLoggable(Level.FINE))
            start = System.currentTimeMillis();

        try {
            Fingerprint f = (Fingerprint) configFile.read();
            if(logger.isLoggable(Level.FINE))
                logger.fine("Loading fingerprint "+file+" took "+(System.currentTimeMillis()-start)+"ms");
            if (f.facets==null)
                f.facets = new PersistedList<FingerprintFacet>(f);
            for (FingerprintFacet facet : f.facets)
                facet._setOwner(f);
            return f;
        } catch (IOException e) {
            if(file.exists() && file.length()==0) {
                // Despite the use of AtomicFile, there are reports indicating that people often see
                // empty XML file, presumably either due to file system corruption (perhaps by sudden
                // power loss, etc.) or abnormal program termination.
                // generally we don't want to wipe out user data just because we can't load it,
                // but if the file size is 0, which is what's reported in HUDSON-2012, then it seems
                // like recovering it silently by deleting the file is not a bad idea.
                logger.log(Level.WARNING, "Size zero fingerprint. Disk corruption? "+configFile,e);
                file.delete();
                return null;
            }
            logger.log(Level.WARNING, "Failed to load "+configFile,e);
            throw e;
        }
    }

    @Override public String toString() {
        return "Fingerprint[original=" + original + ",hash=" + getHashString() + ",fileName=" + fileName + ",timestamp=" + DATE_CONVERTER.toString(timestamp) + ",usages=" + new TreeMap<String,RangeSet>(usages) + ",facets=" + facets + "]";
    }

    private static final XStream XSTREAM = new XStream2();
    static {
        XSTREAM.alias("fingerprint",Fingerprint.class);
        XSTREAM.alias("range",Range.class);
        XSTREAM.alias("ranges",RangeSet.class);
        XSTREAM.registerConverter(new HexBinaryConverter(),10);
        XSTREAM.registerConverter(new RangeSet.ConverterImpl(
            new CollectionConverter(XSTREAM.getMapper()) {
                @Override
                protected Object createCollection(Class type) {
                    return new ArrayList();
                }
            }
        ),10);
    }

    private static final Logger logger = Logger.getLogger(Fingerprint.class.getName());
}


text:
Home Launches & Missions JAXA launches its first startup-built satellite RAPIS-1 & 6 other satellites
JAXA launches its first startup-built satellite RAPIS-1 & 6 other satellites
"RAPIS-1" (RAPid Innovative payload demonstration Satellite 1), a small satellite commissioned by Japan's space agency JAXA and designed and operated by newspace startup Axelspace was successfully launched from the Uchinoura Space Center in Kagoshima Prefecture, Japan at 9:50 AM of January 18th, 2019.
The 200-kg satellite was launched by JAXA's light launch vehicle, Epsilon-4, along with six other microsatellites and cubesats. The successful separation of RAPIS-1 was confirmed about 50 minutes after launch.
RAPIS-1 is part of JAXA's Innovative Satellite Technology Demonstration Program, an initiative to provide in-orbit validation opportunities to external entities, with the objective of strengthening the technologies behind core satellite components. The Japanese Government's space program has scheduled four demonstration launch opportunities, one every two years. This launch represents the first of these four and is termed "Innovative Satellite Technology Demonstration-1", and carries seven demonstration experiments.
These demonstrations are:
Testing the space environment tolerance of a field-programmable gate array (FGPA), by
2-3 Gbps X-band downlink in-orbit demonstration by Keio University
Green Propellant Reaction Control System (GPRCS) by Japan Space Systems
Space Particle Monitor (SPM) by Japan Space Systems
Deep learning attitude sensor/star tracker by Tokyo Institute of Technology
Light-weight solar panel apparatus by JAXA
Miniaturized low-power GNSS receiver by Chubu University
So far, the RAPIS-1's critical operation phase has been passed, and the satellite has begun performing check-out operations on all the on-board components which is likely to last a month. After that, the nominal operation phase will begin and the seven experimental instruments will begin performing in-orbit tests.
The six other satellites in Friday's launch were for:
ALE 1, a 65-kg satellite and the first satellite for Japan-based artificial meteor company ALE, which aims to use microsatellites to create meteor showers
AOBE-VELOX-4, a 2U cubesat designed by Japan's Kyutech and Singapore's Nanyang Technological University (NTU) to observe and image the Lunar Horizon Glow
MicroDragon, a 50-kg Earth Observation satellite built by Vietnam's spage agency the Vietnam National Satellite Center (VNSC)
Hodoyoshi 2 or RISESat (Rapid International Scientific Experiment Satellite), a 50-kg satellite developed by the University of Tokyo, and carrying 8 international scientific payloads
OrigamiSat 1, a 3U Cubesat with a membrane deployment system, by Tokyo Institute of Technology (TITech), and
NEXUS, a 1U cubesat for amateur radio, designed at Nihon University in collaboration with Japan AMSAT Association (JAMSAT).
Previous articleInterview: Microspace, Singapore's 1st Newspace company
Next articleChina's seeds have sprouted on the Moon!

redpajama_set_name: RedPajamaCommonCrawl


Just Bow-tiful! Such a pretty piece. The satin lined bodice of this dress is constructed from beautiful blush colored lace, that is adorned with muted and sparkly subtle sequence. The sleeves have a scalloped edge. The neck of the dress is formed from handmade fabric flowers and appliques covered with crystals, beads and pearls.
The statement piece of this dress is the huge shoulder bow. The tea-length bottom of this design has a circle skirt, which is totally twirl worthy! The flower patterned skirt fabric is made of stretch chiffon, and under it is fully lined and layered with yards and yards of tulle, to give it the right amount of puff!
The back of this dress has a deep scoop and has a crisscross corset inspired ribbon closure.
This design can be made in any color combination upon request.


text:
Home News Sports News Report: Bryce Harper turned down 'aggressive offer' from Nationals
Report: Bryce Harper turned down 'aggressive offer' from Nationals
Dustin Bradford/Getty Images(NEW YORK) — The Washington Nationals made an offer to Bryce Harper late in the season in an attempt to reach a deal before he became a free agent.
At the general managers' meetings on Tuesday, Nationals general manager Mike Rizzo disclosed the team's talks with Harper's agent, Scott Boras.
The team made Harper an "aggressive offer" in September that included no opt-outs and was less than the $400 million Harper was speculated to receive, according to Washington Post reports.
Harper, who turned 26 last month, is expected to receive the largest contract among the 164 free agents. He is a six-time All-Star with 184 homers, 521 RBIs and a .900 OPS.
Boras is known for extending talks with his free agents past the holiday break. His clients include Nationals pitchers Max Scherzer and Stephen Strasburg, and former Nats outfielder Jayson Werth.
According to soruces, Boras is floating the notion that Harper could shift from outfield to first base which could open up negotiations with other teams.
Previous articleJoni Mitchell turns 75 today, as series of tribute events are held in L.A.
Next articleHigh school football coach pulls off sweet proposal with the help of his players