text:
{{category.name| uppercase}}
Wednesday, 22 January 2020 11:35 AM
Nagarik Shukrabar Nagarik Network
On scholarship diplomacy
Published On: August 30, 2017 01:30 AM NPT By: Trailokya Raj Aryal
Trailokya Raj Aryal
The contributor for Republica.
news@myrepublica.com
Being Xi
Foreign playground
Dangerous Doklam
One simple and cost-effective way to promote our soft power is to establish a competitive Nepal Scholarship Fund under the joint jurisdiction of our foreign and education ministries.
Nepal is poor, and hence it makes no sense to talk about promoting our soft power abroad, so goes our thinking. We tend to equate soft power mostly with development aid, political system, economy and overall "attractiveness" in the eyes of foreigners. And we know we are lacking in all these. We receive development aid, our political system is not something that others seem keen to emulate and while foreigners admire the natural beauty of Nepal, not many are interested to come here to live, work and study.
But this shouldn't stop us from promoting our soft power abroad. All that is needed is determination and some money.
One simple and cost-effective way to promote our soft power abroad is to establish a competitive Nepal Scholarship Fund under the joint jurisdiction of Ministry of Foreign Affairs and the Ministry of Education, or as an autonomous body that provides deserving foreign scholars and graduate students grants to conduct research of their interest in Nepal, whether independently or through institutional affiliations.
We can start with SAARC member states—minus Nepal—and China. If we get two professors and two graduate students from each country, then that's 32 foreigners a year. And if we provide the professors with US $25,000 and grad students with $15,000 for one academic year, that comes to $640,000 a year. Add another $50,000 a year will be spent on administrative expenses in Nepal and to pay to selection committee members in each country. That comes to around Rs 75 million a year. If you think it is a lot for a country like Nepal, then just read the news.
Big bangs for bucks
We lose billions a year in embezzlement. Almost 18 times the amount I have proposed is spent on paying the "extra" ministers in the present cabinet. We also spend millions each year to provide security to leaders who do not need that level of security at all. To be honest, Rs 75 million is probably lost in corruption in a day in our customs and tax revenue offices.
Therefore, this in no way would drain government coffers. But if it is reluctant to spend the money on something that will enhance Nepal's image abroad—something we cannot rule out—then it can seek help from private businesses and wealthy individuals through something akin to charitable contribution deduction in the US. We can have a provision that allows private businesses and individuals to donate up to three percent of their annual income to the fund, and the government will deduct this amount from their total taxable income. If the three percent exceeds Rs 10 million, then they should be allowed to name the scholarship after their company or whoever they wish it named after. Just imagine the money the fund will have in a year!
Once the ball gets rolling, the fund can create its own university with distinguished faculty from Nepal and abroad, and with world class research centers. It will enroll scholarship recipients along with the best and brightest Nepali students in structured programs that lead to academic degrees. As things now stand, our universities are no magnets for the best students from abroad, and the fund can work at changing this.
When the "free of political influence and interference" research centers are in place, we can then expand the scholarship to Southeast Asian countries, along with Japan and Korea, and in a phase-wise manner, to other countries in Asia.
As I have written elsewhere, the fund can do a lot of other things as well such as gifting statues of Hindu and Buddhist gods to be placed prominently in college campuses of countries where the scholarship is not yet available so that students know where Nepal is and Google a few things about us. Now that is already better than they knowing absolutely nothing about us. They will easily associate the images they see in their college premises to Nepal. And I can vouch for this from my personal experience.
Cervantes the diplomat
There is a statue of Miguel de Cervantes in the premises of Peking University that was gifted to it by the city of Madrid. Until I saw the statue I knew nothing about the writer or even about Spain besides its football teams. But seeing him every day got me curious and made me Google him and to learn a few things about him. Although I am yet to read his famous work, Don Quixote, every time I hear of Spain, I associate it with Cervantes. Now that's a win-win for the city of Madrid that gifted the statue and yours truly.
Because of that statue I got to know that Spain wasn't lagging behind other European countries in producing great works in literature and it is much more than football teams and matadors. And the city of Madrid got me to know more about Spain.
Similarly, the fund can also gift books on Nepal, as well as digital facsimiles of ancient manuscripts and Nepali paintings, to university libraries abroad. With time, we can expand the scholarship to many, if not all, countries of the world and even fund graduate students focusing on Nepal in universities abroad.
You may very well ask, okay, but how does it benefit us? It will benefit us in many ways. It will rekindle the academics interest on Nepal abroad, and we too will greatly benefit from researches by both experts and young students on various aspects of our society.
Let's admit it, we have been relying on outdated works by foreigners on Nepal. So this will help us see ourselves in a new light, and also bring to our attention things that we consciously or unconsciously leave out when studying various aspects of our own society.
Just to make sure that the work of scholarship is accessible to all, unlike the works of the past laden with academic jargons and only meant for scholars, the fund's recipients should be asked to submit their findings/papers in plain and simple English. These will be published it in both English and Nepali and also be made available online.
Moreover, the scholarships will be our way of showing appreciation for the international community's generosity. Most importantly, one day the graduate students who benefit from the scholarship can very well be in the position of importance in her country and will thus know how to deal with us and be more sympathetic to our needs, desires and positions on various issues—the real reason behind almost all scholarships provided by governments to foreign students.
To conclude, it's us, our lack of vision, and our defeatist mindset that's stopping us from enhancing our image abroad, nothing and no one else.
trailokyaa@yahoo.com
How do we measure knowledge?
"If you only need good grades and not the learning," I tell my students, joking, "don't bother using the library,...
China's panda diplomacy puts a smile on 'best friend' Putin's face
MOSCOW, June 6: Chinese President Xi Jinping presented two pandas to Moscow's zoo at a ceremony with Vladimir Putin on...
Scholarship of Rs 500,000 to students in remote area
SALYAN, Dec 10: Some 120 students pursuing their school education in the remote parts of Salyan district have received scholarship.
Seven dead, 15 injured in Dhading truck accident
Rain, snowfall forecasted
PABSON to organize Nat'l School Expo, Educational Conference
Nepse ekes out marginal gains in volatile trading
Dipak Manange slaps ANFA Kaski president Gurung
Reconstruction progress in Sindhuli 55% as time running out
Short of medicine mars service delivery
1 MW solar plant to be built in Jumla
Leaders engage in heated debate on US-proposed MCC grant (with video)
Iranian MP offers $3 million reward for "whoever kills Trump" - ISNA
Sorry we made you cry, Napoli captain tells young fan
Slience period begins for NA election (with video)
Bangladesh sentences 10 to death for 2001 political bombings
LIVE: National Assembly Meeting underway
Narayangarh-Mugling road resumes operation
Leonardo DiCaprio has a 'confusing' nickname for Brad Pitt
Unbeaten APF, New Diamond into semis
Niraj Tamang leads after first round
Standard Chartered Bank celebrates 10-year partnership with Liverpool football club
Let women rise
Explore MyRepublica
Republica Watch
Diaspora Watch
Nepal Republic Media Pvt Ltd.
Press Council Reg. No : 612/074-75
Email: republica@myrepublica.com
Copyright © 2020, Nepal Republic Media Pvt. ltd. | All right resrved.


text:
Susan Stroman
Paul Kolnik
A five-time Tony Award winning director and choreographer most known for Crazy For You, Contact, The Scottsboro Boys, and The Producers. Her work has been honored with Olivier, Drama Desk, Outer Critics Circle, Lucille Lortel and a record six Astaire Awards.
She directed and choreographed The Producers, winner of a record-making 12 Tony Awards including Best Direction and Best Choreography.
She co-created, directed and choreographed the Tony Award winning musical Contact for Lincoln Center Theater, which was honored with a 2003 Emmy Award for "Live from Lincoln Center".
She directed and choreographed the critically acclaimed musical The Scottsboro Boys on Broadway and in the West End, where it was honored with the 2014 Evening Standard Award for Best Musical.
Other Broadway credits include Oklahoma!,Show Boat, Prince of Broadway,Bullets Over Broadway, Big Fish,Young Frankenstein, Thou Shalt Not,The Music Man, The Frogs, Big, Steel Pier, Picnic, and Crazy for You.
Off-Broadway credits include: The Beast in the Jungle,Dot, Flora the Red Menace,And the World Goes 'Round, Happiness and The Last Two People on Earth: An Apocalyptic Vaudeville starring Mandy Patinkin and Taylor Mac.
For ten years she choreographed Madison Square Garden's annual spectacular A Christmas Carol. She made her Metropolitan Opera debut directing and choreographing The Merry Widow, starring Renée Fleming.
Her London West End productions include Crazy For You,Oklahoma!, Show Boat, Contact, The Producers, and Young Frankenstein.
For New York City Ballet, she created Double Feature, a full-length ballet featuring the music of Irving Berlin and Walter Donaldson, and For the Love of Duke, featuring the music of Duke Ellington.
Other ballet credits include But Not For Me for the Martha Graham Company and Take Five…More or Less for Pacific Northwest Ballet. Her choreography received an Emmy Award nomination for the HBO presentation Liza - Live from Radio City Music Hall, starring Liza Minnelli. She received the American Choreography Award for her work in Columbia Pictures feature film Center Stage. She directed and choreographed The Producers: The Movie Musical, nominated for 4 Golden Globes.
She directed and choreographed the Broadway bound Ahrens/Flaherty musical Marie for The 5th Avenue Theater in Seattle. In collaboration with the Williamstown Theatre Festival, she directed the play Photograph 51 for Audible.
She is an Associate Director for Lincoln Center Theater and a member of the Board of Directors for the Ronald O. Perelman Center for the Performing Arts located at the World Trade Center.
She is the recipient of the George Abbott Award for Lifetime Achievement in the American Theater and an inductee of the Theater Hall of Fame in New York City.
Learn more at SusanStroman.com .
Official Susan Stroman website
Author's Shows
The World Goes 'Round
There don't appear to be any questions submitted.

