text:
Home /Wednesday briefing: Greensill lobbying row deepens
UncategorizedApril 14, 2021
Wednesday briefing: Greensill lobbying row deepens
Top story: Crothers role was approved by officials
Morning everyone. This is Martin Farrer with all today's top stories.
The scandal over Greensill Capital's links to the government has deepened after it emerged that a senior civil servant began working for the finance firm as an adviser while still serving in Whitehall – and that his role was approved the Cabinet Office. Following revelations about former prime minister David Cameron's lobbying on behalf of the failed company, Downing Street sources were said to be "deeply concerned" at the revelation that official approval was given for Bill Crothers to begin advising Greensill in September 2015 while still employed as the government's chief commercial officer. He left the Whitehall job two months later and went on to become a director of Greensill, gaining a shareholding potentially worth $8m (£5.8m). Crothers has denied any wrongdoing and said such outside roles were "not uncommon". Cameron, who was prime minister between 2010 and 2016, has also denied breaking any rules.
Labour is pushing for a wide-ranging parliamentary inquiry into Cameron's role on Greensill's board and his efforts to secure Covid crisis funding for the Australian-founded firm, which collapsed with huge debts last month. The opposition says the independent inquiry set up by the government under Nigel Boardman does not have a broad enough remit and is a coverup.
Covid caution – Boris Johnson looks set on collision course with many of his own backbenchers after acknowledging that easing lockdown will lead to more deaths as the population begins to mix more freely, and crediting the restrictions rather than the vaccination programme as the reason for Britain's current low Covid-19 fatality rates. The Covid Recovery Group of Tory MPs has pushed for more rapid easing on the back of the large number of vaccine doses already delivered, and will be alarmed at the prime minister's warning that the vaccine alone will not lead back to normality. Scientists have also dampened enthusiasm about the reopening of pubs and restaurants in England by warning that surge testing will not be enough to curb Covid variants from spreading. There's also a cautionary tale from India where, despite 108 million people being immunised, the easing of curbs has led to a deadly new wave. With the Johnson & Johnson vaccine delayed and countries such as Australia struggling with their rollouts, our health editor looks at how Britain's decision to source several different vaccines appears to have paid off.
Afghan withdrawal – Joe Biden is expected to announce later today that all remaining US troops in Afghainstan will be withdrawn before the 20th anniversary of the September 11 terror attacks later this year. There are around 2,500 US personnel in the country, along with 7,000 other foreign troops as part of a Nato coalition. British troops are included in the Nato forces and are also expected to be withdrawn before September.
Neighbours star Sharon Johal. Photograph: Sam Tabone/Getty Images for NGV
Neighbours dispute – A longstanding cast member of Neighbours has claimed she endured "direct, indirect and casual racism" on set in the latest such allegation to hit the long-running Australian soap. Sharon Johal, who plays Dipi Rebecchi, says she endured racial slurs and mockery but alleges no action was taken. Indigenous actor Shareena Clanton alleged last week that a cast member had to be removed from the set after repeatedly using racial slurs. The show's producer, Fremantle Asia Pacific, said it would conduct an independent review into the allegations.
Full time – The footballer Marcus Rashford, fresh from forcing the government into a u-turn over school meals, is teaming up with the Michelin-starred chef Tom Kerridge to launch a series of "how-to" films to inspire families to cook cheap, healthy and filling meals. Each recipe will cost between 25p and £1 and will include chicken stir fry, broccoli and cauliflower cheese, and fish finger sandwiches.
Royal duty – The Queen has returned to royal duties four days after the death of her husband, Prince Philip, as she presided over a ceremony at Windsor to mark the retirement of her household's most senior official. William Peel, the Lord Chamberlain, has overseen the arrangements for the prince's funeral on Saturday, but is quitting the role after 14 years. On the Pacific island of Tanna, villagers who revered Philip as one of their own believe his spirit will live on, possibly through Prince Charles.
Bunny bounty – The thieves who stole a giant rabbit from its enclosure in Worcestershire will most likely be trying to smuggle him out of the country in order to realise any value for the "collector's item". Robert Kenny, a professional pet detective, said Darius, who measures 121cm in length, was "still hot" and that borders should be closed to stop the animal being removed.
Today in Focus podcast
Boris Johnson has announced plans for a domestic Covid-status certificate. We look to Israel, where a similar scheme has been introduced, and discuss how it might work here.
Today in Focus
Will I need a Covid pass to go to the pub?
Sorry your browser does not support audio – but you can download here and listen https://audio.guim.co.uk/2021/04/13-69991-20210414_TIF_passpub.mp3
Lunchtime read: Parminder Nagra: 'The landscape's changing'
Photograph: Magnus Hastings
Bend It Like Beckham launched Parminder Nagra on a journey from Leicester to Los Angeles – and she's now bound for outer space after success in ER. As Intergalactic hits our small screens this month, she tells Coco Khan about how the film industry has changed for South Asian people since Bend It, and why she misses British banter.
After a break of seven years, Chelsea are back in the Champions League semi-finals where Real Madrid or Liverpool await. A 2-0 win over Porto last week ultimately proved enough for Thomas Tuchel's team despite a 1-0 defeat in last night's second leg. Paris Saint-Germain showed immense fortitude and wonderful flashes of skill to depose holders Bayern Munich and advance to a semi-final with either Manchester City or Borussia Dortmund. A woefully toothless England suffered a ninth defeat in 14 games after conceding two calamitous goals against Canada. Gareth Southgate has stressed the importance of discipline off the pitch after Leicester's James Maddison dashed his slim hopes of making England's squad for Euro 2020 by attending a party that breached Covid-19 protocols.
Team GB's athletes at the Olympic Games this summer will be powered by 45,000 teabags, more than 7,000 bags of crisps and nearly 8,000 porridge pots, the Guardian can reveal. Warren Gatland has warned that British & Irish Lions hopefuls based in England face the prospect of missing out on the South Africa tour unless Premiership Rugby softens its stance in an escalating disagreement over player release.
W Galen Weston, the Anglo-Canadian retailer who built an empire including Primark, Selfridges and Twinings tea, has died aged 80. Weston inherited the family business from his father but expanded it on both sides of the Atlantic into a group that also includes Fortnum & Mason and the Canadian grocery chain Loblaws. The megaship Ever Given, which got jammed in the Suez canal last month, has become stuck again. Red tape is to blame this time after the Egyptian authorities impounded the vessel and demanded $900m from its owners in compensation for delays caused by the blockage in the canal. The pound will fetch you $1.375 and €1.150, while the FTSE 100 is also set to open flat.
The papers
Photograph: The Guardian
Many of the front pages build the pressure on David Cameron over the Greensill scandal. The Guardian lead is "Revealed: top civil servant's role at scandal-hit Greensill", while the Times has "Top Cameron mandarin took job from Greensill" and the Mail says "Cameron mandarin snared by lobbying scandal". The Mirror has a picture of Cameron and the company's founder drinking tea together on a visit to Saudi Arabia.
The Telegraph also has that photograph but leads on "Quarter of virus deaths not caused by Covid". The FT also leads with Covid, reporting that "J&J halts vaccine rollout in Europe as US agencies review blood clots" and the i has "Vaccines for under-40s in six weeks". The Sun reports on the rush for pub bookings – "Thirst in the queue" – but the Express sticks to the big royal story: "The Queen wants to live close to Philip".
The Guardian morning briefing is delivered to thousands of inboxes bright and early every weekday. If you are not already receiving it by email, you can sign up here.
For more news: www.theguardian.com


If you have a physical print and mail work to be done, you need to find a printing as well as mailing solution which will get you through the process as rapidly and also painlessly as possible. You can either search in the telephone directory, or do it the easy means as well as find a trusted done in one solution online: you can then do everything you need from your computer.
When you are planning your print as well as mail work there are many points you require to think about, and also prepare. Here are some suggestions and also background concerning what you require to understand.
Whether it is a brochure, pamphlet, postcard, letter or e-newsletter, greeting card, or something else, before you create your printing item (the one you are going to mail out) inspect that your item meets postal standards. Many on the internet print and also post will have the ability to provide you suitable product design templates for this. If you have something ready already, you can send it to the printing and direct-mail advertising service by email for them to check it is suitable.
Next off, check at least three direct mailing as well as printing website to get a quote for your work. Undoubtedly you require to recognize your mail out numbers, and also the turnaround you require. Normally faster turnarounds come at a greater cost. Excellent direct-mail advertising printing services will be able to offer various shipping and various other alternatives.
In particular, keep an eye out for any type of additional charges for mail checklist merging, unique inserts, indicia (license imprint) changes, tabbing, divided mailing and so forth.
Having decided that of the quotes you got is suitable, you can upload your text, art work and also your subscriber list and also make your order.
Before the complete print run begins, your chosen online printing as well as mailing service will certainly send you examples for approval. Meticulously examine the examples at this phase, after that approve the work if the examples are OK.
There are lots of reliable done in one solutions readily available now on-line. The major advantage of making use of the 'one quit' strategy for the print and also mail services you require, whichever solution you really choose, is that it is hassle-free: you will be managing one company for the whole work. On top of that, you don't require to pay to have actually the published products mailed to you, because they are being printed and also going out to your customers or leads directly.


