text:
CPG Boosts New-Product Impact by Targeting Innovation
By Al Heller
Facts, Figures & the Future
CPG brand marketers released 1,862 new products into a crowded marketplace in 2012—690 in food and beverage, and 1,172 in nonfoods.
The Top 200 sellers among these are IRi's New Product Pacesetters—100 in food/beverage and 100 in nonfoods. These launches best attracted the 20% of consumers who "always look" for new products to try, plus other financially confident consumers. Together, their new-item uptake and willingness to experiment give worthy products first-year sales momentum across multiple retail channels.
To identify Pacesetters, IRi now measures beyond FDM channels to include sales at Walmart, dollar, club (Sam's, BJ's) and military commissaries as well. IRi's latest annual study, issued in April 2013, shows that 2012 Pacesetters averaged year-one retail sales of $39.5 million and rang up a collective $7.9 billion. By contrast, 68% of new CPG launches posted year-one sales of $7.5 million or less across multiple outlets, says IRi.
In a lackluster economy, where nearly one-fourth of U.S. households find it difficult to pay for regular groceries and aren't inclined to buy unfamiliar items, this standout performance stems from targeted innovations—such as gluten-free, protein-rich or functionally enhanced foods, easy prep or portability. Not surprisingly, the latest crop of Pacesetters gained leverage from known brand names—82% in food/beverage and 91% in nonfoods are brand extensions.
The Top 10 food and beverage Pacesetters of 2012 include:
Dannon Oikos yogurt, $283.8 million in year-one sales across multiple outlets.
Starbucks K-Cups coffee, $198.9 million.
Bud Light Platinum beer, $162.2 million.
TruMoo milk, $158.3 million.
Breyers BLASTS! ice cream, sherbet, $147.3 million.
MiO brink mixes, $127.6 million.
Sparkling ICE bottled water, $122.7 million.
Nature Valley protein bars, $95.7 million.
Orville Redenbacher's Pop Up Bowl, $92.1 million
Daily's Frozen Pouches premixed cocktails, coolers, $89.2 million.
Their effect on category sales can be significant. For example, while Dannon Oikos is key to breakfast solutions' dollar sales growth of 12.1% between 2009 and 2012, so are launches of Eggo Wafflers and KIND Plus snack bars; portability is their common theme. Similarly, introductions of TruMoo, MiO and Sparkling ICE raised dollar sales in the milk-juice-water sector by 8.4% between 2009 and 2012, says IRi.
"Variety innovation across the food and beverage arena is clearly playing to the blurring of eating occasions, while simultaneously reflecting numerous long-standing trends, including flavor excitement and on-the-go eating," the IRi report states. It further notes the five most common benefits offered by the 2012 Pacesetters:
Distinctive new flavor or flavor combination (offered by 65% of Pacesetters)
Improved/authentic flavor (47%)
New product design/look (29%)
Bite-sized/hand-held (27%)
New use/approach in existing category (24%)
With 64% of consumers telling IRi they try to eat healthier, it's no surprise that 27% of the 2012 Pacesetters tout better-for-you benefits. Specifically, 41% claim "real/100% real"; 37% say "good source of vitamins/minerals"; 33% say "less calories/sugar"; 30% say either "more natural/organic," "good source of protein," or "fiber/whole grain'; and 22% say "less/reduced/no fat."
Thriving in the Work Environment
2020-2025 Dietary Guidelines Development Update
Creating Your Own Profit & Loss Statement
Summer Smoothies: Help Shoppers Boost Their Blend
RD Close-up: Ellen Doyle, RD, Registered Dietitian at LobLaws
5 Essential Finance Terms
How Eggs Fit into Current Consumer Trends
Benefits of Emotional Intelligence in Business
Positioning Retail News Headlines to Your Benefit


text:
June 11, 2021 Travel Advisory
PA Turnpike to Close Overnight June 13 between Bensalem and I-95 Interchanges
Five-hour closure needed for bridge beam installation in Bucks County.
The Pennsylvania Turnpike Commission advises motorists that I-276 will be closed eastbound on Sunday, June 13 from 12:01 a.m. to 5 a.m. between the Bensalem Interchange, Exit 351, and the I-95 Interchange, Exit 40, in Bristol Township, Bucks County.
The Street Road Exit Ramp, Exit 352, will also be closed during this time. Eastbound traffic will not be able to enter or exit I-276 from Street Road (State Route 132).
The closure is necessary for the protection of motorists and workers so crews can safely install new bridge beams. The bridge, which carries U.S. Route 1 over the Turnpike, is at milepost 351.61 in Bucks County.
Eastbound Detour
Exit at Bensalem Interchange, Exit 351 and follow U.S. Route 1 south. Stay right onto North Roosevelt Boulevard to exit for State Route 63 east/Woodhaven Road to exit for I-95 north towards Trenton. Continue travelling on I-95 north towards New York to reenter the PA Turnpike.
Pennsylvania State Police and Turnpike personnel will be positioned at the impacted areas to assist drivers. Changeable message signs will also provide information on these closures. Motorists are encouraged to plan travel accordingly. Work schedules are subject to change based on weather conditions.
To report an accident or other emergency on the PA Turnpike, dial *11 via mobile phone. To learn more about PA Turnpike conditions, use one of these resources:
ON THE TURNPIKE
511PA Smartphone App: real-time, hands-free PA traffic advisories
Digital Message Signs: more than 100 boards along the Turnpike
Turnpike Travel Conditions Map: live, interactive map
511: dial from any PA roadway for local travel information
Pennsylvania Turnpike Customer Assistance Center: 1-877-736-6727, Monday through Friday, 8:30 A.M. to 4:30 P.M. (Outside U.S., please call 717-831-7601)
Kathleen Walter, 267-326-3856

redpajama_set_name: RedPajamaCommonCrawl


text:
Healthcare Quarterly 8(1) January 2005 : 33-34.doi:10.12927/hcq..16948
CIHI Survey: Canada's Health System: Transitions in Leadership
Kira Leeb, Jennifer Zelmer and Benjamin Taylor
Canadian hospital CEOs are at least twice as likely as those in the UK, Australia, US and New Zealand to say that they face serious shortages of trained managerial staff, according to a 2003 survey by the Commonwealth Fund. More generally, many decision-makers and policy-makers cite identifying, supporting and nurturing health leaders as a key challenge in the years ahead (Dault et al. 2004).
Those who shoulder these leadership responsibilities operate within the complex, multilevel environment of health policy and healthcare delivery. Their ranks include federal/provincial/territorial Ministers and Deputy Ministers of Health; senior managers in health regions, hospitals and other healthcare organizations; and clinical leaders. This article presents the first results of a profile of Canada's health leadership cadre and how it is changing.
At the Top in Government
In recent years, First Ministers meetings have become a visible sign of government's role in setting overall direction for Canada's health system. Ministers and Deputy Ministers of Health play key roles in the policy process. Between September 2000 when the first Health Accord was issued and September 2004 when the First Ministers announced A 10-year Plan to Strengthen Health Care, 40 Health Ministers and 34 Deputy Ministers sat around the federal/provincial/territorial table.
Table 1. Changes at the Top
Table 1 shows the median terms of Ministers and Deputy Ministers of Health who held office in each jurisdiction between January 1990 and October 2004 (in months) and the number of individuals who held office during this period. The median is the point at which half served longer and half served shorter terms.
Deputy Minister Minister
Median Term # Median Term #
Federal 38.4 5 11 11
Alberta 16 9 46.4 4
British Columbia 21.9 9 20 11
Manitoba 24.1 6 32.4 6
New Brunswick 43.6 3 35.7 5
Newfoundland 21.8 5 22.2 8
Northwest Territories 27 6 9.8 12
Nova Scotia 17 9 26.2 7
Nunavut (since 1999) 12.5 4 33.3 2
Ontario 23.3 8 19.4 10
Prince Edward Island 13 9 35.4 6
Quebec 21.9 8 26.8 7
Saskatchewan 24 5 28.6 7
Yukon 26.8 6 21.3 7
Source: Compiled by CIHI
At the Top in Healthcare Organizations
Of the 1.2 million Canadians who told census-takers that they worked in the health sector in 2001, about 5,075 were senior managers. Of these, 43% worked in hospitals, 29% in ambulatory care, and 28% in nursing or residential care facilities. The same year, 100 CEOs from across the country answered a survey by the University of Ottawa, the Canadian College of Health Service Executives and Caldwell Partners (response rate of 32%). One in five (39%) had been in their current role for three years or less (Armstrong et al. 2001). Slightly more (41%) had held their position for at least five years.
A 2001 survey conducted by Quebec's Ministry of Health echoed these findings. This survey profiled over 9,500 middle, senior and top managers in the province's health sector and outlined the challenges associated with their recruitment and retention. With 23% of executives approaching retirement age, the report anticipated a wave of retirements in the next decade. At the same time, the authors suggested that changes in the health system may affect the demand for managers in the future.
Table 2. Health and Social Services Managers in Quebec
Table 2 highlights findings from a 2001 report by Quebecs Ministry of Health and Social Services on the more than 9,500 middle, senior and top managers in the provinces health sector. For example, while almost two-thirds (63%) of middle managers are women, men hold almost eight in ten (78%) of the top positions.
Management Level # % of Total % Male Average Age % >55 years
Top* 506 5% 78% 50 23%
Senior** 1,390 14% 57% 48 12%
Middle 7,697 80% 37% 47 9%
Total 9,593 100% 42% 47 10%
* Includes Chief Executive Officers, Managing Directors, Assistant Managing Directors, Executive Advisors
** Includes Directors, Assistant Directors, Assistants to the Managing Director, etc.
Source: Ministère de la Santé et des Services Sociaux. 2001. Planification de la main-doeuvre - Personnel cadre et hors-cadre du réseau de la santé et des services sociaux. Rapport du conseil dadministration du Centre de référence des directeurs généraux et des cadres. Quebec: MSSS.
A number of Ontario hospitals are planning ahead for retirements and other sources of turnover. In 2002, 60% and 44% of hospitals participating in the Ontario Hospital Report reported having formal succession plans in place for the Chair of their Board of Directors and Chairs of Board Standing Committees respectively (Hospital Report Research Collaborative 2002; 2003). Fewer, only 27%, had succession plans for senior management positions. Plans were more common in teaching hospitals than in community and smaller hospitals. (Similar data are not available for other jurisdictions.)
The Next Generation?
Senior executives in the health sector often begin their leadership careers as managers or clinical leaders. The last census counted just over 22,000 Canadians employed as managers in healthcare in 2001, up from 18,305 a decade before. In contrast, the number who reported working as head nurses or supervisors fell by almost half over the same period - 9,745 were employed in these positions in 2001.
The numbers have changed, but so has the composition of the management team and the nature of their work. For example, between 1991 and 2001, the average age of managers (regardless of employment status) in healthcare rose from 43.5 to 45.5 years, as did the amount of time that they spent on the job. Almost one-quarter (24%) of full-time managers worked 50 hours per week or more in 2001, up from 15% in 1991.
Figure 1. By the Numbers: Managers in Healthcare Across the Country
The 2001 Census provides a profile of Canadas Healthcare Managers, individuals who were responsible for specific health services, such as dietetics, laboratory medicine, nursing, physiotherapy or surgery.
% of those employed who worked mostly full-time: 98%
average employment income in 2000: $52,586, about the same as the 1990 average of $52,782 after adjusting for inflation
% working in hospitals: 31%; in nursing and residential care facilities: 30%
average hours worked per week: 42, up from 40 hours in 1991
% aged 55 and older: 16%; under 35: 13%
% women: 73% (compared with 54% of senior managers in healthcare)
% visible minorities: 6.7%, up from 5.0% in 1991
The Future of Leadership
As a $121 billion industry, Canada's health sector demands strong leadership and management. Recent years have seen significant changes in the organization and delivery of care - and in those leading the change process. With consensus across the country on the need for health system renewal, the pace of change is unlikely to slow. To help inform decisions about supporting the leaders of today and nurturing the leaders of tomorrow, future planned studies will aim to further our understanding of who is at the helm and their career and development paths.
Kira Leeb has managed the production of CIHI's annual report on the health of Canada's healthcare system since coming to CIHI. She has also led or participated in the production of more focused reports on aspects of Canada's healthcare system. Prior to coming to CIHI, Kira participated in the development of and managed a province-wide, non-nominal, voluntary, observational database that collects demographic and clinical information on HIV/AIDS positive people. She holds a Master's degree in Experimental Psychology and is currently completing her PhD in Epidemiology at the University of Toronto.
Jennifer Zelmer is Vice-President, Research and Analysis for the Canadian Institute for Health Information. In this role, she leads an integrated program of health services and population health-related analytical and research initiatives. Prior to joining CIHI in 1995, she worked with a variety of health, academic and government organizations in Canada, Australia, Denmark and India, among other countries. Ms. Zelmer has a Bachelor's degree in Health Information Science, a Master's degree in Economics and is currently pursuing a PhD in Economics.
Benjamin Taylor recently graduated from the Community Health and Epidemiology Master's program at Queen's University. Prior to finishing his Master's degree, Ben travelled to Costa Rica and worked as an E-Health Project Coordinator with the Pan American Health Organization. He is currently employed with the Canadian Institute for Health Information as an analyst on the team responsible for producing annual reports on Canada's healthcare system.
Armstrong, R., F.W.H. Brunelle, D.E. Angus and G. Levac. 2001. "The Changing Role of Canadian Healthcare CEOs: Results of a National Survey." Healthcare Management Forum, Supplement.
Dault, M., J. Lomas and M. Barer. (on behalf of the Listen for Direction II Partners). 2004. Listening For Direction II: National Consultation on Health Services and Policy Issues for 2004-2007. Ottawa: Canadian Health Services Research Foundation.
Hospital Report Research Collaborative. 2002; 2003. Hospital Report 2002, 2003: Acute Care. Toronto: Hospital Report Research Collaborative, University of Toronto.
Ministère de la Santé et des Services Sociaux. 2001. Planification de la main-d'oeuvre - Personnel cadre et hors-cadre du réseau de la santé et des services sociaux. Rapport du conseil d'administration du Centre de référence des directeurs généraux et des cadres. Quebec; MSSS.