redpajama_set_name: RedPajamaCommonCrawl


text:
Pachyarthra asiatica är en fjärilsart som beskrevs av Petersen 1959. Pachyarthra asiatica ingår i släktet Pachyarthra och familjen äkta malar.

Artens utbredningsområde är Afghanistan. Inga underarter finns listade i Catalogue of Life.

Källor

Äkta malar
asiatica

redpajama_set_name: RedPajamaWikipedia


Ronnie Peterson took victory for Lotus after teammate Emerson Fittipaldi broke down from the lead with just a few laps to go. Jackie Stewart finished second in what would prove to be his final podium finish, whilst Carlos Pace took third for Surtees - the team's second and last F1 podium.
Niki Lauda finally took victory in his home race in a typically canny drive. He started fourth and despite dropping to sixth on the first lap he was soon up to third - which became second when teammate Alain Prost spun off. He then caught up to leader Nelson Piquet and pounced as the pair lapped a Michele Alboreto's Ferrari, eventually winning by some 23 seconds.
Michele Alboreto was third for Ferrari ahead of Teo Fabi's Brabham, whilst Arrows managed to get both cars home in the points for the very first time in the team's six-and-a-half season history.
In what would become a disappointingly familiar sight over the next few years, Ferrari clinched both championships early in the season by finishing one-two. Michael Schumacher dominated to win both his fourth championship and his 51st grand prix, equalling Prost on both counts. Mika Hakkinen finished sixth, taking the 25th and final fastest lap of his career along the way.
There are a couple of other birthdays, too. Dennie Poore (born 1916) drove two grands prix in a Connaught in 1952, finishing fourth at Silverstone, whilst Oscar Laurrari (born 1954) drove for the glory of the Eurobrun team in 1988 and 1989. He had little chance to impress in a car which often wasn't good enough to qualify (or even pre-qualify). He did stick the car 18th on the grid a Monaco in 1988, but his best result was 13th in the following race in Mexico.


text:
Retakh, Vladimir (n.1948, Chișinău) este un matematician american. S-a născut la Chișinău. A absolvit Institutul pedagogic din Moscova în anul 1969, unde a audiat cursurile lui Israel Gelfand. Candidat în științe (1973). A lucrat la întreprinderi industriale din Rusia, iar ulterior a intrat într-un grup academic, condus de Israel Gelfand. Din anul 1993 locuiește în SUA. Din anul 1999 este profesor la Rutgers University din New Jersey, SUA.

Publicații matematice

 AMS MRlookup (author: Retakh, V.)

Pagina sa personală

 Pagina web personală

Vezi și

 Listă de matematicieni originari din Basarabia și Republica Moldova

Nașteri în 1948
Matematicieni americani din secolul al XX-lea
Matematicieni moldoveni
Oameni din Chișinău
Moldoveni în viață
Matematicieni americani din secolul al XXI-lea


The island's Greek and Turkish communities have lived estranged since 1974, when Turkey invaded the north after a brief Greek-inspired coup.
REUTERS - Cyprus is closer than ever to ending its four-decade-old partition and the two sides could agree on the text of a deal by May, followed by a referendum, a senior Turkish Cypriot official said on Wednesday.
The island's Greek and Turkish communities have lived apart since 1974, when Turkey invaded the north after a brief Greek-inspired coup. The seeds of partition were sown soon after independence from Britain in 1960.
"We are cautiously optimistic. We think we are closer than we have ever been before," Emine Colak, foreign minister in the internationally unrecognised administration in the north, told Reuters in an interview.
"We don't think the Cyprus problem has got easy - it hasn't but we think we have a window of opportunity," Colak said. "It is possible and it is desirable to get to at least the major part of the negotiations and the agreed text by May 2016."
The breakaway state in the island's north is recognized only by Turkey.
New impetus was given to the island's on-off peace process by the election of moderate Mustafa Akinci as Turkish Cypriot leader in May.
On Wednesday, Turkish Prime Minister Ahmet Davutoglu joined a chorus of optimism, telling reporters there was a "window of opportunity" on the Cyprus issue.
Asked if there could be a referendum on unification in early 2016, Colak said: "I wouldn't think early 2016 but maybe within 2016 - I don't see any reason why not."
The frozen conflict has been a permanent fixture on UN Security Council agendas for at least half a century. Cyprus hosts one of the world's oldest peacekeeping forces, monitoring a 110-mile ceasefire line that slices across the eastern Mediterranean island.
Cyprus's partition is a continuing source of tension between Greece and Turkey and an obstacle to Turkey's ambition to join the European Union. The breakaway state in the north is recognised only by Turkey.
"On both sides, the political leadership, the political will is on the side of resolving it this time if we possibly can," said Colak, a 57-year-old human rights lawyer educated at London's School of Oriental and African Studies.
Unifying the island would spur investment, open up the Turkish side to more tourism, allow direct flights from most of Europe to Northern Cyprus and help stem a brain drain from the Turkish side.
On paper, the two sides agree on reuniting Cyprus as a two-zone federation under a federal umbrella. But Colak cautioned there were hurdles that had festered for decades.
There are deep differences on on how the new state would function and the degree of autonomy each side would have. The exact geography of the dividing line is also a difficult issue.
Other obstacles include the property claims of tens of thousands of people displaced in conflict, and Greek Cypriot demands that thousands of Turkish mainlanders who arrived on the island after division should leave.
"We have had some convergence on a lot of the headings so far but I would say we are about halfway, but at the moment there is a very sticky issue and that is property," Colak said. "We think some formulas will be found."
Another issue is how and on what terms a unification deal would be guaranteed by Britain, Greece and Turkey. Colak said the guarantor powers were saying this could wait until the outline of a deal had emerged.
She suggested that postponing Greek Cypriot elections planned for May 2016 would ease the negotiating process.
Colak said some EU member states such as France were still refusing to speak to Turkish Cypriots.
In 2004, Greek Cypriots rejected a United Nations settlement blueprint accepted by Turkish Cypriots. One of the objections of the Greek side was that the deal still gave Turkey a say in the island's affairs, and that it did not safeguard the right of all internally displaced people to return to their homes.
Colak said Turkey would have to be one of the guarantors.
The cost of unification, thought to be around 16 billion pounds ($24 billion), would be borne by the international community.
So will it really happen? "There are a lot of signs of hope," Colak said.