It eliminates much of the ambiguity that has deliberately existed in American nuclear policy since the opening days of the cold war. For the first time, the United States is explicitly committing not to use nuclear weapons against nonnuclear states that are in compliance with the Nuclear Nonproliferation Treaty, even if they attacked the United States with biological or chemical weapons or launched a crippling cyber attack.
Did Obama just paint a bullseye on America?
This policy assures all nations will field a Cyber Force.
it could set the culture back 30 or 40 years.
and world economies. Back to the 1960's.
with motive and a good risk reward ratio.
speed and power but surgically targeted.
And a non-nuke EMP fits that job very nicely.
you don't want to piss the American people off.
USA is still killing al Qaeda.
American people by a sneak attack on Pearl Harbor.
And "toward making nuclear weapons obsolete, "
the world until they make some thing even worse.


text:
Q: Any Chance to make CodeMirror play on Android Chrome? I understand CodeMirror has issues on mobile and behavior varies with extensions in use.
However, for me it seems pretty much unusable everywhere I encounter it on Android. Have a look at Kotlin Koans and try the Backspace key. Amongst other things, I get gobbledygock and a bunch of newlines.
I did not find a single way around this. Tried two devices (OnePlus 3T and Pixel C) running Android 7 and 8 using on-screen keyboards or bluetooth physical ones. The results are pretty much the same.
This seems pretty odd and I am surprised nobody (Google?) is stepping in to fix it.
I'd like to use an Android device for basic (CodeMirror-based) coding, and I'd very much appreciate a suggestion to get around this annoyance. :)
Thanks
Code Editor inserts a new line above current line on every keypress
Android native app using WebView, backspace doesn't work properly

redpajama_set_name: RedPajamaStackExchange


text:
Centers and Research
Professor honored among world's most prolific writers on consumer finance
HDF Professor Jing Jian Xiao named third most 'productive and influential' author by the International Journal of Consumer Studies
University of Rhode Island Human Development and Family Science Professor Jing Jian Xiao has been identified as the number 3 most productive writer among educators published in the International Journal of Consumer Studies, a leading international journal in the field of multidisciplinary consumer research.
Additionally, Xiao's study, "Consumer Financial Education and Financial Capability," has been named the most cited paper among all journal publications over the last five years.
Xiao, an expert in consumer economics and personal finance, has successfully submitted 16 publications to the journal, covering such topics as financial literacy, budgeting, financial risk tolerance and student credit card use. He ranks as the third most "productive and influential author" among 2,722 writers who submitted work to the journal.
The International Journal of Consumer Studies (IJCS) is one of the leading research journals that publishes original, high-quality research in the field of consumer research. Topics covered in the journal include all areas of consumer studies, which consists of consumer behavior, consumer marketing and consumer psychology. Published papers are in the areas of information technology, digital marketing, services research, brand management, sustainable consumption, consumer education, and consumer economics, among others.
In addition to his work with the International Journal of Consumer Studies, Xiao is the author of such books as The Mathematics of Personal Finance, Consumer Economic Well-being, and Handbook of Consumer Finance Research. Xiao serves as the editor-in-chief of the Journal of Financial Counseling and Planning, associate editor for the International Journal of Bank Marketing and International Journal of Consumer Studies, and an editorial board member for several other journals in consumer finance.
Xiao's research interests focus on how to help consumers increase financial literacy, perform desirable financial behaviors, and enhance financial capability to improve their financial and overall wellbeing. He teaches courses in consumer economics and personal finance in the Department of Human Development and Family Science, part of the College of Health Sciences.
Quinn Hall
55 Lower College Road, Kingston, RI 02881
e: chs-group@uri.educhsphd@etal.uri.edu
The Academic Health Collaborative provides interdisciplinary teaching and learning spaces, and access to experts, for all of URI's health disciplines.

redpajama_set_name: RedPajamaCommonCrawl