text:
21 км — пасажирський залізничний зупинний пункт Одеської дирекції Одеської залізниці на лінії Мигаєве — Ротове.

Розташований поблизу водосховища на Малому Куяльнику, Березівський район, Одеської області між станціями Мигаєве (21 км) та Новознам'янка (8 км).

Станом на початок 2018 р. не здійснюється пасажирське сполучення.

Джерела

Зупинні пункти Одеської залізниці
Зупинні пункти Березівського району

redpajama_set_name: RedPajamaWikipedia


Culture programs at ALC combined Japanese language classes with a close focus on aspects of Japan's culture, both traditional and modern. We currently provide more programs during the summer months, but are constantly developing and scheduling programs for all seasons.
We use small classes (maximum is 6, for some programs only 4), a flexible schedule, an innovative curriculum, and professional faculty. A key feature of these programs is that we do not restrict the program to our classrooms, but make use of local resources and field trips to maximize the experiential nature of these programs. For example the Ceramics Classes are taught by Master potters, and the Tsugaru Shamisen teachers are similarly professionals, not Japanese language teachers teaching their hobbies.
All of these programs are designed for adult learners, and the primary pedagogical emphasis is on teaching the oral communicative skills of listening, speaking and expression. Every one of these programs is available for short term enrollment of 3 months or less, so no student visa required.


This recipe is a throwback to a golden age of classic club food – the 1950s and 1960s. As a kid, I remember these were on the menu at our local seaman's club in Port Hedland. Here, I've reworked this retro dish, making it a little more modern.
Preheat the oven to 180°C. Use a sharp paring knife to cut a horizontal pocket in the side of each beef fillet. Fill each pocket with 2 oysters. Wrap the prosciutto around the beef, then use a toothpick to secure the prosciutto to the beef by piercing it through.
Soak the wakame in a small bowl of water for 5 minutes, drain, then squeeze out the excess liquid. In another small bowl, combine the soy sauce, vinegar, sugar and sesame oil, then add the wakame and toss to coat. Set aside while you get on with the rest of the recipe.
Heat 2 tablespoons of the oil and all of the butter in a flameproof casserole dish or frying pan over medium heat and seal the beef, turning often, for 4–5 minutes. Use a brush to baste the beef all over with the oyster sauce, then transfer to the oven and cook for a further 10–15 minutes for medium rare. Remove from the oven and allow to rest for 10 minutes (the beef will continue to cook while it is resting). Brush with the remaining oyster sauce and set aside.
Arrange the kataifi into 8 evenly sized bunches on a dry chopping board or work surface. Dab a touch of wasabi paste on an oyster, lay it on the edge of a kataifi bunch and gently roll up to enclose. Repeat with the remaining oysters.
Heat the oil in a small saucepan and fry the kataifi-wrapped oysters for 1 minute, until lightly golden brown. Drain on paper towel and season with sea salt.
Serve each steak with 2 crisp oysters and a small pile of the wakame salad, then top with the sesame seeds.
Kataifi pastry is a finely shredded pastry that is typically used in Mediterranean and Middle Eastern cooking. It can be bought from most Greek delis and Lebanese or Turkish stores; there is no real substitute as hand cutting filo just doesn't cut the mustard.


text:
Q: ASP.NET Core 3 mock authorization during integration testing I am using ASP.NET core to build an API, and I am trying to upgrade from .NET core 2.2 to .NET core 3.1.
I am using the [Authorize] attribute to secure the API endpoints and I want to bypass it during integration tests.
I have managed to to create a custom AuthenticationHandler that authenticates a fake user, and an authorization handler that authorizes anybody (including anonymous users).
My problem is that the user injected in the Authentication handler is not propagated to the Authorization handler and the filter DenyAnonymousAuthorizationRequirement fails
because the User in the context is null.
Has anyone dealt with something similar?
By the way, the class DenyAnonymousAuthorizationRequirement is a Microsoft class, I copied the code as it appeared in the IDE just for the post here.
My custom AuthenticationHandler:
  public class TestAuthHandler : AuthenticationHandler<AuthenticationSchemeOptions>
  {
        public TestAuthHandler(IOptionsMonitor<AuthenticationSchemeOptions> options,
                               ILoggerFactory logger,
                               UrlEncoder encoder,
                               ISystemClock clock)
            : base(options, logger, encoder, clock) { }

        protected override Task<AuthenticateResult> HandleAuthenticateAsync()
        {
            ClaimsPrincipal fakeUser = FakeUserUtil.FakeUser();
            var ticket = new AuthenticationTicket(fakeUser, "Test");
            var result = AuthenticateResult.Success(ticket);
            return Task.FromResult(result);
        }
  }

The AuthorizationRequirement:
public class DenyAnonymousAuthorizationRequirement : AuthorizationHandler<DenyAnonymousAuthorizationRequirement>, IAuthorizationRequirement
    {

        protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, DenyAnonymousAuthorizationRequirement requirement)
        {
            var user = context.User;
            var userIsAnonymous =
                user?.Identity == null ||
                !user.Identities.Any(i => i.IsAuthenticated);
            if (!userIsAnonymous)
            {
                context.Succeed(requirement);
            }
            return Task.CompletedTask;
        }
    }

The code in the ConfigureServices method that uses the above classes:
 public void ConfigureServices(IServiceCollection services)
 {

            services.AddAuthentication("Test")
                    .AddScheme<AuthenticationSchemeOptions, TestAuthHandler>("Test", null);
            services.AddAuthorization(configure =>
            {
                var builder = new AuthorizationPolicyBuilder(new List<string> {"Test"}.ToArray())
                    .AddRequirements(new DenyAnonymousAuthorizationRequirement());
                configure.DefaultPolicy = builder.Build();
            });
            services.AddControllers()
                    .SetCompatibilityVersion(CompatibilityVersion.Version_3_0)
                    .AddNewtonsoftJson(options =>
                                           options.SerializerSettings.ReferenceLoopHandling =
                                               ReferenceLoopHandling.Ignore);

}

A: Check out this documentation https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-3.1 at "Mock Authentication" session. I think that you need to add this code after create you client:
client.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Test");

A: Have a related problem and have stumbled on this article here
it shows that you can override the user that is set in the HttpContext this way:
class FakeUserFilter : IAsyncActionFilter
{
    public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
    {
        context.HttpContext.User = new ClaimsPrincipal(new ClaimsIdentity(new List<Claim>
        {
            new Claim(ClaimTypes.NameIdentifier, "123"),
            new Claim(ClaimTypes.Name, "Test user"),
            new Claim(ClaimTypes.Email, "test@example.com"),
            new Claim(ClaimTypes.Role, "Admin")
        }));

        await next();
    }
}

and then inject it in ConfigureTestServices:
builder.ConfigureTestServices(services =>
        {
            services.AddMvc(options =>
            {
                options.Filters.Add(new AllowAnonymousFilter());
                options.Filters.Add(new FakeUserFilter());
            })
            .AddApplicationPart(typeof(Startup).Assembly);
        });

Hope this helps

redpajama_set_name: RedPajamaStackExchange


Once upon a time there used to be a listing of almost every business and organisation on the Islands. It was called D.O.T.S. (Directory Of Trades and Services) and it was much loved and used.
This was presented, free of charge, for 3 years in Bay Island News. Later it matured into it's own publication, an 'Advertiser', a small A4, glossy, colour publication.
With the demise of the print version of Bay Island News, so also a decent Island Directory died.
I didn't like that, so I have done something about it.


The 2019 Honda Odyssey raises the bar in minivan safety. Check out the highlights below!
The 2019 Honda Odyssey reaches new heights in performance that is made to impress.
With all new interior features like HondaVac and CabinTalk, the Honda Odyssey is top of its class.


Zotero is a research tool and reference manager program that helps students collect, organize, cite and share research sources. References from library catalogs, research databases and websites are saved in a personal library. You can create bibliographies from saved references in various styles like MLA and APA. Zotero comes with a plug-in that works with MS Word and helps in creating in-text citations.


text:
Étienne-François de Choiseul (* 28. Juni 1719 in Nancy, Herzogtum Lothringen, heute Frankreich; † 8. Mai 1785 in Paris) war Marquis de Removille, Seigneur de Chanteloup, Marquis de Stainville (seit 1770), Duc de Choiseul-Stainville und Pair von Frankreich (seit 1758) sowie Herzog von Choiseul, Herzog von Amboise, Pair von Frankreich (seit 1764) und ein führender französischer Staatsmann zur Zeit des Ancien Régime.

