text:
Christopher Cummings, Ph.D. appointed director of research development at the Jan and Dan Duncan Neurological Research Institute at Texas Children's Hospital
Christopher Cummings, Ph.D. has been appointed to the new position of director of research development at the Jan and Dan Duncan Neurological Research Institute (NRI) at Texas Children's Hospital, the world's first basic research institute dedicated to childhood neurological diseases.
The position explores and develops the NRI's relationships with industrial partners and supports innovation on the NRI campus by identifying new grants at the federal, state and foundation levels. In his role, Cummings will reach out to industry and academic representatives to create new models for university alliances and to shepherd these models at the NRI on a broad, interdisciplinary scale. He also serves as an assistant professor in the Department of Molecular and Human Genetics at Baylor College of Medicine (BCM).
"As someone who has experience in basic academic research, biotechnology and venture capital, Chris has a wealth of skills to draw on in his efforts to bridge the gap between the various sectors," said Dr. Huda Y. Zoghbi, director of the NRI and professor of molecular and human genetics, neurology, neuroscience and pediatrics at BCM. "We welcome him enthusiastically to the NRI team and believe his efforts will help us forge new collaborations that fuel progress in neurological research."
Cummings joins the NRI from a specialty life-science investment company that creates biopharmaceutical incubators and invests in early development stage assets from international pharmaceutical and biotech partners in oncology, virology and central nervous system disorders.
"Being part of prestigious academic medical institutions, the NRI is exceptionally well positioned to be a partner with pharmaceutical and biotech companies in developing innovative approaches to fuel the next generation of breakthrough therapies ? especially for complex neurological diseases," said Cummings. "This is a very compelling place to be and the right time to come on board as the demand to bring new therapeutics forward, and the escalating costs of doing so, is driving big companies to seek collaborations with academia."
Cummings earned his bachelor degree in microbiology at the University of California, Santa Barbara, and his Ph.D. in Cell and Molecular Biology at Baylor College of Medicine. After earning his Ph.D., Cummings went into industry as a scientist at an emerging biopharmaceutical company dedicated to the discovery and development of new drugs and drug targets for the prevention and treatment of diseases of the central nervous system. His entrepreneurial spirit compelled him to leave and co-found EnVivo Pharmaceuticals, a company focused on therapeutics for devastating disorders including Alzheimer's disease, Parkinson's disease and schizophrenia.


text:
President of the Republic of Srpska attends the traditional bringing of an oak tree branch to the premises of the General Secretariat of the President of the Republic at the invitation of the President of the Republic of Serbia
The President of the Republic of Srpska Željka Cvijanović attended today in Belgrade the traditional bringing of an oak tree branch to the premises of the General Secretariat of the President of the Republic at the invitation of the President of the Republic of Serbia Aleksandar Vučić.
The President of the Republic of Srpska stated that messages of unity and communion were sent from Belgrade today after the meeting of the Serb representatives from the region and the President of Serbia Aleksandar Vučić.
The President of Srpska pointed out that such meetings were not aimed against anyone, and that they serve to discuss many issues and to jointly define certain goals.
"It is important that we are gathered here to meet Christmas, the Day of the Republic of Srpska, it is important that we gathered at the beginning of the year. I am thankful for both constructive talks and a nice opportunity for us to participate in bringing of the oak tree branch and to send a message that we should work together, to understand each other well and to be supportive of each other", said the President Cvijanović.
The President of the Republic pointed out that everyone are looking at Serbia, which should be strong and therefore a support for the Republic of Srpska.
"For us in the Republic of Srpska, it is definitely the most natural and logical political, human, economic and any other connection with Serbia. This was an opportunity to further confirm such a cooperation", said the President of Srpska.
The traditional bringing of an oak tree branch was attended by the Chairman of BiH Presidency Milorad Dodik, Prime Minister of Serbia Ana Brnabić, President of the Serbian National Council in Croatia Milorad Pupovac, the President of the Democratic Party of the Serbs in Macedonia Ivan Stoilković, presidents of the New Serbian Democracy Andrija Mandić and the Democratic People's Party of Montenegro Milan Knežević, as well as a member of the "United Montenegro" in the Montenegrin Parliament Goran Danilović.

redpajama_set_name: RedPajamaCommonCrawl


Everyone who attends this fun event will have the opportunity for a one-minute speech to promote their business or organization. This will be a terrific chance for businesses to say who they are, describe a sample of their social good program, and how they want to help nonprofits in 2019. And for area nonprofits to say who they are and where they need help in 2019. Great connections. Great energy. Great fun!


The Colonial Estate's two flagship wines come from their own property. The 2006 Exile was sourced from a single 140-year-old vineyard with the blend consisting of 85% Shiraz, 10% Mourvedre, and 5% Grenache. Opaque purple/black in color, it exhibits a captivating perfume of toasty oak, smoke, black pepper, truffle, blueberry pie, and blackberry liqueur. Complex, silky-textured, and nicely balanced, this layered, lengthy wine will continue to improve over the next 4-6 years and have a drinking window extending from 2013 to 2026.
In the middle 1800's the Lange family settled from Bavaria in the Barossa Valley. The vineyard that they decided to plant was just off the main road of Nuriootpa. The vines have been dry grown since then and the grapes have gone into the great and good of Australia including "Grange". Like "Chateau Haut-Brion" the town has grown up around it and it is now an oasis of a vineyard with houses surrounding it.
Exile is 100% sourced from the "Lange" Vineyard, now a part of The Colonial Estate. The single-vineyard wine is made up of old vine Shiraz with some Mourvedre and Muscadelle. The age of some of these vines date back to the 1800's.
The wine is made in the French fashion – low cropping aided by green harvesting, handpicking into trays, and double-triage on arrival at the winery. The wooden vats – shipped from Cognac in France -appear incongruous in their setting. The wine is picked ripe and, after vinification, poured into pure new French oak.


text:
The Williams Grand Prix Database
The unofficial home of the Williams F1 team
1977 – Williams Grand Prix Engineering formed
1978 – Alan Jones Joins the Team
1979 – The first win – at Silverstone
1980 – Alan Jones takes the championship
1981 – Six-Wheeler Tested at Silverstone
1982 – Keke Rosberg Joins and Wins!
1983 – Team Moves to New Factory in Didcot
1984 – Full Season of Honda Engines
1985 – Nigel Mansell Joins Williams
1986 – Frank Williams in Road Accident
1987 – Nelson Piquet is Champion
1988 – Lean year and Poor Results
1989 – Renault to the Rescue
1990 – Adrian Newey Joins from Leyton House
1991 – The Return of Nigel Mansell
1992 – Finally it's Mansell!
1993 – Mansell Out, Prost In
1994 – Senna's Short Stay…
1995 – Williams Touring Car Engineering is Born
1996 – F1 Team Moves to Grove
1997 – Double Championship Success
1998 – A Winless Season
1999 – The Problem with Zanardi
2000 – Straight on the Button with BMW
2001 – Into year two with Montoya
2002 – Montoya breaks the speed record
2003 – So close in second
2004 – The Year of the Walrus
2005 – Last year of BMW Power
2006 – Back to Cosworth
2007 – First season with Toyota Power
2008 – Rosberg's First Podium
2009 – The Wolff of Wantage
2010 – Youth and Experience
2011 – Williams floats
2012 – Surprise! A Win!
2013 – A year to forget
2014 – Back on track
2015 – Consolidation in third
2016 – Fastest pitstops but slower races
2017 – 40th Anniversary & film release
2018 – No highs, only Lowes
2019 – And to think we'd reached rock bottom
2020 – Williams family sells to Dorilton Capital
2021 – An improvement and off the bottom
Jack Aitken
Thierry Boutsen
Martin Brundle
Derek Daly
Paul di Resta
Marc Gené
Damon Hill
Jacques Laffite
Pastor Maldonado
Juan-Pablo Montoya
Patrick Neve
Jonathan Palmer
Riccardo Patrese
Nelson Piquet
Antônio Pizzonia
Clay Regazzoni
Carlos Reutemann
Keke Rosberg
Ralf Schumacher
Sergey Sirotkin
Jacques Villeneuve
Alexander Wurz
Alex Zanardi
Jean-Christophe Boullion
Will Hoy
Alain Menu
Jason Plato
FW07C/FW08D (Six Wheelers)
FW43B
Williams JPH1
Metro 6R4
Jeremy Irvine Stars In New Brand Campaign Film For Williams Racing
December 18, 2021 Neil Thompson Leave a comment
Williams Racing has teamed up with actor Jeremy Irvine for a new brand campaign video. The film was first presented at an event hosted by Dorilton at Austin City Limits, by Jenson Button and CEO Jost Capito during the US Grand Prix weekend in October.
Williams is undergoing a transformation, both on and off-track, under new ownership and leadership. A part of that transformation is A Williams Beyond Racing, an exciting new brand direction which will see the team use their position gained from decades at the pinnacle of sport to engage and inspire a new audience, seeking collaborations and opportunities in sectors beyond motorsport.
Jeremy Irvine said: "I've always been a huge F1 fan. If I'm ever filming anywhere there is a race, I try to go along. I am hugely excited with where Williams is going, I think they're taking a really new exciting direction towards becoming a truly desirable racing team. I'm very privileged to be a very small part of the transformation of such a storied and iconic British Racing team."
Claudia Schwarz, Marketing Director for Williams Racing added: "This new era of Williams Racing is incredibly exciting and has already delivered some great results. This renewed focus on our brand will provide us with opportunities to drive growth and long-term success for the business whilst supporting our vision of a Williams Beyond Racing and our return to the front of the grid."
Related Posts from williamsdb.com
Williams Week – 20th December 2021 – The Week in Review
Williams Racing Renews Partnership With Crew Clothing As Official Supplier
Williams Racing Teams Up With 20Th Century Studios And Marv's The King's Man
Williams Racing Extends Partnership With Life Fitness as Official Fitness Equipment Supplier
Williams Welcomes Blackbird.Ai As Dorilton Ventures Partner
Williams Welcomes Julia Computing as Dorilton Ventures Partner
Williams Welcomes pax8 Cloud Distributor as Acronis #Cyberfit Partner
tagged with 2021, Sponsorship
Championship Positions
Position: 17th
Tweets by WilliamsdbF1
Archives Select Month January 2022 (2) December 2021 (19) November 2021 (18) October 2021 (16) September 2021 (18) August 2021 (10) July 2021 (16) June 2021 (18) May 2021 (17) April 2021 (13) March 2021 (23) February 2021 (8) January 2021 (7) December 2020 (13) November 2020 (17) October 2020 (16) September 2020 (24) August 2020 (21) July 2020 (17) June 2020 (6) May 2020 (7) April 2020 (5) March 2020 (7) February 2020 (15) January 2020 (10) December 2019 (9) November 2019 (16) October 2019 (14) September 2019 (20) August 2019 (10) July 2019 (17) June 2019 (15) May 2019 (17) April 2019 (16) March 2019 (15) February 2019 (11) January 2019 (4) December 2018 (7) November 2018 (16) October 2018 (18) September 2018 (18) August 2018 (12) July 2018 (19) June 2018 (15) May 2018 (15) April 2018 (17) March 2018 (13) February 2018 (12) January 2018 (7) December 2017 (4) November 2017 (14) October 2017 (18) September 2017 (15) August 2017 (14) July 2017 (19) June 2017 (16) May 2017 (13) April 2017 (19) March 2017 (16) February 2017 (12) January 2017 (8) December 2016 (5) November 2016 (15) October 2016 (19) September 2016 (18) August 2016 (10) July 2016 (23) June 2016 (15) May 2016 (18) April 2016 (16) March 2016 (17) February 2016 (15) January 2016 (7) December 2015 (7) November 2015 (18) October 2015 (15) September 2015 (18) August 2015 (9) July 2015 (12) June 2015 (17) May 2015 (14) April 2015 (15) March 2015 (21) February 2015 (18) January 2015 (10) December 2014 (6) November 2014 (16) October 2014 (9) September 2014 (10) August 2014 (4) July 2014 (18) June 2014 (11) May 2014 (12) April 2014 (10) March 2014 (15) February 2014 (13) January 2014 (10) December 2013 (4) November 2013 (14) October 2013 (13) September 2013 (8) August 2013 (5) July 2013 (15) June 2013 (11) May 2013 (12) April 2013 (11) March 2013 (26) February 2013 (19) January 2013 (7) December 2012 (46) November 2012 (3) July 2012 (1) May 2012 (1) December 2008 (1) November 2006 (1) October 2006 (2) October 2005 (1) October 1999 (2) September 1999 (2) August 1999 (2) July 1999 (2) June 1999 (2) May 1999 (3) April 1999 (1) March 1999 (1) November 1998 (1) September 1998 (3) August 1998 (2) July 1998 (3) June 1998 (4) May 1998 (1) April 1998 (2) March 1998 (2) January 1998 (3) November 1997 (1) October 1997 (1) September 1997 (2) August 1997 (1) July 1997 (1) June 1997 (2) May 1997 (1) April 1997 (2) March 1997 (1) November 1996 (2) October 1996 (1) September 1996 (5) August 1996 (3) July 1996 (4) June 1996 (7) May 1996 (3) April 1996 (4) March 1996 (1) January 1996 (1)