Barney Frank runs like a rat bailing the ship!
Occupy Wallstreet Atlanta Protesters suffer from their own demise.
Freedom of Speech being attacked again, TODAY!
The BIG Picture with POSITIVE movement in the near future!
While many of us (how many we don't know) report the doom n' gloom attacks on America's Constitution and our civil rights, there are many great events planned to open the eyes of those on the fence or still asleep.
Ok. So Romney wins as the contender against Obama. I say, so what? He's not the candidate we all wanted, at least one, we could enthusiastically rally behind as a true conservative with chutzpah!


text:
José Alberto Barreto (born 22 February 2000) is an Argentine professional footballer who plays as a forward for Patronato.

Career
Barreto's career started with Patronato. Mario Sciacqua promoted the forward into the club's first-team squad during the 2018–19 season in the Primera División, with Barreto making his first professional appearance on 22 February 2019 - his nineteenth birthday - in a 2–1 loss away to Tigre.

Career statistics
.

References

External links

2000 births
Living people
Sportspeople from Entre Ríos Province
Argentine footballers
Association football forwards
Club Atlético Patronato footballers
CSyD Tristán Suárez footballers
Argentine Primera División players
Primera Nacional players

redpajama_set_name: RedPajamaWikipedia


· best way of processing gold ore with microwave offers 3757 gold lab equipment products. About 11% of these are testing equipment, 2% are other mining machines, and 1% are other lab supplies. A wide variety of gold lab equipment options are available to you, such as universal testing machine, auto testing machine, and tensile testing machine.
· An ore containing Gold, Silver and Platinum. A mining company have asked me to extract, precipitate or separate the gold from silver and platinum.


text:
Jar Jar Binks is een personage uit de Star Wars-saga. Jar Jar is een Gungan van de planeet Naboo. Hij heeft een reptiloïde lichaamsbouw, een lange razendsnelle grijptong en een onhandige manier van doen. Zijn stem is ingesproken door Ahmed Best. Jar Jar Binks is te zien in Episode I, II en III.

Het personage is geïnspireerd op het Disneyfiguur Goofy en zou voor een komische noot in de films zorgen. Jar Jar Binks werd echter niet goed ontvangen door de fans. Ook werden er beschuldigingen geuit over mogelijk racistische kenmerken van het personage. Door de negatieve reacties op Jar Jar Binks, kreeg acteur Ahmed Best naar eigen zeggen last van suïcidale gedachten.

Episode I: The Phantom Menace

Met name in Episode I vervult hij de rol van vrolijke noot en is prominent aanwezig met zijn stuntelende gedrag. Jar Jar wordt op zijn thuisplaneet Naboo gered door de Jedimeester Qui-Gon Jinn en heeft daardoor volgens de traditie van zijn volk een levensschuld bij hem. Qui-Gon en zijn leerling Obi-Wan Kenobi gebruiken Jar Jar als gids op de planeet Naboo.

Jar Jar gaat met de Jedi naar de planeet Tatooine voor reparaties van het Koninklijke Ruimteschip van Koningin Padmé Amidala. Daar komen Qui-Gon, Padmé, R2-D2 en Jar Jar in contact met de jongen Anakin Skywalker en zijn moeder Shmi Skywalker.

In de Slag om Naboo tegen de Handelsfederatie (Trade Federation) wordt Jar Jar Binks generaal in de Gungan Grand Army. Ondanks zijn klungeligheid weet Jar Jar veel droids uit te schakelen. Uiteindelijk wordt de slag gewonnen door de Gungans en de Naboo.

Episode II: Attack of the Clones

Na tien jaar speelt Jar Jar ook een cruciale rol in de politieke ontwikkelingen van de Galactische Republiek. Jar Jar is een afgevaardigde van de planeet Naboo samen met Senator Padmé Amidala op de stadsplaneet Coruscant. Hij is het die de motie indient waarin Kanselier Palpatine speciale noodvolmachten toegekend worden. Hierdoor kan Kanselier Palpatine het mysterieuze leger van Clone Troopers inzetten tegen het leger van droids van de Confederacy of Independent Systems van Graaf Dooku, waardoor de Kloonoorlogen beginnen.

Episode III: Revenge of the Sith

Drie jaar later, tijdens de laatste fase van de Kloonoorlogen kan Jar Jar worden gehoord bij de aankomst van Anakin Skywalker op Coruscant aan het begin van de film. Ook is hij te zien aan het eind van Episode III, wanneer hij de begrafenis van Senator Padmé Amidala op zijn thuisplaneet Naboo bijwoont.

Star Wars: The Clone Wars
Tussen Episode II en Episode III vinden de Kloonoorlogen plaats in hun volle hevigheid. In de serie Star Wars: The Clone Wars is ook Jar Jar Binks van de partij. Als afgevaardigde kan Binks soms van nut zijn om geschillen op te lossen.

Personage uit Star Wars


I have heard that running a magnetic stir plate inside a refrigerator is common practice. Usually, the liquid is aqueous and the flask covered.. It is not battery operated unit and the refrigerator door is closed on the electrical cord. This looks like an accident ready to happen to me.
Should this practice be continued? Is there any fire code violation involved? Are there any guidelines for running electrical equipment inside a refrigerator or a for that matter a cold small cold room?


An anti-aging night cream for normal, dry and dehydrated skin.
Eminence Blueberry Soy Night Recovery Cream nourishes and hydrates to revitalize your complexion. Formulated with blueberry juice, it eliminates impurities as calendula oil tones and tightens to refine the look of pores. Vitamin-rich raspberry juice and non-GMO soy fortify and enrich your skin with vital nutrients, diminishing the appearance of fine lines and wrinkles for a healthy, youthful glow.


If you're a Finance professional and you're looking to work smarter, a new study1 suggests there's one simple way to make progress fast: focus on your Travel and Expense (T&E) process.
The report makes for interesting reading.
Did you know that T&E is the second biggest operational cost for a lot of global organisations? Or that business travel spend is expected to reach 1.7 trillion USD by 20222?
This is why a lot of companies are being prompted to revisit their T&E process.
They're giving Finance teams the job to do (65% of T&E budgets are managed by Finance teams), asking them to manage T&E as a strategic edge rather than a tactical cost reconciliation task.
Like a lot of things on the operational "to do" list, digital technologies are the tools of choice for making this an efficient and effective way forward. Dual systems dominated the first wave of change. That meant separate set ups for travel booking and expense management. What we're seeing now is that integrating BOTH functions on ONE platform can deliver truly disruptive results.
In fact, companies are now more likely to use systems for both of these management tasks than they were five years ago (a 29 point increase). And for integrated systems that unify them into a single platform, the point spread is even sharper (37 point increase).
BETTER VISIBILITY: The study showed that improved visibility over expected vs. actual spend and better financial planning and budgeting were the top 2 value-adds of an integrated T&E solution. When a Finance team can see the whole of the T&E story on a single screen, using it strategically becomes so much easier. An integrated system can combine estimated costs for non-bookable items such as meals and some ground transport with the costs that are booked in the travel booking. Decision makers can see what a trip will cost and then use that same amount to compare it to the actual spend once the expenses are processed. That's what next generation, fully-integrated T&E solutions can offer. Unprecedented financial transparency, measurable corporate control and savings.
FRICTION-FREE COMPLIANCE: automated, policy-driven compliance is a major step forward for Finance teams – and for employees too. It cuts out some of the big risks – such as fines and reputational damage – that can result from failing to keep track of receipts and comply with a growing body of laws and regulations. By setting up business rules across both travel and expense platforms, travellers can be confident that the technology is keeping them within policy and sticking to regulations at the time of booking and at the time of filling in their expense report.
MAKING IT EASIER TO NAVIGATE FRAGMENTED TAX REGULATIONS FOR RECOUPING VAT – Managing travel and expense in one system makes it easy to calculate VAT amounts, simplifying the process for both travellers and accountants and safeguarding against fraud and errors. With a steady feed of updated tax regulations, an integrated system that recognises where expenses occurred can automatically calculate VAT to support the reclaim process across multiple countries and their individual tax complexities.
A BETTER USER EXPERIENCE. Nobody wants to go through a cumbersome, spreadsheet-based process for submitting their expenses. Or be unsure if what they are spending is within policy and will get reimbursed. Especially in an era when digital technology is generally making transactions friction-free in so many other areas of life. An integrated T&E platform with automated report creation and cross-device functionality makes travel planning and expense management quick and simple on desktop or mobile. It positions a company as progressive and considerate – keeping end users happy and motivated.
This mix of total visibility, easy compliance and a great user experience is the vision for KDS Neo Travel and Expense. Designed and built by a single development team, KDS Neo is an award-winning solution that delivers an excellent user experience, and by that I mean all users, not just travellers. Innovating for the finance/accounting team is high on our list of priorities too.
But the case for the KDS Neo integrated approach is also backed up by the picture that emerges from the study that I mentioned at the start.
The great majority of respondents (87%) consider that their current T&E solution brings tangible values to their financial and accounting systems. But they're also aware that they could gain even more benefits from technology in the future. Where I believe the functionality of KDS Neo fits in so well is that it answers the wish list for companies that are looking to improve expense and process flow.
For more of these insights, ask for your copy of the study now and get a fuller picture of the one platform that can deliver full T&E visibility, easier compliance, more cost savings and a better user experience.


text:
/**
Creates a model list that is the union of two or more other model lists.
@module gallery-model-list-union
@author Steven Olmsted
*/
(function (Y) {
    'use strict';

    var _Array = Y.Array,
        _ModelList = Y.ModelList,

        _flatten = _Array.flatten,
        _invoke = _Array.invoke,
        _isString = Y.Lang.isString;

    /**
    Creates a model list that is the union of two or more other model lists.
    The new model list stays up to date as the source lists change.  This
    function can accept any number of model lists or arrays of model lists.
    Nested arrays will be flattened.  The first argument determines the type of
    model list that is created.
    @method union
    @for ModelList
    @param {Function|ModelList|String} modelListType The first argument
    determines the type of model list that is created; it may be a constructor
    function or a string namespace to a constructor function stored on Y.  If
    the first argument is an instance of ModelList, its constructor is used.
    @param {ModelList} modelList* 1-n ModelList objects to union.
    @return {ModelList}
    @static
    */
    Y.ModelList.union = function () {
        var ModelListConstructor,

            modelList,
            modelLists = _flatten(arguments),
            modelListType = modelLists[0],

            updateModelList = function () {
                return modelList.reset(_flatten(_invoke(modelLists, 'toArray')));
            };

        if (_isString(modelListType)) {
            modelLists.shift();
            ModelListConstructor = Y.namespace(modelListType);
        } else if (modelListType instanceof _ModelList) {
            ModelListConstructor = modelListType.constructor;
        }

        modelList = new ModelListConstructor();

        _invoke(modelLists, 'after', [
            'add',
            'remove',
            'reset'
        ], updateModelList);

        return updateModelList();
    };
}(Y));

redpajama_set_name: RedPajamaGithub


text:
//
//  GrowlPathUtil.m
//  Growl
//
//  Created by Ingmar Stein on 17.04.05.
//  Copyright 2005-2006 The Growl Project. All rights reserved.
//
// This file is under the BSD License, refer to License.txt for details

#import "GrowlPathUtilities.h"
#import "GrowlDefinesInternal.h"

static NSBundle *helperAppBundle;
static NSBundle *prefPaneBundle;

#define NAME_OF_SCREENSHOTS_DIRECTORY           @"Screenshots"
#define NAME_OF_TICKETS_DIRECTORY               @"Tickets"
#define NAME_OF_PLUGINS_DIRECTORY               @"Plugins"

@implementation GrowlPathUtilities

#pragma mark Bundles

//Searches the process list (as yielded by GetNextProcess) for a process with the given bundle identifier.
//Returns the oldest matching process.
+ (NSBundle *) bundleForProcessWithBundleIdentifier:(NSString *)identifier
{

restart:;
	OSStatus err;
	NSBundle *bundle = nil;
	struct ProcessSerialNumber psn = { 0, 0 };
	UInt32 oldestProcessLaunchDate = UINT_MAX;

	while ((err = GetNextProcess(&psn)) == noErr) {
		struct ProcessInfoRec info = { .processInfoLength = (UInt32)sizeof(struct ProcessInfoRec) };
		err = GetProcessInformation(&psn, &info);
		if (err == noErr) {
			//Compare the launch dates first, since it's cheaper than comparing bundle IDs.
			if (info.processLaunchDate < oldestProcessLaunchDate) {
				//This one is older (fewer ticks since startup), so this is our current prospect to be the result.
				NSDictionary *dict = (NSDictionary *)ProcessInformationCopyDictionary(&psn, kProcessDictionaryIncludeAllInformationMask);

				if (dict) {
					CFMakeCollectable(dict);
					pid_t pid = 0;
					GetProcessPID(&psn, &pid);
					if ([[dict objectForKey:(NSString *)kCFBundleIdentifierKey] isEqualToString:identifier]) {
						NSString *bundlePath = [dict objectForKey:@"BundlePath"];
						if (bundlePath) {
							bundle = [NSBundle bundleWithPath:bundlePath];
							oldestProcessLaunchDate = info.processLaunchDate;
						}
					}

					[dict release];
				} else {
					//ProcessInformationCopyDictionary returning NULL probably means that the process disappeared out from under us (i.e., exited) in between GetProcessInformation and ProcessInformationCopyDictionary. Start over.
					goto restart;
				}
			}
		} else {
			if (err != noErr) {
				//Unexpected failure of GetProcessInformation (Process Manager got confused?). Assume severe breakage and bail.
				NSLog(@"Couldn't get information about process %lu,%lu: GetProcessInformation returned %i/%s", psn.highLongOfPSN, psn.lowLongOfPSN, err, GetMacOSStatusCommentString(err));
				err = noErr; //So our NSLog for GetNextProcess doesn't complain. (I wish I had Python's while..else block.)
				break;
			} else {
				//Process disappeared out from under us (i.e., exited) in between GetNextProcess and GetProcessInformation. Start over.
				goto restart;
			}
		}
	}
	if (err != procNotFound) {
		NSLog(@"%s: GetNextProcess returned %i/%s", __PRETTY_FUNCTION__, err, GetMacOSStatusCommentString(err));
	}

	return bundle;
}

//Obtains the bundle for the active GrowlHelperApp process. Returns nil if there is no such process.
+ (NSBundle *) runningHelperAppBundle {
	return [self bundleForProcessWithBundleIdentifier:GROWL_HELPERAPP_BUNDLE_IDENTIFIER];
}

+ (NSBundle *) growlPrefPaneBundle {
	NSArray			*librarySearchPaths;
	NSString		*path;
	NSString		*bundleIdentifier;
	NSEnumerator	*searchPathEnumerator;
	NSBundle		*bundle;

	if (prefPaneBundle)
		return prefPaneBundle;

	prefPaneBundle = [NSBundle bundleWithIdentifier:GROWL_PREFPANE_BUNDLE_IDENTIFIER];
 	if (prefPaneBundle)
		return prefPaneBundle;

	//If GHA is running, the prefpane bundle is the bundle that contains it.
	NSBundle *runningHelperAppBundle = [self runningHelperAppBundle];
	NSString *runningHelperAppBundlePath = [runningHelperAppBundle bundlePath];
	//GHA in Growl.prefPane/Contents/Resources/
	NSString *possiblePrefPaneBundlePath1 = [runningHelperAppBundlePath stringByDeletingLastPathComponent];
	//GHA in Growl.prefPane/ (hypothetical)
	NSString *possiblePrefPaneBundlePath2 = [[possiblePrefPaneBundlePath1 stringByDeletingLastPathComponent] stringByDeletingLastPathComponent];
	if ([[[possiblePrefPaneBundlePath1 pathExtension] lowercaseString] isEqualToString:@"prefpane"]) {
		prefPaneBundle = [NSBundle bundleWithPath:possiblePrefPaneBundlePath1];
		if (prefPaneBundle)
			return prefPaneBundle;
	}
	if ([[[possiblePrefPaneBundlePath2 pathExtension] lowercaseString] isEqualToString:@"prefpane"]) {
		prefPaneBundle = [NSBundle bundleWithPath:possiblePrefPaneBundlePath2];
		if (prefPaneBundle)
			return prefPaneBundle;
	}

	static const unsigned bundleIDComparisonFlags = NSCaseInsensitiveSearch | NSBackwardsSearch;

	NSFileManager *fileManager = [NSFileManager defaultManager];

	//Find Library directories in all domains except /System (as of Panther, that's ~/Library, /Library, and /Network/Library)
	librarySearchPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSAllDomainsMask & ~NSSystemDomainMask, YES);

	/*First up, we'll look for Growl.prefPane, and if it exists, check whether
	 *	it is our prefPane.
	 *This is much faster than having to enumerate all preference panes, and
	 *	can drop a significant amount of time off this code.
	 */
	searchPathEnumerator = [librarySearchPaths objectEnumerator];
	while ((path = [searchPathEnumerator nextObject])) {
		path = [path stringByAppendingPathComponent:PREFERENCE_PANES_SUBFOLDER_OF_LIBRARY];
		path = [path stringByAppendingPathComponent:GROWL_PREFPANE_NAME];

		if ([fileManager fileExistsAtPath:path]) {
			bundle = [NSBundle bundleWithPath:path];

			if (bundle) {
				bundleIdentifier = [bundle bundleIdentifier];

				if (bundleIdentifier && ([bundleIdentifier compare:GROWL_PREFPANE_BUNDLE_IDENTIFIER options:bundleIDComparisonFlags] == NSOrderedSame)) {
					prefPaneBundle = bundle;
					return prefPaneBundle;
				}
			}
		}
	}

	/*Enumerate all installed preference panes, looking for the Growl prefpane
	 *	bundle identifier and stopping when we find it.
	 *Note that we check the bundle identifier because we should not insist
	 *	that the user not rename his preference pane files, although most users
	 *	of course will not.  If the user wants to mutilate the Info.plist file
	 *	inside the bundle, he/she deserves to not have a working Growl
	 *	installation.
	 */
	searchPathEnumerator = [librarySearchPaths objectEnumerator];
	while ((path = [searchPathEnumerator nextObject])) {
		NSString				*bundlePath;
		NSDirectoryEnumerator   *bundleEnum;

		path = [path stringByAppendingPathComponent:PREFERENCE_PANES_SUBFOLDER_OF_LIBRARY];
		bundleEnum = [fileManager enumeratorAtPath:path];

		while ((bundlePath = [bundleEnum nextObject])) {
			if ([[bundlePath pathExtension] isEqualToString:PREFERENCE_PANE_EXTENSION]) {
				bundle = [NSBundle bundleWithPath:[path stringByAppendingPathComponent:bundlePath]];

				if (bundle) {
					bundleIdentifier = [bundle bundleIdentifier];

					if (bundleIdentifier && ([bundleIdentifier compare:GROWL_PREFPANE_BUNDLE_IDENTIFIER options:bundleIDComparisonFlags] == NSOrderedSame)) {
						prefPaneBundle = bundle;
						return prefPaneBundle;
					}
				}

				[bundleEnum skipDescendents];
			}
		}
	}

	return nil;
}