Leben
Choiseul war der älteste Sohn von François Joseph II. de Choiseul, marquis de Stainville (1700–1770). Er trug in seinen früheren Jahren den Höflichkeitstitel Comte de Stainville (Graf von Stainville). Zu seinen Brüdern zählten der Fürsterzbischof von Cambrai Léopold-Charles de Choiseul-Stainville sowie der Marschall von Frankreich Jacques Philippe de Choiseul-Stainville. Er trat in die Armee ein, diente während des Österreichischen Erbfolgekriegs 1741 in Böhmen und Italien, wo er sich bei der Schlacht von Coni 1744 auszeichnete. Von 1745 bis 1748 war er mit der Armee auf dem Gebiet der Niederlande und nahm an den Schlachten bei Mons, Charleroi und Maastricht teil. Er wurde zum Lieutenant général ernannt und heiratete 1750 Louise Honorine, Tochter des Bankiers Louis François Crozat (1691–1750), Marquis de Chatel, die ein großes Vermögen in die Ehe einbrachte.

Choiseul gewann die Gunst von Madame de Pompadour, indem er ihr einige Briefe beschaffte, die Ludwig XV. an seine Cousine Madame de Choiseul geschrieben hatte. Nach einer kurzen Zeit als Landvogt von Vosges  wurde er 1753 zum Botschafter in Rom ernannt, wo er mit den Verhandlungen betraut wurde, die die Unruhen im Zusammenhang mit der Bulle Unigenitus Dei filius betrafen. Er erfüllte seine Verpflichtung mit Geschick. 1757 sorgte seine Patronin für seine Versetzung nach Wien, wo er instruiert wurde, die neue Allianz zwischen Frankreich und Österreich zu zementieren. Sein Erfolg in Wien eröffnete ihm die Möglichkeit für eine weitergehende Karriere: Choiseul ersetzte Abbé François-Joachim de Pierre de Bernis als Außenminister (1758–1761/1766–1770) und steuerte daher während des Siebenjährigen Krieges die französische Außenpolitik.

Zu dieser Zeit wurde er zum Duc d'Amboise erhoben. Obwohl in den Jahren 1761 bis 1766 sein Cousin César Gabriel de Choiseul-Praslin das Amt des Außenministers bekleidete, bestimmte doch Choiseul weiterhin die französische Politik bis 1770. So amtierte er phasenweise zugleich als Kriegsminister (1761–1770) und Marineminister (1761–1766). 1766 tauschte er mit seinem Cousin das Marineministerium gegen das Außenministerium.

Als der Urheber des "Familienpaktes" versuchte er, durch eine Allianz mit dem Bourbonen-Haus in Spanien die verheerenden Ergebnisse der Allianz mit Österreich wiedergutzumachen; seine Maßnahme kam aber zu spät. Seine energische Politik in anderen Bereichen des Staats war jedoch nicht vergeblich. Nachdem er inmitten einer Phase der Demoralisierung an die Macht gekommen war, verursacht durch die Niederlagen von Rossbach und Krefeld, reformierte er mit Mut und Energie die Streitkräfte. Auch wenn er zu spät kam, um den Verlust Kanadas und Indiens noch zu verhindern, entwickelte er die französischen Kolonien in den Antillen – darunter die "Perle der Karibik" Saint Domingue – und brachte Korsika und Lothringen unter die französische Krone. Seine Innenpolitik stellte im Allgemeinen die  zufrieden. Er erlaubte die Veröffentlichung der  und führte die Verbannung der Jesuiten herbei.

Choiseuls Sturz wurde durch seine Maßnahmen gegen die Jesuiten und durch seine Unterstützung für deren Gegner La Chalotais und der Provinzparlamente verursacht. Nach dem Tod Madame Pompadours 1764 wurden seine Feinde, angeführt von Madame Dubarry und dem Kanzler Maupeou, zu stark für ihn, und 1770 wurde er gezwungen, sich auf seinen Landsitz in Chanteloup zurückzuziehen. Die Intrigen gegen ihn hatten jedoch seine schon vorher große Popularität noch befördert, und während seines Ruhestands, der bis 1774 andauerte, lebte er im größten Luxus und wurde von vielen berühmten Persönlichkeiten besucht. Zu seiner großen Enttäuschung setzte ihn Ludwig XVI. nicht wieder in sein früheres Amt ein, wenn auch der König ihm 1774 die Rückkehr nach Paris gestattete. Dort starb er 1785 mit einem Berg an Schulden, den seine Witwe gewissenhaft beglich.

Von 1762 bis 1771 war er Colonel général der Cent-Suisses et Grisons.

Bedeutung
Choiseul arbeitete sowohl mit Fähigkeit als auch mit Fleiß, und obwohl es ihm an Hartnäckigkeit fehlte, zeigte er in seiner Amtsführung Voraussicht und Liberalität. Horace Walpole gab in seinen Memoiren eine lebhafte Beschreibung von Choiseuls Charakter. Er bezichtigte ihn, den Krieg zwischen Russland und dem Osmanischen Reich 1768 angefacht zu haben, um sich an der Zarin Katharina II. zu rächen. Von seiner Außenpolitik sagte er  An anderer Stelle schrieb er , und in Bezug auf Choiseuls Privatleben behauptete er . Choiseuls Witwe, eine Frau , lebte bis zu ihrem Tod am 3. Dezember 1808 im Ruhestand.

Weiteres
Der Choiseul Sound auf den Falklandinseln ist nach ihm benannt.