In this episode, Dr. Michael and Mary Lou Lake examine both the fall of Lucifer and Mystery Babylon and connect it to merchandising. In fact, Lucifer was literally the first "snake oil salesman" selling the Iniquity Force to the angels that fell from grace. Today, International Corporations are flowing in their Luciferian agenda to serve Mammon and to enslave humanity. This is a wakeup call to their agenda and how we can begin to break free of the entanglements of Mystery Babylon.
I absolutely agree about the Feasts of God, We start our process out of the world's holidays in 1998. Most are cut and dried regarding the occult and paganism.. But…. a major stumbling block always seems to be Thanksgiving. Mainly among keepers of the Feasts. Is it apart of the harvest with Halloween, or a separate day dedicated to giving God thanks?? It is NOT mentioned in scripture so….? We didn't observe it last year, now this year adult children are wanting to get together for the day. Any advice would be greatly appreciated. Thanks and May God keep blessing your ministry.
With all of that said, since everything is closed down anyway, there is nothing in the scripture that says that we cannot meet with family, have a good bowl of chili, study the Word, and discuss the Kingdom anytime we want. We simply do not enter into the "spirit" of the thing and enjoy some time off with family and friends.
. Thank you. I didn't know about Thursdays and witches. Since everyone has day off, I will revise menu not to reflect the spirit of the day as suggested. You guys are truly a blessing. So glad the Holy Spirit led us to your ministry.


text:
Poland after 10 April
We are wondering what to do in order not to lose the moral awakening we experienced during the national mourning; so that this big wave of solidarity become a creative power of responsibility for Poland before God and faith in Poland's strength, her importance in Europe and her future. The question is open because we seem to have the simplest answer; the thing is not the choice of values, responsibility for matters that will shape the future of our country but it is a simple choice of the party. Since the moral dimension of politics is not the matter of party competition but of politics that actively supports good life of people.
The future of our country first of all depends on families, whether they have children and how they bring them up – next generations of Poles. 70% of children are born to 30% of (clearly poor) families and so the Polish state must decisively support them. And it means a consistent decrease of the tax burden for families having children and support of parenthood by prolonging maternity leaves as well as granting retirement entitlements for mothers for every year of their work at home and upbringing children. Supporting families means supporting the ethics of family life and courageously opposing public demoralisation. Especially pornography. One cannot speak about family values and silently accept anti-family propaganda of promiscuity.
This work for Poland's future involves something more than popularity of principles. One cannot speak about the results when we have pro-family majority in the Parliament but one can speak about it when we increase the birth rate, when half a million of children a year will be born in Poland again.
Poland's future in Europe depends on her decisive involvement for the cause of the values of Christian civilisation. We should not return to the situation when the Parliament together with the government and opposition passively watched the attacks against the Pope in Europe. Instead of proposing to include the family rights in the catalogue of the fundamental values of the European Union our authorities passively agreed to include 'non-discrimination' of the so-called sexual minorities. We should not return to the situation when being able to build the authority of our country by defending the freedom of religion in the world we remain silent even when other European countries defend the persecuted Christians.
Poland, being the spokesman of Christian opinion in Europe, will still have opponents but will begin gaining understanding and appreciation on which one can build the European position of our country.
The state needs a decisive transformation of its political institutions (election in one-mandate constituencies and abolishing the unfair system of financing the political headquarters). Without that we will not build any area needed for honest and courageous politics.
The measure of our faith in the sense of the Polish independence is also to preserve our national currency when Poland does not constitute an optimal currency area with Western Europe. Will we be ready for this involvement in Poland's future: in active realisation of our Christian identity in Europe, in preserving the instruments of independent national politics, in restoring principles, convictions and responsibility in politics?
This is another challenge we are facing. May we cope with it well but first of all may we take up this challenge.


1. When did licensure become effective?
Regulations requiring licensure for Respiratory Therapy became effective July 1, 1998.
2. How can I obtain an application for a license and how long does the process take?
You may apply online here. The average time to process an application is 6 to 8 weeks.
3. Can I practice with a temporary license until a full license is issued?
No. Virginia does not issue a temporary license.
4. Does your state have reciprocity?
No. An applicant must meet the education and examination requirements to become licensed.
5. My school is no longer in existence. How do I provide documentation of education?
You must provide a notarized copy of your school's diploma and transcript and a statement that your school is no longer in existence.
6. When do I have to renew my license and how long will it take to receive my renewed license once fees have been sent?
Your license must be renewed biennially during your birth month in each odd-numbered year. The fee is $135.00. Licenses are updated upon receipt of fees. A current license is printed, mailed and delivered to its destination within 10 working days. If you do not receive your updated license within four weeks of payment, contact the board office.
7. What is the difference between an active and inactive license, and what are my options to renew my license?
An active license allows practice. An inactive does not allow practice. You may renew in an active or inactive status or allow your license to expire.
8. I am applying for a license in another state that requires verification of my Virginia license. How do I verify my license to another jurisdiction?
Go to www.dhp.virginia.gov and click on "License Lookup" from the menu bar. This is current, primary source verification that includes the same information the Board provides in a written verification.
You may also complete a Virginia license verification request form and submit with the appropriate processing fee.
Verifications are processed and mailed within 5-7 business days of receipt.
Under no circumstances will the Board send license verifications for overnight delivery even with a prepaid envelope.
If your license verification is not received, the Board will send a second verification free of charge; however, if more than three months have lapsed or the second verification is not received, a new request and fee are required.
9. What if I had not notified you of my change of address and the renewal form was sent to the old address?
If you do not receive a notice to renew, you will need to contact the board office at 804-367-4600 for instructions to renew.
10. What if my renewal payment is not received by the deadline?
An additional fee for processing a late renewal will be imposed. The license will not be updated until the additional fee is received.
11. I have mailed my renewal form to you. When can I expect to receive my new wallet card?
A renewal certificate with the wallet card attached is generated upon receipt of the renewal fee. It should reach the address of record within 10 to 14 business days.
12. I am going out of the country for a year. Can I renew early?
A license can only be updated within 60 days prior to the expiration date. Early renewal for military deployment may be considered. Call 804-367-4600.
13. What do I have to do to notify the board of an upcoming name change?
Name changes must be submitted in writing with a copy of legal documentation of name change. Requests may be faxed to 804-527-4426 or sent via email to medbd@dhp.virginia.gov.
14. I have not received my renewal certificate for the current year. What do I need to do?
Contact the board office at 804-367-4600.
15. Can you fax renewal forms to me?
16. May I verify a license online?
Yes. Visit the License Look Up.
17. Does the Virginia Board have a newsletter?
The board publishes a Board Brief newsletter periodically. The latest Board Briefs can be found online.
18. May I renew my Virginia license online?
Yes, you are able to renew during your renewal cycle through the Online Licensing website.
19. May I change my address online?
Yes. Visit the Online Licensing site for more details.
20. If I want to file a complaint, may I obtain a complaint form online?
Yes, visit the Enforcement section of the DHP web to get the form and you may email your complaint to complaints@dhp.virginia.gov.
21. Who is required to have a license?
Anyone who wishes to practice as a respiratory therapist or assume the title, "Respiratory Therapist" or use, in conjunction with his name, the letters "RT".
22. I have not practiced respiratory therapy for three years. Can I still obtain a license in Virginia?
If previously licensed or certified in another jurisdiction, a minimum of 160 hours of professional practice as a respiratory care practitioner within the 24-month period immediately preceding application for licensure is required. Active practice may include supervisory, administrative, educational or consultative activities or responsibilities for the delivery of such services.
23. What are the CE requirements for renewal?
Renewal in a current/active status requires attestation of having completed 20 hours of continuing respiratory therapy education as approved and documented by a sponsor recognized by the AARC or in courses directly related to the practice of respiratory therapy as approved the American Medical Association for Category 1 CME credit within the last biennium.


text:
Jiří Lang (* 11. března 1973) je bývalý český fotbalista, záložník.

Fotbalová kariéra
V československé a české lize hrál za Bohemians Praha. Nastoupil celkem ve 35 ligových utkáních a dal 2 góly.

Ligová bilance

Externí odkazy
 JFK-Fotbal - I. liga - hráči
 worldfootball.net
 Jiří Lang

Čeští fotbalisté
Fotbalisté FC Bohemians Praha
Narození v roce 1973
Žijící lidé
Muži
Narození 11. března

redpajama_set_name: RedPajamaWikipedia


The Super Cradle holds 50 sleeves, displaying at least 100 images (30inch x 40inch). The wide angle means your customers have a full view of each of your prints. Simple to assemble/disassemble, lightweight and packs flat, making it ideal for exhibitions. Listed below are also a browser sleeves to fit.


text:
package gengorums

// pkgIdentMap maps from package name to one of the package's identifiers.
// These identifiers are used by the Gorums protoc plugin to generate import statements.
var pkgIdentMap = map[string]string{"fmt": "Errorf", "github.com/relab/gorums": "ConfigOption", "google.golang.org/grpc/encoding": "GetCodec"}

// reservedIdents holds the set of Gorums reserved identifiers.
// These identifiers cannot be used to define message types in a proto file.
var reservedIdents = []string{"Configuration", "Manager", "Node", "QuorumSpec"}