text:
Transport Infrastructure Developed to Link Key Economic Places
11:40:03 AM | 14/8/2019
The Yen Bai Department of Transport has actively consulted and introduced many solutions to mobilize and effectively use investment resources to develop transport infrastructure systems to link industrial, urban and residential areas to national highways and provincial transport networks. Mr. Do Van Du, Director of Yen Bai Department of Transport, gives an interview to Vietnam Business Forum Magazine, on this issue.
What do you think the development of current transport infrastructure to meet the requirements of people and businesses, especially local investors?
In the past years, the regional transport system has gradually developed from urban to rural areas to create a new face for the province. National highways are invested for upgrading and repair to meet local socioeconomic development requirements and connect with other provinces. From 2016 to 2018, Yen Bai province mobilized over VND6 trillion for the traffic road infrastructure development, with priority given to a number of key projects with great impacts on urban space development and local socioeconomic development.
In particular, in 2018, with a total investment of VND2,400 billion, the province focused on investing in key projects to mitigate consequences of natural disasters and floods such as Bach Lam Bridge, Tuan Quan Bridge, Khe Dai Bridge (linking National Road 37 with Noi Bai - Lao Cai Highway), the road connecting National Road 32C with Noi Bai - Lao Cai Highway, roads in Che Tao commune, Van Chan - Tram Tau Road, Ngoi Thia Bridge, Nam Dong Bridge and Tu Le integrated overflow bridge in Nam Dong commune. So far, some projects have been completed and put into use to link regions in the province and with Noi Bai - Lao Cai Highway.
In 2019, the province continued to construct many projects such as a road linking National Highway 32C to Noi Bai - Lao Cai Highway, Au Lau - Dong An Road, and Tan Linh - Lam Thuong Road, promoted the construction of leading ways to Co Phuc Bridge, repair and upgrade of a road linking Noi Bai - Lao Cai Highway (IC12) to Provincial Road 172 (Van Hoi - My Section), and invested in construction of inter-regional transport infrastructure to support socioeconomic development of poor districts of Yen Bai province (Saudi Arabia Development Fund) to further complete the transport network to ensure seamless connectivity throughout the province.
The construction of a route that links Nghia Lo to Noi Bai - Lao Cai Highway has been approved by the Prime Minister to be included in the Ground Transport Development Plan to 2020 and further to 2030. As an advisor to the Provincial People's Committee and the Ministry of Transport, what tasks and solutions have you adopted to speed up the progress of the project?
With Noi Bai - Lao Cai Highway passing through the province, the project that links Nghia Lo (Yen Bai) with Noi Bai - Lao Cai Highway has been invested in accordance with the Ground Transport Development Plan to 2020 and further to 2030 and the Socioeconomic Development Master Plan for the Northern Midlands and Mountainous Area to 2020. The project will link National Highway 32 (which runs across Hanoi, Phu Tho, Yen Bai and Lai Chau) with Noi Bai - Lao Cai Highway, together with Provincial Road 165 (Mau A - Tan Uyen Road) that connects National Highway 70 with the expressway (horizontal traffic route connecting Dong-Tay Road with Noi Bai-Lao Cai Highway) to enable localities along National Highway 32, National Highway 70 and surrounding areas to easily access to Noi Bai - Lao Cai Highway and promote trade of Yen Bai province with neighboring provinces.
Once completed, the project that links Nghia Lo (Yen Bai) with Noi Bai - Lao Cai Highway will shorten the distance and significantly reduce travel time from Hanoi to and among Northwest provinces such as Lai Chau, Son La and Lao Cai (from 2.5 hours to 1 hour), thus helping socioeconomic development of ethnic minority areas in Van Chan and Van Yen districts where the route passes.
To date, Yen Bai province has already completed the investment for Muong La (Son La) - Mu Cang Chai (Yen Bai) traffic route; prepared to invest in Khanh Hoa - Van Yen Road, Tram Tau (Yen Bai) - Bac Yen (Son La) traffic route; and studied investment in a route for IC14-Tan Nguyen-Phan Thanh-An Phu (Luc Yen district). Thus, the early project investment also helped the regional traffic network and better promoted connectivity between Northwest provinces with Northeast provinces, between localities in Lai Chau, Son La, Ha Giang and Tuyen Quang provinces with Yen Bai province and lowland provinces. On the other hand, the route will facilitate potential tourism development in the western region of Yen Bai province, thereby preserving and promoting potential strength of cinnamon areas in An Thinh, Dai Son and Mo Vang communes of Van Yen district, improving the material and spiritual life of people in Nghia Lo Town, Van Chan and Van Yen districts in the coming years.
In order for the project to be launched soon, the Department of Transport will continue to coordinate with its investor, the Project Management Unit 3 under the Ministry of Transport, to carry out the project, particularly in the course of land compensation. Due to inconsistent land compensation policies, the investor needs to coordinate with local authorities where the project runs through to seek best actions and options to submit the project scheme to the Provincial People's Committees for implantation.
Speeding up administrative procedure reform
The Department of Transport has brought 94 out of 98 administrative procedures under its jurisdiction to the Yen Bai Public Administration Center, and assigned four officers to work there. It has also appointed one deputy director of the department and one deputy director of the administrative office to control administrative procedures, and work with professional departments and centers to handle administrative procedures. So far, 49 administrative procedures have been offered as Level 3 or 4 online public services, with the capacity to receive and handle administrative documents online at the request of organizations and individuals.
As for results of administrative procedure settlement, performed in single-window mechanism and online public service mechanism: As many as 40,248 records were settled in 2018 and 9,075 records were completed in the first five months of 2019. All were finished on time.
Vietnam - Singapore Vocational College Providing High-quality Human Resources (8/8/2019)
Binh Duong Economy Keeps Growing (7/8/2019)
Binh Duong's PCI Breakthrough and Governmental Resolve (7/8/2019)
Building Innovative Startup Ecosystem (7/8/2019)
Binh Duong Smart City Project Levelling up Investment Attraction (6/8/2019)
Binh Phuoc to Become Largest Southeast Smart City (1/8/2019)
Lessons in Land-sourced Revenue (26/7/2019)
Ha Giang: Breakthrough in Tourism, Cross-border Trade and High-quality Agriculture (18/7/2019)
Active Approach in New Countryside Construction (15/7/2019)
PM Attends Investment Promotion Conference in Quang Ngai (4/7/2019)


text:
Read Next:	BBC Director-General Tony Hall to Step Down
January 18, 2013 5:08PM PT
'Amazing' TV duo boost off-screen biz
First-time farmers flip unscripted fame into thriving lifestyle brand
By Sean Fitz-Gerald
Sean Fitz-Gerald
@srkfitzgerald	FOLLOW
Sean's Most Recent Stories
Kenya Barris Talks Netflix Plans, #MeToo and His Unusual Career Path at USC Comedy Festival
TV Shows Hit the Road With Flurry of Live Events
Behind the Scenes of Animal Planet's Puppy Bowl
After launching a brand of soap, cheese and cookbooks, Brent Ridge (above, left) and Josh Kilmer-Purcell (above, right) have savvily turned reality shows into a marketing tool to spotlight their growing business.
Last month, the couple won CBS' "The Amazing Race," taking home $1 million after traveling the globe under the team name, "the Beekman Boys," a term borrowed from the name of their reality show "The Fabulous Beekman Boys," produced by World of Wonder, that's aired for two seasons on cabler Planet Green.
Name refers to the Beekman Mansion, a 200-year-old, 60-acre estate in Sharon Springs, N.Y., just outside New York City, the home base for the entrepreneurs' lifestyle brand, Beekman 1802, they launched in 2007.
For most city slickers Saanen, Alpine and Nubian mean next to nothing. But for Ridge and Kilmer-Purcell, these kinds of goat milk are key to their success.
"It was just supposed to be a weekend farm," Kilmer-Purcell says of the decision to move from Gotham into the mansion. "We were those obnoxious Manhattanites that just go and buy a weekend property."
Along with the property came a sassy diva of a llama named Polka Spot and 80 goats, as well as their owner, a farmer named John who had written to the "Beekman Boys," because he was in danger of losing his property.
More changes came in 2008 when Ridge, VP of wellness for Martha Stewart Living Omnimedia, was laid off, and Kilmer-Purcell, a partner at an ad agency, lost his job one month later. Stuck with the farm and four-legged mouths to feed, the twosome opted to make their pastoral purchase profitable.
Farmer John and his goats were good for dairy products, so marketing aficionados Ridge and Kilmer-Purcell accepted the challenge of flipping vats of goat milk into artisanal cheeses and soaps.
Ridge used his connections to introduce their soaps on "The Martha Stewart Show," yielding $8,000 in sales and prompting a DailyCandy feature. The successful debut culminated in a call from Planet Green's Laura Michalchyshyn, who expressed faith in a TV series about their lives as sustainable farmers and businessmen.
"When someone comes to you and says to you, 'Do you want to do a reality show?' You get the worst picture of reality television in your mind — even though they call it a docu-series, to make it sound better," Kilmer-Purcell says.
But after speaking with Michalchyshyn and World of Wonder heads Fenton Bailey and Randy Barbato, the unlikely first-time farmers realized they had similar goals for their docu-series: a skein that would be both earnest and entertaining.
Ridge describes "The Fabulous Beekman Boys" as a 30-minute commercial for the brand, because many Beekman 1802 product announcements coincide with on-air appearances and debuts. But there's more to the show, Kilmer-Purcell says, than convenient product placement.
"People look at the Kardashians and the Housewives — now that might look fun, but you can't experience that. (Those shows are) actually designed so it's not you," adds Kilmer-Purcell. "For us, we show our town, we show our farm, and then you can come to our town, you can come to our farm."
After receiving a rash of tour and soap requests, the two inaugurated a harvest festival, which coincided with the skein's first season. The fest celebrated the harvest from local farmers and sought to bring the Sharon Springs community together.
Around 500 people — roughly the size of the town itself — attended the first fest, followed by consecutive turnouts of 5,000, 8,000 and 10,000. Last year's batch of 10,000 included visitors from 23 states and three countries overseas: Ireland, Australia and Norway.
Ridge and Kilmer-Purcell say the skein's spotlight doesn't just illuminate their business, but also the surrounding businesses of Sharon Springs. When the Beekman Boys took up their farm there were only three viable businesses on the rural town's main street, but over the last 1 1/2 years, four new businesses have opened and are now thriving.
This is due in large part to Beekman 1802's collaborative efforts to manufacture goods within the town. Ridge and Kilmer-Purcell design every product in their store and then go to locals for production. Right now the Beekman Boys are working with 22 different craftspeople, and almost every product in the store is made within 20 miles of the farm.
"We make our money off of the things we produce ourselves — like the soap and the cheese — and then we help create a marketplace for the skills, because we want to preserve them," Ridge says. "How many blacksmiths are left in America? How many people are weaving on looms in their living rooms?"
Some of Beekman 1802's popular products include the "Year in the Country" soap set, Blaak artisanal cheese, hand-woven towels and washcloths and cookbooks. Looking ahead, the Beekman Boys are hiring a retail director, their first "big boy hire," to go nationwide and are putting the cap on their Heirloom Dessert Cookbook due out October. They are also announcing the first line of hotel amenities made with goat milk — many of which are made in nearby Courtland, N.Y.
One of their quirkiest endeavors, however, involves their llama, Polka Spot, who has become active and viral on social media, developing a notorious Web presence for all things fashion- and farm-related. A comic book series about the llama is in the works and a photo app is available for smartphone users. This latest ploy is representative of the type of kismet and open-mindedness that has helped the couple become so successful on the bucolic business front.
The Beekman Boys are pitching a new show about the Sharon Springs community at large and are working to secure a third season of "The Fabulous Beekman Boys" on the Cooking Channel.
Ridge and Kilmer-Purcell say the priority has always been to create a symbiotic relationship with the Sharon Springs community: "As we become successful, everyone in the community should become successful," Ridge says. "And because we're really making a living with a dream, we feel like everybody should be able to make a living doing what they love to do."
Fisher Communications
Laura Michalchyshyn
Planet Green
Sandro Corsaro
The Martha Stewart Show
Warner Bros3.5
World Of Wonder
Welcome back to Tune In: our weekly newsletter offering a guide to the best of the week's TV. Each week, Variety's TV team combs through the week's schedule, selecting our picks of what to watch and when/how to watch them. This week, "Star Trek: Picard" beams into existence on CBS All Access and "Shrill" returns [...]
Miami's NATPE market kicks off on Tuesday, but deal announcements are already landing. London-based TCB Media Rights has sold 130 hours of content to Latin America, Cineflix and National Geographic Latin America closed a deal for four titles, and Discovery Latin America picked up popular makeover format "10 Years Younger" from All3Media. TCB's 130 Hours [...]
ViacomCBS-backed U.K. broadcaster Channel 5 will air a 90-minute documentary on Meghan Markle's father Thomas Markle. Markle and her husband Prince Harry sparked a global media frenzy earlier this month with their decision not to continue as senior members of the British Royal Family. Buckingham Palace announced that the couple are to lose their royal [...]
BBC Boss Tony Hall Lands at U.K.'s National Gallery
BBC director general Tony Hall has been appointed chair of the board of trustees of the National Gallery. The executive, who has served on the Gallery's board since November, takes over as chair from Sir John Kingman, who has been interim chair since Hannah Rothschild stood down from the role in September. Hall said: "The [...]
Fox TV Stations Greenlight 'Central Ave' From Will Packer, Debmar-Mercury
Fox Television Stations has ordered the weekly entertainment news magazine "Central Ave," which hails from prolific film and TV producer Will Packer and Lionsgate's Debmar-Mercury. Debmar-Mercury and Will Packer Media will produce two half-hour shows per week of "Central Ave," which tackles pop culture and other topics from a "socially conscious and diverse lens," per [...]
Cook like a professional chef for $12 with this Amazon deal on a best-selling meat thermometer