Literatur
 Lucien Bély: Les Relations internationales en Europe (XVIIe-|XVIIIe. éditions PUF, 1992.
 Johann Hartwig Ernst, Graf von Bernstorff: Correspondance entre le comte Johan Hartvig Ernst Bernstorff et le duc de Choiseul, 1758-1766. 1871.
 Louis Blart: Les Rapports de la France et de l'Espagne après le pacte de famille jusqu'à la fin du ministère du duc de Choiseul. Paris, Félix Alcan, 1915.
 Pierre Étienne Bourgeois de Boyne: Journal inédit 1765-1766 : Suivi du Mémoire remis par le duc de Choiseul au roi Louis XV (1765). Édition Honoré Champion, 2008.
 Alfred Bourguet: Études sur la politique étrangère de duc de Choiseul. réédition Broché 2009.
 Michel Antoine Louis XV(Fayard 1989);
 Alfred Bourguet: Le Duc de Choiseul et l'Alliance espagnole. Broché, 2011.
 Annie Brierre: Le Duc de Choiseul. La France sous Louis XV. Albatros, Paris, 1986.
 Pierre-Étienne Bourgeois de Boynes: Journal inédit 1765-1766, suivi du mémoire remis au Roi par le duc de Choiseul 1765, éd. de Marion F. Godfroy (Honoré Champion, Paris, 2008);
 Guy Chaussinand-Nogaret: Choiseul (1719–1785). Naissance de la gauche. Perrin, coll. « Histoire », Paris, 1998 ISBN 2-262-01278-4.
 Étienne François, duc de Choiseul  Recueil d'estampes gravées d'après les tableaux du cabinet de Monseigneur le duc de Choiseul:  (François Basan; Pre-1801 Imprint Collection (Library of Congress));
 Étienne François, duc de Choiseul, Lettre du Duc de Choiseul à Monsieur de Montmorin. 1791.
 Jean de Choiseul: Les Choiseul et l'histoire, éd. du Papyrus, 1988;
 André Corvisier: L'Armée française de la fin du XVIIe au ministère de Choiseul. Le soldat.Paris, Presses universitaires de France, 1964
 Laurence Cossé: La Femme du premier ministre, roman sur Louise-Honorine de Choiseul (éd. Gallimard, 1998);.
 Jacques Cuvillier et Daniel Roche: Famille et patrimoine de la haute noblesse française au XVIIIe: le cas des Phélypeaux, Gouffier, Choiseul [Broché] 2005);
 Eugene Theodore Daubigny: Choiseul et la France d'outre-mer après le traité de Paris. de Broché - 9 avril 2009.
 Jonathan R. Dull: La Guerre de Sept Ans: Histoire navale, politique et diplomatique. [Broché] 2009.
 François-Xavier de Feller: le duc de Choiseul. In: Dictionnaire historique; ou, Histoire abrégée des hommes qui se sont fait un nom. Liège, Riger, 1791. P116-117.
 J.-P. Ferrier: Le duc de Choiseul, Voltaire et la création de Versoix-la-Ville (1922 ,(21994));
 Charles Auguste Désiré Filon: L'Ambassade de Choiseul a Vienne en 1757 et 1758 d'après des documents inédits: mémoire lu à l'Académie des sciences morales et politiques dans les séances du 27 janvier et du 3 février 1872
 Frédéric II, roi de Prusse: Œuvres posthumes de, volume 6 (extraits), p. 113-127 books.google.2011);
 A. Gabeau: Le mobilier d'un château à la fin du XVIIIème siècle, Chanteloup et La galerie de tableaux du duc de Choiseul. réunions des Sociétés des Beaux-Arts des départements, 1898 et 1904.
 Charles Henri, baron de Greichen: Souvenirs. Imprimerie générale de Charles Lahure 2011.
 Alphonse Jobez: La France Sous Louis XV (1715-1774 : Madame de Pompadour de 1763 Au 15 avril 1764. Ministre Du Duc de Choiseul, de 1764 Au 24 décembre 1770. Madame Du B. Broché 2010.
 Jacques Levron: Choiseul. Un sceptique au pouvoir. Coll. Présence de l'Histoire, Paris, Librairie académique Perrin, 1976, 334 p.
 Gaston Maugras: La Duchesse de Choiseul et le patriarche de Ferney. Paris, Calmann-Lévy, 1889.
 Gaston Maugras: Le duc et la duchesse de Choiseul: leur vie intime, leurs amis et leur temps. Plon, 1904;
 Gaston Maugras: La disgrace du duc et de la duchesse de Choiseul, la vie à Chanteloup, le retour à Paris, la mort. Plon 1903.
 Arnaud de Maurepas, Antoine Boulant: Les Ministres et les ministères du siècle des Lumières (1715–1789). Étude et dictionnaire. 9" Volume 19. Kindle édition 2011.
 Véronique Moreau Chanteloup: un moment de grâce du duc de Choiseul. Paris: Somogy, 2007.
 Gabriel Monod Avant-propos. In: Alfred Bourguet Études sur la politique étrangère de duc de Choiseul(réédition Broché 2009);
 Lucien Mouillard: Les Régiments sous Louis XV. Lucien Mouillard Paris, J. Dumaine, Libraire-Éditeur, 1882 Format: 120 pages,.
 Jehanne d'Orliac: La duchesse de Choiseul. Tours, Arrault & cie, 1947.
 Duc de Praslin: Les Choiseul et l'histoire. Éditions du Papyrus, 1988.
 Gilles Poissonier: Histoire des Choiseul. Le Pythagore éditions, 1996.
 Célestin Port: Le train de maison du duc de Choiseul. 1763-1766. 1900.
 Roger H. Soltau: The Duke De Choiseul. Broché - 4 juin 2009.
 Nasser Suleiman Gabryel Le duc de Choiseul et la politique méditerranéenne 1758-1770 un essai de comparatisme. Bulletin du GEMESS Groupement euro-méditerranéen de recherche en sciences sociales 1,8 Casablanca 1997.
 Nasser Suleiman Gabryel: le récit national de Jules Michelet: le duc de Choiseul et « la pensée fixe »: archéologie du discours sur la pensée unique. Revue de l'institut euro-méditerranéen des sciences sociales 10-21 Casablanca 2000.
 Charles Maurice de Talleyrand-Périgord, prince de Bénévent: Mémoires du prince de Talleyrand, publiés avec une préface et des notes par le duc de Broglie (1891);
 Pierre Thibaudault: Échec de la démesure en Guyane: autour de l'expédition de Kourou: une tentative européenne de réforme des conceptions coloniales sous Choiseul. Saint-Maixent-l'École 1995.
 Henri Verdier: Le Duc de Choiseul / Politique et Plaisirs(Broché - 6 août 1969);
 Willy Marcus: Der Jansenistenstreit und seine Beilegung durch Choiseul. Broché, 2010.
 Willy Marcus: Choiseul und Voltaire. 1910.

Einzelnachweise

Kriegsminister (Frankreich)
Außenminister (Frankreich)
Minister (Ancien Régime)
Pair von Frankreich (Ancien Régime)
Markgraf (Frankreich)
Ritter des Ordens vom Heiligen Geist
Ritter des Ordens vom Goldenen Vlies
Colonel général
Person im Österreichischen Erbfolgekrieg
Etiennefrancois
Franzose
Geboren 1719
Gestorben 1785
Mann


text:
Ireland, Portarlington, Huguenot Society of London Parish Registers 1694-1816 Special Offer
Ireland, Portarlington, Huguenot Society of London Parish Registers 1694-1816
Birth, marriage and death registers of the French refugee church of Portarlington, Ireland. The church served a community of French immigrants known as the Huguenots, who were persecuted in France for following the Reform Church. (Entries are written in French). * Digitally enhanced images of the original text * Searchable text * Bookmarked by major headings * Fully printable * Contains over 190 pages... More Info
London, Clandestine Marriages in the Chapel and Rules of the Fleet Prison 1680-1754 Volumes 1-3 Special Offer
London, Clandestine Marriages in the Chapel and Rules of the Fleet Prison 1680-1754 Volumes 1-3
Transcripts of the registers of clandestine marriages which took place in and around the Fleet Prison in London between 1678 and 1754. Mark Herber describes the fascinating history of these marriages and presents transcripts of eight of the registers and four of the notebooks, which include marriages (and some baptisms) from 1678-1679, 1707-1709, 1716-1719, 1726-1730, 1734 and 1736-1754. He also describes the evidence for Fleet marriages contained in settlement examinations of the poor. Most... More Info
London, Temple Church Parish Records 1628-1853 Special Offer
London, Temple Church Parish Records 1628-1853
This CD contains Parish Records for Temple Church, London. Burials - 1628-1853 *Digitally enhanced images of the original text *Searchable text *Bookmarked by major headings *Fully printable... More Info


TACLOBAN CITY, Leyte, Jan 18 (PIA) -– The Department of Agriculture in Eastern Visayas started the year by convening its division chiefs and operations heads to formulate their respective operational work and financial plan.
The overall directions of the DA's four banner programs namely, rice, corn, high value crops, and livestock, and the Food Staples Sufficiency Program (FSSP) were presented at the start of the Operational Work and Financial Planning Workshop.
This was followed by the workshop proper and the presentation of outputs, Francis Rosaroso, DA-8 information officer said.
"It is good that we're starting off the New Year with this kind of activity [OWFP]. For me, this is very necessary because oftentimes, with the various interventions that we want to put in place, we tend to miss some important activities and before we know it, the year is almost over and it's already too late to carry it out," says Dr. Arsenio A. Fortin, DA-8's regional technical director for Operations and Extension.
Rufino Ayaso III, operations division chief, underscored the need to decentralize the Agency operations and to come up with a plan that is consistent with what the agency wants to happen in the end.
Thus, a master plan for the region that is attuned with the DA's overall direction is a must, Ayaso said.
Ayaso highlighted the FSSP which covers the country's staple commodities such as rice, white corn, root crops, and plantain.
Under the said program, the DA is mandated to help attain self sufficiency for these crops by way of raising farmers' competitiveness, and productivity, enhancing economic incentives and enabling mechanisms, managing food staples consumption, and strengthening program management.
"This activity is actually our initial step to strengthen our program management," he added.
In the meantime, WFP operationalization was defined by Raul T. Repulda, planning division chief , as a process of specifying and unifying all the strategies and activities vis-à-vis the budget allocation to implement the work and financial plan.


of Business Continuity Planners, Disaster Recovery Technologists, Solutions Providers, Researchers… anyone who uses technology in the process of helping people, communities and businesses plan resiliency, respond to and recover from disaster.
We are working to unify the base of technology users in the industry to identify the challenges with current technology, raise awareness to and drive solutions to our most critical shared technology challenges.
We believe through working together as an industry on our greatest shared technology challenges, we will be able to solve those challenges that the individual effort cannot solve alone.


Probably because the new P&G Olympics Ad for Sochi contains one very poignant lesson and a little thanks for every mom out there. The Procter & Gamble ad includes footage of moms and children that almost every mom can identify with… even if they haven't raised an Olympic athlete!
With over 11 million views, the P&G Olympics Ad qualifies as having gone viral. The fact that it's so popular is a testament to the chord it strikes in the hearts of moms and the children who've been raised by them. Thank you P&G.


text:
RDJ Talks to Animals in the New Dolittle Trailer
A Dazzling Adaptation
by Victor Stiff | October 13, 2019, 4:36 pm
Robert Downey Jr. is back on the scene to give moviegoers the Doctor Dolittle movie they didn't know they wanted. His new film, simply titled Dolittle, arrives in January and offers a visually dazzling reimagining of the classic literature character.
Dolittle trailer:
In case you're unfamiliar with Doctor Doolittle, he's the central character in a series of children's books that began in the 1920s. The stories take place in Victorian England and are about a doctor who can speak to animals. The character has persisted in pop culture, popping up in his own movie and TV series during the '60s and '70s. Eddie Murphy took on the mantle with his 1998 film, which received several theatrical and straight to video sequels.
Were audiences begging for a Dr. Dolittle reboot? Definitely not. But after his work with Marvel, RDJ has as much pop culture goodwill as any star walking the planet right now. (Especially after Gemini Man's poor performance this weekend knocked Will Smith down a couple of rungs.)
While this colourful trailer is certainly whimsical, it also feels kind of heavy too. I'm down for any movie where Antonio Banderas shows up wearing guy-liner, but I'm not so sure I want to see a scared gorilla cowering on a battleship. My dog just died, and I'm not ready for this talking animal movie to wallop me with "the feels." And based on this trailer, it's a safe bet this Dolittle aims to tug at your heartstrings.
Dolittle synopsis:
After losing his wife seven years earlier, the eccentric Dr. John Dolittle (Downey), famed doctor and veterinarian of Queen Victoria's England, hermits himself away behind the high walls of Dolittle Manor with only his menagerie of exotic animals for company.
But when the young queen (Jessie Buckley, Wild Rose) falls gravely ill, a reluctant Dolittle is forced to set sail on an epic adventure to a mythical island in search of a cure, regaining his wit and courage as he crosses old adversaries and discovers wondrous creatures.
The doctor is joined on his quest by a young, self-appointed apprentice (Dunkirk's Harry Collett) and a raucous coterie of animal friends, including an anxious gorilla (Oscar® winner Rami Malek), an enthusiastic but bird-brained duck (Oscar® winner Octavia Spencer), a bickering duo of a cynical ostrich (The Big Sick*'s Kumail Nanjiani) and an upbeat polar bear (John Cena, *Bumblebee) and a headstrong parrot (Oscar® winner Emma Thompson), who serves as Dolittle's most trusted advisor and confidante.
Dolittle arrives in theatres on January 17, 2020.
adaptation • Animals • Doctor Dolittle • Dolittle • Dr. Dolittle • family • film • Movie • news • Robert Downey Jr. • Stephen Gaghan • Trailer • Universal Pictures
Onward Trailer
comPOSERS Episode 29


text:
Q: Longer screen timeout for a specific Android activity? There are similar posts to this, but none are quite what I'm looking for. I'd like to change the screen timeout for a specific activity. I want to avoid using WakeLock if possible and I don't want to change the device's system-wide timeout delay setting.
Is there any way of doing this short of manually tracking user activity and using a wake lock?
=----=
Clarification: for example, how can you set the screen inactivity timeout (the time it takes for the screen to turn off after there is no input) to be some value like 3 minutes?
It is possible to do this by setting the System settings, but this affects the entire device (even after the app is closed), so this is not a good solution.
Thanks!

A: First, a note on changing the System Settings to increase timeout for your activity. Intuitively I don't like this approach since you're making a system-wide change just to accomodate your application. Moreover, when changing System Settings in this manner it's hard to guarantee that you will be able to set it back(i.e. you forget to set it back / your app crashes before you set it).
A quick summary of the solution:

*

*Use the Activity.onUserInteraction() method on Activity that is called for key, touch, trackball events.

*When there is User interaction call View.setKeepScreenOn() on the root view of your activity(or some view within your activity that is persistent).

*Use a simple Handler to post delayed messages to disable keeping the screen on after a certain amount of time.

Now, onto the code:
private ViewGroup mActivityTopLevelView;

private static final int DISABLE_KEEP_SCREEN_ON = 0;
private static final int SCREEN_ON_TIME_MS = 1000*60*3;

@Override
protected void onResume() {
    super.onResume();
    Log.d(TAG, "onResume");
    setScreenOn(true);
}

@Override
protected void onPause() {
    super.onPause();
    Log.d(TAG, "onPause");
    setScreenOn(false);
}

@Override
public void onUserInteraction() {

    super.onUserInteraction();
    Log.d(TAG, "onUserInteraction");
    setScreenOn(true);
}

private void setScreenOn(boolean enabled)
{
    // Remove any previous delayed messages
    Log.d(TAG, "setScreenOn to " + enabled);
    mHandler.removeMessages(DISABLE_KEEP_SCREEN_ON);

    if( enabled )
    {
        // Send a new delayed message to disable the screen on
        // NOTE: After we call setKeepScreenOn(false) the screen will still stay on for
        // the system SCREEN_OFF_TIMEOUT. Thus, we subtract it out from our desired time.
        int systemScreenTimeout = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 0);
        int totalDelay = SCREEN_ON_TIME_MS - systemScreenTimeout;
        if( totalDelay > 0 )
        {
            mActivityTopLevelView.setKeepScreenOn(true);
            Log.d(TAG, "Send delayed msg DISABLE_KEEP_SCREEN_ON with delay " + totalDelay);
            mHandler.sendEmptyMessageDelayed(DISABLE_KEEP_SCREEN_ON, totalDelay);
        }
    }
    else
    {
        mActivityTopLevelView.setKeepScreenOn(false);
    }
}

private Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        if(msg.what == DISABLE_KEEP_SCREEN_ON)
        {
            setScreenOn(false);
        }
    }
};