var staticCode = `// A Configuration represents a static set of nodes on which quorum remote
// procedure calls may be invoked.
type Configuration struct {
	gorums.RawConfiguration
	nodes []*Node
	qspec QuorumSpec
}

// ConfigurationFromRaw returns a new Configuration from the given raw configuration and QuorumSpec.
//
// This function may for example be used to "clone" a configuration but install a different QuorumSpec:
//  cfg1, err := mgr.NewConfiguration(qspec1, opts...)
//  cfg2 := ConfigurationFromRaw(cfg1.RawConfig, qspec2)
func ConfigurationFromRaw(rawCfg gorums.RawConfiguration, qspec QuorumSpec) *Configuration {
	// return an error if the QuorumSpec interface is not empty and no implementation was provided.
	var test interface{} = struct{}{}
	if _, empty := test.(QuorumSpec); !empty && qspec == nil {
		panic("QuorumSpec may not be nil")
	}
	return &Configuration{
		RawConfiguration: rawCfg,
		qspec:            qspec,
	}
}

// Nodes returns a slice of each available node. IDs are returned in the same
// order as they were provided in the creation of the Manager.
//
// NOTE: mutating the returned slice is not supported.
func (c *Configuration) Nodes() []*Node {
	if c.nodes == nil {
		c.nodes = make([]*Node, 0, c.Size())
		for _, n := range c.RawConfiguration {
			c.nodes = append(c.nodes, &Node{n})
		}
	}
	return c.nodes
}

// And returns a NodeListOption that can be used to create a new configuration combining c and d.
func (c Configuration) And(d *Configuration) gorums.NodeListOption {
	return c.RawConfiguration.And(d.RawConfiguration)
}

// Except returns a NodeListOption that can be used to create a new configuration
// from c without the nodes in rm.
func (c Configuration) Except(rm *Configuration) gorums.NodeListOption {
	return c.RawConfiguration.Except(rm.RawConfiguration)
}

func init() {
	if encoding.GetCodec(gorums.ContentSubtype) == nil {
		encoding.RegisterCodec(gorums.NewCodec())
	}
}

// Manager maintains a connection pool of nodes on
// which quorum calls can be performed.
type Manager struct {
	*gorums.RawManager
}

// NewManager returns a new Manager for managing connection to nodes added
// to the manager. This function accepts manager options used to configure
// various aspects of the manager.
func NewManager(opts ...gorums.ManagerOption) (mgr *Manager) {
	mgr = &Manager{}
	mgr.RawManager = gorums.NewRawManager(opts...)
	return mgr
}

// NewConfiguration returns a configuration based on the provided list of nodes (required)
// and an optional quorum specification. The QuorumSpec is necessary for call types that
// must process replies. For configurations only used for unicast or multicast call types,
// a QuorumSpec is not needed. The QuorumSpec interface is also a ConfigOption.
// Nodes can be supplied using WithNodeMap or WithNodeList, or WithNodeIDs.
// A new configuration can also be created from an existing configuration,
// using the And, WithNewNodes, Except, and WithoutNodes methods.
func (m *Manager) NewConfiguration(opts ...gorums.ConfigOption) (c *Configuration, err error) {
	if len(opts) < 1 || len(opts) > 2 {
		return nil, fmt.Errorf("wrong number of options: %d", len(opts))
	}
	c = &Configuration{}
	for _, opt := range opts {
		switch v := opt.(type) {
		case gorums.NodeListOption:
			c.RawConfiguration, err = gorums.NewRawConfiguration(m.RawManager, v)
			if err != nil {
				return nil, err
			}
		case QuorumSpec:
			// Must be last since v may match QuorumSpec if it is interface{}
			c.qspec = v
		default:
			return nil, fmt.Errorf("unknown option type: %v", v)
		}
	}
	// return an error if the QuorumSpec interface is not empty and no implementation was provided.
	var test interface{} = struct{}{}
	if _, empty := test.(QuorumSpec); !empty && c.qspec == nil {
		return nil, fmt.Errorf("missing required QuorumSpec")
	}
	return c, nil
}

// Nodes returns a slice of available nodes on this manager.
// IDs are returned in the order they were added at creation of the manager.
func (m *Manager) Nodes() []*Node {
	gorumsNodes := m.RawManager.Nodes()
	nodes := make([]*Node, 0, len(gorumsNodes))
	for _, n := range gorumsNodes {
		nodes = append(nodes, &Node{n})
	}
	return nodes
}

// Node encapsulates the state of a node on which a remote procedure call
// can be performed.
type Node struct {
	*gorums.RawNode
}

`

redpajama_set_name: RedPajamaGithub


Back to his rightful place.
I was feeling nostalgic for my old, purple blog with the sweet picture of Alex Pettyfer at the top, so, after considering it for the better part of three months, I brought them back. So sue me.


text:
HomeInsuranceWith 88% cover, Rajasthan tops in health insurance, Health News, ET HealthWorld
With 88% cover, Rajasthan tops in health insurance, Health News, ET HealthWorld
Jaipur: The highest proportion of households covered under health insurance or financial schemes across the country is in Rajasthan, says the latest data on health insurance coverage – collected in 2019-21 through the National Family Health Survey (NFHS).
In the state, 88% of its households with at least one member is covered by a health scheme or health insurance. Andhra Pradesh is second with 80%, Goa (73%), Chhattisgarh (71%) and Telangana (69%).
The survey pointed out that health insurance coverage in the country is far from satisfactory. Over two-fifths (41%) of the households have at least one usual member covered under health insurance or financing scheme.
When household members get sick, they are slightly more likely to seek care in the public sector (50%) than the private sector (48%). However, in the state, percentage of households using government health facility is quite high. Only 26.4% of households in the state generally do not use a government health facility. Health department officials said they are providing free medicines and free diagnostic tests free to the people in government hospitals, which has also attracted patients to government hospitals.
Among those who are not using government healthcare facilities, some of the reasons are no facility nearby, facility timing not convenient and absentee health personnel.
The percentage of households that do not use government health facilities is highest in Bihar (80%) and UP (75%), and lowest (less than 5%) in Ladakh, Lakshadweep, and Andaman and Nicobar Islands.
insurance explained
term insurance plan
term plan insurance
what is insurance
Citeline and Norstella Unite to Offer Life Sciences Clients a Full Suite of Commercial and Clinical Solutions
China approves world's first inhalable COVID-19 vaccine
Why Medicaid Expansion Ballots May Hit a Dead End After a Fleeting Victory in South Dakota
Readers and Tweeters Chime In on Disability Rights and Drug Discounts
Biden administration proposes crackdown on scam Medicare ads, Health News, ET HealthWorld
Not all pediatric cases of type 2 diabetes have obesity
Apple's App Store Dominance Threatened as Competitors Position Themselves as EU Alternatives
FIFA: Jamie Carragher urges Premier League clubs to boycott Club World Cup | Football
World Cup 2022: France's Didier Deschamps not bothered by desire for Argentina to win


text:
from django.contrib.messages import get_messages
from django.test import TestCase
from django.urls import reverse

from oscar.apps.basket import views
from oscar.test import factories
from oscar.test.testcases import WebTestCase
from tests.fixtures import RequestFactory
from tests.functional.checkout import CheckoutMixin

class TestVoucherAddView(TestCase):
    def test_get(self):
        request = RequestFactory().get('/')

        view = views.VoucherAddView.as_view()
        response = view(request)

        self.assertEqual(response.status_code, 302)

    def _get_voucher_message(self, request):
        return '\n'.join(str(m.message) for m in get_messages(request))

    def test_post_valid(self):
        voucher = factories.VoucherFactory()
        self.assertTrue(voucher.is_active())

        data = {
            'code': voucher.code
        }
        request = RequestFactory().post('/', data=data)
        request.basket.save()

        view = views.VoucherAddView.as_view()
        response = view(request)
        self.assertEqual(response.status_code, 302)

        voucher = voucher.__class__.objects.get(pk=voucher.pk)
        self.assertEqual(voucher.num_basket_additions, 1, msg=self._get_voucher_message(request))

    def test_post_valid_from_set(self):
        voucherset = factories.VoucherSetFactory()
        voucher = voucherset.vouchers.first()

        self.assertTrue(voucher.is_active())

        data = {
            'code': voucher.code
        }
        request = RequestFactory().post('/', data=data)
        request.basket.save()

        view = views.VoucherAddView.as_view()
        response = view(request)
        self.assertEqual(response.status_code, 302)

        voucher = voucher.__class__.objects.get(pk=voucher.pk)
        self.assertEqual(voucher.num_basket_additions, 1, msg=self._get_voucher_message(request))

        self.assertEqual(voucherset.num_basket_additions, 1)

class TestVoucherRemoveView(TestCase):
    def test_post_valid(self):
        voucher = factories.VoucherFactory(num_basket_additions=5)

        data = {
            'code': voucher.code
        }
        request = RequestFactory().post('/', data=data)
        request.basket.save()
        request.basket.vouchers.add(voucher)

        view = views.VoucherRemoveView.as_view()
        response = view(request, pk=voucher.pk)
        self.assertEqual(response.status_code, 302)

        voucher = voucher.__class__.objects.get(pk=voucher.pk)
        self.assertEqual(voucher.num_basket_additions, 4)

    def test_post_with_missing_voucher(self):
        """ If the voucher is missing, verify the view queues a message and redirects. """
        pk = '12345'
        view = views.VoucherRemoveView.as_view()
        request = RequestFactory().post('/')
        request.basket.save()
        response = view(request, pk=pk)

        self.assertEqual(response.status_code, 302)

        actual = list(get_messages(request))[-1].message
        expected = "No voucher found with id '{}'".format(pk)
        self.assertEqual(actual, expected)

class TestBasketSummaryView(TestCase):
    def setUp(self):
        self.url = reverse('basket:summary')
        self.country = factories.CountryFactory()
        self.user = factories.UserFactory()

    def test_default_shipping_address(self):
        user_address = factories.UserAddressFactory(
            country=self.country, user=self.user, is_default_for_shipping=True
        )
        request = RequestFactory().get(self.url, user=self.user)
        view = views.BasketView(request=request)
        self.assertEqual(view.get_default_shipping_address(), user_address)

    def test_default_shipping_address_for_anonymous_user(self):
        request = RequestFactory().get(self.url)
        view = views.BasketView(request=request)
        self.assertIsNone(view.get_default_shipping_address())

class TestVoucherViews(CheckoutMixin, WebTestCase):
    csrf_checks = False

    def setUp(self):
        self.voucher = factories.create_voucher()
        super().setUp()

    def test_add_voucher(self):
        """
        Checks that voucher can be added to basket through appropriate view.
        """
        self.add_product_to_basket()

        assert self.voucher.basket_set.count() == 0

        response = self.post(reverse('basket:vouchers-add'), params={'code': self.voucher.code})
        self.assertRedirectsTo(response, 'basket:summary')
        assert self.voucher.basket_set.count() == 1

    def test_remove_voucher(self):
        """
        Checks that voucher can be removed from basket through appropriate view.
        """
        self.add_product_to_basket()
        self.add_voucher_to_basket(voucher=self.voucher)

        assert self.voucher.basket_set.count() == 1

        response = self.post(reverse('basket:vouchers-remove', kwargs={'pk': self.voucher.id}))
        self.assertRedirectsTo(response, 'basket:summary')
        assert self.voucher.basket_set.count() == 0