+ (NSBundle *) helperAppBundle {
	if (!helperAppBundle) {
		helperAppBundle = [self runningHelperAppBundle];
		if (!helperAppBundle) {
			//look in the prefpane bundle.
			NSBundle *bundle = [GrowlPathUtilities growlPrefPaneBundle];
			NSString *helperAppPath = [bundle pathForResource:@"GrowlHelperApp" ofType:@"app"];
			helperAppBundle = [NSBundle bundleWithPath:helperAppPath];
		}
	}
	return helperAppBundle;
}

#pragma mark -
#pragma mark Directories

+ (NSArray *) searchPathForDirectory:(GrowlSearchPathDirectory) directory inDomains:(GrowlSearchPathDomainMask) domainMask mustBeWritable:(BOOL)flag {
	if (directory < GrowlSupportDirectory) {
		NSArray *searchPath = NSSearchPathForDirectoriesInDomains(directory, domainMask, /*expandTilde*/ YES);
		if (!flag)
			return searchPath;
		else {
			//flag is not NO: exclude non-writable directories.
			NSMutableArray *result = [NSMutableArray arrayWithCapacity:[searchPath count]];
			NSFileManager *mgr = [NSFileManager defaultManager];

			NSEnumerator *searchPathEnum = [searchPath objectEnumerator];
			NSString *dir;
			while ((dir = [searchPathEnum nextObject])) {
				if ([mgr isWritableFileAtPath:dir])
					[result addObject:dir];
			}

			return result;
		}
	} else {
		//determine what to append to each Application Support folder.
		NSString *subpath = nil;
		switch (directory) {
			case GrowlSupportDirectory:
				//do nothing.
				break;

			case GrowlScreenshotsDirectory:
				subpath = NAME_OF_SCREENSHOTS_DIRECTORY;
				break;

			case GrowlTicketsDirectory:
				subpath = NAME_OF_TICKETS_DIRECTORY;
				break;

			case GrowlPluginsDirectory:
				subpath = NAME_OF_PLUGINS_DIRECTORY;
				break;

			default:
				NSLog(@"ERROR: GrowlPathUtil was asked for directory 0x%x, but it doesn't know what directory that is. Please tell the Growl developers.", directory);
				return nil;
		}
		if (subpath)
			subpath = [@"Application Support/Growl" stringByAppendingPathComponent:subpath];
		else
			subpath =  @"Application Support/Growl";

		/*get the search path, and append the subpath to all the items therein.
		 *exclude results that don't exist.
		 */
		NSFileManager *mgr = [NSFileManager defaultManager];
		BOOL isDir = NO;

		NSArray *searchPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, domainMask, /*expandTilde*/ YES);
		NSMutableArray *mSearchPath = [NSMutableArray arrayWithCapacity:[searchPath count]];
		NSEnumerator *searchPathEnum = [searchPath objectEnumerator];
		NSString *path;
		while ((path = [searchPathEnum nextObject])) {
			path = [path stringByAppendingPathComponent:subpath];
			if ([mgr fileExistsAtPath:path isDirectory:&isDir] && isDir)
				[mSearchPath addObject:path];
		}

		return mSearchPath;
	}
}

+ (NSArray *) searchPathForDirectory:(GrowlSearchPathDirectory) directory inDomains:(GrowlSearchPathDomainMask) domainMask {
	//NO to emulate the default NSSearchPathForDirectoriesInDomains behaviour.
	return [self searchPathForDirectory:directory inDomains:domainMask mustBeWritable:NO];
}

+ (NSString *) growlSupportDirectory {
	NSArray *searchPath = [self searchPathForDirectory:GrowlSupportDirectory inDomains:NSUserDomainMask mustBeWritable:YES];
	if ([searchPath count])
		return [searchPath objectAtIndex:0U];
	else {
		NSString *path = nil;

		//if this doesn't return any writable directories, path will still be nil.
		searchPath = [self searchPathForDirectory:NSLibraryDirectory inDomains:NSAllDomainsMask mustBeWritable:YES];
		if ([searchPath count]) {
			path = [[searchPath objectAtIndex:0U] stringByAppendingPathComponent:@"Application Support/Growl"];
			//try to create it. if that doesn't work, don't return it. return nil instead.
			if (![[NSFileManager defaultManager] createDirectoryAtPath:path attributes:nil])
				path = nil;
		}

		return path;
	}
}

+ (NSString *) screenshotsDirectory {
	NSArray *searchPath = [self searchPathForDirectory:GrowlScreenshotsDirectory inDomains:NSAllDomainsMask mustBeWritable:YES];
	if ([searchPath count])
		return [searchPath objectAtIndex:0U];
	else {
		NSString *path = nil;

		//if this doesn't return any writable directories, path will still be nil.
		path = [self growlSupportDirectory];
		if (path) {
			path = [path stringByAppendingPathComponent:NAME_OF_SCREENSHOTS_DIRECTORY];
			//try to create it. if that doesn't work, don't return it. return nil instead.
			if (![[NSFileManager defaultManager] createDirectoryAtPath:path attributes:nil])
				path = nil;
		}

		return path;
	}
}

+ (NSString *) ticketsDirectory {
	NSArray *searchPath = [self searchPathForDirectory:GrowlTicketsDirectory inDomains:NSAllDomainsMask mustBeWritable:YES];
	if ([searchPath count])
		return [searchPath objectAtIndex:0U];
	else {
		NSString *path = nil;

		//if this doesn't return any writable directories, path will still be nil.
		path = [self growlSupportDirectory];
		if (path) {
			path = [path stringByAppendingPathComponent:NAME_OF_TICKETS_DIRECTORY];
			//try to create it. if that doesn't work, don't return it. return nil instead.
			if (![[NSFileManager defaultManager] createDirectoryAtPath:path attributes:nil])
				path = nil;
		}

		return path;
	}
}

#pragma mark -
#pragma mark Screenshot names

+ (NSString *) nextScreenshotName {
	return [self nextScreenshotNameInDirectory:nil];
}