Tested on Android 5.1.0.

A: From what I read, it looks like you are trying to dismiss the activity after some amount of time. (Please correct me if I misinterpreted your question.) You could try using a timer to dismiss the activity after a certain amount of time. For example:
new Timer().schedule(task, timeout);

Where task refers to the method that needs to be exectuted (A function dismissing your activity) and timeout represent s the delay before the task is executed.

A: you have 2 requirements from what i  understand in your question,
1)change a particular activity screen timeout.
2)if user is not interacting for long lock the screen.
It can be done like this,
for changing screen timeout, since you didnt want to use any WAKE LOCK try this
public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  }

you can read about it here https://developer.android.com/training/scheduling/wakelock.html
For the second part
As soon as the app starts start a timer in the shared preference of the app and if the timer count is crosses the required time limit then reset flag so that screen gets locked

A: Just change the setting temporarily while your app is foregrounded:
String originalTimeout;
int temporaryTimeout = 1 * 60 * 1000;
@Override
protected void onResume() {
    super.onResume();

    originalTimeout = Settings.System.getString(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT);
    Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, temporaryTimeout);
}

@Override
protected void onPause() {
    super.onPause();

    Settings.System.putString(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, originalTimeout);
}

This requires the android.permission.WRITE_SETTINGS permission.


六月一战SAT,求各位大仙帮帮解决这几道题,THANK U! - SAT考试综合版 - 满分网 - Powered by Discuz!
满分网»论坛 › 留学考试 › SAT考试综合版 › 六月一战SAT,求各位大仙帮帮解决这几道题,THANK U!
1. For all values of Y,let Y☆be defined by Y☆=y平方-1,what is the value of (Y☆)☆?
2.fifty percent of the songs played on a certain radio station are 3 min long ,30% are 5 min long,and 20 percent are 2 min long .what is the average number of minutes per song played on?
The painter launched the evanescence of beauty,even though she seemed in several of her works to have ? it as it paused and so ? it for posterity.
The speaker---frequntly,but these tangents were the most entertaining parts of the presentation.
No---the case exists:in reaching a decision ,the court is bound to break new legal ground.
Max is regared as a ---of modern jazz drumming because he was one of the first artists to ---the melodic,rather than merely rhythmic possibilities of his instrument.
Quincy took Dan to Derek's home for a visit,never imagining that five years would pass before seeing Derek again.为什吗SEEING是错的呢?before不是介词么?
GMT+8, 2017-1-20 13:02 , Processed in 0.112100 second(s), 22 queries , Eaccelerator On.


text:
All UU students (17) Apply All UU students filter
Veterinary Medicine (2) Apply Veterinary Medicine filter
Law, Economics and Governance (11) Apply Law, Economics and Governance filter
Social and Behavioural Sciences (7) Apply Social and Behavioural Sciences filter
Australia and New Zealand (19)
Australia (16) Apply Australia filter
New Zealand (3) Apply New Zealand filter
Croatia (2) Apply Croatia filter
Norway (14) Apply Norway filter
Aruba (1) Apply Aruba filter
Argentina Universidad de SanAndrés (NEW) UCU destination, bachelor
Aruba University of Aruba - new partner since 2019 Governance
Bachelor/Master
Australia Australian National University (Canberra) Universitywide, Bachelor and Master
Australia Edith Cowan University (Perth) (AEN) Universitywide, Bachelor and Master
Australia Flinders University (Adelaide) Humanities
Australia Griffith University (Brisbane) (AEN) Universitywide, Bachelor and Master
Australia LaTrobe University (Melbourne) Humanities and Arts
Australia Macquarie University (Sydney) Universitywide, Bachelor and Master
Australia Monash University (Melbourne) Universitywide, Bachelor and Master
Australia Royal Melbourne Institute of Technology (RMIT) All study areas open, Bachelor and Master
Australia University of New South Wales (Sydney) Law/Economics/Governance
Australia University of New South Wales (Sydney) Social sciences
Australia University of Queensland (Brisbane) Universitywide, Bachelor and Master
Australia University of Sydney Universitywide, Bachelor and Master
Australia University of Tasmania (Hobart) (AEN) Universitywide, Bachelor and Master
Australia University of Western Australia (Perth) Universitywide, Bachelor and Master
Australia University of Wollongong (AEN) Universitywide, Bachelor and Master
Australia Western Sydney University (AEN) Universitywide, Bachelor and Master
Chile Universidad Diego Portales (Santiago de Chile) Law
Denmark Aarhus University Mathematics and Physics, Bachelor and Master
Denmark Aarhus University Universitywide, Bachelor and Master
Denmark Aarhus University U.S.E.
Denmark Aarhus University Humanities
Denmark Copenhagen Business School U.S.E.
Denmark Roskilde University Human Geography and Spatial Planning, Bachelor and Master
Denmark Roskilde University Communication, Cultural Encounters
Denmark University of Copenhagen Veterinary Medicine, Bachelor and Master
Denmark University of Copenhagen Sociology
Denmark University of Copenhagen Bachelor and Master Computing Sciences, Chemistry, Pharmacy and Physics
Denmark University of Copenhagen Law
Ireland National University of Ireland, Galway Humanities and Arts, Film, Media
Ireland Trinity College (Dublin) Human Geography and Spatial Planning, Bachelor
Ireland Trinity College Dublin, The University of Dublin Foreign Languages (Irish and Celtic), History
Ireland University College Cork Bachelor and master students Biology
Ireland University College Cork Humanities and Arts
Ireland University College Cork Universitywide, Bachelor and Master
Ireland University College Dublin Literature, Humanities
Bachelor and Master (Priority RMA Comparative literature)
Ireland University College Dublin U.S.E.
Ireland University College Dublin Governance
Ireland University College Dublin Law
New Zealand The University of Auckland Universitywide, Bachelor and Master
New Zealand The University of Auckland Social sciences
New Zealand The University of Auckland Law
Peru Pontificia Universidad Católica del Perú (Lima) UCU destination
Peru Universidad del Pacifico (Lima) U.S.E.


text:
Home / Networking / Google Cloud rolls out platform for network visibility and management
Google Cloud rolls out platform for network visibility and management
admin November 17, 2019	Networking Leave a comment 38 Views
As organizations adopt multi-cloud and hybrid cloud strategies, networks are becoming more complex. Enterprise network managing teams typically rely on multiple tools to monitor and troubleshoot their networks, and they spend a substantial amount of time managing problems.
To address this challenge, Google Cloud on Wednesday is announcing the Network Intelligence Center, a platform that aims to unify network monitoring, verification and optimization, all in a single console that natively resides in the cloud.
What a hybrid cloud is in the 'multi-cloud era,' and why you may already have one
Now that the services used by an enterprise and provided to its customers may be hosted on servers in the public cloud or on-premises, maybe "hybrid cloud" isn't an architecture any more. While that may the case, that's not stopping some in the digital transformation business from proclaiming it a way of work unto itself.
The Network Intelligence Center is launching with an initial set of modules offering network topology, connectivity testing, a performance dashboard and firewall metrics and insights. Google plans to roll out several more modules. Ultimately, the plan is to offer comprehensive network monitoring across public clouds and on-premise data centers.
"In the fullness of time, this becomes the primary vehicle for any kind of network monitoring, verification and optimization," Shailesh Shukla, VP Product Product Management fpr GCP Networking, told ZDNet.
While the move to the cloud has made networking more complicated, it's also made continuous network operations more imperative, Shukla noted.
As organizations shift from monolithic applications to a microservice architecture, "it's really important for all of these microservices to actually talk to each other in a highly reliable, fast, secure fashion," he said. "Networking has once again become a critical enabler of any enterprise's infrastructure and applications."
The new platform's Network Topology module will give Google Cloud customers visibility into their global GCP deployment and its interaction with the public internet, including an organization-wide view of the topology. It offers network performance metrics for various nodes and edges, enabling metrics-driven troubleshooting, policy checks, and architecture and capacity optimization. For instance, an organization could visualize how its users are being served worldwide and whether they are being served optimally out of their nearest geographical regions.
Google is the first public cloud provider to offer visibility into a global topology, rather than just a particular region, Shukla said.
With the platform's Connectivity Test module, Google also says it is the first cloud provider to offer connectivity tests based on formal verification techniques. Customers can use it to proactively verify the impact of their configuration changes, preventing outages. Most network outages and performance issues result from misconfiguration, Google notes. The connectivity tests can also help ensure network security and compliance.
Both the Network Topology and Connectivity Test modules are available in beta.
The Network Intelligence Center also includes a Performance Dashboard in alpha, which offers real-time information about things like packet loss and latency on a per-project basis. Google says it's the first to offer this on a per-project basis, which can help network managers monitor the network performance for different projects with different networking demands.
The platform also includes Firewall Metrics and Insights in alpha, helping customers understand things like which firewall rules may not be used anymore or which rules conflict with one another.
Google plans to continually enhance the Network Intelligence Center, applying more machine learning and AI, Shukla said.
Google is currently working with a number of companies that offer network monitoring tools for on-premise deployments and will essentially, through APIs, work them into the Network Intelligence Center. Shukla declined to name any specific partners but said this capability is a key part of the platform. In the future, the platform will offer multi-cloud capabilities.
"Our strategy and vision in the marketplace is all about enabling hybrid and multi-cloud," he said, "so that enterprises have… choice and flexibility and are able to operate in an open environment so they can create an application once and deploy it anywhere."
Previous Curve, the 'over-the-top' banking platform, adds support for Samsung Pay
Next Army photogrammetry technique makes 3D aerial maps in minutes
More Alexa 'blueprints' arrive, offering customizable voice apps for families and roommates
You can now pre-order a brand new, working Street Fighter II SNES cartridge
Microsoft's new Mixer Create app lets you live stream games from your phone
Does your iPhone need a new battery? Find out with iOS 11.3


Don't worry, this isn't going to become the story poem blog. I'm on a roll, though, so here's the second in my series. Story poems don't have to be only about familiar folktales. For me, this was a natural jumping-off point.
For marriage and children or none.
Jug of mead by the recliner.
Comments? Which familiar stories would you like to see a poem about?


Telescope mirrors from Alluna Optics can be found in many high-quality telescopes worldwide. Our mirrors are particularly appreciated by astrophotographers and visual observers for their high contrast and sharp image. Amateur astronomers and manufacturers of high quality telescope systems use our mirrors to be sure they obtain perfect optics for their own telescope projects.
In our Gallery you can see the results our customers have achieved with our optics.
Another area of our production includes the manufacturing of optical mirrors and entire systems from 400 m up to 810 mm diameter for industry, research and technology.
At the end of this page you will find a list of prices for parabolic mirrors in standard sizes. If interested, please contact us.
Please note that we can also manufacture other sizes, other apertures or mirrors made from Zerodur glass ceramic. All prices are inclusive of aluminum coating and stable packaging.


text:
Tityrus may refer to:

 The tityrus, an ovine beast in Medieval heraldry and Greek legend
 Tityrus, the father of the Amazon Helene in Greek mythology
 Tityrus, the shepherd in Virgil's Eclogues, or Virgil himself
 Tityrus, a pseudonym used by Edmund Spenser for Geoffrey Chaucer in The Shepheardes Calender
 Tityrus the pseudonym of J.A.H. Catton, editor of the Athletic News
 An alternative name for the Musimon, used in European heraldry to symbolize one in authority who leads with strength