Virtual reality (VR) technology is most commonly associated with gaming and entertainment, but it's expanding into a variety of clinical and healthcare applications. The Ontario-based biopharmaceutical firm EMD Serono, Canada, is now using VR as an informational and educational tool to provide a more profound understanding of what living with multiple sclerosis (MS) is really like.
VR uses combinations of head-mounted goggle screens, audio and sound effects, and haptic sensations to create virtual —or imaginary — environments where a user can explore, even moving around within, to interact with simulated effects.
EMD Serono's 10-minute VR program, called "MS from the Inside Out," immerses those who use the head-mounted VR goggles in an interactive, virtual and sensory-rich space that allows them to briefly experience what people with MS go through on a day-to-day basis.
Users should come away with a better understanding of the disease and its complex symptoms, which can include extreme fatigue, diminished coordination, muscle weakness, tingling, impaired sensation, vision problems, bladder issues, cognitive impairment, and mood changes.
Such an understanding is especially important in Canada, both for researchers and for the public at large. According to the MS Society of Canada, the country has one of the highest rates of MS in the world, with an estimated 1 in every 340 people in Canada living with MS.
On May 31, World MS Day, EMD Serono held an event at the MaRS Discovery District in Toronto where attendees were given the opportunity to experience its VR program. The company has posted a video of the "MS from the Inside Out" journeys that several took, with information about this program, on YouTube for viewing.
Tagged awareness, Canada, EMD Serono, virtual reality, VR.
I have difficulty understanding how the use of virtual reality will aid others in understanding what we M.S. Sufferers are going through since so few symptoms are visible to others. Our suffering is predominently muscular and cognitive. The one exception is balance difficulties. That aspect of the disease is often visible, yet the perception of this problem is still difficult to quantify by visual perception. Another cannot see the pain involved nor the frustration that those suffering with this disease endure. If one wants to experience MS, I suggest attaching electrodes to your body that will interfere with physical sensations and muscular control that are both painful and disorienting. Even that would not give an outsider the understanding of the daily effects of this disease. I guess having several drinks along with using the muscle interference of electrodes would give one a better idea of what suffering with Multiple Sclerisis is really like, but those electrodes would have to interfere with physical movement and the pain we feel in our muscles over a 24 hour period. Now multiply that times 365 times 20 or 40 years. Then you might have some idea. Maybe you would understand why sleeping is often preferable to living in wakefulness with this frustrating and painful disease. I can still walk, sort of, if you count dragging a useless leg around with me. Eating with utensils much as a two year old would use them. Having to sit over a plate and scooping the food from a few inches away to your mouth. Worrying whether a glass of beverage is now to heavy to lift or if it will end up in your lap or spilled all over the table and someone else will have to clean up because that task would just be too difficult and take too long for the MS sufferer. Seeing the room spinning around you. Falling backwards because your feet won't go where you want them to go while one tries to move across the floor. Feeling disoriented all the time. That's just part of what it's like, now add cramping muscles and pain and stiffness in your hands, arms, and legs. Doing simple things like brushing your teeth, combing your hair, putting your pants on become something you have to mentally prepare for and force yourself to do because you know these simple tasks will now take ten times longer and leave you exhausted and unprepared to do more for the day. So once you know these things about your disease you can't help but wonder, "why do I bother since I know I won't have the strength to the things I got dressed for, brushed my teeth for, combed my hair for; forget styling your hair, that is something which is now a distant memory. What is the point? We are human, alive, with desires and dreams; we have families we love and wish to interact with, so we persever. This is just the part of MS others will see if they want to see. Most do not wish to observe and understand the frustration and futility we experience when we attempt these once simple tasks. Why? It is too frightening because by the simple twist of fate it could be any of you, and may be still in your futures. This is a fate I would wish on no one, but with the rise of the diagnosis of new MS patients everyday, it is the probability for many of you. Why? I suspect we are years away from understanding what causes this vicious disease and so many other autoimmune diseases this world is encountering these days. It is an enigma.
I was diagnosed at the age of 18, just 6 weeks after graduating high school. I had BIG plans, college! I was going to make a big difference in the world. My first exacerbation was at age 14! Yes, I went undiagnosed for 4 yrs. Then I woke up and couldn't walk. Mom and Dad took me to the Dr. and he admitted me for 7 days. My symptoms subsided for then.
Symptoms came and went. Now, it seems they stick around a bit longer and then I get used to it and get on with life.
Life goes on, if you let it people!
The day of my spinal tap, I made a decision.
IF I HAD MS, IT WASN'T GOING TO HAVE ME!
I have since met a wonderful man that worries more than he should. We have moved away from my hometown. And I am happier than I ever thought possible! But I am a believer of making the best out of any situation. I focus on ONLY POSITIVE THINGS!
Try it today…say to yourself, only good things will happen to me today because GOD IS GOOD AND HE'S ON MY SIDE!
My sister has MS. She became very excited and interested when I told her this experience existed. She has trouble communicating what MS is and how it affects her. Please make this available to download for people with thier own VR kits at home. Family and friends would like to try this and understand her illness better.


text:
// xml_type_writer.cc            see license.txt for copyright and terms of use

#include "xml_type_writer.h"    // this module
#include "variable.h"           // Variable
#include "cc_flags.h"           // toXml(DeclFlags &out, rostring str)
#include "asthelp.h"            // xmlPrintPointer
#include "xmlhelp.h"            // toXml_int() etc.
#include "strutil.h"            // DelimStr
#include "cc_ast.h"             // AST nodes only for AST sub-traversals

#define serializeOracle serializeOracle_m

// toXml for enums

char const *toXml(CompoundType::Keyword id) {
  switch(id) {
  default: xfailure("bad enum"); break;
    PRINTENUM(CompoundType::K_STRUCT);
    PRINTENUM(CompoundType::K_CLASS);
    PRINTENUM(CompoundType::K_UNION);
  }
}

string toXml(FunctionFlags id) {
  if (id == FF_NONE) return "FF_NONE";
  DelimStr b('|');
  PRINTFLAG(FF_METHOD);
  PRINTFLAG(FF_VARARGS);
  PRINTFLAG(FF_CONVERSION);
  PRINTFLAG(FF_CTOR);
  PRINTFLAG(FF_DTOR);
  PRINTFLAG(FF_BUILTINOP);
  PRINTFLAG(FF_NO_PARAM_INFO);
  PRINTFLAG(FF_DEFAULT_ALLOC);
  PRINTFLAG(FF_KANDR_DEFN);
  return b.sb;
}

char const *toXml(ScopeKind id) {
  switch(id) {
  default: xfailure("bad enum"); break;
  PRINTENUM(SK_UNKNOWN);
  PRINTENUM(SK_GLOBAL);
  PRINTENUM(SK_PARAMETER);
  PRINTENUM(SK_FUNCTION);
  PRINTENUM(SK_CLASS);
  PRINTENUM(SK_TEMPLATE_PARAMS);
  PRINTENUM(SK_TEMPLATE_ARGS);
  PRINTENUM(SK_NAMESPACE);
  }
}

char const *toXml(STemplateArgument::Kind id) {
  switch(id) {
  default: xfailure("bad enum"); break;
  PRINTENUM(STemplateArgument::STA_NONE);
  PRINTENUM(STemplateArgument::STA_TYPE);
  PRINTENUM(STemplateArgument::STA_INT);
  PRINTENUM(STemplateArgument::STA_ENUMERATOR);
  PRINTENUM(STemplateArgument::STA_REFERENCE);
  PRINTENUM(STemplateArgument::STA_POINTER);
  PRINTENUM(STemplateArgument::STA_MEMBER);
  PRINTENUM(STemplateArgument::STA_DEPEXPR);
  PRINTENUM(STemplateArgument::STA_TEMPLATE);
  PRINTENUM(STemplateArgument::STA_ATOMIC);
  }
}

XmlTypeWriter::XmlTypeWriter (IdentityManager &idmgr0,
                              ASTVisitor *astVisitor0, ostream *out0, int &depth0, bool indent0,
                              XTW_SerializeOracle *serializeOracle0)
  : XmlWriter(idmgr0, out0, depth0, indent0)
  , astVisitor(astVisitor0)
  , serializeOracle(serializeOracle0)
{}

// **** toXml

// This one occurs in the AST, so it has to have its own first-class
// method.  FIX: This should not have such a general API and yet refer
// to such a specific list: PseudoInstantiation::args.
void XmlTypeWriter::toXml(ObjList<STemplateArgument> *list) {
  travObjList_standalone(*list, PseudoInstantiation, args, STemplateArgument);
}

void XmlTypeWriter::toXml(CType *t) {
  // idempotency
  if (idmgr.printed(t)) return;

  switch(t->getTag()) {
  default: xfailure("illegal tag");

  case CType::T_ATOMIC: {
    CVAtomicType *atom = t->asCVAtomicType();
    XmlTagPrinter tagPrinter(*this);
    if (writingP()) {
      tagPrinter.printOpenTag("CVAtomicType", atom);
      // **** attributes
      printPtr(atom, atomic);
      printXml(cv, atom->cv);
      tagPrinter.tagEnd();
    }
    // **** subtags
    trav(atom->atomic);
    break;
  }

  case CType::T_POINTER: {
    PointerType *ptr = t->asPointerType();
    XmlTagPrinter tagPrinter(*this);
    if (writingP()) {
      tagPrinter.printOpenTag("PointerType", ptr);
      // **** attributes
      printXml(cv, ptr->cv);
      printPtr(ptr, atType);
      tagPrinter.tagEnd();
    }

    // **** subtags
    trav(ptr->atType);
    break;
  }

  case CType::T_REFERENCE: {
    ReferenceType *ref = t->asReferenceType();
    XmlTagPrinter tagPrinter(*this);
    if (writingP()) {
      tagPrinter.printOpenTag("ReferenceType", ref);
      // **** attributes
      printPtr(ref, atType);
      tagPrinter.tagEnd();
    }

    // **** subtags
    trav(ref->atType);
    break;
  }

  case CType::T_FUNCTION: {
    FunctionType *func = t->asFunctionType();
    XmlTagPrinter tagPrinter(*this);
    if (writingP()) {
      tagPrinter.printOpenTag("FunctionType", func);
      // **** attributes
      printXml(flags, func->flags);
      printPtr(func, retType);
      printEmbed(func, params);
      printPtr(func, exnSpec);
      tagPrinter.tagEnd();
    }

    // **** subtags
    trav(func->retType);
    travObjList_S(func, FunctionType, params, Variable); // Variable
    // exnSpec
    if (func->exnSpec) {
      toXml_FunctionType_ExnSpec(func->exnSpec);
    }
    break;
  }

  case CType::T_ARRAY: {
    ArrayType *arr = t->asArrayType();
    XmlTagPrinter tagPrinter(*this);
    if (writingP()) {
      tagPrinter.printOpenTag("ArrayType", arr);
      // **** attributes
      printPtr(arr, eltType);
      printXml_int(size, arr->size);
      tagPrinter.tagEnd();
    }

    // **** subtags
    trav(arr->eltType);
    break;
  }

  case CType::T_POINTERTOMEMBER: {
    PointerToMemberType *ptm = t->asPointerToMemberType();
    XmlTagPrinter tagPrinter(*this);
    if (writingP()) {
      tagPrinter.printOpenTag("PointerToMemberType", ptm);
      // **** attributes
      printPtr(ptm, inClassNAT);
      printXml(cv, ptm->cv);
      printPtr(ptm, atType);
      tagPrinter.tagEnd();
    }

    // **** subtags
    trav(ptm->inClassNAT);
    trav(ptm->atType);
    break;
  }

  case CType::T_DEPENDENTSIZEDARRAY: {
    DependentSizedArrayType *dsa = t->asDependentSizedArrayType();
    XmlTagPrinter tagPrinter(*this);
    if (writingP()) {
      tagPrinter.printOpenTag("DependentSizedArrayType", dsa);
      // **** attributes
      printPtr(dsa, eltType);
      printPtrAST(dsa, sizeExpr);
      tagPrinter.tagEnd();
    }

    // **** subtags
    trav(dsa->eltType);
    break;
  }

  }
}