text:
Parking Garage City Hall Nieuwegein [NL]
Underground parking garage as part of city center transformation
The center of Nieuwegein undergoes a substantial urban transformation until 2017. The development program for the new city center comprises of about 56.000 m2 new retail space, 198 residential units, offices, a new city hall (by 3xN architects), a new city theater and arts center (Architecten Cie) and the renovated Cityplaza. With a total of 1.200 parking spaces several parking garages accommodate this program. Not only due to the large amount of parking spaces do the parking garages play a major role in the transformation. They will also form the new gateways to the inner city.
The first phase of the transformation started in early 2009 and includes among others the new underground garage of 20.000 m2 with 650 parking spaces beneath the city hall, the theater, the main square and the city balcony. Additionally, KCAP has designed the house style and interior concept of the nine new and renovated parking garages in the city center. The interior concept contains the choice of colours for the floors and walls, a concept for light walls, signage and routing. The wayfinding is enriched with light and sound installations.
The integral design approach enables the parking garages to become more than mere functional and efficient spaces. The application of the overall house style and routing concept and the added light and sound art create above all a friendly and safe parking environment.
Client Municipality of Nieuwegein
Program 20.000 m2 underground parking garage with 650 parking spaces and house style, routing and boarding for nine new and renovated parking garages in the city center
Role Architect
Participating parties Mijksenaar (signage), Jaroslaw Flicinski (light art), Spinvis (sound art)
Opening sound and art at Nieuwegein's parking garages
On October 3rd the sound and art installations in Nieuwegein's parking garages City Hall and Theatre were officially opened with performances by Spinvis and city poet Ingmar Heytze. Click here to view the performances.
Parking Garage Nieuwegein featured in Stedebouw & Architectuur magazine
The Dutch monthly Stedebouw & Architectuur features within its February issue 'Parking' an interview with Irma van Oort about KCAP's new parking garage in Nieuwegein. [[file:articlesena]]
Vote for KCAP for the BNA Gebouw van het Jaar 2012 audience award
Cast your vote on KCAP's parking garage in Nieuwegein for the audience award of the BNA Gebouw van het Jaar 2012. Click here to proceed to the voting!
Official opening parking garage Nieuwegein [NL]
Today the parkinggarages Stadshuis, Stadstheater and Kunstencentrum in Nieuwegein will be officially opened. They are part of the transformation of the center of Nieuwegein. The parking garages with a total of 1.200 parking spaces accomodate the program of the development of the city centre which comprises of 56.000 m2 new retail facilities, 198 residential units, offices, a new city hall (3xn architects), a new theater and art center (Architecten Cie) and the renovated Cityplaza. KCAP is responsible for the underground garage of 20.000 m2 with 650 parkingspaces beneath the city hall, theatre, city square and city balcony. Additionally, KCAP has designed the house style and interior concept of the 9 new and renovated parking garages in the city center. The interior concept contains the choice of colours for the floors and walls, a concept for light walls, bording and routing. The wayfinding is enriched with light and sound art by the Polish artist Jaroslaw Flicinski and Spinvis (Erik de Jong).Go to the project.
First phase renewal centre Nieuwegein [NL] completed
Dutch architecture newssite architectenweb.nl reports on the realisation of the renewal of the centre of the Dutch city Nieuwegein. The project comprises of a new city hall, the retail area City Plaza, a theatre and arts centre, a parking garage above the ground and two underground parking garages. The underground garages located below the new theatre and arts centre by the Architecten Cie and the new city hall by 3x Nielsen (DK), is designed by KCAP. Read the full article here or go to the project.


I recently wrote a 30Seats post on the parallels between applied behavior analysis techniques commonly used in treating autistic children and "handling" a boss who can be difficult.
Today, Seth Godin writes a more colorful post addressing one of the key points — not reacting to bad behavior at all — in the context of a workplace bully.
The basic model that behavior analysts start with is this: ABC.
A – What was the action that triggered the behavior?
B – What was the behavior?
C – What was the consequence of that behavior?
Under a simple example, a child may interpret shouting and scolding as just attention, which might be desired, and not make the connection between positive and negative attention. That's why Seth's advice is to walk away (cf. ignore undesirable behavior) when a workplace bully starts ranting. Getting upset — angry, sad, or frightened — is likely to actually reinforce the bully's behavior and lead to more of the same.
This attention to behavior is one more thing I've learned from autism.


text:
La Rotunda fue una de las cárceles más famosas de la Venezuela de mediados del  y principios del . El auge de su importancia se dio durante el gobierno del dictador Juan Vicente Gómez, debido a los métodos de tortura aplicados a los presos políticos y a las condiciones inhumanas a los cuales eran sometidos. Era conocida por los detractores del gomecismo como "la última morada de los opositores".

Historia

La Rotunda fue construida en 1844 en Caracas, al sur del Hospital de Caridad de Hombres, durante la presidencia de Carlos Soublette. La construcción de la cárcel fue concluida en 1854, durante el gobierno de José Gregorio Monagas. El edificio estaba ubicado en el lugar donde actualmente se encuentra la Plaza La Concordia.

El nombre de la cárcel se deriva de la forma circular del edificio, ideado a partir del modelo creado en el  por el inglés Jeremías Bentham, llamado panóptico. Casi 90 años después de su construcción la cárcel fue demolida para eliminar con ello cualquier vestigio de la crueldad y barbarie del régimen gomecista. De allí el nombre de la plaza que ocupa su lugar la plaza La Concordia, como un intento de olvido a una de las épocas más oscuras de la historia de Venezuela.