+ (NSString *) nextScreenshotNameInDirectory:(NSString *) directory {
	NSFileManager *mgr = [NSFileManager defaultManager];

	if (!directory)
		directory = [GrowlPathUtilities screenshotsDirectory];

	//build a set of all the files in the directory, without their filename extensions.
	NSArray *origContents = [mgr directoryContentsAtPath:directory];
	NSMutableSet *directoryContents = [[NSMutableSet alloc] initWithCapacity:[origContents count]];

	NSEnumerator *filesEnum = [origContents objectEnumerator];
	NSString *existingFilename;
	while ((existingFilename = [filesEnum nextObject]))
		[directoryContents addObject:[existingFilename stringByDeletingPathExtension]];

	//look for a filename that doesn't exist (with any extension) in the directory.
	NSString *filename = nil;
	unsigned long long i;
	for (i = 1ULL; i < ULLONG_MAX; ++i) {
		[filename release];
		filename = [[NSString alloc] initWithFormat:@"Screenshot %llu", i];
		if (![directoryContents containsObject:filename])
			break;
	}
	[directoryContents release];

	return [filename autorelease];
}

#pragma mark -
#pragma mark Tickets

+ (NSString *) defaultSavePathForTicketWithApplicationName:(NSString *) appName {
	return [[self ticketsDirectory] stringByAppendingPathComponent:[appName stringByAppendingPathExtension:GROWL_PATHEXTENSION_TICKET]];
}

@end


text:
Emerging Tech Fellowship
EJ Investigative Fellowship
The Globies
Globalist of the Year
Sip & Share
Tibetan monk-turned-developer accused of defrauding immigrants
Posted on Aug 25, 2015 by Venice Buhain
Lobsang Dargey in a video about Path America. (Screen shot of Path America YouTube video.)
A Seattle-area developer who once was a Tibetan Buddhist monk is accused in a lawsuit by the U.S. Securities and Exchange Commission of defrauding Chinese investors seeking U.S. residency through a controversial visa program.
Lobsang Dargey is the CEO of Path America, a development firm that has worked on several properties in Everett including the Everett Public Market and Chicago Title Building, and has projects planned for Kirkland and Seattle.
The company woos investors hoping to take advantage of the U.S.'s EB-5 immigrant program, which gives green cards to foreign nationals who make major investments in commercial enterprises that create or preserve at least 10 jobs for U.S. workers. Applicants in the program must invest at least $1 million, or $500,000 in a rural area or an area with high unemployment. Path America says all its projects qualify in the latter category.
The website for Path America touts its status as a federally designated company where EB-5 investors can pool their money for larger investments.
The company, which has offices in Everett, Bellevue and Beijing, also advertises on its website that it offers investors personalized help adjusting to the immigration process.
"We offer resources to aid families as they adapt to living in a new country, including education information, immigration process status, links to community services and groups, and the best legal team for both immigration and business real estate transactions. Additionally, we are the only regional center that provides full concierge services in your native language," says the Path America website.
The SEC filed a lawsuit against Dargey and Path America in U.S. District Court for the Western District of Washington, and a judge ordered a freeze on the company's assets and prohibited the recruitment of additional investors.
According to SEC investigators, about 250 investors in China put money into Path America company for projects in Everett and Seattle. The immigration rules calls for 10 jobs to be created from each investor. The SEC alleges that of the $125 million raised, Dargey moved about $14 million into real estate projects unrelated to the regional center, and diverted about $3 million for personal use, including the purchase of a $2.5 million Bellevue home and just over $200,000 withdrawn from casinos in Washington, California and Las Vegas.
Monastic background
Several business profiles of Dargey over the years tout his personal story of transitioning from a Buddhist monk to a developer in Seattle's real estate market — and most articles also note that his wife, Tami, who he met at a fundraiser for the Marsha Rivkin for Ovarian Cancer Research, happens to be the sister of tennis great Andre Agassi.
According to his profile on Path America's website, Dargey, worked on his first buildings at 14, designing temples and stupas for monasteries in Tibet and India.
Dargey immigrated to the United States in 1997 barely speaking English, and started his first company as a house painter, according to a 2014 profile in the Puget Sound Business Journal. He then took a sales job at Sprint, where would switch between wearing business suits and monks robes to work, according to a 2012 Seattle Times profile. Dargey left Sprint and started Path America in 2009.
Dargey left the monastic life during his time at Sprint, and while he no longer is a monk, his developments in Kirkland and Seattle are named after the Dalai Lama's winter residence, Potala Palace.
Path America has not yet returned The Seattle Globalist's phone message asking for comment.
Path America's website puts the EB-5 program front and center, touting the advantages of immigrating under the program, including an expedited green card process and a path to residency that is open to retirees, who often are ineligible for U.S. residency under other work programs.
Path America is one of 44 approved regional centers in Washington state, according to the U.S. Citizenship and Immigration Services website.
The department notes on the website that regional centers can be terminated for lack of compliance or if jobs aren't created, and investors in the terminated centers cannot use that investment to establish eligibility for immigrant status.
The USCIS declined to comment on Path America, citing the SEC's pending lawsuit.
Tags: Business, China, developers, EB-5, green card, Immigration, immigration law, Tibet, USCIS.
Venice Buhain
Venice Buhain is an online and print journalist whose work has appeared on TVW News, AOL/Patch, The Olympian and other news organizations. She is also the former Editorial Director at The Seattle Globalist. Venice has covered diversity, education, local news and politics. She also is a past Seattle chapter president of the Asian American Journalists Association.
Want to see more stories like this?
Your support makes it possible for us to bring you news, stories and perspectives, and to create programs dedicated to elevating diverse voices through media.
The Seattle Globalist is a nonprofit, community-driven media outlet. Our stories are always available for free, but we need your help to sustain the Globalist now and into the future, and to bring you articles like this one.
Donate »
Notice: It seems you have Javascript disabled in your Browser. In order to submit a comment to this post, please write this code along with your comment: 854f287b9b969c9a69787600fe2406c9
News tips: editor@seattleglobalist.com
Our mission is to elevate diverse voices through media. The Seattle Globalist is a 501(c)(3) nonprofit organization.
The Seattle Globalist features up and coming contributors from across the region and around the globe. How to pitch a story »
Conversations on Tech and Social Justice: Jorge L. Barón
by Gloria Lusianti AngelinNov 21, 2019
"Beyond Bollywood" at MOHAI digs deep into Indian American experience
by Kamna ShastriNov 7, 2019
Artist's immigration arrest fuels activism in Minneapolis music scene
by Thea WhiteOct 2, 2019
At age 5, helping mom and dad adjust to life in the U.S.
by Sarah ParkSep 12, 2019
Mexico City's Georgetown Records keeps Seattle's indie spirit alive
by Samantha BushmanAug 27, 2019
First a road trip, then a dream come true
by Lorenzo ChiodoAug 21, 2019
Our mission is to elevate diverse voices through media.
About | Contact | Advertise | Get Involved
P.O. Box 22806, Seattle WA 98122
Web design and development by Fran López.
© Copyright 2020 The Seattle Globalist.
+1.206.552.0568 | info@seattleglobalist.com
{"cookieName":"wBounce","isAggressive":false,"isSitewide":true,"hesitation":"","openAnimation":false,"exitAnimation":false,"timer":"","sensitivity":"","cookieExpire":"3","cookieDomain":"","autoFire":"","isAnalyticsEnabled":true}


1672 sq ft, 2014 Friendship home is in pristine condition. This home is move-in ready with all landscaping completed with grass, a walkway path and trees planted. 2 fair sized decks are newly built and located at each entrance; When first entering this home you are greeted by the openness of the floor plan as it adds a very comfortable welcoming feel with its vaulted ceilings, trim, moldings and tasteful lighting adding to the ambiance. Front entrance leads to spacious living/dinning and kitchen. Kitchen features a center island/breakfast bar, stainless steel appliances, corner pantry, dark cabinetry with plenty of counter top and cupboard space. Master bedroom boasts a deep walk-in closet with double doors, 4 piece ensuite w/deep, jetted Jacuzzi tub, double walk in shower as well as double sink with built-in cabinetry and linen closet. To complete this home on the separate end you will find the full 4 pc main bathroom as well as 2 bedrooms; This is a must see as there are many more added features and highlights to numerous to mention. Located on a rented lot gives flexibility of moving or choosing to remain in place as this beautiful home is listed at an affordable price in a great community.


text:
Q: Out of memory issue while showing recycleview of imag and sticker I am working on design of an android social application. this app look like telegram. it has two activity. on first activity, list of group is shown. when user clicked on a group, list of group  message is shown on second activity. message can contain text,photo,video or sticker. I use a RecyclerView to show list of message.
sometimes when user is working on second activity, out of memory error is happened.
when a photo message must be shown, the bitmap of before photo message is recycled and set to null, then i show the new photo message on Imageview.
to show a sticker message, by using a library, the bitmap is created from sticker file, and shown on ImageView. the process of creating bitmap, get noticeable amount of memory. i asked about sticker problem in this post
when user is working on message list activity, memory diagram look like below image.

when the user reads its group messages and come back to first activity, the second activity is destroyed but memory of second activity is not freed. when the user clicks on another group, second activity started again and it use another part of free memory. repeating this action cause consuming more and more memory and finally end of application working because of "out of memory".
when the user closes the app,the memory is not freed. if the user opens the app again, free part of memory is used to show application. multiple opening of app cause out of memory.
what should i do? how to free heap memory when an activity is destroyed or the app is closed.
the size of images (50px * 90px) and stickers (20kb - 50kb) is small.
sorry if i am poor in English. i hope that someone can help me.