void XmlTypeWriter::toXml(AtomicType *atom) {
  // idempotency done in each sub-type as it is not done for
  // CompoundType here.
  switch(atom->getTag()) {
  default: xfailure("illegal tag");

  case AtomicType::T_SIMPLE: {
    // idempotency
    if (idmgr.printed(atom)) return;
    SimpleType *simple = atom->asSimpleType();
    XmlTagPrinter tagPrinter(*this);
    if (writingP()) {
      tagPrinter.printOpenTag("SimpleType", simple);
      // **** attributes
      printXml(type, simple->type);
      tagPrinter.tagEnd();
    }
    break;
  }

  case AtomicType::T_COMPOUND: {
    // NO!  Do NOT do this here:
//      // idempotency
//      if (idmgr.printed(atom)) return;
    CompoundType *cpd = atom->asCompoundType();
    toXml(cpd);
    break;
  }

  case AtomicType::T_ENUM: {
    // idempotency
    if (idmgr.printed(atom)) return;
    EnumType *e = atom->asEnumType();
    XmlTagPrinter tagPrinter(*this);
    if (writingP()) {
      tagPrinter.printOpenTag("EnumType", e);
      // **** attributes
      // * superclasses
      toXml_NamedAtomicType_properties(e);
      // * members
      printEmbed(e, valueIndex);
      printXml_int(nextValue, e->nextValue);
      printXml_bool(hasNegativeValues, e->hasNegativeValues);
      tagPrinter.tagEnd();
    }

    // **** subtags
    // * superclasses
    toXml_NamedAtomicType_subtags(e);
    // * members
    // valueIndex
    if (!idmgr.printed(&e->valueIndex)) {
      XmlTagPrinter tagPrinter2(*this);
      if (writingP()) {
        tagPrinter2.printOpenTag("NameMap_EnumType_valueIndex", &e->valueIndex);
        tagPrinter2.tagEnd();
      }

      if (sortNameMapDomainWhenSerializing) {
        for(StringObjDict<EnumType::Value>::SortedKeyIter iter(e->valueIndex);
            !iter.isDone(); iter.next()) {
          char const *name = iter.key();
          // dsw: do you know how bad it gets if I don't put a
          // const-cast here?
          EnumType::Value *eValue = const_cast<EnumType::Value*>(iter.value());

          XmlTagPrinter tagPrinter3(*this);
          if (writingP()) {
            tagPrinter3.printNameMapItemOpenTag(name, eValue);
          }

          toXml_EnumType_Value(eValue);
        }
      } else {
        for(StringObjDict<EnumType::Value>::Iter iter(e->valueIndex);
            !iter.isDone(); iter.next()) {
          rostring name = iter.key();
          // dsw: do you know how bad it gets if I don't put a
          // const-cast here?
          EnumType::Value *eValue = const_cast<EnumType::Value*>(iter.value());

          XmlTagPrinter tagPrinter3(*this);
          if (writingP()) {
            tagPrinter3.printNameMapItemOpenTag(name.c_str(), eValue);
          }

          toXml_EnumType_Value(eValue);
        }
      }
    }
    break;
  }

  case AtomicType::T_TYPEVAR: {
    // idempotency
    if (idmgr.printed(atom)) return;
    TypeVariable *tvar = atom->asTypeVariable();
    XmlTagPrinter tagPrinter(*this);
    if (writingP()) {
      tagPrinter.printOpenTag("TypeVariable", tvar);
      // **** attributes
      // * superclasses
      toXml_NamedAtomicType_properties(tvar);
      tagPrinter.tagEnd();
    }

    // **** subtags
    // * superclasses
    toXml_NamedAtomicType_subtags(tvar);
    break;
  }

  case AtomicType::T_PSEUDOINSTANTIATION: {
    // idempotency
    if (idmgr.printed(atom)) return;
    PseudoInstantiation *pseudo = atom->asPseudoInstantiation();
    XmlTagPrinter tagPrinter(*this);
    if (writingP()) {
      tagPrinter.printOpenTag("PseudoInstantiation", pseudo);
      // **** attributes
      // * superclasses
      toXml_NamedAtomicType_properties(pseudo);
      // * members
      printPtr(pseudo, primary);
      printEmbed(pseudo, args);
      tagPrinter.tagEnd();
    }

    // **** subtags
    // * superclasses
    toXml_NamedAtomicType_subtags(pseudo);
    // * members
    trav(pseudo->primary);
    travObjList(pseudo, PseudoInstantiation, args, STemplateArgument);
    break;
  }

  case AtomicType::T_DEPENDENTQTYPE: {
    // idempotency
    if (idmgr.printed(atom)) return;
    DependentQType *dep = atom->asDependentQType();
    XmlTagPrinter tagPrinter(*this);
    if (writingP()) {
      tagPrinter.printOpenTag("DependentQType", dep);
      // **** attributes
      // * superclasses
      toXml_NamedAtomicType_properties(dep);
      // * members
      printPtr(dep, first);
      printPtrAST(dep, rest);
      tagPrinter.tagEnd();
    }

    // **** subtags
    // * superclasses
    toXml_NamedAtomicType_subtags(dep);
    // * members
    trav(dep->first);
    travAST(dep->rest);
    break;
  }

  }
}

void XmlTypeWriter::toXml(CompoundType *cpd) {
  // idempotency
  if (idmgr.printed(cpd)) return;
  XmlTagPrinter tagPrinter(*this);
  if (writingP()) {
    tagPrinter.printOpenTag("CompoundType", cpd);
    // **** attributes
    // * superclasses
    toXml_NamedAtomicType_properties(cpd);
    toXml_Scope_properties(cpd);
    // * members
    printXml_bool(forward, cpd->forward);
    // FIX: isTransparentUnion; turn this on
//     printXml_bool(isTransparentUnion, cpd->isTransparentUnion);
    printXml(keyword, cpd->keyword);
    printEmbed(cpd, dataMembers);
    printEmbed(cpd, get_bases());
    printEmbed(cpd, virtualBases);
    printEmbed(cpd, subobj);
    printEmbed(cpd, conversionOperators);
    // FIX: friends; turn this on
//     printEmbed(cpd, friends);
    printStrRef(instName, cpd->instName);
    printPtrAST(cpd, syntax);
    printPtr(cpd, parameterizingScope);
    printPtr(cpd, selfType);
    tagPrinter.tagEnd();
  }

  // **** subtags
  // * superclasses
  toXml_NamedAtomicType_subtags(cpd);
  toXml_Scope_subtags(cpd);
  // * members
  travObjList_S(cpd, CompoundType, dataMembers, Variable); // Variable
  travObjList(cpd, CompoundType, get_bases(), BaseClass);
  travObjList(cpd, CompoundType, virtualBases, BaseClassSubobj);
  toXml(&cpd->subobj);          // embedded
  travObjList_S(cpd, CompoundType, conversionOperators, Variable); // Variable
  // FIX: friends; turn this on
//   travObjList_S(cpd, CompoundType, friends, Variable); // Variable
  travAST(cpd->syntax);
  trav(cpd->parameterizingScope);
  trav(cpd->selfType);
}

void XmlTypeWriter::toXml_Variable_properties(Variable *var) {
  xassert(writingP());
  printXml_SourceLoc(loc, var->loc);
  printStrRef(name, var->name);
  printPtr(var, type);
  printXml(flags, var->flags);
  printPtrAST(var, varValue);
  printPtr(var, defaultParamType);
  printPtrAST(var, funcDefn);
  printPtr(var, overload);
  printPtr(var, scope);

  // **** these fields are abstractions; however here we pretend they
  // are real
  AccessKeyword access = var->getAccess();
  printXml(access, access);
  bool real = var->getReal();
  printXml_bool(real, real);
  bool maybeUsedAsAlias = var->getMaybeUsedAsAlias();
  printXml_bool(maybeUsedAsAlias, maybeUsedAsAlias);

  // dsw: perhaps these should instead be serialized by the client
  // code as they would have more meaningful names
  bool user1 = var->getUser1();
  printXml_bool(user1, user1);
  bool user2 = var->getUser2();
  printXml_bool(user2, user2);

  ScopeKind scopeKind = var->getScopeKind();
  printXml(scopeKind, scopeKind);
  bool hasValue = var->getHasValue();
  printXml_bool(hasValue, hasValue);
  int parameterOrdinal = var->getParameterOrdinal();
  printXml_int(parameterOrdinal, parameterOrdinal);
  // **** end abstract fields

  // dsw: FIX: usingAlias_or_parameterizedEntity is actually an
  // implicit union of two fields and should be serialized that way
  printPtr(var, usingAlias_or_parameterizedEntity);
  printPtr(var, templInfo);

  if (var->linkerVisibleName()) {
    newline();
    *out << "fullyQualifiedMangledName=";
    outputXmlAttrQuoted(*out, var->fullyQualifiedMangledName0());
  }
}

void XmlTypeWriter::toXml_Variable_subtags(Variable *var) {
  trav(var->type);
  travAST(var->varValue);
  trav(var->defaultParamType);
  travAST(var->funcDefn);
  trav(var->overload);
  trav(var->scope);
  trav(var->usingAlias_or_parameterizedEntity); // Variable
  trav(var->templInfo);
}

void XmlTypeWriter::toXml(Variable *var) {
#ifdef OINK
  xfailure("this should never be called in Oink");
#endif

  // idempotency
  if (idmgr.printed(var)) return;
  XmlTagPrinter tagPrinter(*this);
  if (writingP()) {
    tagPrinter.printOpenTag("Variable", var);
    // **** attributes
    toXml_Variable_properties(var);
    tagPrinter.tagEnd();
  }

  // **** subtags
  toXml_Variable_subtags(var);
}

void XmlTypeWriter::toXml_FunctionType_ExnSpec(void /*FunctionType::ExnSpec*/ *exnSpec0) {
  FunctionType::ExnSpec *exnSpec = static_cast<FunctionType::ExnSpec *>(exnSpec0);
  // idempotency
  if (idmgr.printed(exnSpec)) return;
  XmlTagPrinter tagPrinter(*this);
  if (writingP()) {
    tagPrinter.printOpenTag("FunctionType_ExnSpec", exnSpec);
    // **** attributes
    printEmbed(exnSpec, types);
    tagPrinter.tagEnd();
  }

  // **** subtags
  travObjList_S(exnSpec, ExnSpec, types, CType);
}

void XmlTypeWriter::toXml_EnumType_Value(void /*EnumType::Value*/ *eValue0) {
  EnumType::Value *eValue = static_cast<EnumType::Value *>(eValue0);
  // idempotency
  if (idmgr.printed(eValue)) return;
  XmlTagPrinter tagPrinter(*this);
  if (writingP()) {
    tagPrinter.printOpenTag("EnumType_Value", eValue);
    // **** attributes
    printStrRef(name, eValue->name);
    printPtr(eValue, type);
    printXml_int(value, eValue->val_value);

    // quarl 2006-05-31
    //    'decl' might be pointing at a Variable A which we have linked with
    //    another variable B, but we are serializing variable B and not A.
    //    See 'make oink-check-srz-multi-file-enum', which fails if we just
    //    serialize 'decl' directly.
    //
    //    One solution would be to add a union-find to variables so that we
    //    can follow and find the linked target. TODO.
    //
    //    For now we simply lose the 'decl' in such situations.
    if (!serializeOracle || serializeOracle->shouldSerialize(eValue->decl)) {
      printPtr(eValue, decl);
    }

    tagPrinter.tagEnd();
  }

  // **** subtags
  trav(eValue->type);
  trav(eValue->decl);           // Variable
}

void XmlTypeWriter::toXml_NamedAtomicType_properties(NamedAtomicType *nat) {
  printStrRef(name, nat->name);
  printPtr(nat, typedefVar);
  printXml(access, nat->access);
}

void XmlTypeWriter::toXml_NamedAtomicType_subtags(NamedAtomicType *nat) {
  trav(nat->typedefVar);        // Variable
}

void XmlTypeWriter::toXml(OverloadSet *oload) {
  // idempotency
  if (idmgr.printed(oload)) return;
  XmlTagPrinter tagPrinter(*this);
  if (writingP()) {
    tagPrinter.printOpenTag("OverloadSet", oload);
    // **** attributes
    printEmbed(oload, set);
    tagPrinter.tagEnd();
  }

  // **** subtags
  travObjList_S(oload, OverloadSet, set, Variable); // Variable
}

void XmlTypeWriter::toXml(BaseClass *bc) {
  // Since BaseClass objects are never manipulated polymorphically,
  // that is, every BaseClass pointer's static type equals its dynamic
  // type, 'bc' cannot actually be a BaseClassSubobj.

  // idempotency
  if (idmgr.printed(bc)) return;
  XmlTagPrinter tagPrinter(*this);
  if (writingP()) {
    tagPrinter.printOpenTag("BaseClass", bc);
    // **** attributes
    toXml_BaseClass_properties(bc);
    tagPrinter.tagEnd();
  }

  // **** subtags
  toXml_BaseClass_subtags(bc);
}

void XmlTypeWriter::toXml_BaseClass_properties(BaseClass *bc) {
  printPtr(bc, ct);
  printXml(access, bc->access);
  printXml_bool(isVirtual, bc->isVirtual);
}

void XmlTypeWriter::toXml_BaseClass_subtags(BaseClass *bc) {
  trav(bc->ct);
}

void XmlTypeWriter::toXml(BaseClassSubobj *bc) {
  // idempotency
  if (idmgr.printed(bc)) return;
  XmlTagPrinter tagPrinter(*this);
  if (writingP()) {
    tagPrinter.printOpenTag("BaseClassSubobj", bc);
    // **** attributes
    // * superclass
    toXml_BaseClass_properties(bc);
    // * members
    printEmbed(bc, parents);
    tagPrinter.tagEnd();
  }

  // **** subtags
  // * superclass
  toXml_BaseClass_subtags(bc);
  // * members
  travObjList_S(bc, BaseClassSubobj, parents, BaseClassSubobj);
}