Demolición
La cárcel del régimen gomecista fue demolida en el año 1936, por el presidente Eleazar López Contreras. López Contreras escogió el nombre de «La Concordia» para la plaza que se ubicaría en el mismo lugar donde había estado la cárcel, para dar una idea de un nuevo tiempo de entendimiento. Con ello quería darle fuerza a su recién estrenado y frágil mandato porque, desde su posición de Ministro de Guerra de Gómez, no era posible imaginar que López Contreras ignorara lo que ocurría a los presos de la Rotunda. La demolición de la cárcel por parte de López Contreras ha sido vista como un intento por parte de este General de borrar uno de los episodios más oscuros de la historia del país, porque estuvo involucrado.

Métodos carcelarios

Los hombres que eran apresados en la Rotunda por motivos políticos cargaban con grilletes y pernos de acero en los pies y eran víctimas de numerosas torturas. Los grillos sujetaban los tobillos de los prisioneros inmovilizándolos y produciéndoles heridas. Se solía introducir veneno en los alimentos de reos sobre los que pesaran órdenes de asesinato, y vidrio molido en sus bebidas para causar mayor sufrimiento a la hora de la muerte. Fue una época muy oscura para la política venezolana y todo aquel que se opusiera al régimen de Gómez era asesinado, encarcelado o desaparecido. Entre el peor de los castigos se encontraba esta cárcel. Los métodos de tortura iban desde los más convencionales hasta la pena de muerte.

Muchos de los presos políticos de la Rotunda eran enviados a cumplir con trabajos forzados, el más famoso de los cuales fue la construcción de la carretera Trasandina en los Andes Venezolanos que aún sigue en funcionamiento. Uno de los torturadores más crueles de esta cárcel fue un preso común llamado Nereo Pacheco quien, por órdenes de Gómez, fue utilizado por los vigilantes como elemento de castigo a los presos políticos.

Presos célebres
Entre los presos célebres de la cárcel se encuentran:
 Román Delgado Chalbaud, líder de una conspiración en contra del presidente Juan Vicente Gómez, quien habitó su celda por catorce años.
 José Rafael Pocaterra, escritor nacido en la ciudad de Valencia, quien narra sus desventuras en prisión en su libro Memorias de un Venezolano de la Decadencia.
 Rufino Blanco Fombona, opositor al régimen gomecista desde el principio y luego exiliado del país hasta la muerte de Gómez.
 los sacerdotes Mendoza y Monteverde, engrillados por ser parte del clero opositor al régimen de Gómez.
 Néstor Luis Pérez, jurista venezolano.
 Jóvito Villalba, político venezolano.
 Andrés Eloy Blanco, político y poeta venezolano.
 Carlos López Bustamante, director del diario El Fonógrafo en Caracas.
Francisco Betancourt Sosa, empresario, político, escritor y banquero, presidente por 14 años de Banfoandes (Banco de Fomento Regional Los Andes).

Véase también

 Isla Guasina
 La Tumba

Referencias

Enlaces externos
 Video de la demolición de la Rotunda

Historia de Caracas
Prisiones de Caracas
Edificios y estructuras desaparecidos de Venezuela
Centros de detención y tortura en Venezuela


text:
Q: Is there a way to specify and use a list of all data members belonging to a C++ class When developing C++ code, I often find myself trying to do something for all the data members belonging to a class. Classic examples are in the copy constructor and assignment operator. Another place is when implementing serialization functions. In all of these situations, I have spent a lot of time tracking down bugs in large codebases where someone has added a data member to a class but has not added its usage to one of these functions where it is needed.
With C++11, 14, 17, and 20, there are many template programming techniques that are quite sophisiticated in what they can do. Unfortunately, I understand only a little of template metaprogramming. I am hoping that someone can point me to a way to specify a list of variables (as a class member and/or type) that I can use to help reduce errors where someone has inadvertently left a member out. I am okay with both a compile-time and run-time penalty, as long as there is an easy way at build time to specify whether or not to use such instrumentation.
A notional usage might look like:
class Widget {
    template <typename Archive> void serialize(Archive ar) {
        auto myvl = vl(); // make a new list from the one defined in the constructor
        ar(a);
        ar(x);
        myvl.pop(a);
        myvl.pop(x);

        // a run-time check that would be violated because s is still in myvl.
        if (!myvl.empty())
            throw std::string{"ill-definied serialize method; an expected variable was not used"};
        // even better would be a compile-time check
    }

private:
    int a;
    double x;
    std::string s;
    VariableList vl(a, x, s);
};

Or perhaps some static analysis, or ...
I am just looking for a way to improve the quality of my code.
Thanks for any help.

A: This feature is coming with the (compile time) reflection feature.  https://root.cern/blog/the-status-of-reflection/ talks about its status at a technical level last year.
Reflection is a c++23 priority, and is likely to be there.
Before that, one approach I do is write a single point of failure for all such operations.  I call it as_tie:
struct Foo {
  int x,y;
  template<class Self, std::enable_if_t<std::is_same_v<Foo, std::decay_t<Self>>, bool> =true>
  friend auto as_tie(Self&& self){
    static_assert(sizeof(self)==8);
    return std::forward_as_tuple( decltype(self)(self).x, decltype(self)(self).y );
  }
  friend bool operator==(Foo const&lhs, Foo const& rhs){
    return as_tie(lhs)==as_tie(rhs);
  }
};

or somesuch depending on dialect.
Then your seializer/deserializer/etc can use as_tie, maybe using foreach_tuple_element.  Versioning can even be done; as_tie_v2_2_0 for an obsolete tie.
And if someone adds a member, the sizeof static assert probably fires.

A: This is no way to do this without reflection support. The alternative way is to transform your customized struct into the tuple of your member reference then using std::apply to operate the elements of the tuple one by one. You can see CppCon 2016: "C++14 Reflections Without Macros, Markup nor External Tooling" for the details. Here are the concepts:
First, we need to detect your customized struct's fields count:
template <auto I>
struct any_type {
  template <class T> constexpr operator T& () const noexcept;
  template <class T> constexpr operator T&&() const noexcept;
};

template <class T, auto... Is>
constexpr auto detect_fields_count(std::index_sequence<Is...>) noexcept {
  if constexpr (requires { T{any_type<Is>{}...}; }) return sizeof...(Is);
  else
    return detect_fields_count<T>(std::make_index_sequence<sizeof...(Is) - 1>{});
}

template <class T>
constexpr auto fields_count() noexcept {
  return detect_fields_count<T>(std::make_index_sequence<sizeof(T)>{});
}

Then we can transform your struct into tuple according to the fields_count traits (to illustrate, I only support the fields_count up to 8):
template <class S>
constexpr auto to_tuple(S& s) noexcept {
  if constexpr (constexpr auto count = fields_count<S>(); count == 8) {
    auto& [f0, f1, f2, f3, f4, f5, f6, f7] = s;
    return std::tie(f0, f1, f2, f3, f4, f5, f6, f7);
  } else if constexpr (count == 7) {
    auto& [f0, f1, f2, f3, f4, f5, f6] = s;
    return std::tie(f0, f1, f2, f3, f4, f5, f6);
  } else if constexpr (count == 6) {
    auto& [f0, f1, f2, f3, f4, f5] = s;
    return std::tie(f0, f1, f2, f3, f4, f5);
  } else if constexpr (count == 5) {
    auto& [f0, f1, f2, f3, f4] = s;
    return std::tie(f0, f1, f2, f3, f4);
  } else if constexpr (count == 4) {
    auto& [f0, f1, f2, f3] = s;
    return std::tie(f0, f1, f2, f3);
  } else if constexpr (count == 3) {
    auto& [f0, f1, f2] = s;
    return std::tie(f0, f1, f2);
  } else if constexpr (count == 2) {
    auto& [f0, f1] = s;
    return std::tie(f0, f1);
  } else if constexpr (count == 1) {
    auto& [f0] = s;
    return std::tie(f0);
  } else if constexpr (count == 0) {
    return std::tie();
  }
}

Then you can use this utility in your own serialize functions:
struct Widget {
template <typename Archive>
  void serialize(Archive ar) {
    std::apply([ar](auto&... x) { (ar(x), ...); }, to_tuple(*this));
  }
};

See godbolt for the live demo.