text:
\documentclass{article}
\usepackage{amsmath}

\newcommand\proto[1]{$\langle\mbox{#1}\rangle$}

\begin{document}
\bibliographystyle{plain}
\title{CRISP: The CompRessed Incremental SAT Protocol}
\author{Scott Cotton, IRI France, SAS}
\begin{abstract}
We present CRISP, an extensible efficient wire protocol for incremental SAT solving.
The protocol allows applications to communicate with a remote or local server over
tcp or unix domain sockets.  It efficiently transfers data andminimizes unnecessary round
trips.  It is simple, and easily extensible to domains such as optimisation, quantifiers,
proofs, etc.  An open source reference implementation is available and discussion for
future versions and extensions takes place in public.

\end{abstract}
\maketitle
\section{Introduction}
SAT solvers are traditionally linked against applications, and very often the
application context yields a high ratio of very easy problems to medium or
hard problems.  "Big gun" SAT solvers are often NOT used in applications because
of the code complexity and/or hardware requirements.  Additionally, SAT solvers
are usually written in C or C++, whereas higher level application contexts may involve
a software stack with many languages and components.  The inter-language bindings
create integration and computational overhead.  To address these issues and
at once provide a useful piece of infrastructure for cloud and distributed deployment,
we designed CRISP, the CompRessed Incremental SAT Protocol.

The base protocol can be seen as a wire protocl client-server version of the
standard incremental SAT solving interface originally defined in
\cite{DBLP:journals/entcs/EenS03}.

The rest of this paper is organised as follows.  Section \ref{section:protocol}
details the wire protocol.  Section \ref{section:ext} defines the generic
extension mechanism and two useful extensions (optimisation and assumption
based multi-plexing). Section \ref{section:exp} gives some experimental data.
Section \ref{section:conc} concludes.

\section{The Protocol}
\label{section:protocol}

\subsection{Wire Data}

Every piece of data communicated between the client and the server takes the
logical form of a uint32, an unsigned 32 bit value.

This space houses literals and communication instructions/directives between
the client and the server.  These instructions/directives are called
protocol points in the following.

We only use $17$ protocol points, but to enable extensions, we
reserve 256 integers for protocol points, at the high end of the range
representable by uint32. The rest of the space is used to house variables
and literals, coded in the tradition of SAT solvers (see Adding below).

\subsection{Flow Overview}
\label{section:flow}

Here we present an overview of the interactions in CRISP.

\begin{enumerate}
\item Client negotiates connection with server
\item Client then requests (\proto{add} or \proto{assume}) as many times as it likes.
 The Server does not respond to these requests.
 \item Client then requests \proto{solve}.  This enters a loop between the client and the server on the same connection as
 follows:
	 \begin{enumerate}
		 \item Client: \proto{solve}
	 \item Server: \proto{unknown}$|$\proto{sat}$|$\proto{unsat}$|$\proto{end}
	 \item Client: \proto{continue}$|$\proto{end}
	 \end{enumerate}
 \item Client sends (\proto{model} or \proto{modelfor} or \proto{failed} or \proto{failedfor}) as many times as it likes.
 Each time it sends one of these operations, the server responds with the requested data.
 \item Optionally, the client may send \proto{reset}.  In this case, the server forgets added clauses and
	 the flow goes to item $2$ above.
 \item Client sends \proto{quit}, both ends disconnect
\end{enumerate}

In the above, step 3,

\begin{center}
 (b,c) repeats until server sends \proto{sat}, \proto{unsat}, or \proto{end}
\end{center}

Thus step 3 can be represented by the regular expresion below, where vertical alignment
represents concatenation.
\begin{center}
\begin{tabular}{|l|}
\hline \\
client:\proto{solve} \\
(server:\proto{unknown} (client:\proto{continue}$|$client:\proto{end})$^\star$ \\
(server:\proto{end}$|$\proto{sat}$|$\proto{unsat})\\
\hline
\end{tabular}
\end{center}

The meaning of the server sending \proto{unknown} is that it doesn't know the
answer and is willing and able to make more progress solving the problem.
The maning of the server initiating \proto{end} (in response to client \proto{solve}
or client \proto{continue}) that it unable or unwilling to
make more progress on solving the problem and does not know the answer.

In this loop, the client does not need to wait between reads and writes,
since presumably the server is doing the solving.  On the other hand, the
server needs not try to respond so fast as to eat up unnecessary resources
So the server may do this at an appropriate frequency.

If we call the regular expression above S, the allowable overall (error-free)
flow interactions can be represented by the regular expression

\[1  ((2^{\star}  S  4^{\star})^{\star} 5?)^{\star} 6\]

There are also error conditions, corresponding to further constraints on the
allowable flows;  these simply abort the sequence and cause a disconnect; these
are not represented in this overview but rather are detailed below.

\subsection{Varuint Encoding}
The wire format then uses var-uint encoding (a stream of bytes each of which
indicates whether it is the last with 1 bit and uses 7bits to encode the
non-zero LSBs of the value).  This is a standard variable width encoding which
compresses values which tend to be small.  This works as follows.

Let $u_i$  for $i$ in $0..31$ be the bits of an unsigned 32 bit int u.  The encoding
of $u$ is a slice of bytes $e= e_0 e_1 \ldots $.

\begin{center}
\begin{tabular}{l}
 $e_0\&127$ houses the $7$ most LSB of $u$: here denoted $u_{0..7}$\\
~~~~If $u \gg 7 = 0$, then the length of $e$ is $1$.\\
Otherwise $e_1\&127$ houses $u_{7..14}$.\\
~~~~If $u \gg 14 = 0$, then the length of $e$ is $2$.\\
Otherwise $e_2\&127$ houses $u_{14..21}$.\\
...\\
\end{tabular}
\end{center}

This continues for all $32$ bits.  Also, For every element $e_i$ of e except the last, $e_i\&128 \neq 0$.

The server may decode a stream of varuint32 data and then, for
each value $v$, test whether it is a command/code point by testing

\[v >= (2^{32}-1) - 255\]

if true, $v$ is a command, if false, $v$ is a literal.

\subsubsection{Rational}
We distinguish the special value '0' as a literal to
zero-terminate clauses and lists of assumptions or lists of failed literals.
This is conventional and only requires 1 byte in varuint format.  Commands
happen with much less frequency in the protocol when there is a potential
need to send lots of data fast (eg loading a big dimacs).  Commands are
large values and hence have larger varuint size.

\subsection{Protocol Points}

We reserve 256 code points for extensions to learning, optimisation, etc.
In this proposal we have only the following op codes

\begin{center}
	\begin{tabular}{|l|l|}
		\hline
		\proto{add} & $(2^{32}-1)$ \\
		\proto{assume} & $(2^{32}-1) - 1$\\
		\proto{solve} & $(2^{32}-1) - 2$\\
		\proto{continue} & $(2^{32}-1) - 3$\\
		\proto{end} & $(2^{32}-1) - 4$ \\
		\proto{error} & $(2^{32}-1) - 5$ \\
		\proto{failed} & $(2^{32}-1) - 6$\\
		\proto{failedfor} & $(2^{32}-1) - 7$\\
		\proto{model} & $(2^{32}-1) - 8$ \\
		\proto{modelfor} & $(2^{32}-1) - 9$ \\
		\proto{sat} & $(2^{32}-1) - 10$ \\
		\proto{unsat} & $(2^{32}-1) - 11$ \\
		\proto{unknown} & $(2^{32}-1) - 12$ \\
		\proto{quit} & $(2^{32}-1) - 13$\\
		\proto{reset} & $(2^{32}-1) - 14$\\
		\proto{key} & $(2^{32}-1) - 15$\\
		\proto{ext} & $(2^{32}-1) - 16$\\
		\hline
\end{tabular}
\end{center}

The remaining protocol points are for specific extensions.

\subsection{Variables and Literals}

Variables are Boolean (can be either true/false) and each variable is
associated with a uint32.  A "literal" in propositional logic is just a
variable or the logical negation of a variable.  CRISP uses standard
SAT-solver encoding of variables and literals.

If a variable is indicated by some uint32, say $x$, then a literal $m$ over
$x$ is

$$\begin{array}{ll}
	x \ll 1 &                \mbox{if }m\mbox{ is positive}\\
	(x \ll 1) | 1 &            \mbox{if }m\mbox{ is negative}\\
\end{array}$$

Since we have uint32 coding, and 256 coding points, the maximum variable
representable in the protocol is

 $$((2^{32}-1) - 256) \gg 1$$

or equivalently

 $$2147483519$$

 \subsection{Connection negotiation}

Upon connecting, the server replies with
\begin{enumerate}
	\item "CRISP" (as 5 uint32s coding the ASCII values of 'C', 'R', 'I', 'S', 'P');
	\item followed by a uint32 $v$ indicating the protocol version number which is comprised of a
major version and a minor version.  The major version is the upper 8 MSB
of $v$ and the minor protocol version is the 24 LSB of $v$.
\end{enumerate}

Some servers may want to protect access by requring a key.  If they do this,
then they can simply wait for the first op from the client.  If the first op
is not \proto{key}, then the server can disconnect the client.

Clients connecting to \proto{key}-passed servers can send the \proto{key} op
followed by the key length in terms of uint32 atoms (the key must be 4-byte
aligned).  Then the client sends the key.  After receiving the key, the server
could just disconnect if it doesn't accept the client.

\subsection{Adding}

Adding adds permanent constraints to the solver on the server side.
Each constraint is in the form of a clause, which is a disjunction of
literals.

When the client adds clauses, it sends the \proto{add} op followed by
a list of clauses, where each clause is a null-terminated list
of literals.  When it is done adding clauses, it sends a \proto{end}.

The server does not respond to \proto{add} or \proto{end} ops.

\subsection{Assuming}

When the client makes assumptions, it sends the \proto{assume} op followed by
a null terminated list of literals.  The server does not respond to this
op.

The server takes into account the assumptions temporarily, only for the next
call to solve.  Subsequent calls to solve after the next call are not
effected.

\subsection{Solving}

Solving is the only part of the protocol which involves several
round trips between the client and the server.

After the client sends \proto{solve}, it reads from the server in a blocking read
until the server sends a response.  The response is either \proto{sat}, \proto{unsat},
\proto{unknown}, or \proto{end}.

 If the response is \proto{unknown}, then the client must respond with either
 \proto{continue} or \proto{end}.  If the client sends \proto{continue},  the protocol enters
 the same state as if the client had just sent \proto{solve}.  If the client sends
 \proto{end}, the protocol exits the \proto{solve} state; the client can add more clauses
 or make more assumptions and try to solve again (or quit).

 If the server response is \proto{sat},\proto{unsat}, or \proto{end} then client must not respond
 with \proto{continue} or \proto{end}.  Instead, the client may optionally request models
 if the response was \proto{sat}, or optionally request failed assumptions if the
 response was \proto{unsat}.  In any event, the client may continue to \proto{add} or
 \proto{assume} or may \proto{quit}.

\subsection{Models}

Models are valuations of variables in a problem which satisfy the permanent
constraints and assumptions in the previous \proto{solve} interaction.  CRISP
supports 2 mechanisms for models: partial and complete models, corresponding
respectively to the \proto{modelfor} and \proto{model} operators.

The \proto{model} and \proto{modelfor} operators can only be sent if the previous \proto{solve} operator
ended with a \proto{sat} operator from the server and no \proto{add} or \proto{assume} has taken place since.
Otherwise, the server sends \proto{error} and disconnectes.

Complete models are obtained using the \proto{model} operator.  The client
sends \proto{model} and the server responds with a truth value for every variable,
in the order of variable index/id 1,2,3,.... up until the maximum
variable used in any added clause or assumption.

The encoding of the truth values is the same for partial and complete models,
and is described below.

Partial models are obtained by using the \proto{modelfor} operator.  The
client sends \proto{modelfor} followed by a null terminated list of literals.
The server responds with the truth value for each of these literals in
the same order specified specified by the client.

In both \proto{model} and \proto{modelfor}, the list of truth values is encoded by the
server as follows.  First, the server sends a uint32 indicating how many
uint32s are to be sent subsequently to communicate the model.  Then:

Let $N$ be the length of the list, and let let $M$ be $\lceil{N/32}\rceil$.
 Then $M/32$ uint32 values are sent by the server.  Let $u_i$ be the $i$'th such value.
 The truth value for element $j$ of the list is

 $$u_{j/32} \& (1 \ll j\bmod 32) \neq 0$$

Thus models are communicated in a standard compressed bitvector representation
with $32$ bit word size.

\subsection{Failed Assumptions}
Failed assumptions are a subset of the assumptions from the last \proto{solve}
sequence which are sufficient to render the problem unsat.  Like the \proto{model}
and \proto{modelfor} operators, there are 2 failed operators, \proto{failed} and
\proto{failedfor}.

\proto{failed} retrieves a sufficient subset of all previously
assumed literals to render the last problem posed to \proto{solve} unsat.

\proto{failedfor} specifies a list of assumptions which are of interest to the
client.  The server responds with the maximal subset of this list which
intersects what would be returned by \proto{failed}.

Thus, when the client sends \proto{failedfor} it follows this operator with
a null terminated list of literals. But when the client sends \proto{failed}
it immediately waits the response from the server.

In both cases, the server replies with a null terminated list of literals.
If the server replies to \proto{failedfor}, the list of literals in the response
from the server must respect the order of the list provided by the client
in \proto{failedfor}.

\subsection{Error Conditions}

Errors are always sent from the server to the client.  Each \proto{error} op
is followed by a single uint32 value, which encodes more information
about the error.

Anytime the server responds with an \proto{error}, the server subsequently
simply closes the connection.

The following are common errors:
\begin{enumerate}
	\item If the varuint encoding encodes a number outside the uint32 range
then the server responds with an error.  The error code is 1.

\item If the client has this error reading from the server, then it must disconnect.

\item If a client requests a model or partial model and the previous solve dis
not end with \proto{sat}, the server responds with an error.  The error code is 2.

\item If a client requests failed assumptions and the previous solve was not unsat, the
server responds with an error, the error code is 3.

\item If a client requests failed assumptions or model and an \proto{add} or an \proto{assume}
has taken place since the last \proto{solve}, the server responds with an error
whose code is 4.

\item If a client sends an unknown opcode, the server responds with an error
	whose code is 5.

\item If the client reads an unknown opcode, it must immediately disconnect.

\item If a protocol opcode is read when data is expected, we have error code 6.

\item Other generic server errors are called "internal server errors", and have
error code 7.
\end{enumerate}

\subsection{Reseting}
The \proto{reset} opcode causes the server to forget all added clauses and assumptions,
{\em i.e} to go to the state just after connection negotiation.  This is useful
in a wire protocol because the overhead of creating a connection is higher than
the overhead of creating/initializing an incremental SAT solver via API.

\section{Extensions}
\label{section:ext}
In this section, we mention several possible extensions to CRISP.  We have
not yet implemented these, but rather present them to show how easy it
is to adapt CRISP to different Boolean reasoning and optimisation tasks
and solving requirements.

\subsection{Extension negotiation}
The \proto{ext} opcode indicates a request from the client to find
available extensions on the server.  Each extension has
\begin{enumerate}
	\item A unique 16 bit identifier.
	\item A list of opcodes.
\end{enumerate}

Thus, in response to \proto{ext}, the server responds with a null terminated list
\[
	E = [(i_0, n_0), (i_1, n_1), \ldots]
\]
where each $(i,n)$ is placed into a uint32 ($i$ is the 16 MSB, $n$ is the 16 LSB).
Value $(i_j, n_j)$ indicates that extension with identifier $i_j$ has $n_j$ opcodes.

To map extension opcodes to server instances, the client then computes that opcode
$c$ (zero indexed) in extension at position $i$ in $E$ is
\[
	(2^{32}-1) - 255 + \Sigma_{j<i} n_j + c
\]

This allows different servers to have different sets of extensions all packed into
the $240$ extension opcode slots, and it allows clients to map such opcodes
\footnote{This mechanism does require that extensions have unique identifiers.  We recommend
filing an issue with the Gini project on github to request extension identifiers
and definitions.  Short of that, one could always just choose a random number for the
a new extension identifier to minimize the chances of collision.}.

\subsection{Optimisation}

There are many forms of Boolean optimisation, such as MaxSAT where the problem
is to find the maximal number of satisfiable clauses, possibly weighted.  Other
forms include pseuodo-Boolean optimisation, in which constraints and objectives
can express the number of literals in clauses which are true.  All of these
forms can be translated to each other, see for example
\cite{DBLP:journals/jar/LiffitonS08} or \cite{DBLP:journals/jsat/EenS06}.

In this extension, we present a tiny, minimalistic incremental Boolean
optimisation interface which can also be used to solve a wide variety of
Boolean optimisation forms provided the problems are coded accordingly.

This extension defines $5$ new opcodes, in the following order.

\begin{enumerate}
	\item \proto{addmax}.  This opcode adds a literal to the set of literals for which
		the solver searches for a maximal satisfying assignment.  It is used by
		the client anywhere where \proto{add} or \proto{assume} can be used.
		There is no response from the server.
	\item \proto{clearmax} This opcode clears the set of literals to maximize.
		It is used by the client anywhere \proto{add} or \proto{assume} can be used.
		There is no response from the server.
	\item \proto{nextlower} This opcode directs the solver to find the next
		lower bound on the number of maximisation literals which can be satisfied.
		It has semantics like \proto{solve} in that it enters a communication
		loop between the client and the server.  That loop behaves exactly as
		in \proto{solve}, except it replaces \proto{sat} with \proto{better} (see below).
	\item \proto{nextupper} This opcode directs the server to find the next
		upper bound on the number of maximisation literals which can be satisfied.
		Otherwise, it operates exactly like \proto{nextlower}.
	\item \proto{better}.  This opcode replaces \proto{sat} in a solver communication
		sequence for \proto{lowerbound} or \proto{upperbound}. It is sent from
		the server when a satisfying assignment increases the lower or upper bound
		in response to \proto{nextlower} or \proto{nextupper}. Unlike \proto{sat},
		It is followed by the respective bound, coded as another uint32.  Also
		unlike \proto{sat}, it does not undo the assumptions.
\end{enumerate}

\subsection{Assumption Multiplexing}
One interesting possibility which arises when interacting with a SAT problem is
partitioning and multiplexing single hard problem instances accross several
cores or machines.  In this section we present an extension which allows
partitioning problems with assumptions and asking the server to multiplex the
solving accross different sets of assumptions.

\subsubsection{Opcode \proto{mux}}
This extension introduces a new opcode called \proto{mux}, which is used by the
client and the server to multiplex exchanges on top of the base protocol.  In
principal, it can also be used for other extensions, though we do not detail
that here.

The \proto{mux} opcode is a sort of meta code in that it is (almost) always followed by
an identifier $i$ and another opcode $o$.  The identifier is used to identify which of several
multiplexed operations are involved in subsequent exchanges between the client
and the server.  The client uses \proto{mux} only for assumptions and solving.
For example, to request multiplexed solving under $x$ and $\neg x$, the
client might send

\begin{tabular}{l}
	\proto{mux} $1$ \proto{assume} $x$ $0$\\
	\proto{mux} $2$ \proto{assume} $\neg x$ $0$\\
	\proto{mux} $1$ \proto{solve}\\
	\ldots \\
	\proto{mux} $2$ \proto{solve}\\
\end{tabular}

After a send of \proto{mux} $n$ \proto{solve}, the client interacts with the
server for the solve sequence as usual ({\em i.e.} without \proto{mux}), with the following
exceptions.

\begin{enumerate}
	\item The server prefixes all immediate post-solve replies with \proto{mux} $n$
		for the appropriate $n$, this includes \proto{sat}, \proto{unsat}, \proto{unknown} and
		\proto{end}\footnote{In fact, it is not strictly necessary for the server to provide this
		information because the response sequence is a deterministic function of the client request
	sequence, but providing this information simplifies client implementations and provides
  the possibility of an additional sanity check}.

  \item The client must respond to \proto{mux} $n$ \proto{sat} with \proto{model}, \proto{modelfor}, or
		\proto{end}.  If the client responds with \proto{end}, the server must not reply.

	\item The client must respond to \proto{mux} $n$ \proto{unsat} with \proto{failed} \proto{failedfor} or
		\proto{end}.  If the client responds with \proto{end}, the server must not reply.

	\item The client may, in addition to sending \proto{continue} or \proto{end}
		as usual in response to a server supplied \proto{mux} $n$ \proto{unknown}, either
		\begin{enumerate}
			\item send a new \proto{mux} $m$ \proto{solve}
		for some $m$ which is not currently in a solve interaction but for which there
		are assumptions defined.  This tells the server to continue solve sequence $n$ and also
		multiplex a new solve sequence $m \neq n$.
	\item or, the client may send \proto{mux} $m$ \proto{assume} for some $m$ not in
		a solve sequence.  This tells the server to continue solve sequence $n$ and also
		to record a new set of assumptions.
\end{enumerate}
\end{enumerate}

In this way, the client may queue parallel solving piecewise to the server, by making
a request for $2$ solve steps in response to a \proto{unknown}.

\subsubsection{Example Trace}
To continue the example above, the following is a possible trace between the
client and the server exercising the various options above.

\begin{tabular}{|llll|}
	\hline
	N & {\bf who} & {\bf message} & {\bf queue (mux-id, step)}\\
	\hline
	1 & client & \proto{mux} $1$ \proto{assume} $x$ $0$ & $\emptyset$\\
	2 & client & \proto{mux} $2$ \proto{assume} $\neg x$ $0$ & $\emptyset$ \\
	3 & client & \proto{mux} $1$ \proto{solve} & $[(1,1)]$ \\
	4 & server & \proto{mux} $1$ \proto{unknown} & $\emptyset$ \\
	5 & client & \proto{continue} & $[(1,2)]$ \\
	6 & server & \proto{mux} $1$ \proto{unknown} & $\emptyset$ \\
	7 & client & \proto{mux} $2$ \proto{solve} & $[(2,1), (1,3)]$ \\
	8 & server & \proto{mux} $2$ \proto{unknown} & $[(1,3)]$ \\
	9 & client & \proto{mux} $3$ \proto{assume} $y$ $0$ & $[(1,3), (2,2)]$\\
	10 & server & \proto{mux} $1$ \proto{unknown} & $[(2,2)]$\\
	11 & client & \proto{mux} $3$ \proto{solve} & $[(2,2),(3,1),(1,4)]$\\
	12 & server & \proto{mux} $2$ \proto{sat} & $[(3,1),(1,4)]$\\
	13 & client & \proto{model}               & $[(3,1), (1,4)]$ \\
	14 & server & \ldots $\neg x$ \ldots  & $[(3,1), (1,4)]$\\
	15 & server & \proto{mux} $3$ \proto{unsat} & $[(1,4)]$ \\
	16 & client & \proto{end} & $[(1,4)]$\\
	17 & server & \proto{mux} $1$ \proto{unknown} & $\emptyset$\\
	18 & client & \proto{end} & $\emptyset$\\
	19 & server & \proto{mux} $1$ \proto{end} & $\emptyset$\\
	\hline
\end{tabular}

\subsubsection{Work Queue -- Order and Size}
With muxing, the server maintains a fine grained work queue which is ultimately
completely controlled by the client.  There is exactly one interaction in the protocol which
allows the client to request more than one response from the server, which is when the client
responds to \proto{mux} $m$ \proto{unknown} with \proto{mux} $n$ \proto{solve}.
Every time this happens, the server appends the next round of work for $m$ to the queue
followed by the first round of work for $n$.  The queue is a FIFO and whenever the server
has an outstanding work queue and is not expecting a response from the client, the server pops
the head of the queue and sends the result.

To keep track of when to expect responses from the server, the client simply
needs to keep a counter of the size of the work queue, which increments by $1$
on the initial send of \proto{mux} $n$ \proto{solve}, increments by $2$ every
time the client sends this in response to \proto{mux} $n$ \proto{unknown}, and
decrements by $1$ every time the client receives a muxed response from the
server.  For example, after line $14$ in the trace above, the client knows
that there are 2 elements in the work queue, so it waits to read from the server
before sending any new requests.  Similarly, the server knows that whenever the
work queue is non-empty and it sent a response for a model or failed literals,
the client will not make a request.

\subsubsection{Mux Queue bounds}
By convention, the client may send \proto{mux} $0$ to the server to query
the maximal size of the work queue.  The server responds with a single uint32.
This number may be useful for partitioning algorithms.

\subsubsection{Mux Summary}
In summary, in terms of the overall flow of the base protocol outline in
Section \ref{section:flow}, muxing preserves a similar flow and corresponding
constraints for each multiplexed solution (and extraction) interaction.
However, the client {\em must} respond to \proto{sat} and \proto{unsat} even it
is does not expect a model.  This is necessary so that after each step of the
protocol who reads and who writes to the connection is well defined and there
is only one reader.

\subsection{Clause Sharing}
A common approach to parallel sat solving is running independent solvers with
different configurations or orderings of data structures and then to have them
share learned clauses.  It would be beneficial to have an extension which
enabled this to work in a distributed fashion as well.  In fact, this has
already been implemented and evaluated with mpi (message passing interface).
However, mpi is meant for scientific cluster computing and each implementation
uses different message encodings.  A simple agreed upon protocol for clause
sharing would enable different solvers to interact in a wider variety of
computing environments.

Hence, we propose a crisp extension called clause sharing.  The extension
uses the \proto{add} encoding of clauses to publish and retrieve clauses.
We define 4 new protocol points for this extension.
\begin{enumerate}
	\item \proto{share} This protocol point is injected by the client
		immediately after she is done sending \proto{add}.  It is a directive
		to the server to share clauses with the client for the problem defined
		by the previous \proto{add}.  The server responds with \proto{ok} if
		it is willing to run a solver or communicate with another solver to share
		clauses.  Otherwise, the server responds with \proto{end}.
	\item \proto{putc} This protocol point is injected by the client
		during a solve loop, whenever the client may otherwise send
		\proto{continue}.  It is followed by a set of clauses encoded
		as in \proto{add} (ie ended with \proto{end}).  The server simply interprets this as an
		implicit \proto{continue} and may answer as in the core CRISP
		protocol

	\item \proto{getc}
		This protocol point is also injected by the client whenever she
		may otherwise send \proto{continue}.  The server responds with
		a set of clauses encoded as in add, ending with \proto{end}. The
		server may also respond with \proto{sat}, \proto{unsat}, or \proto{end}
		instead of with a set of clauses.
\end{enumerate}

In this case, the client may in fact be a solver.  The server may also be

\section{Experiments}
\label{section:exp}
We measured the sizes of varint encoding based compression compared to
dimacs format and gzip'd dimacs format.

\section{Conclusion}
\label{section:conc}
We have presented an efficient wire protocol for incremental sat solving which
can be used to relegate SAT solving in applications to an external server,
possibly with dedicated hardware.  The protocol is simple, compact, minimizes
round trips, provides compression, and is easily extensible to various domains.
From the client point of view, it can be used as a drop in replacement for incremental
sat applications.

From a solver developer point of view, the server side is completely isolated
from the calling application.  As a result, a solver developer can use
arbitrary hardware, programming language or style, and make arbitrary use of
operating system resources independent of the application.

Moreover, the protocol provides a simple, useful piece of infrastructure for
distributed solving, as any solvers which are integrated into a server (or can
serve the protocol themselves) can be used to solve sub problems of a hard
problem with assumptions. Moreover, the client-server paradigm makes this
composable: the server can again be a client to make use of other servers.

We would like to thank Daniel Leberre and Armin Biere for helpful discussion
during the development of CRISP.

\bibliography{crisp}
\end{document}

redpajama_set_name: RedPajamaGithub


I just love Halloween crafts. Halloween and Christmas are the two holidays I tend to go all out for. I just can't get enough of the cuteness!!!!
My daughter has a class Halloween party every year! Since Halloween is a favorite of mine to get crafty for, I thought it would be fun to make D.I.Y Mummy Water Bottles for the kids!
Take a water bottle and your gauze & wrap your water bottle up.
Take your scissors and cut the leftover gauze. Then tuck the end of your gauze into the gauze on your water bottle.
Now glue on those googly eyes with your glue stick.
Time to cut out a mouth using your black paper. Once you have cut one out, glue it onto your water bottle.
Ta-Da! You now have Mummy Water Bottles. They make the perfect beverage to serve at your Halloween Party!


The U.S. Department of Agriculture's (USDA) National Institute of Food and Agriculture (NIFA) has awarded research, education and extension grants to 24 institutions to reduce food-borne illnesses and deaths from microbial contamination.
The U.S. Department of Agriculture's (USDA) National Institute of Food and Agriculture (NIFA) has awarded research, education and extension grants to 24 institutions to reduce food-borne illnesses and deaths from microbial contamination.
"While the U.S. food supply is generally considered to be one of the safest in the world, approximately 48 million Americans become sick each year due to food-borne illnesses," said Catherine Woteki, USDA Chief Scientist and Under Secretary for Research, Education and Economics. "These grants support the development of a more complete understanding of the sources and implications of microbial contamination and will promote the adoption of new food safety strategies and technologies. The goal is to greatly improve the safety of our food supply and ultimately save lives."
A project in Iowa to examine the factors contributing to the appearance of staph bacteria (Staphylococcus aureus) on raw meat and study the relationship between meat contamination and human staph infections.
A project in Washington State to expand the commercial possibilities of microwave technologies for the control of harmful bacterial and viral pathogens in packaged foods, particularly ready-to-eat foods, deli meats, and seafoods.
A project in Florida to identify the specific Salmonella genes that allow the bacteria to attach to and persist on tomatoes.
A full list of awardees can be found online at: www.nifa.usda.gov/newsroom/news/2011news/food_safety_awards.html.
The grants are awarded through USDA's Agriculture and Food Research Initiative (AFRI) and administered through NIFA. AFRI food safety grants promote and enhance the scientific discipline of food safety, with an overall aim of protecting consumers from microbial, chemical, and physical hazards that may occur during all stages of the food chain, from production to consumption.
Through federal funding and leadership for research, education and extension programs, USDA's National Institute of Food and Agriculture focuses on investing in science and solving critical issues impacting people's daily lives and the nation's future. More information is available at: www.nifa.usda.gov.


I love it when the parents of the families I'm photographing are as relaxed as possible, and just allow their children to be themselves, in a fun playful way. Life with little kids is chaos, and often unpredictable. Photo sessions with little ones is the same, if not more so when the parents are anxious and worried about their children's behavior.
The ONLY thing I have found that reduces the tension and stress is if the children are allowed to have fun, and move around. This is why I love outdoor sessions so much. Children have room to roam and be free from constraints. They are willing to smile for a few if they can run and move for the other ones. If the experience is fun and joyful they will show you their genuine smiles, and isn't that what you want?


We stopped for a hamburger at the small village of Kahuku on the northern end of the island and while we were eating, I heard a tentative voice behind me say, "Mr. Ulmer? Is that you?" Imagine my surprise when I turned around to see Kyle's good friend, Alex Thommes, standing there, behind me!
It turns out that after graduating from the University of Florida in May with a degree in landscape architecture (we last saw Alex at Kyle's Classical Cocktails party in Gainesville in February), Alex moved to Oahu to work on a project being developed by a family friend from the Florida Keys: a rodeo arena that doubles as a solar power generator.
Kyle and Alex became good friends at SeaCamp on Big Pine Key years ago through their mutual friend, Reese, whose mother, Grace, runs the camp. They have another mutual friend from the Keys named Cove whose family moved to Oahu several years ago. Cove's dad, Duke, is a dynamic entrepreneur; he's the one that's developing the rodeo arena/solar power plant.
Alex offered to take us on a tour. The building sits on the top of a hill near Turtle Bay Resort. Duke and his wife love horses and rodeo, so it was a natural for them to envision a rodeo arena on the property they bought here in Oahu. I imagine that the wind generators owned by HECO (the Hawaiian power company) on the adjacent property might have given Duke the idea to add the solar panels to the roof; HECO would be a natural buyer and reseller of the electricity Duke could generate.
The arena building is huge – larger than a covered football field – with a commanding view of the North Shore. Alex, Cove and Duke have been constructing the roof, attaching the solar panels that you can see in the picture, below.
Duke keeps a pet guard-goat under the roof. The goat took an instant liking to Dale, and vice versa (that's Duke, next to Dale).
Alex took us up in the lift to see the solar panels on the roof (notice the goat, looking for Dale).
They're close to finishing the roof. Just a few (hundred) more panels to go!
We were surprised to learn that rodeo is a big sport on Oahu. I knew that ranching was an important industry on the Big Island (recall the Parker Ranch that we drove through on Saddle Road), but I didn't know that ranching had also spread through the other islands.
What a great travel log you both are keeping!! I loved hearing that Alex saw someone he knew so far from home!! It has happened to me many times, the farthest being Cairo, where I saw a friend from my very small state of Delaware on a street corner!! I have been bugging him to send pictures, so, finally I get some great ones, thanks to you guys running into him, or him into you!! This is such a great idea & I will continue to follow the remainder of your trip!! If you ever want to visit Stuart, I would love to have you!!