void XmlTypeWriter::toXml(Scope *scope) {
  // are we really a CompoundType?
  if (CompoundType *cpd = dynamic_cast<CompoundType*>(scope)) {
    toXml(cpd);
    return;
  }
  // idempotency
  if (idmgr.printed(scope)) return;
  XmlTagPrinter tagPrinter(*this);
  if (writingP()) {
    tagPrinter.printOpenTag("Scope", scope);
    // **** attributes
    toXml_Scope_properties(scope);
    tagPrinter.tagEnd();
  }

  // **** subtags
  toXml_Scope_subtags(scope);
}

void XmlTypeWriter::toXml_Scope_properties(Scope *scope) {
  printEmbed(scope, variables);
  printEmbed(scope, typeTags);
  printXml_bool(canAcceptNames, scope->canAcceptNames);
  printPtr(scope, parentScope);
  printXml(scopeKind, scope->scopeKind);
  printPtr(scope, namespaceVar);
  printEmbed(scope, templateParams);
  printPtr(scope, curCompound);
  printXml_SourceLoc(curLoc, scope->curLoc);
}

void XmlTypeWriter::toXml_Scope_subtags(Scope *scope) {
  // FIX: these are like function template "partial specializations"
  // (if such things existed), as the 'Variable' paramter actually
  // also changes the implementation.
  travStringRefMap(scope, Scope, variables, Variable); // Variable
  travStringRefMap(scope, Scope, typeTags, Variable); // Variable
  trav(scope->parentScope);
  trav(scope->namespaceVar);    // Variable
  travObjList_S(scope, Scope, templateParams, Variable); // Variable
  trav(scope->curCompound);
}

void XmlTypeWriter::toXml(STemplateArgument *sta) {
  // idempotency
  if (idmgr.printed(sta)) return;
  XmlTagPrinter tagPrinter(*this);
  if (writingP()) {
    tagPrinter.printOpenTag("STemplateArgument", sta);

    // **** attributes
    printXml(kind, sta->kind);
    newline();

    switch(sta->kind) {
    default: xfailure("illegal STemplateArgument kind"); break;

    case STemplateArgument::STA_TYPE:
      printPtrUnion(sta, sta_value.t, t);
      break;

    case STemplateArgument::STA_INT:
      printXml_int(i, sta->sta_value.i);
      break;

    case STemplateArgument::STA_ENUMERATOR:
    case STemplateArgument::STA_REFERENCE:
    case STemplateArgument::STA_POINTER:
    case STemplateArgument::STA_MEMBER:
      printPtrUnion(sta, sta_value.v, v);
      break;

    case STemplateArgument::STA_DEPEXPR:
      printPtrASTUnion(sta, sta_value.e, e);
      break;

    case STemplateArgument::STA_TEMPLATE:
      xfailure("template template arguments not implemented");
      break;

    case STemplateArgument::STA_ATOMIC:
      printPtrUnion(sta, sta_value.at, at);
      break;
    }
    tagPrinter.tagEnd();
  }

  // **** subtags

  // NOTE: I don't use the trav() macro here because it would be weird
  // to test the member of a union for being NULL; it should have a
  // well-defined value if it is the selected type of the tag.
  switch(sta->kind) {
  default: xfailure("illegal STemplateArgument kind"); break;
  case STemplateArgument::STA_TYPE:
    toXml(sta->sta_value.t);
    break;

  case STemplateArgument::STA_INT:
    // nothing to do
    break;

  case STemplateArgument::STA_ENUMERATOR:
  case STemplateArgument::STA_REFERENCE:
  case STemplateArgument::STA_POINTER:
  case STemplateArgument::STA_MEMBER:
    trav(sta->sta_value.v);         // Variable
    break;

  case STemplateArgument::STA_DEPEXPR:
    // (quarl) I don't get what's going on here; this looks weird.
    if (astVisitor) {
      // const_cast: traversal is sort of const-polymorphic...
      const_cast<Expression*>(sta->sta_value.e)->traverse(*astVisitor);
    }
    break;

  case STemplateArgument::STA_TEMPLATE:
    xfailure("template template arguments not implemented");
    break;

  case STemplateArgument::STA_ATOMIC:
    toXml(const_cast<AtomicType*>(sta->sta_value.at));
    break;
  }
}

void XmlTypeWriter::toXml(TemplateInfo *ti) {
  // idempotency
  if (idmgr.printed(ti)) return;
  XmlTagPrinter tagPrinter(*this);
  if (writingP()) {
    tagPrinter.printOpenTag("TemplateInfo", ti);
    // **** attributes
    // * superclass
    toXml_TemplateParams_properties(ti);
    // * members
    printPtr(ti, var);
    printEmbed(ti, inheritedParams);
    printPtr(ti, instantiationOf);
    printEmbed(ti, instantiations);
    printPtr(ti, specializationOf);
    printEmbed(ti, specializations);
    printEmbed(ti, arguments);
    printXml_SourceLoc(instLoc, ti->instLoc);
    printPtr(ti, partialInstantiationOf);
    printEmbed(ti, partialInstantiations);
    printEmbed(ti, argumentsToPrimary);
    printPtr(ti, defnScope);
    printPtr(ti, definitionTemplateInfo);
    tagPrinter.tagEnd();
  }

  // **** subtags
  // * superclass
  toXml_TemplateParams_subtags(ti);
  // * members
  trav(ti->var);                // Variable
  travObjList(ti, TemplateInfo, inheritedParams, InheritedTemplateParams);
  trav(ti->instantiationOf);    // Variable
  travObjList_S(ti, TemplateInfo, instantiations, Variable); // Variable
  trav(ti->specializationOf);   // Variable
  travObjList_S(ti, TemplateInfo, specializations, Variable); // Variable
  travObjList(ti, TemplateInfo, arguments, STemplateArgument);
  trav(ti->partialInstantiationOf); // Variable
  travObjList_S(ti, TemplateInfo, partialInstantiations, Variable); // Variable
  travObjList(ti, TemplateInfo, argumentsToPrimary, STemplateArgument);
  trav(ti->defnScope);
  trav(ti->definitionTemplateInfo);
}

void XmlTypeWriter::toXml(InheritedTemplateParams *itp) {
  // idempotency
  if (idmgr.printed(itp)) return;
  XmlTagPrinter tagPrinter(*this);
  if (writingP()) {
    tagPrinter.printOpenTag("InheritedTemplateParams", itp);
    // **** attributes
    // * superclass
    toXml_TemplateParams_properties(itp);
    // * members
    printPtr(itp, enclosing);
    tagPrinter.tagEnd();
  }

  // **** subtags
  // * superclass
  toXml_TemplateParams_subtags(itp);
  // * members
  trav(itp->enclosing);
}

void XmlTypeWriter::toXml_TemplateParams_properties(TemplateParams *tp) {
  printEmbed(tp, params);
}

void XmlTypeWriter::toXml_TemplateParams_subtags(TemplateParams *tp) {
  travObjList_S(tp, TemplateParams, params, Variable); // Variable
}

// **** shouldSerialize

bool XmlTypeWriter::XTW_SerializeOracle::shouldSerialize(AtomicType const *obj) {
  if (CompoundType const *cpd = dynamic_cast<CompoundType const *>(obj)) {
    return shouldSerialize(cpd);
  }
  return true;
}

bool XmlTypeWriter::XTW_SerializeOracle::shouldSerialize(Scope const *obj) {
  if (CompoundType const *cpd = dynamic_cast<CompoundType const *>(obj)) {
    return shouldSerialize(cpd);
  }
  return true;
}

// **** class XmlTypeWriter_AstVisitor

XmlTypeWriter_AstVisitor::XmlTypeWriter_AstVisitor
  (XmlTypeWriter &ttx0,
   ostream &out0,
   int &depth0,
   bool indent0)
    : XmlAstWriter_AstVisitor(out0, ttx0.idmgr, depth0, indent0)
    , ttx(ttx0)
{}

// Note that idempotency is handled in XmlTypeWriter
// #define PRINT_ANNOT(A) if (A) {ttx.toXml(A);}
#define PRINT_ANNOT_MAYBE(A) if (A && (!ttx.serializeOracle || ttx.serializeOracle->shouldSerialize(A))) {ttx.toXml(A);}

  // this was part of the macro
//    printASTBiLink((void**)&(A), (A));

  // print the link between the ast node and the annotating node
//    void printASTBiLink(void **astField, void *annotation) {
//      out << "<__Link from=\"";
//      // this is not from an ast *node* but from the *field* of one
//      xmlPrintPointer(out, "FLD", uniqueId(astField));
//      out << "\" to=\"";
//      xmlPrintPointer(out, "TY", uniqueId(annotation));
//      out << "\"/>\n";
//    }

bool XmlTypeWriter_AstVisitor::visitTranslationUnit(TranslationUnit *unit) {
  if (!XmlAstWriter_AstVisitor::visitTranslationUnit(unit)) return false;
  PRINT_ANNOT_MAYBE(unit->globalScope);
  return true;
}

bool XmlTypeWriter_AstVisitor::visitTypeSpecifier(TypeSpecifier *ts) {
  if (!XmlAstWriter_AstVisitor::visitTypeSpecifier(ts)) return false;
  if (ts->isTS_type()) {
    PRINT_ANNOT_MAYBE(ts->asTS_type()->type);
  } else if (ts->isTS_name()) {
    PRINT_ANNOT_MAYBE(ts->asTS_name()->var); // Variable
    PRINT_ANNOT_MAYBE(ts->asTS_name()->nondependentVar); // Variable
  } else if (ts->isTS_elaborated()) {
    PRINT_ANNOT_MAYBE(ts->asTS_elaborated()->atype);
  } else if (ts->isTS_classSpec()) {
    PRINT_ANNOT_MAYBE(ts->asTS_classSpec()->ctype);
  } else if (ts->isTS_enumSpec()) {
    PRINT_ANNOT_MAYBE(ts->asTS_enumSpec()->etype);
  }
  return true;
}

bool XmlTypeWriter_AstVisitor::visitFunction(Function *f) {
  if (!XmlAstWriter_AstVisitor::visitFunction(f)) return false;
  PRINT_ANNOT_MAYBE(f->funcType);
  PRINT_ANNOT_MAYBE(f->receiver); // Variable
  PRINT_ANNOT_MAYBE(f->retVar); // Variable
  return true;
}

bool XmlTypeWriter_AstVisitor::visitMemberInit(MemberInit *memberInit) {
  if (!XmlAstWriter_AstVisitor::visitMemberInit(memberInit)) return false;
  PRINT_ANNOT_MAYBE(memberInit->member); // Variable
  PRINT_ANNOT_MAYBE(memberInit->base);
  PRINT_ANNOT_MAYBE(memberInit->ctorVar); // Variable
  return true;
}

bool XmlTypeWriter_AstVisitor::visitBaseClassSpec(BaseClassSpec *bcs) {
  if (!XmlAstWriter_AstVisitor::visitBaseClassSpec(bcs)) return false;
  PRINT_ANNOT_MAYBE(bcs->type);
  return true;
}

bool XmlTypeWriter_AstVisitor::visitDeclarator(Declarator *d) {
  if (!XmlAstWriter_AstVisitor::visitDeclarator(d)) return false;
  PRINT_ANNOT_MAYBE(d->var);    // Variable
  PRINT_ANNOT_MAYBE(d->type);
  return true;
}