A: PART 1 of 2 (see part 2 below)
I decided to make a special tool that uses CLang's AST tree.
As you're working on Windows, I wrote next instructions for Windows.
CLang library (SDK) as I found is very Linux oriented, it is difficult to use it straight away from sources on Windows. That's why I decided to use binary distribution of CLang to solve your task.
LLVM for Windows can be downloaded from github releases page, particularly current release is 11.0.1. To use it on windows you have to download LLVM-11.0.1-win64.exe. Install it to some folder, in my example I installed it into C:/bin/llvm/.
Also Visual Studio has its own CLang packaged inside, it also can be used, but it is a bit outdated, so maybe very new C++20 features are not supported.
Find clang++.exe in your LLVM installation, for my case it is C:/bin/llvm/bin/clang++.exe, this path is used in my script as c_clang variable in the beginning of script.
I used Python to write parsing tool, as this is well known and popular scripting language. I used my script to parse console output of CLang AST dump. You can install Python by download it from here.
Also AST tree can be parsed and processed at C++ level using CLang's SDK, example of AST Visitor implementation is located here, but this SDK can be probably used well only on Windows. That's why I chosen to use binary Windows distribution and parsing of console output. Binary distribution under Linux can also be used with my script.
You may try my script online on Linux server by clicking Try it online! link below.
Script can be run using python script.py prog.cpp, this will produce output prog.cpp.json with parsed tree of namespaces and classes.
As a base script uses command clang++ -cc1 -ast-dump prog.cpp to parse .cpp file into AST. You may try running command manually to see what it outputs, for example part of example output looks like this:
..................
|-CXXRecordDecl 0x25293912570 <line:10:13, line:13:13> line:10:19 class P definition
| |-DefinitionData pass_in_registers standard_layout trivially_copyable trivial literal
| | |-DefaultConstructor exists trivial needs_implicit
| | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param
| | |-MoveConstructor exists simple trivial needs_implicit
| | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param
| | |-MoveAssignment exists simple trivial needs_implicit
| | `-Destructor simple irrelevant trivial needs_implicit
| |-CXXRecordDecl 0x25293912690 <col:13, col:19> col:19 implicit class P
| |-FieldDecl 0x25293912738 <line:11:17, col:30> col:30 x 'const char *'
| `-FieldDecl 0x252939127a0 <line:12:17, col:22> col:22 y 'bool'
..............