Fashion brands, retailers and other importers are facing the potential of supply chain disruption this Summer, as Shanghai factories prepare for partial and complete closure in advance of the September G20 Summit in Hangzhou, close to China's largest city.
Global forwarder MIQ Logistics are reporting that their Shanghai office are receiving increasing anecdotal evidence that factories in Shanghai and Hangzhou are being instructed by unspecified officials to prepare for slowdowns, partial and total shutdowns ahead of the G-20 summit.
Apparently related to a clean air campaign, factories could reduce or cease production starting as early as June.
With the Summit not opening until September, importers sourcing from the Shanghai area could face a summer of supply chain disruption.
MIQ Logistics will continue to monitor the situation and are seeking official clarification.
"We would not normally go public with unverified reports, but official comment on issues like this is unlikely and our Shanghai office's source has been proven reliable in the past.


text:
SportsBaseballMets
Noah Syndergaard's Mets Thor bobblehead doll already a hot item
Noah Syndergaard as Thor Bobblehead. The Bobble head will be given to the first 15,000 fans in attendance, Saturday, July 22, 2017. Credit: New York Mets
By Kenny DeJohn kenny.dejohn@newsday.com Updated July 20, 2017 9:00 PM
Like the Mighty Thor, Mets ace Noah Syndergaard wields a hammer of his own — on an unusual bobblehead doll that the Mets will be giving out to 15,000 fans attending Saturday night's game against the A's.
The bobblehead shows the pitcher, whose nickname is Thor, wearing the Marvel superhero's signature head gear and an orange cape with Syndergaard's No. 34 on the back.
Syndergaard earned the nickname "Thor" in 2013 and has since lived up to the comparison, donning long blond hair like the superhero.
Armed with Mjolnir, his trusty hammer, Thor has gone toe-to-toe with some of Marvel Comics' most villainous foes since his creation in 1962.
Armed with a wipeout breaking ball, Syndergaard has gone toe-to-toe with some of the National League's most dangerous hitters since his debut in 2015.
The Thor bobblehead has already had eBay buyers paying as much as $99.99 for the promise of receiving one from persons attending the game.
"It just makes sense," said Mets outfielder Michael Conforto. "He's huge, he's beefed up and he's got the long blond hair. He throws 100, kind of looks like a superhero up there. I guess that's how it came to be, and obviously, the fans eat it up."
Conforto said that Syndergaard has a signed picture from actor Chris Hemsworth, the actor who plays Thor in the Marvel cinematic universe. It's signed, reading, "From one Thor to another."
Syndergaard has been on the disabled list since May 1 with a partial tear of his right lat muscle, so Mets fans haven't gotten to see their hero in action for the better part of three months. He played catch Monday, however, so the road to his return is well under way.
By Kenny DeJohn kenny.dejohn@newsday.com
Latest Mets headlines
Report: Mets discussing Baker as managerial candidate
Leiter enjoying life after being analyst on YES
Mets recast their net to find a new manager
2:35 Beltran, Mets part ways amid Astros' cheating scandal