bool XmlTypeWriter_AstVisitor::visitExpression(Expression *e) {
  if (!XmlAstWriter_AstVisitor::visitExpression(e)) return false;
  PRINT_ANNOT_MAYBE(e->type);
  if (e->isE_this()) {
    PRINT_ANNOT_MAYBE(e->asE_this()->receiver); // Variable
  } else if (e->isE_variable()) {
    PRINT_ANNOT_MAYBE(e->asE_variable()->var); // Variable
    PRINT_ANNOT_MAYBE(e->asE_variable()->nondependentVar); // Variable
  } else if (e->isE_constructor()) {
    PRINT_ANNOT_MAYBE(e->asE_constructor()->ctorVar); // Variable
  } else if (e->isE_fieldAcc()) {
    PRINT_ANNOT_MAYBE(e->asE_fieldAcc()->field); // Variable
  } else if (e->isE_new()) {
    PRINT_ANNOT_MAYBE(e->asE_new()->ctorVar); // Variable
    PRINT_ANNOT_MAYBE(e->asE_new()->heapVar); // Variable
  } else if (e->isE_throw()) {
    PRINT_ANNOT_MAYBE(e->asE_throw()->globalVar); // Variable
  }
  return true;
}

#ifdef GNU_EXTENSION
bool XmlTypeWriter_AstVisitor::visitASTTypeof(ASTTypeof *a) {
  if (!XmlAstWriter_AstVisitor::visitASTTypeof(a)) return false;
  PRINT_ANNOT_MAYBE(a->type);
  return true;
}
#endif // GNU_EXTENSION

bool XmlTypeWriter_AstVisitor::visitPQName(PQName *pqn) {
  if (!XmlAstWriter_AstVisitor::visitPQName(pqn)) return false;
  if (pqn->isPQ_qualifier()) {
    PRINT_ANNOT_MAYBE(pqn->asPQ_qualifier()->qualifierVar); // Variable
    ttx.toXml(&(pqn->asPQ_qualifier()->sargs));
  } else if (pqn->isPQ_template()) {
    ttx.toXml(&(pqn->asPQ_template()->sargs));
  } else if (pqn->isPQ_variable()) {
    PRINT_ANNOT_MAYBE(pqn->asPQ_variable()->var); // Variable
  }
  return true;
}

bool XmlTypeWriter_AstVisitor::visitEnumerator(Enumerator *e) {
  if (!XmlAstWriter_AstVisitor::visitEnumerator(e)) return false;
  PRINT_ANNOT_MAYBE(e->var);    // Variable
  return true;
}

bool XmlTypeWriter_AstVisitor::visitInitializer(Initializer *e) {
  if (!XmlAstWriter_AstVisitor::visitInitializer(e)) return false;
  if (e->isIN_ctor()) {
    PRINT_ANNOT_MAYBE(e->asIN_ctor()->ctorVar); // Variable
  }
  return true;
}

bool XmlTypeWriter_AstVisitor::visitTemplateParameter(TemplateParameter *tparam) {
  if (!XmlAstWriter_AstVisitor::visitTemplateParameter(tparam)) return false;
  PRINT_ANNOT_MAYBE(tparam->var); // Variable
  return true;
}

bool XmlTypeWriter_AstVisitor::visitHandler(Handler *h) {
  if (!XmlAstWriter_AstVisitor::visitHandler(h)) return false;
  PRINT_ANNOT_MAYBE(h->globalVar); // Variable
  return true;
}

// #undef PRINT_ANNOT
#undef PRINT_ANNOT_MAYBE


One of the first series of films I saw at SXSW this year was close to two hours of shorts, ranging from 5 minutes long to about 20. The global short 'series' covered a number of different geographic regions and international filmmakers, including Afghanistan, England, Scotland, Canada, Italy, Poland, Israel, Bangladesh and Hong Kong. A synopsis of the films and their schedule can be found here. Below is the line-up. The photographs were taken on my iPhone during the films. Below the video is a snapshot of some of the tweets I did throughout…..
This short describes the extraordinary way of communication used by the chief in a marble quarry: a non-conventional language of gestures and signs.
This is a film about a woman who has a medical condition and when she wakes each morning, her walls seem to have moved overnight.
Finding the meaning behind the unwrapped and unusual objects that Paul Smith, the fashion designer, has been receiving in the post for the last 20 years, from a mystery person.
Dariusz Ambroszczyk runs one of the oldest cinemas in Łódź – Tatry.
A coming-of-age portrait of a visit to the barber by an old man and a little boy.
The daily routine of Wajeh, the coffee seller in Qalandiya checkpoint.
A cinematic meditation on the works and process of whimsical furniture designer Judson Beaumont.
Below a media contact from the film Skateistan: To Live And Skate Kabul by Director Orlando von Einsiedel answers questions from the audience following the film.


The role of BBC TV & Radio Software Engineering is to create distinctive, world-class content and services. We build and operate the BBC's interactive applications and services ... on TV devices (i.e. Smart TV's, Games consoles, IPTV streamers, PVRs etc.). Using the latest web technologies and world-class Engineering & Test practices we create compelling ...JOBSWORTH: £39,073 P.A.?
Job Introduction BBC is one of the UK's most well-known and loved brands. The TV & Radio product teams build some of the most used products in BBC including BBC iPlayer, iPlayer ... Radio, Music. Our mission is to secure the Internet future of BBC. It is an exciting time to join the team as we've ambitious goals to be the number one online TV and audio service ...JOBSWORTH: £31,127 P.A.?
In Store Retail Sales Representative - Panasonic Want to be part of an amazing TV sales executive team delivering market leading results representing the consumer electronics ... will be working for REL Field Marketing to fulfil the role of Panasonic Sales Executive on our Panasonic TV UK team. You will be responsible for: Building productive relationships in store ...JOBSWORTH: £17,683 P.A.?
Working to the Digital Lead, In-House Productions, and alongside TV Production teams, you will manage a team of Content Producers and lead on the production of digital content ...JOBSWORTH: £37,274 P.A.?
The average salary for open Tv jobs is currently £39,158, 12% higher than the national average salary for all jobs which is £34,827.
There are 371 current live Tv jobs in Greater Manchester available immediately, compared to 200 in Salford.
Companies presently offering current live Tv jobs in Greater Manchester include TalkTalk, BBC, Talk PR..


text:
Les Cousins fringants est une association culturelle francophone à but non lucratif, fondée en 2004.

L'initiative est venue de fans européens du groupe québécois Les Cowboys fringants et d'amoureux de la culture du Québec. Elle cesse officiellement ses activités en 2016.

Historique
L'origine des termes « Cousins fringants » est décrite par un des fondateurs :  Le nom et le logo sont donc choisis à la suite des propositions et des votes sur ce forum.

Le logo est composé de :
 4 fleurs de lys blanches représentant le Québec ;
 8 étoiles jaunes représentant l'Europe ;
 L'automobile est issue de la pochette de l'album Break syndical des Cowboys fringants, sorti au Québec en 2002.

Le logo et le nom sont déposés à l'INPI).

L'association à but non lucratif est déclarée le 23 mars 2004 et la déclaration est publiée au Journal Officiel le 10 avril 2004. Elle est créée pour faciliter l'organisation à l'occasion de la toute première venue des Cowboys fringants en Europe à l'Élysée Montmartre en . Le journaliste Michel Dolbec s'interroge sur les causes d'un remplissage de la salle ( places) sans promotion. Il avance l'idée d'un effet de bouche à oreille orchestré sur Internet. Les cousins ont en effet diffusé la date de l'événement par Internet plusieurs mois avant et ont fixé un point de rendez-vous avant le concert. Les fans, qui ne se sont jamais rencontrés et ne se connaissent que de noms, portent des T-shirts bleus spécialement créés pour l'occasion afin de se reconnaître.

L'association est très vite contacté par les médias québécois présents pour cet événement désirant savoir ce qui plaît tant aux Français chez ce groupe québécois majoritairement inconnu en France. Les textes engagés sur des thèmes universels et qui ont du sens, les expressions québécoises authentiques et la musique festive sont les réponses les plus couramment exprimées et recueillies par Sylvain Cormier, du journal La Presse.

Les Cousins fringants sont décrits par certains journalistes et auteurs comme : Un « fan club » européen très actif, réunissant des amateurs français, belges et suisses, un « fan club Internet/Street team » ou un « relais européen des actualités du collectif québécois ».

En 2005, l'association participe à l'élaboration d'une Quinzaine culturelle sur le Québec dans une salle culturelle associative en banlieue parisienne.

Elle est partenaire officielle en 2008 de la première édition d'un nouveau festival franco-québécois : Le retour du lys à Dinan qui a accueilli le groupe québécois Mes aieux. En 2009, l'association fête le cinquième anniversaire de sa fondation dans un bar bruxellois privatisé pour les membres avec la présence amicale du groupe Les Cowboys fringants, avant un concert du groupe québécois en Belgique.

L'association doit réduire ses activités à partir de 2014, faute du renouvellement de ses membres animateurs et de ses dirigeants, tous bénévoles.

.

Les activités associatives

L'objectif inscrit dans les statuts de l'association est de promouvoir gratuitement en Europe francophone la culture du Québec, dont le groupe Les Cowboys fringants, considérés comme des représentants actuels de la culture québécoise populaire.