I parse this output to produce JSON output file. JSON file will look like this (part of file):
.............
{
    "node": "NamespaceDecl",
    "name": "ns2",
    "loc": "line:3:5, line:18:5",
    "tree": [
        {
            "node": "CXXRecordDecl",
            "type": "struct",
            "name": "R",
            "loc": "line:4:9, line:6:9",
            "tree": [
                {
                    "node": "FieldDecl",
                    "type": "bool *",
                    "name": "pb",
                    "loc": "line:5:13, col:20"
                }
            ]
        },
.............

As you can see JSON file has next fields: node tells CLang's name of node, it can be NamespaceDecl for namespace, CXXRecordDecl for struct/class/union, FieldDecl for fields of struct (members). I hope you can easily find opensource JSON C++ parsers if you need, because JSON is the most simple format for storing structured data.
Also in JSON there are field name with name of namespace/class/field, type with type of class or field, loc that says location inside file of namespace/class/field definition, tree having a list of child nodes (for namespace node children are other namespaces or classes, for class node children are fields or other inlined classes).
Also my program prints to console simplified form, just list of classes (with full qualified name including namespaces) plus list of fields. For my example input .cpp it prints:
ns1::ns2::R - pb
ns1::ns2::S::P - x y
ns1::ns2::S::Q - r
ns1::ns2::S - i j b

Example input .cpp used:
// Start
namespace ns1 {
    namespace ns2 {
        struct R {
            bool * pb;
        };
        struct S {
            int i, j;
            bool b;
            class P {
                char const * x;
                bool y;
            };
            class Q {
                R r;
            };
        };
    }
}

int main() {
}

I also tested my script on quite complex .cpp having thousands of lines and dozens of classes.
You can use my script next way - after your C++ project is ready you run my script on your .cpp files. Using script output you can figure out what classes you have and what fields each class has. Then you can check somehow if this list of fields is same as your serialization code has, you can write simple macros for doing auto-checking. I think getting list of fields is the main feature that is needed for you. Running my script can be some preprocessing stage before compilation.
If you don't know Python and want to suggest me any improvements to my code, tell me, I'll update my code!
Try it online!
import subprocess, re, os, sys, json, copy, tempfile, secrets

c_file = ''
c_clang = 'C:/bin/llvm/bin/clang++.exe'

def get_ast(fname, *, enc = 'utf-8', opts = [], preprocessed = False, ignore_clang_errors = True):
    try:
        if not preprocessed:
            fnameo = fname
            r = subprocess.run([c_clang, '-cc1', '-ast-dump'] + opts + [fnameo], capture_output = True)
            assert r.returncode == 0
        else:
            with tempfile.TemporaryDirectory() as td:
                tds = str(td)
                fnameo = tds + '/' + secrets.token_hex(8).upper()
                r = subprocess.run([c_clang, '-E'] + opts + [f'-o', fnameo, fname], capture_output = True)
                assert r.returncode == 0
                r = subprocess.run([c_clang, '-cc1', '-ast-dump', fnameo], capture_output = True)
                assert r.returncode == 0
    except:
        if not ignore_clang_errors:
            #sys.stdout.write(r.stdout.decode(enc)); sys.stdout.flush()
            sys.stderr.write(r.stderr.decode(enc)); sys.stderr.flush()
            raise
        pass
    return r.stdout.decode(enc), fnameo

def proc_file(fpath, fout = None, *, clang_opts = [], preprocessed = False, ignore_clang_errors = True):
    def set_tree(tree, path, **value):
        assert len(path) > 0
        if len(tree) <= path[0][0]:
            tree.extend([{} for i in range(path[0][0] - len(tree) + 1)])
        if 'node' not in tree[path[0][0]]:
            tree[path[0][0]]['node'] = path[0][1]
        if 'tree' not in tree[path[0][0]] and len(path) > 1:
            tree[path[0][0]]['tree'] = []
        if len(path) > 1:
            set_tree(tree[path[0][0]]['tree'], path[1:], **value)
        elif len(path) == 1:
            tree[path[0][0]].update(value)
    def clean_tree(tree):
        if type(tree) is list:
            for i in range(len(tree) - 1, -1, -1):
                if tree[i] == {}:
                    tree[:] = tree[:i] + tree[i+1:]
            for e in tree:
                clean_tree(e)
        elif 'tree' in tree:
            clean_tree(tree['tree'])
    def flat_tree(tree, name = (), fields = ()):
        for e in tree:
            if e['node'] == 'NamespaceDecl':
                if 'tree' in e:
                    flat_tree(e['tree'], name + (e['name'],), ())
            elif e['node'] == 'CXXRecordDecl':
                if 'tree' in e:
                    flat_tree(e['tree'], name + (e['name'],), ())
            elif e['node'] == 'FieldDecl':
                fields = fields + (e['name'],)
                assert 'tree' not in e['node']
            elif 'tree' in e:
                flat_tree(e['tree'], name, ())
        if len(fields) > 0:
            print('::'.join(name), ' - ', ' '.join(fields), sep = '')
    ast, fpath = get_ast(fpath, opts = clang_opts, preprocessed = preprocessed, ignore_clang_errors = ignore_clang_errors)
    fname = os.path.basename(fpath)
    ipath, path, tree = [],(), []
    st = lambda **value: set_tree(tree, path, **value)
    inode, pindent = 0, None
    for line in ast.splitlines():
        debug = (path, line)
        if not line.strip():
            continue
        m = re.fullmatch(r'^([|`\- ]*)(\S+)(?:\s+.*)?$', line)
        assert m, debug
        assert len(m.group(1)) % 2 == 0, debug
        indent = len(m.group(1)) // 2
        node = m.group(2)
        debug = (node,) + debug
        if indent >= len(path) - 1:
            assert indent in [len(path), len(path) - 1], debug
        while len(ipath) <= indent:
            ipath += [-1]
        ipath = ipath[:indent + 1]
        ipath[indent] += 1
        path = path[:indent] + ((ipath[indent], node),)
        line_col, iline = None, None
        m = re.fullmatch(r'^.*\<((?:(?:' + re.escape(fpath) + r'|line|col)\:\d+(?:\:\d+)?(?:\, )?){1,2})\>.*$', line)
        if m: #re.fullmatch(r'^.*\<.*?\>.*$', line) and not 'invalid sloc' in line and '<<<' not in line:
            assert m, debug
            line_col = m.group(1).replace(fpath, 'line')
            if False:
                for e in line_col.split(', '):
                    if 'line' in e:
                        iline = int(e.split(':')[1])
                if 'line' not in line_col:
                    assert iline is not None, debug
                    line_col = f'line:{iline}, ' + line_col
        changed = False
        if node == 'NamespaceDecl':
            m = re.fullmatch(r'^.+?\s+?(\S+)\s*$', line)
            assert m, debug
            st(name = m.group(1))
            changed = True
        elif node == 'CXXRecordDecl' and line.rstrip().endswith(' definition') and ' implicit ' not in line:
            m = re.fullmatch(r'^.+?\s+(union|struct|class)\s+(?:(\S+)\s+)?definition\s*$', line)
            assert m, debug
            st(type = m.group(1), name = m.group(2))
            changed = True
        elif node == 'FieldDecl':
            m = re.fullmatch(r'^.+?\s+(\S+?)\s+\'(.+?)\'\s*$', line)
            assert m, debug
            st(type = m.group(2), name = m.group(1))
            changed = True
        if changed and line_col is not None:
            st(loc = line_col)
    clean_tree(tree)
    if fout is None:
        fout = fpath + '.json'
    assert fout.endswith('.json'), fout
    with open(fout, 'wb') as f:
        f.write(json.dumps(tree, indent = 4).encode('utf-8'))
    flat_tree(tree)

if __name__ == '__main__':
    if c_file:
        proc_file(c_file)
    else:
        assert len(sys.argv) > 1
        proc_file(sys.argv[1])

Input:
// Start
namespace ns1 {
    namespace ns2 {
        struct R {
            bool * pb;
        };
        struct S {
            int i, j;
            bool b;
            class P {
                char const * x;
                bool y;
            };
            class Q {
                R r;
            };
        };
    }
}

int main() {
}

Output:
ns1::ns2::R - pb
ns1::ns2::S::P - x y
ns1::ns2::S::Q - r
ns1::ns2::S - i j b

JSON output:
[
    {
        "node": "TranslationUnitDecl",
        "tree": [
            {
                "node": "NamespaceDecl",
                "name": "ns1",
                "loc": "line:2:1, line:19:1",
                "tree": [
                    {
                        "node": "NamespaceDecl",
                        "name": "ns2",
                        "loc": "line:3:5, line:18:5",
                        "tree": [
                            {
                                "node": "CXXRecordDecl",
                                "type": "struct",
                                "name": "R",
                                "loc": "line:4:9, line:6:9",
                                "tree": [
                                    {
                                        "node": "FieldDecl",
                                        "type": "bool *",
                                        "name": "pb",
                                        "loc": "line:5:13, col:20"
                                    }
                                ]
                            },
                            {
                                "node": "CXXRecordDecl",
                                "type": "struct",
                                "name": "S",
                                "loc": "line:7:9, line:17:9",
                                "tree": [
                                    {
                                        "node": "FieldDecl",
                                        "type": "int",
                                        "name": "i",
                                        "loc": "line:8:13, col:17"
                                    },
                                    {
                                        "node": "FieldDecl",
                                        "type": "int",
                                        "name": "j",
                                        "loc": "col:13, col:20"
                                    },
                                    {
                                        "node": "FieldDecl",
                                        "type": "bool",
                                        "name": "b",
                                        "loc": "line:9:13, col:18"
                                    },
                                    {
                                        "node": "CXXRecordDecl",
                                        "type": "class",
                                        "name": "P",
                                        "loc": "line:10:13, line:13:13",
                                        "tree": [
                                            {
                                                "node": "FieldDecl",
                                                "type": "const char *",
                                                "name": "x",
                                                "loc": "line:11:17, col:30"
                                            },
                                            {
                                                "node": "FieldDecl",
                                                "type": "bool",
                                                "name": "y",
                                                "loc": "line:12:17, col:22"
                                            }
                                        ]
                                    },
                                    {
                                        "node": "CXXRecordDecl",
                                        "type": "class",
                                        "name": "Q",
                                        "loc": "line:14:13, line:16:13",
                                        "tree": [
                                            {
                                                "node": "FieldDecl",
                                                "type": "ns1::ns2::R",
                                                "name": "r",
                                                "loc": "line:15:17, col:19"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ]
    }
]

PART 2 of 2
Digging inside sources of CLang I just found out that there is a way to dump into JSON directly from CLang, by specifying -ast-dump=json (read PART 1 above for clarification), so PART1 code is not very useful, PART2 code is a better solution. Full AST dumping command would be clang++ -cc1 -ast-dump=json prog.cpp.
I just wrote simple Python script to extract simple information from JSON dump, almost same like in PART1. On each line it prints full qualified struct/class/union name (including namespaces), then space, then separated by | list of fields, each field is field type then ; then field name. First lines of script should be modified to correct path to clang++.exe location (read PART1).
Code below that collects fields names and types for all classes can be easily implemented also in C++ if desired. And even used at runtime to provide different useful meta-information, for your case checking if all fields where serialized and in correct order. This code uses just JSON format parser which is available everywhere for all programming languages.
Next script can be run same like first one by python script.py prog.cpp.
import subprocess, json, sys

c_file = ''
c_clang = 'C:/bin/llvm/bin/clang++.exe'

r = subprocess.run([c_clang, '-cc1', '-ast-dump=json', c_file or sys.argv[1]], check = False, capture_output = True)
text = r.stdout.decode('utf-8')
data = json.loads(text)

def flat_tree(tree, path = (), fields = ()):
    is_rec = False
    if 'kind' in tree:
        if tree['kind'] == 'NamespaceDecl':
            path = path + (tree['name'],)
        elif tree['kind'] == 'CXXRecordDecl' and 'name' in tree:
            path = path + (tree['name'],)
            is_rec = True
    if 'inner' in tree:
        for e in tree['inner']:
            if e.get('kind', None) == 'FieldDecl':
                assert is_rec
                fields = fields + ((e['name'], e.get('type', {}).get('qualType', '')),)
            else:
                flat_tree(e, path, ())
    if len(fields) > 0:
        print('::'.join(path), '|'.join([f'{e[1]};{e[0]}' for e in fields]))

flat_tree(data)

Output:
ns1::ns2::R bool *;pb
ns1::ns2::S::P const char *;x|bool;y
ns1::ns2::S::Q ns1::ns2::R;r
ns1::ns2::S int;i|int;j|bool;b

For input:
// Start
namespace ns1 {
    namespace ns2 {
        struct R {
            bool * pb;
        };
        struct S {
            int i, j;
            bool b;
            class P {
                char const * x;
                bool y;
            };
            class Q {
                R r;
            };
        };
    }
}

int main() {
}

CLang's AST JSON partial example output:
...............
{
    "id":"0x1600853a388",
    "kind":"CXXRecordDecl",
    "loc":{
        "offset":189,
        "line":10,
        "col":19,
        "tokLen":1
    },
    "range":{
        "begin":{
            "offset":183,
            "col":13,
            "tokLen":5
        },
        "end":{
            "offset":264,
            "line":13,
            "col":13,
            "tokLen":1
        }
    },
    "name":"P",
    "tagUsed":"class",
    "completeDefinition":true,
    "definitionData":{
        "canPassInRegisters":true,
        "copyAssign":{
            "hasConstParam":true,
            "implicitHasConstParam":true,
            "needsImplicit":true,
            "trivial":true
        },
        "copyCtor":{
            "hasConstParam":true,
            "implicitHasConstParam":true,
            "needsImplicit":true,
            "simple":true,
            "trivial":true
        },
        "defaultCtor":{
            "exists":true,
            "needsImplicit":true,
            "trivial":true
        },
        "dtor":{
            "irrelevant":true,
            "needsImplicit":true,
            "simple":true,
            "trivial":true
        },
        "isLiteral":true,
        "isStandardLayout":true,
        "isTrivial":true,
        "isTriviallyCopyable":true,
        "moveAssign":{
            "exists":true,
            "needsImplicit":true,
            "simple":true,
            "trivial":true
        },
        "moveCtor":{
            "exists":true,
            "needsImplicit":true,
            "simple":true,
            "trivial":true
        }
    },
    "inner":[
        {
            "id":"0x1600853a4a8",
            "kind":"CXXRecordDecl",
            "loc":{
                "offset":189,
                "line":10,
                "col":19,
                "tokLen":1
            },
            "range":{
                "begin":{
                    "offset":183,
                    "col":13,
                    "tokLen":5
                },
                "end":{
                    "offset":189,
                    "col":19,
                    "tokLen":1
                }
            },
            "isImplicit":true,
            "name":"P",
            "tagUsed":"class"
        },
        {
            "id":"0x1600853a550",
            "kind":"FieldDecl",
            "loc":{
                "offset":223,
                "line":11,
                "col":30,
                "tokLen":1
            },
            "range":{
                "begin":{
                    "offset":210,
                    "col":17,
                    "tokLen":4
                },
                "end":{
                    "offset":223,
                    "col":30,
                    "tokLen":1
                }
            },
            "name":"x",
            "type":{
                "qualType":"const char *"
            }
        },
        {
            "id":"0x1600853a5b8",
            "kind":"FieldDecl",
            "loc":{
                "offset":248,
                "line":12,
                "col":22,
                "tokLen":1
            },
            "range":{
                "begin":{
                    "offset":243,
                    "col":17,
                    "tokLen":4
                },
                "end":{
                    "offset":248,
                    "col":22,
                    "tokLen":1
                }
            },
            "name":"y",
            "type":{
                "qualType":"bool"
            }
        }
    ]
},
...............

A:
Is there a way to specify and use a list of all data members belonging to a C++ class

Yes, if you use a recent GCC compiler (GCC 10 in start of 2021). Code your GCC plugin doing so.
See also the DECODER project and the Bismon software and this draft report.

I am just looking for a way to improve the quality of my code

Consider using tools like the Clang static analyzer or Frama-C++.

redpajama_set_name: RedPajamaStackExchange


additional coupons after you print. More See more offers in Household. 163.50 available Savings 0 3 Beverage offers are available for you. Lasting Quality Happiness with House of Troy.
Minimal, wall sconces bring both light and modern flavor. Unclip, share, share with your friends. More, see more offers in Beverages. More See more offers in Foods. Offer of the week clipped, unclip, share, share with your friends. 163.50 available Savings 0 143 grocery coupons are available for you. Offer of the week clipped Unclip Share Share with your friends. Clipped, unclip, share, share with your friends. Offer of the week clipped. Outdoor, let sun-down end your great party? Murray Feiss, quality in classic and contemporary lights. Just, click, Print and, save.


text:
BR Home Page > MLB Players > N Listing > Trot Nixon Statistics and History
Trot Nixon
Position: Rightfielder
Bats: Left • Throws: Left
Born: April 11, 1974 in Durham, NC us
Draft: Drafted by the Boston Red Sox in the 1st round (7th) of the 1993 MLB June Amateur Draft from New Hanover HS (Wilmington, NC).
High School: New Hanover HS (Wilmington, NC)
Debut: September 21, 1996 (Age 22-163d, 14,608th in MLB history)
vs. NYY 0 AB, 0 H, 0 HR, 0 RBI, 1 SB
Last Game: June 28, 2008 (Age 34-078d)
Agents: Ron Shapiro
Full Name: Christopher Trotman Nixon
Trot Nixon Overview
More Nixon Pages
More Trot Nixon Pages at Baseball Reference
Trot Nixon page at the Bullpen Wiki
Can't Follow ALL of the Baseball News?
Try our Stathead newsletter. Every day, we'll send you an email to your inbox with scores, today's schedule, top performers, new debuts and interesting tidbits. View a sample email. It's also available for football, basketball and hockey.
Standard Batting
Show Minors
Games by Position
20 BOS-min A+ 71 315 264 33 65 12 0 12 43 10 3 44 53 .246 .357 .428 .785 113 5 3 1 3 1 LBG · CARL
21 BOS-min A+,AA 98 417 358 52 95 14 5 7 47 9 6 52 66 .265 .357 .391 .748 140 5 1 2 4 3 SAR,TRE · FLOR,EL
22 BOS-min AA 123 502 438 55 110 11 4 11 63 7 9 50 65 .251 .329 .370 .698 162 6 3 6 5 3 TRE · EL
22 BOS AL 2 4 4 2 2 1 0 0 0 1 0 0 1 .500 .500 .750 1.250 210 3 0 0 0 0 0 /9
23 BOS-min AAA 130 552 475 80 116 18 3 20 61 11 4 63 86 .244 .331 .421 .753 200 11 1 9 4 2 PAW · IL
24 BOS-min AAA 135 597 509 97 158 26 4 23 74 26 13 76 81 .310 .400 .513 .913 261 10 5 0 7 6 PAW · IL
24 BOS AL 13 28 27 3 7 1 0 0 0 0 0 1 3 .259 .286 .296 .582 51 8 0 0 0 0 0 /9D7
25 BOS AL 124 447 381 67 103 22 5 15 52 3 1 53 75 .270 .357 .472 .830 107 180 7 3 2 8 1 *9 RoY-9
26 BOS-min Rk 3 13 10 3 4 0 0 1 5 0 0 2 0 .400 .538 .700 1.238 7 0 1 0 0 1 RES · GULF
26 BOS AL 123 502 427 66 118 27 8 12 60 8 1 63 85 .276 .368 .461 .830 107 197 11 2 5 5 2 *9/8D
27 BOS AL 148 633 535 100 150 31 4 27 88 7 4 79 113 .280 .376 .505 .881 129 270 8 7 6 6 1 *98/D
28 BOS AL 152 612 532 81 136 36 3 24 94 4 2 65 109 .256 .338 .470 .808 110 250 7 5 3 7 2 *98
29 BOS AL 134 513 441 81 135 24 6 28 87 4 2 65 96 .306 .396 .578 .975 148 255 3 3 1 3 4 *9/8
30 BOS-min AAA,A+ 7 26 24 3 9 2 0 0 3 0 0 2 3 .375 .423 .458 .881 11 0 0 0 0 0 PAW,SAR · IL,FLOR
30 BOS AL 48 167 149 24 47 9 1 6 23 0 0 15 24 .315 .377 .510 .887 123 76 3 1 0 2 1 9/D
31 BOS-min AAA 2 9 6 3 3 0 0 1 2 0 0 2 2 .500 .556 1.000 1.556 6 0 0 0 1 1 PAW · IL
31 BOS AL 124 470 408 64 112 29 1 13 67 2 1 53 59 .275 .357 .446 .804 109 182 7 3 0 6 3 *9/D
32 BOS-min AAA 3 12 12 2 2 1 0 0 0 0 0 0 0 .167 .167 .250 .417 3 0 0 0 0 0 PAW · IL
32 BOS AL 114 453 381 59 102 24 0 8 52 0 2 60 56 .268 .373 .394 .767 96 150 10 7 0 5 1 *9
33 CLE AL 99 354 307 30 77 17 0 3 31 0 0 44 59 .251 .342 .336 .677 79 103 9 0 0 3 7 9/D
34 ARI-NYM-min AAA,Rk 71 282 232 49 74 18 0 14 45 2 0 49 34 .319 .440 .578 1.017 134 6 1 0 0 4 TUC,NOR,MET · PCL,GULF
34 NYM NL 11 41 35 2 6 1 0 1 1 1 0 6 9 .171 .293 .286 .578 55 10 0 0 0 0 1 /79
1092 4224 3627 579 995 222 28 137 555 30 13 504 689 .274 .364 .464 .828 112 1684 65 31 17 45 23
162 Game Avg.
162 627 538 86 148 33 4 20 82 4 2 75 102 .274 .364 .464 .828 112 250 10 5 3 7 3
BOS (10 yrs)
982 3829 3285 547 912 204 28 133 523 29 13 454 621 .278 .366 .478 .845 116 1571 56 31 17 42 15
NYM (1 yr)
11 41 35 2 6 1 0 1 1 1 0 6 9 .171 .293 .286 .578 55 10 0 0 0 0 1
CLE (1 yr)
99 354 307 30 77 17 0 3 31 0 0 44 59 .251 .342 .336 .677 79 103 9 0 0 3 7
AL (11 yrs)
NL (1 yr)
Player Value--Batting
WAR Explained (v2.2): 8+ MVP, 5+ A-S, 2+ Starter, 0-2 Sub, < 0 Repl
Postseason Batting
Postseason Game Log
Standard Fielding
Costa sponsor(s) this page.
My favorite Red Sox hitter of all-time.
A history of the Sports Reference Sponsorship System
Hall of Fame Statistics
Similarity Scores
Explanation of Similarity Scores
Convert to YYYY $'s Back to Actual 1871 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980 1990 2000 2010 2019
Salaries may not be complete (especially pre-1985) and may not include some earned bonuses
Name + "Statistics" Translations
Note, this is done in an automated way, so we apologize for any errors, & please report any suggested corrections. "Statistics" is included to allow non-English speakers to find our pages.
Other Resources & Links
You are here: BR Home Page > MLB Players > N Listing > Trot Nixon Statistics and History


text:
Chris Buescher Chicagoland Advance
Chris Buescher – Chicago Advance
Team: No. 60 Ford EcoBoost Mustang
Buescher at Chicagoland Speedway
Roush Fenway Racing's Chris Buescher will make his third NASCAR XFINITY Series start at Chicagoland Speedway on Saturday night. Buescher's two starts at the track both came in 2014, where the young driver started no lower than 13th and finished no lower than 12th. Buescher's best finish of eighth came in the spring.
Buescher ranks second in the average number of quality passes at Chicagoland Speedway. In his two starts, he averages 47 quality passes per race.
In two ARCA Racing Series Presented by Menards starts at Chicagoland Speedway, Buescher started in the top-10 both times and earned two top-five finishes. His best finish of second came in 2011.
The No. 60 Mustang carries the Ford EcoBoost colors this weekend at Chicagoland Speedway. Ford EcoBoost technology combines smaller overall size with turbocharging, direct injection and variable valve timing to bring customers outstanding performance and fuel economy.
Recapping Michigan International Speedway
Buescher extended his points lead in the NASCAR XFINITY Series after leading 23 laps and finishing a solid fourth in last Saturday's race at Michigan International Speedway.
Chris Buescher on racing at Chicagoland Speedway
"Our 60 team has had great momentum and we are looking forward to getting back to the race track this weekend at Chicagoland. We have made big gains with our big-track program and feel like Chicago should be another chance at a solid top-five. We ran really well there last year and have plenty to build on."