text:
Q: JSON-Schema oneOf for option under root area I am trying to get the "oneof" to allow for options in root items but can't find an example and what I try gives an error.
I can get it to work if it is under another item but not under the root {'s
Example - a Job Payment that has required fields (jobNum, payee, amount, type, ) and an option for the payment type (checkInfo or dollarAmt). I know this could be done other ways, but I need this method for a more complex schema.
{
    "jobNum": "x216",
    "payee": "John Doe",
    "type": "check",
    "amount": "112.25",
    "checkInfo": {
        "number": "386"
    }
}
{
    "JobNum": "x216",
    "Payee": "John Doe",
    "type" : "Cash",
    "amount" : "112.25",
    "cashInfo" : {
        "dollarAmt" : "112",
        "coinAmt" : "0.25"
    }
}

The following gives me this error -  "Unexpected token encountered when reading value for 'oneOf'. Expected StartObject, Boolean, got StartArray"
{
    "description": "Job Payment",
    "type": "object",
    "required": [ "jobNum", "payee", "amount", "type"],
    "properties": {
        "jobNum": {
            "type": "string"
        },
        "payee": {
            "type": "string"
        },
        "amount": {
            "type": "string"
        },
        "type": {"enum": [ "check", "cash" ]
        },
        "oneOf": [
            { "$ref": "#/definitions/ptCash" },
            { "$ref": "#/definitions/ptCheck" }
        ]
    },
    "definitions": {
        "ptCash": {
            "properties": {
                "checkInfo": {
                    "number": "string"
                }
            },
            "required": [ "checkInfo" ],
            "additionalProperties": false
        },
        "ptCheck": {
            "properties": {
                "dollarAmt": {
                    "type": "string"
                },
                "coinAmt": {
                    "type": "string"
                }
            },
            "required": [ "dollarAmt", "coinAmt" ],
            "additionalProperties": false
        }
    },
    "additionalProperties": false
}

A: There are a a few issues with your schema. I fixed it for you below. I won't explain all the changes I made because I think it is mostly pretty clear by reading the schema. If you want more detail on anything, just ask and I'll update the answer with more details.
The oneOf keyword can only appear in a schema. The properties keyword is an object whose values are schemas. When you put "oneOf" directly under properties, it's not interpreted as a keyword, it's interpreted as a property called "oneOf". The validator then complains because the value of property "oneOf" is expected to be a schema, not an array of schemas like the oneOf keyword.
Your use of additionalProperties doesn't work. This keyword doesn't work the way people often assume that it does. JSON Schema keywords are not aware of any state outside of the schema they are in. Let's look at the "ptCheck" branch of your oneOf first. This describes the property "number", says it is required and that there may be no keywords other than "number".  Then your top level defines a the properties "jobNum", "payee", "amount", and "type", requires them all and allows no other properties. These two things can never be true at the same time. Even though your schema is valid, there is no JSON value that can ever be valid against this schema. That's why I moved the definitions of "checkInfo" and "cashInfo" to the top level and only put the required part in oneOf. The only downside to this approach is that you can pass both a "checkInfo" and a "cachInfo" object and it will validate. The extraneous property gets ignored. There are ways around this, but they are problematic enough that I don't advise using them.
I always advise people not to use "additionalProperties": false and to ignore unknown properties instead. The reason is that JSON Schema is a constraint system.  Any valid JSON is valid against the empty schema ({}) and each keyword in the schema adds some constraint. This is a different approach to what people are used to when defining classes. An empty class describes nothing and valid values are added. We use "additionalProperties": false to get JSON Schema to behave more like defining a class, but trying to get JSON Schema to behave like something it isn't causes challenges like the one you see here.

{
  "description": "Job Payment",
  "type": "object",
  "required": ["jobNum", "payee", "amount", "type"],
  "properties": {
    "jobNum": { "type": "string" },
    "payee": { "type": "string" },
    "amount": { "type": "string" },
    "type": { "enum": ["check", "cash"] },
    "checkInfo": {
      "type": "object",
      "properties": {
        "number": { "type": "string" }
      },
      "required": ["number"]
    },
    "cashInfo": {
      "type": "object",
      "properties": {
        "dollarAmt": { "type": "string" },
        "coinAmt": { "type": "string" }
      },
      "required": ["dollarAmt", "coinAmt"]
    }
  },
  "oneOf": [
    { "$ref": "#/definitions/ptCash" },
    { "$ref": "#/definitions/ptCheck" }
  ],
  "definitions": {
    "ptCheck": {
      "type": "object",
      "properties": {
        "type": { "enum": ["check"] }
      },
      "required": ["checkInfo"]
    },
    "ptCash": {
      "type": "object",
      "properties": {
        "type": { "enum": ["cash"] }
      },
      "required": ["cashInfo"]
    }
  },
  "additionalProperties": false
}

A: *

*oneOf should be placed in prope

*Have to re-write rule for both ptCash and ptCheck by using type: object
Following schema should work with ptCheck:
{
    "description": "Job Payment",
    "type": "object",
    "required": [ "jobNum", "payee", "amount", "type"],
    "properties": {
        "jobNum": {
            "type": "string"
        },
        "payee": {
            "type": "string"
        },
        "amount": {
            "type": "string"
        },
        "type": {"enum": [ "check", "cash" ]
        }
    },
    "oneOf": [
            { "$ref": "#/definitions/ptCash" },
            { "$ref": "#/definitions/ptCheck" }
    ],
    "definitions": {
        "ptCash": {
            "properties": {
                "checkInfo": {
                    "type": "object",
                    "required": ["number"],
                    "properties": {
                        "number": {
                            "type": "string"
                        }
                    }
                }
            },
            "required": [ "checkInfo" ]
        },
        "ptCheck": {
            "properties": {
                "cashInfo": {
                    "type": "object",
                    "properties": {
                        "dollarAmt": {
                            "type": "string"
                        },
                        "coinAmt": {
                            "type": "string"
                        }
                    },
                    "required": ["dollarAmt", "coinAmt"]
                }
            },
             "required": ["cashInfo"]
        }
    }
}

Provide some example as below:
import jsonschema
import simplejson as json

schema_filename = '47926398.json'
with open(schema_filename, 'r') as f:
    schema_data = f.read()
schema = json.loads(schema_data)

# validate with checkInfo
json_obj = {
    "jobNum": "x216",
    "payee": "John Doe",
    "type": "check",
    "amount": "112.25",
    "checkInfo": {
        "number": "386"
    }
}
jsonschema.validate(json_obj, schema)

# invalidate
json_obj = {
    "jobNum": "x216",
    "payee": "John Doe",
    "type": "check",
    "amount": "112.25",
    "checkInfox": {
        "number": "386"
    }
}
jsonschema.validate(json_obj, schema)

# validate with cashInfo
json_obj = {
    "jobNum": "x216",
    "payee": "John Doe",
    "type": "check",
    "amount": "112.25",
    "cashInfo": {
        "dollarAmt": "400",
        "coinAmt": "30"
    }
}
jsonschema.validate(json_obj, schema)

# invalidate with cashInfo
json_obj = {
    "jobNum": "x216",
    "payee": "John Doe",
    "type": "check",
    "amount": "112.25",
    "cashInfox": {
        "dollarAmt": "400",
        "coinAmt": "30"
    }
}
jsonschema.validate(json_obj, schema)

# invalidate with cashInfo.dollarAmtx
json_obj = {
    "jobNum": "x216",
    "payee": "John Doe",
    "type": "check",
    "amount": "112.25",
    "cashInfo": {
        "dollarAmtx": "400",
        "coinAmt": "30"
    }
}
jsonschema.validate(json_obj, schema)


The complexity of SAP environments is increasing. With every SAP country roll-out, upgrade, additional CRM/SRM application and custom development, the SAP environment is becoming more complex and difficult to manage in terms of cost effectiveness and ability to change. Organizations that make use of the SAP platform should beware of the consequences of complexity, and they should try to reduce complexity as much as possible.
Organizations are focused on keeping their SAP environment cost effective and agile to respond to changes in business processes. In the last decade organizations have taken initiatives in an attempt to reduce the total cost ownership, such as system consolidation ("one SAP"), SAP in the cloud and outsourcing of functional and technical support.
However, these initiatives have not led to sustainable and significant cost savings. In this article we will substantiate that the main cause for this is complexity. Complexity in the SAP environment hurts: changes take a long time from initiation to implementation, there is a lot of custom ABAP code to maintain, many (country specific) configuration changes and a relatively high number of manual postings, corrections and rework by business users.
the outsourcing of crucial knowledge on the SAP environment to external parties, making it increasingly difficult to maintain an overall view and centralized insight into the complexity.
The main objective is to reduce the level of SAP complexity. Organizations that do so can improve their ability to change their SAP environment and increase their cost effectiveness.
This article covers a structured approach on how to reduce SAP complexity. The foundations of complexity will be explained as well as our approach on how to analyze and reduce SAP complexity.
All these elements contribute to the level of complexity of the whole (complex) system. The more subsystems (or modules), interactions and diversity (e.g. different types of postings), the more complex the system is.
It helps to explain these concepts in the context of SAP. SAP is complex in itself, so how can we define complexity in the context of SAP environments? A typical SAP environment has a lot of transactions, modules, interfaces and diversity in its operations. This type of complexity is defined as controlled (and manageable) complexity, or in other words, "rewarded complexity". Rewarded complexity is complexity that adds business value. "Rewarded" as opposed to "unrewarded" complexity is a known, stable and controllable factor in the SAP environments design and operation. An example of rewarded complexity is programming a user exit for Available to Promise (ATP) to support the business requirement for real-time inventory checking in the Webshop.
In our approach we make a distinction between SAP complexity and business complexity. The business complexity consists of product, organizational and process complexity. These categories are reflected in the SAP environment in several ways: the complexity of products and services impacts the product master data in SAP, the organizational structure complexity impacts the enterprise structure (i.e., company code and profit center structure) in SAP and the level of process standardization impacts the number of sales process flows (refer to the figure below).
Our approach to complexity reduction consists of two phases, namely analyzing SAP complexity and, based on the outcome of this analysis, designing a complexity reduction program.
The objective of the analysis phase is to determine the main complexity drivers, i.e. the factors that contribute significantly to the complexity of the SAP environment and the business it supports. These complexity drivers can be used as a starting point to simplify the SAP environment and identify sources of overly complex business design, such as a relatively high number of process and product variants.
The first step is exploratory in nature and consists of developing hypotheses as to what factors influence SAP complexity. This step is conducted based on interviews with stakeholders, inspecting documentation and performing observations within the SAP system. Special attention is given to the difference and relationship between SAP and business complexity. For example, the results of this step may include identifying the SAP sales order pricing mechanism as complex (SAP complexity), which may relate to a relatively high number of manual interventions in sales discounts (business complexity). On the other hand, extensive VAT regulation (business complexity) may result in a complex VAT setup in the SAP system (SAP complexity). The first step results in an overview of factors that add to SAP complexity.
The goal of the second step is to factually measure SAP complexity based on data extracted from the SAP applications. This step benchmarks the current system against plain SAP, assuming minimum customizing and the absence of custom developments and modifications to the standard SAP. This approach also takes into account exceptions in business process execution such as manual interventions, cancellations, errors, disharmonized usage, and so forth. Using KPMG's Facts2Valuetm, a comprehensive approach to data analytics, the complexity of the SAP landscape is measured along the SAP complexity categories.
The result of the second step is a benchmark of the SAP environment compared to vanilla SAP. This benchmark provides clear insights into the main areas of complexity.
In the third and final step the primary sources of complexity, i.e. the main complexity drivers, are determined. In this step the vanilla benchmark is compared against the potential sources of complexity that were identified during the first step. This results in areas that require further detailed investigation. For example, in the first step it is identified that the VAT environment involves complex legislation across multiple countries. The benchmark indicates that the VAT codes are frequently changed, which may indicate that the VAT environment is not reflected adequately in the system. The other way around, it could be determined that 50% of the G/L accounts are not used in a harmonized way, while the financial reporting structure allows a harmonized usage.
Based on further detailed investigation, the main complexity drivers, i.e. the primary sources of complexity, can be established. The result of the third step is an overview of opportunities to reduce complexity.
Reducing SAP complexity consists of the design and execution of a complexity reduction program.
The design starts with determining the scope of the complexity reduction program. The scope is determined by offsetting the level of complexity against the level of business reward. A comprehensive product portfolio with many product variants implies intensive material maintenance and usage of complex bills of materials. This type of complexity is rewarded in the sense that it supports its counterpart of complexity in business requirements. On the other hand, the usage of different document types and other supporting customizing elements across a company that has harmonized its business processes should be defined as unrewarded complexity, as it lacks its business counterpart, and thus lacks value.
An example of plotting business reward/value against SAP complexity is depicted in the figure below, whereby each of the circles represents a complexity driver.
Multiple (technical) solutions to meet the same business requirements across the organization ("not invented here syndrome"), e.g. the usage of distinct customizing elements to support the same process and product variants across business units. These types of complexity are commonly caused by suboptimal IT governance and lack of central oversight across custom developments.
Technical solutions that are not used ("dead wood"), such as high amounts of unused custom developments. These types of complexity can be caused by changing business requirements and heritage from adopted SAP systems (as a result of mergers and acquisitions, for example). While these technical solutions do not add any business value, these types of solutions need to be technically maintained.
Custom developments instead of using standard (SAP) solutions ("reinventing the wheel"). These types of complexity originate from not using standard SAP solutions to solve a problem, commonly caused by limited understanding of available solutions, an outdated SAP environment and a technically oriented approach to SAP deployments.
While the area of complexity in the upper right of the figure (rewarded complexity) is not the main focus area, it may provide valuable insights into overly complex business design. If the main complexity drivers originate from this area, management could consider limiting the number of products and process variants, and simplifying the structure of the organization.
After the scope of the complexity reduction program has been determined, complexity reduction initiatives should be designed for each of the unrewarded complexity drivers. Depending on the nature and level of complexity involved, a complexity reduction program may involve both technical and organizational initiatives as depicted in the following figure. On one end, re-implementing a vanilla SAP removes technically unrewarded complexity in full. However, if the SAP complexity reduction program does not address its business complexity counterparts, the unrewarded SAP complexity will be re-introduced. On the other end, eliminating unrewarded SAP complexity without business complexity counterparts does not require organizational initiatives in the complexity reduction program.
Three complexity reduction scenarios can be chosen from, varying from a pure technical redesign to a full strategic business improvement scenario. A scope that is mainly focused on reducing technically unrewarded complexity requires a technical redesign, and a strategic redesign of business processes is suitable for addressing organizational complexity as depicted in Figure 5.
Phase out of custom developments by evaluating the phase-in of the latest technology, upgrades and enhancement packages.
Implement / mandate a central process governance board that promotes the use of standardized SAP solutions across business units and prevents local developments, except those responding to local fiscal and regulatory requirements.
Complexity in your SAP environment has significant consequences in terms of cost effectiveness and ability to change. While organizations have taken various initiatives in the last decade in efforts to increase efficiency and reduce complexity, these initiatives have not all led to sustainable or significant improvements. Organizations that manage complexity in the SAP environment adequately can gain significant and sustainable cost benefits and improve their ability to change. Therefore we propose a structured approach to managing SAP complexity.
The starting point of reducing SAP complexity is a thorough analysis of business and SAP complexity, applying a fact-based analysis of the SAP environment setup and usage. The goal is to identify unrewarded SAP complexity that does not support business requirements. Based on this analysis, a complexity reduction program can be initiated with the objective of removing the unrewarded complexity.
[Bar97] Y. Bar-Yam, Dynamics of Complex Systems, 1997.
[Koc12] M. Koch, ABAP Development for Sales and Distribution in SAP: Exits, BAdIs, and Enhancements.


Published 04/20/2019 06:35:25 am at 04/20/2019 06:35:25 am in Honda Cleaner.
honda cleaner 95018 60251 band air cleaner connecting tube 60 amazoncom honda scp spray cleaner and polish oz honda scp spray cleaner and polish oz cans.
honda gx qxc cyclone air cleaner docuts power equipment warehouse picture of gx qxc honda ohv engine wcyclone air cleaner, structure strength is an important factor in the work of honda air filter, amazoncom honda scpx spray cleaner and polish oz honda scpx spray cleaner and polish oz cans, honda pressure cleaner ventri larger photo honda pressure cleaner washer sale canada, honda pressure cleaner velovelo psi at gas pressure washer powered by honda cleaner engine canada n, amazoncom honda scp spray cleaner and polish oz honda scp spray cleaner and polish oz can, amazoncom genuine honda spray cleaner automotive genuine honda spray cleaner, how does honda spray cleaner and polish work sportbikesnet , motorcycle chrome air cleaner intake case cover for honda shadow motorcycle chrome air cleaner intake case cover for honda shadow ace vt vt air cleaner cover, amazoncom genuine honda cleaner automotive , honda zh cover air cleaner zh .


With the Olympics, one of my favorite events, quickly coming up upon us and many family picnics and scout parties in summer, I wanted to share with you a great idea on making memories that last.
I have received products in exchange for this post, but the opinions here are 100% mine!
I would suggest drawing straws or having teams be by family unit. I despise selecting captains and having them choose teams as someone always gets picked last. I like using a box of colored straws to have people draw for teams. Once teams are drawn, have teams select names and show their allegiance with these neon bandannas.
You will also need to spray paint a line in the grass (or use another kind of marker) that will be used for several of these games. The Tick Tac Toe and Yard Bend Game will need paint or chalk prep work before you begin- these are great tasks for the older kids to help with. I also recommend having a large poster board to keep a tally of points for each event.
I have six events here, but there are many more outdoor activities that you could add to the events list. You could also set the games up at night for an added challenge and use torches and glow sticks to light the events.
Grab this Bocce Ball Set and assign the adults on each team one of the three colored balls. You an do a winner takes all or set a leveled number of points (1st=25, 2nd=15, 3rd=5). If the kids want to participate, have adults and kids pair up and play in teams of two.
Have more than three teams? No problem, just grab two sets or play two rounds.
Spray a line across the grass, line each team up, grab this Tug of War set, and pull. This is a great teamwork game that kids and adults can play together. If you have more than two teams, play in rounds: winner takes on third team or play two heats with the winners facing off. Assign points the same as Bocce ball: winner takes all or placed points.
This might be my favorite game of them all: slip and slide races. This double water slide is perfect for kids (and adults) to race each other. Have everyone suit up (or not if you prefer) and have pairs face off. Use the same spay painted line in the grass from tug of war as your starting line.
Have kids and adults from different team pair up to face off. You will need to assign a judge to declare a winner in each race. Winner gets 5 points for his or her team.
A brain game for even the smallest of team members. With the Tick Tac Toe Set, the only prep is to use the stencils to chalk (on cement) or spray paint (on grass) the 3 by 3 board.
Teams can face off in heats with points for the winners at the end or each team can select a player to represent.
What could be more fun that a family game to test your flexibility (adults proceed with caution as you might fall and not be able to get up). The best part of the bend game set is that you can create a board as large as you need to accommodate the size of the teams.
I would suggest a kids and an adults heat of this game. Step up to the end of the board and begin. One by one the players will fall until only one winner is left!
The Jumbo Ring Toss Game comes with flags that have point values on them. Have everyone line up and toss a ring. Each person gets a turn and their team gets the points they score. Play one round, two rounds, or more.
Grab a dozen medals or trophies to award the teams. Winning team gets bragging rights as well.
Check out my summer board on Pinterest for many more activities.
What fun outdoor activities do you and your family do during summer?


text:
Just short: Stellar 4th quarter shooting not enough as No. 10 Arkansas holds on against Missouri
Excellent shooting from the field in the fourth quarter was just shy of what the Tigers needed to overcome three deep balls and clutch free throw shooting.
By Michael Howie
It was a game Missouri could've won, but it just couldn't finish the job.
Aijha Blackwell's 20-point double-double wasn't enough to overcome No. 10 Arkansas' hot three-point shooting in a narrow 91-88 loss in Fayetteville, Ark.
Arkansas came in shooting an impressive 37.2% from the three-point line and 45.6% from the field. Against Missouri, not too much was different. The Razorbacks made 12 three-pointers and shot 39.4% from the field to prevent Missouri from having much of a chance.
Still, the Tigers never went away. They made 11 of their 16 shots in the fourth quarter and scored 29 points — the most of any quarter between the two teams.
"I was proud of our girls," Missouri coach Robin Pingeton said. "I thought we grew up a little bit, which was big bouncing back from a really disappointing game [against Alabama]."
Both teams shot the ball well in the first quarter. The Tigers were 8-14 from the field while the Razorbacks shot 9-19 and 4-9 from beyond the arc. Missouri forward LaDazhia Williams had nine points in the first quarter off perfect shooting and three trips to the free-throw line.
Scoring runs filled the first half for both teams.
Missouri started the game on an 8-0 run. Arkansas responded with a 14-5 run to take the lead. The Razorbacks then opened the second quarter on a 10-0 run, but the Tigers kept the score close through a 9-2 run of their own. Arkansas ended the second quarter the way it started it — a 7-0 run capped off by Amber Ramirez's buzzer-beating three-pointer to extend the Razorbacks' halftime lead to 11.
"It's gotta be that next play mentality," Pingeton said. "That last play is over. That's an experience thing, it's a maturity thing. We've gotta have a quicker bounce back."
Three Arkansas players — Amber Ramirez, Chelsea Dungee and Makayla Daniels — all had at least 10 points at the half.
In the second half, Missouri turned it up a notch. The Tigers scored on 20 of their 30 shot attempts including four of 10 from the three-point line. In an average game, that may have been enough to come back and win.
Not tonight.
Arkansas had a good second half of its own, making five three-pointers and going 19-24 from the free-throw line.
"The first half, we did a much better job keeping them away from the free-throw line," Pingeton said. "In the second half, we put them on the free-throw line too much."
The Razorbacks put together an all-around solid shooting night, finishing the game 39.4% from the field, 35.3% from three and 23-31 from the line.
"They can score at the rim, they can score from the free-throw line and score from the three-point line," Pingeton said. "We had to eliminate one of those."
Blackwell finished with a double-double, her fourth of the season. Five Missouri players were in double digits, the second time already that has happened this season. It only happened once all of last season.
Missouri turned a double-digit lead to three early in the fourth quarter. After Arkansas got the lead back to nine, the Tigers once again decreased it to four. But the tying basket was just never there, and Missouri dropped to 4-3 on the season and 0-2 in SEC play.
Its next opponent is scheduled to be Auburn on Jan. 10, but that could change. The Tigers were supposed to take on Vanderbilt on Jan. 7, but positive COVID cases within the Commodores' program led to the cancellation.
There's a chance Missouri will play a non-conference opponent this week instead, but that has not been confirmed.
"I'll leave that for our administration," Pingeton said. "I'd love to get another game. I think our kids need to play right now."
Edited by Kyle Pinnell | kpinnell@themaneater.com


text:
Charlie Martin To Be The First Transgender Driver To Compete In Nürburgring 24 Hours
Erin Marquis
Photo: Charlie Martin
Charlie Martin has pushed for racing to be a more inclusive place for years, and this weekend she'll make both LGBTQ and racing history by being the first transgender car driver to race in the Nürburgring 24 Hours.
"This is one of the biggest endurance races of the year, on a circuit famous for its complexity and changeable conditions," Martin told Autoblog. recently. "This is also a very proud moment for me as the first transgender entrant in this race."
Martin has been fascinated with racing since her childhood. She started her career as a hillclimb racer in a Peugeot 205 before trying her hand at circuit racing by running a three-hour endurance race at Le Mans.
In 2012, in the middle of growing her presence in the sport, Martin began the complicated process of transitioning to living fully as a woman. She considered giving up racing altogether, but friends and family convinced her that she could be both a woman and a racecar driver. She went on to win her first race in 2014, in France at St-Gouëno. Last year she raced a Norma M30 LMP3 car in the Michelin Le Mans Cup. She's driving a BMW M240i in the Nürburgring race this weekend.
How Hillclimb Racer Charlie Martin Is Trying To Make Motorsports For Everybody
Ahead of the Ginetta GT 5 Challenge race weekend at Silverstone during the June 8 weekend, racer…
By staying in racing, she positioned herself to be a voice for inclusion in what is normally considered a very heteronormative masculine sport. Jalopnik interviewed Martin in 2018 and learned what staying in racing meant to her:
Above all else, Martin sees herself as a racer. When she puts her helmet on and gets behind the wheel, she's just like any other person on the starting field.
But she also recognizes the importance of telling her story. She recognizes the role she can play as a gay trans woman and an LGBTQ+ advocate in a traditionally heterosexual, cisgender, male-dominated field. Recently, Martin has begun working with the charity Stonewall and hopes the see the relationship there flourish.
"In a position where you're visible publicly and doing things to get exposure, if you can promote a positive message, then that's a great opportunity to do so," Martin says in tandem with her activism. It's the same with any other driver—she hopes that if more big names in the sport genuinely speak out in support of the LGBTQ+ community, then we can start seeing a big change in the atmosphere surrounding the motorsport world.
Martin has competed all season in the Nürburgring Endurance Championship with Adrenalin-Motorsport. As well as racing in Nürburgring 24 Hours, Martin plans to compete in the Britcar Championship in a Praga R1, according to Autoblog.