Les méthodes utilisées sont principalement sur Internet : un site Internet (jusqu'à  visites annuelles en 2014), un forum de discussion et d'annonces (Forum Yahoo entre 2003 et 2005 puis Forum Lycos avec jusqu'à 650 membres inscrits en 2014) et un blog de découvertes d'artistes émergents (fermé en 2010).

Elle organise également des soirées cinéma québécois dans un cinéma de quartier comme par exemple la projection du film Congorama de Philippe Falardeau annoncée par les publications locales.

Depuis 2005, sont organisés des voyages en groupe de découverte culturelle au Québec et les membres accueillent des québécois de passage en Europe. L'association organise des week-ends de rencontres partout en France ainsi qu'en Belgique et Suisse et son Assemblée générale annuelle des membres est organisé dans des lieux différents comme : Saint-Malo, Mauléon, Briare, Lille, Saint-Flour, Cap-Breton, Amiens, en Bourgogne, dans le Cantal, dans le Jura, en Touraine, à Maison-Alfort, Paris, Mons, Spa, Bruxelles, Pully,

De nombreux artistes plus ou moins en émergence sont découverts et soutenus par les Cousins comme le rappelle Raphael Gendron-Martin, dans le Journal de Québec. L'association organise des rencontres et des entrevues avec les artistes et une chaîne sur Youtube est créée pour la diffusion. Elle encourage les relations avec les agents, les tourneurs et les attachés de presse des artistes québécois ainsi que les festivals et les revues spécialisées.

Elle répond aux sollicitations des médias spécialisés ou généralistes pour faire la promotion des artistes du Québec comme Le Journal de Montréal par exemple.

Le réseau associatif

L'association propose des offres gratuites ou à tarifs réduits de spectacles pour ses membres. Elle soutient et promeut les hébergements réciproques et gratuits et le covoiturage à l'occasion des déplacements. Elle propose l'achat groupé de produits d'artistes peu diffusés en Europe afin de réduire les frais de port et d'import.

Les membres initient une communauté d'entraide et d'échanges. C'est un véritable réseau européen d'amitié qui se créé et dont peuvent bénéficier de nombreux membres et sympathisants, selon les propos recueillis par sarah Lévesque dans un article de la revue de musique francophone « Sur la même longueur d'onde ».

.

Notes et références

Liens externes
 Blog des Cousins (archives)

Les Cowboys fringants
Association fondée en 2004


text:
By developing sustainable partnerships with trusted local organisations, we empower communities to bring themselves out of poverty.
Through close collaboration, we select and invest in geographically appropriate, self-sustaining livelihood projects that will make long-term impact in the local area.
Since 1990, Tzedek has granted over £1.75 million to 139 partnerships with locally led NGOs across Africa and South Asia.
By investing in education, vocational training, microcredit, livelihoods, agriculture and livestock projects, we on average treble beneficiaries' incomes on a long-term basis.
Last year, Tzedek funded 20 partnership projects, enabling 3,600 people to move out of extreme poverty by on average tripling their individual incomes.
Empowerment for Life
July 2019 saw us launch our most ambitious programme in recent years: our flagship Empowerment for Life Programme in Ghana. At Tzedek, we believe that building the capacity and capability of civil society is the route to raising living standards effectively and sustainably. This programme, in partnership with local NGOs GDCA and YEFL, will improve the lives of the 85,000 people living in Tolon District.
Village Savings & Loans Associations in Northern Ghana
Tzedek supported 70 Village Savings & Loans Associations (VSLA) groups in 2018/19, benefiting over 2.100 women. We have been working in partnership with a Ghanaian NGO called Nfasimdi Development Association (NDA). They were trained on the methodology by Star Ghana and follow the international standard for VSLAs.
Goats, Chickens and Pigs Create Sustainable Income
Vocational Training in rearing livestock provides a great source of income for indigenous tribal women in West Bengal, India. Digambarpur Angikar (DA) in West Bengal are Tzedek's long standing partner. They are training 100 women a year in rearing poultry, goats and pigs. The women's income is forecast to increase by up to four times, to £32 per month. As a sustainable project the offspring of the livestock will be used to bring in new beneficiaries to the project every year.


It's no secret that I have a total crush on Marina Diamandis of Marina and The Diamonds. I love everything about her, from her style to her incredible voice and bubbly attitude. Let's be best friends, Marina? Please?!
Marina's new album, "FROOT" is coming together rather nicely, and I've been blown away with what's been released so far, with "Happy" and "Immortal" offering minutes of beautiful, thought-provoking harmony, to "FROOT" itself, which is so camp and so, so good. However, one of my favourites to date is "I'm a Ruin", and it finally has a brilliant video to accompany it – and that's what I'm sharing with you for this week's Music Monday.
Listen to more of Marina's incredible music on the official Marina and The Diamonds YouTube channel.


It was in Brighton, England during The Great Escape festival. Hundreds of bands were buzzing around the city, all of them trying their hardest to stand out, to maybe catch a break and 'make it' – whatever that even means anymore. The city was alive. Music pleasingly filled the air on every inch of the cobblestone streets at all hours of the night, the English Channel hugged the miles of picturesque coastline that went on for what seemed like forever. The bar was called "The Prince Albert". As soon as we stepped in a familiar scent breezed through the room, spawning a flood of remembrance. It's a scent that only a handful of bars in the world have. It's the smell of history, of a timeless venue; of different generations, their sounds and ideals. It's thirty years of the walls and floors soaking up sweat and beer and spilled whiskey, the blood dripped from fights and the lusting fragrance of hormones still sifting lasciviously in the air. It's the musty smell of mold, cheap floor cleaner, the old wooden beams and broken guitar strings; the puke, tears, joy, laughter, epiphanies, revelations, and the ghosts of a thousand bands past and their infinite burning parade of songs and stories. It's the most beautiful smell you could ever imagine, it says everything you could ever want it to say and takes you through the strides of a beautiful history. And in the end, when the ghosts of rock and roll surround you and willingly fill you in on all their secrets, it makes you a part of it, too – you're a part of the history. It was there that it happened.
"Oh really?" Bruce and I answered simultaneously. Billy's eyes were glowing, his face exuded all the contentment a man would ever need. He pranced away like a child off to bed on Christmas Eve.
"Who's Seymour Stein?" I asked Bruce. "I was gonna ask ya the same thing," he responded.
With a packed bar and the mysterious Seymour Stein lurking somewhere in the crowd, we started our set. The show couldn't have gone any better. It was our last gig in the UK and we wanted to sweat out every last drop of energy left in us. The room was full, the applause seemed fit for royalty, everything went the way you always hope it does. Afterwards, it seemed as though everyone in the bar wanted to buy us a drink. Beer, whiskey, shots and whatever else found our hands and stomachs. There was no possible way we could consume the entirety of it. We wished we could teleport over all our alcoholic Cape Breton pals to help us put a dent in it. Our friends from Finland, who we met the day before, were there. They told us about their plans to bring us to their country, how beautiful the women were there. We sat off in the corner discussing plans with our new allies, adrenalin from the show still in us, enthusiasm for the future filling our faces with smiles.
The door burst open and Billy rushed through. "There you are you bloody f@*king idiots!" he yelled in his think British brogue. "SEYMOUR F@#KING STEIN IS WAITING UPSTAIRS TO MEET YOU!"	"Is he?" I asked. "GET UP THERE...NOW!" He roared.
Judging from the urgency in Billy's voice, we figured we should probably go meet this mysterious Seymour Stein. We politely told our Finnish friends we'd be back shortly and excused ourselves from the table. We had no idea who Seymour Stein was, but from the way things were going, it sounded like he was at least more important than a pack of Maple Leaf hot-dogs.
We followed Billy up the stairs as he ranted. "I was looking all over the god damned bar for the last forty-five minutes to find you fools," he scolded. We apologized profusely, as Canadians do in most situations, especially when getting yelled at.
We reached the top of the stairs and Billy pointed down a hallway. "There he is," he whispered. A man stood by himself leaning against the wall with a cane in hand. He was bald with a little bit of white hair still holding on. He was old, probably older than any tree I've ever seen - maybe older than any tree on the planet. And then I realized. I realized Billy's excitement, the reason for the excessive exuberance.
"Bilbo..." Bruce uttered quietly to himself.
Seymour Stein was the guy who played the old (very old) version of Bilbo Baggins in The Lord of The Rings trilogy. We were coming face to face with a man who stood side by side on the silver screen with the likes of Rudy and Elijah Wood! 'Holy sweet Jesus' I thought to myself. Billy pushed us towards him like a friend at a teen dance urging on a nervous buddy to talk to a girl he likes.
"Uhhh... how's she goin', Seymour?" I asked. "Wonderful," he responded.
I shook his hand softly, as softly as I could so not to break his age old, ancient and weathered Hobbit fingers. We introduced ourselves, told him we were from Nova Scotia. He said that he loved Halifax, that every time he's there he orders lobster when he eats out. Before then I never met anyone who could afford to order a lobster at a restaurant, but hey, this was Bilbo Baggins, he could probably afford dessert, too!!!
"I just wanted to stick around to meet you and say that I really enjoyed your show. You have a really full sound and a lot of energy," he said.
That was pretty cool to hear, especially coming from the mouth of Bilbo Baggins. "Thanks so much, sir," we told him.
He asked if he could have a copy of our album and said that he was very interested in hearing it. We gave him a copy and he thanked us. He was very kind, as Hobbits typically are. I wondered if maybe he was still in touch with AEROSMITH'S DAUGHTER, the pretty Elven Princess with the big lips from the Lord of the Rings trilogy. That would be cool if he let her hear it! And maybe she could pass it on to her father, AEROSMITH HIMSELF, who could maybe get us a slot opening for his band, AEROSMITH. My mind was abuzz.
We chatted for a little bit and talked about standard things that you'd say to a famous and incredibly old Hobbit. He eventually said that he had to get going. We shook hands, softly, and walked him to the door. He waddled off into the night, cane held tightly in one hand and CD in other – who knew what adventures he'd find, what quests through magical lands he'd embark on?
We walked downstairs, impossibly large grins on our faces. Neither of us could believe we just got to hang out with a big celebrity like Bilbo Baggins. Harrison Ford once accidently stepped on my cousins foot at a bar and JFK asked my grandmother out on a date, but I personally haven't had many run ins with a celebrity as big as Bilbo.
We felt pretty good: we just met Bilbo Baggins, we played a great show to a great crowd, we were in England and had a table full of drinks in front of us. Not too shabby, wha? We sat back down. "Look up what other movies he was in," I asked Bruce. Bruce, being the technological wizard that he is, whipped out his state of the art smart phone, tapped into the bar's Wifi source and began surfing the net with such mastery and grace that you'd swear he was a young Gandalf the Grey, soon to be the leader of The Fellowship of the Ring.
Bruce showed me the screen. Although older than any tree I've ever encountered, although friendly as a real life Hobbit, Seymour Stein was not the man who played Bilbo Baggins. Seymour Stein was in fact one of the most important and influential people in the entire music industry. He was the Vice President of Warner Bros Records, the President of Sire Records and had been inducted into the Rock and Roll Hall of Fame. He discovered and signed Madonna, The Ramones, The Talking Heads, Depeche Mode, The Smiths and a whole pile of other world famous bands, so we discovered.
And so it was in Brighton, England, at a bar called The Prince Albert that Seymour Stein, the guy who signed The Ramones, Madonna, The talking heads, and a long list of some of the world's most famous bands, stuck around for 45 minutes to meet us two Cape Bretoners who thought he was Bilbo Baggins. The people you meet sometimes, eh?
Here's a picture of Bilbo Baggins on the left and Seymour Stein on the right. I know we're stupid, but we weren't that far off, right!?
Question: In what circumstances does an opening band end up with 15-year-old Scotch in one hand and incredibly delicious "Caramel Explosion" Fudge in the other? Answer: When playing with Matt Andersen.
Here's a picture of us and "The Killers" backstage after we played together in PEI. In the background, the mountainous desert terrain of Charlottetown quietly peers over our newfound friendship.
She knew all the words to "Berlin Wall"
We were lucky enough to get on the Inaugural flight for Europe Airpost out of Halifax. There was food on the plane, it landed safely, and, to top it all off, at the end of the flight we were awarded with a Diploma. I dropped out of university after 2 years in order to pursue music. Now, if music happens to fail me, I have this prestigious Diploma from Europe Airpost to fall back on.
Below, Bruce can't contain his excitement after arriving in Glasgow and receiving his Diploma.
We played some pretty incredible shows this year. From playing with our Best New Best Friends "The Killers" in PEI, opening for "The New Pornographers" at the Canadian Beach Volley Ball Championship, to our showcase at Iceland Airwaves. But, we're going to stick close to home and give this award to our final show at The Seahorse Tavern on Argyle Street. Can't ask for much more than a sold out room, a billion friends, crowd-surfing, two of our favourite bands opening - Floodland and Scrapes - and the entire bar singing along to our songs - all at our favourite venue in the city a few days before it closes. GOOD TIMES!
This honour goes to our friend and the talented drummer of "Alert the Medic", Dale Wilson. With his post: "I think Access Nova Scotia is the least accessible place in Nova Scotia", he takes the cake for Facebook Status of the Year. Have you ever been to Access Nova Scotia? Truer words have never been spoken. NEVER!
This guy! His name is Stevie! Hi Stevie!
At the opening for the new Halifax Central Library, mayor Mike Savage joined us on stage to belt out some classics. Below you can see Mr. Savage "owning the moment" as he lets the music surge through him and sings the classic Rage Against the Machine song, "Killing in the Name Of". His version of "Love Rollercoaster" by RHCP was also spot on.
True to their name, the Town Heroes triumphed at the Music Nova Scotia Awards Sunday inTruro.
The Cape Breton duo of Mike Ryan and Bruce Gillis picked up five crystal trophies at the Music Nova Scotia Music and Industry Awards Brunch at the Holiday Inn Truro for their second album Sunday Movies. Their honours include the fan-voted entertainer of the year, as well as group and rock recording of the year for Sunday Movies, video of the year for Holdin' Up Grants (directed by Dillon Garland) and digital artist of the year.
"We're doing pretty well for a couple of idiots," grinned Ryan, who was glad both of their moms had made the trip down from Cape Breton for the event.
"We want to thank our parents who inspired us to work hard and do our best. We just want to represent Cape Breton and Nova Scotia wherever we go.
It turned out to be a good day overall for the band's label and management company GroundSwell Music, which saw several other awards go to its artists. Singer-songwriter Carleton Stone, who had five nominations, saw his Howie Beck and Jason Collett-produced album Draws Blood named recording and pop recording of the year, while the Stanfields picked up folk recording of the year for its unplugged album For King and Country.
GroundSwell itself earned a pair of industry awards; founder and Rawlins Cross member Ian McKinnon was named manager and industry professional of the year.