text:
Note: The remedy has been updated
Schylling at (800) 767-8697 from 8:30 a.m. to 5 p.m. ET Monday through Friday, email at firstname.lastname@example.com or online at www.schylling.com and click on Safety Alerts & Recalls at the top of the page for more information.
Recall Details
This recall involves the Police Press & Go toy vehicles. The white plastic toy cars have a painted dark blue hood and trunk, light blue windshield with a black eyes and mouth painted on the front of the car. There is a police head coming out of the roof of the car wearing a blue police hat with a green star on the center of the hat. When the police head is pressed down it winds up the motor and the car moves forward. The toy vehicles measure about 2.5 inches wide by 3.5 inches long by 3.5 inches tall. "Schylling Rowley, MA" and UPC number "01964922782" are printed on the bottom of the toy cars.
Consumers should immediately take the recalled toy vehicles away from children and contact Schylling for a full refund.
Schylling has received one report of the police hat detaching from the toy vehicles. No injuries have been reported.
Specialty toy and gift stores nationwide from April 2010 through April 2015 for about $5.
Schylling Inc. of Rowley, Mass.
The U.S. Consumer Product Safety Commission is charged with protecting the public from unreasonable risks of injury or death associated with the use of thousands of types of consumer products under the agency's jurisdiction. Deaths, injuries, and property damage from consumer product incidents cost the nation more than $1 trillion annually. CPSC is committed to protecting consumers and families from products that pose a fire, electrical, chemical or mechanical hazard. CPSC's work to help ensure the safety of consumer products - such as toys, cribs, power tools, cigarette lighters and household chemicals -– contributed to a decline in the rate of deaths and injuries associated with consumer products over the past 40 years.
Federal law bars any person from selling products subject to a publicly-announced voluntary recall by a manufacturer or a mandatory recall ordered by the Commission.
To report a dangerous product or a product-related injury go online to www.SaferProducts.gov or call CPSC's Hotline at 800-638-2772 or teletypewriter at 301-595-7054 for the hearing impaired. Consumers can obtain news release and recall information at www.cpsc.gov, on Twitter @USCPSC or by subscribing to CPSC's free e-mail newsletters.
Please use the below phone number for all media requests.
Phone: (301) 504-7908
Spanish: (301) 504-7800


text:
The women's tuxedo has been blurring the gender divide for years. Some call it an evening gown alternative, while others have tagged it as sophisticated glamour. Thanks to Yves Saint Laurent, who gave birth to le smoking in the 1960s, this androgynous ensemble has now become a womenswear classic and very much a wardrobe staple. But not one that is without the potential for reinterpretation.
The women's tuxedo trend trumpet last blew out in 2008 when we saw a fountain of celebrities donning the look. Now, with 2012 on the horizon, we're seeing the trend make a flashing comeback with a whole lot of mischief, seduction and femininity – but this time it's different. It has evolved.
Read on to see how to master this look and find out which pieces are worth investing in so you don't look like you're living 2008 all over again. Don't forget that if you'd like stay updated with all the latest trends and how to wear them, you can subscribe to Fashionising.com's newsletter or RSS feed.
Women's tuxedo at Ruffian A/W '11
Women's tuxedo for fall 2011 & 2012
We've all seen Helmut Newton's iconic image of YSL's Le Smoking: a model with slicked-back hair, cigarette clutched casually in hand, becomes a statuesque, androgonous fixture on a Parisian street. The whole look is pristinely tailored; the pants are high in the waist and wide in the leg, but the blouse underneath the jacket is soft and finished at the neck by a bow. It's the epitome of feminine-meets-masculine, and it's exactly where the women's tuxedo trend has returned to in 2011 / 2012.
When we last saw the tuxedo as a full-force trend back in 2008 it was a powerful statement that kept mostly to the glaringly sexy side with skinny cuts, tight fits and plenty of high-sheen satin. Since then, men's tailoring has relaxed and so too has women's. Like Le Smoking, the women's tuxedo is once again about that effortless androgyny that's stitched up in immaculately tailored yet lightly relaxed pieces, minimalist silhouettes, and that all important hint of 1970s glamour.
Helmut Newton's iconic photo of Le Smoking, 1975
So what does that mean exactly?
It means you're best off leaving behind these attributes from 2008:
- Women's tuxedo jackets with pointed or puffy accentuated shoulders.
- Skimpy tux-inspired outfits that look like they could belong in the costume section of a lingerie store.
- Overly glamorous head-to-toe tuxedo looks that involve heels, bow-ties, and top hats all at once.
- Satin ruffle blouses (opt instead for cotton, lightweight silks or sheer fabrics).
Instead, for 2011 and into 2012:
- Take cues from the 1970s with wide, peaked lapels.
- Don't just stick to traditional black; while 2008's skinny jeans and a black dinner jacket combo can be updated for today, there are also other more interesting ways to stand out in the trend.
- For a different take there's also the option of embellished, sparkling women's tuxedo jackets or pants that scream 70s glam rock; or the ultra-luxurious all-over velvet tuxedo a la Tom Ford.
Velvet women's tuxedo from Tom Ford Women's A/W 2011 collection
For more ideas of how to wear the trend in 2011 / 2012 read on to the sections below.
The tuxedo for spring / summer 2011
For those fashionisers in the southern hemisphere yet to experience spring / summer 2011, don't fear: even though wearing heavy winter fabric seems unimaginable for sultry summer months, there's still plenty of scope for this trend to seep through. All it needs is clever styling, like some serious blocks of colours and light, clingy fabrics. Pair a women's tuxedo jacket with well-fitted shorts or a body-hugging skirt to avow a sophisticated summer look. Another perfect option is a full white dinner suit in a relaxed summer cut.
Spring / summer take on the women's tuxedo jacket: Jenni Kayne Resort '12
Complimentary trends
Don't be surprised if you see the women's tuxedo hanging out with complimentary trend buddies like plunging necklines, sheer fabrics, and even the year's revival of flared pants. Relaxed and effortless it may be, but that doesn't mean sexiness has to go out the window: an open neck or sheer shirt are the perfect ways to add a dash of sex appeal, while a slim-cut flare over a high heel adds a different type of seductiveness.
Alternatively a wide leg pant, either a tuxedo pant or a tailored pant paired with a tuxedo jacket, can lean either to the 70s or the 1940s, while a slouchy pant cut can offer a hint of tomboy cool.
Relaxed tuxedo at Alexander Wang, pre-Fall '11
How to wear the tuxedo trend in 2011/2012
This autumn / winter, the easiest way recreate this look in your own wardrobe is by playing with it. Here are our tips on how to master the tuxedo trend:
- Investing in a tuxedo shirt is a great way to create the 'tuxedo' effect even when worn without a jacket.
- If you want to stand out, stay clear from the obvious interpretation and hunt for pieces in different fabrics like, tweed, cashmere, satin, wool, silk and velvet.
- Another way to stand out is by way of pants that sport a contrast stripe or a trim down each leg. Alternatively pants with wide legs and a cummerbund work the look perfectly, and keep the statement below your waist.
Tuxedo pants with cummerbund at Prabal Gurung A/W '11
- For uniformity, swear by one colour from neck down and it doesn't have to be strictly black or white.
- To stay on the masculine side of the fence, accessorize the look with a bow tie, chiffon neck tie, or suspenders.
The bow tie for women: Yigal Azrouel A/W '11
- Brave the plunging neckline and go shirtless underneath. Instant sexiness guaranteed!
- Flirt with the options of an underneath shirt – a sleeveless sheer chiffon top or a lacy silk blouse.
- Embrace the 70s trend and flaunt high waisted flare-leg pants, paired with a structured dinner jacket.
- There are no real boundaries when determining the length of the tuxedo jacket, other than what best flatters your height and figure. It can either end at the waist or go all the way down to the knees.
- Leather brogues worn with cropped pants and a double-breasted dinner jacket can garner a successful attempt at androgyny.
- Beauty wise, contrast with bold lips and nails; berry, coral and pink are on-trend. Keep the hair simple in an up-do with a centre-part – try a chignon or topknot.
Tuxedo trend updates

subset: commoncrawl


text:
What do the pictures above have in common? Well, signing up for one can earn you the other two!
Swagbucks is a site that gives you points (swagbucks) for doing very, very easy things like searching the web, taking polls and surveys, completing free offers and more. Just today, they launched Swagbucks Games, where you can earn even more bucks!
If you are new to Swagbucks, sign up using this link and enter code GameTime upon sign up for an additional 20 Swagbucks! You already get 30, so now you're at 50 and the cash out level for a $5 Amazon gift card is only 450!
Swagbucks is a VERY easy way to earn extra fun money or gift cards, so sign up today!


text:
Shadonir is an undead/sleipnir-type enemy in Final Fantasy XII found in the Great Crystal. Its rare poach is the Spica.
Bestiary entry Edit
Page 1: Observations Edit
- Being a warhorse, the oldest breed known in Ivalice, once belonging to the great cavalry of an ancient state known for its love of warfare. These majestic and terrifying creatures determined victory in battle in an age when cannon and like armaments were unknown, and they were truly loved by their handlers and the people of the land they served. For their part, they harbor an undying loyalty to their homeland, though it be naught more now than dust and echoes. They serve and protect its memory to this very day, though their bodies have faded and they are something near to spirits.
Page 2: Sage Knowledge 24 of 78 Edit
Main article: Sage Knowledge 1-26 § SK 24: Clans of Ivalice
Gallery Edit
Related enemies Edit
Community content is available under CC-BY-SA unless otherwise noted.


text:
IdentityServer and Signing Key Rotation
When maintaining keys used for cryptographic operations (such as when running a token server that maintains keys used to sign tokens), a good security practice is to periodically rotate your keys. This is the process of retiring one key and onboarding another.
Within IdentityServer, the way you indicate your primary signing key is with the AddSigningCredential extension method we provide that adds IdentityServer to the ASP.NET dependency injection system. AddSigningCredential can accept an X509 certificate, the subject distinguished name or thumbprint of a X509 certificate stored in the windows certificate store, or just a plain old RSA key. The public portion of the key used for signing will be included in the discovery document.
We also provide an AddValidationKey extension method to allow additional keys to be included, such as those that are pre-active, or deactivated. In other words, the keys that you plan to use, or that were recently used for signing.
All of those calls might look like this in your ConfigureServices in Startup:
services.AddIdentityServer() .AddSigningCredential("CN=currentKeyName") .AddValidationKey("CN=lastKeyName") .AddValidationKey("CN=nextKeyName")
So, what's the process for performing key rotation?
When you first deploy your IdentityServer, you will have your first signing key (let's call it key1). You will run with this in production for some amount of time (say 90 days, or 9 months, or whatever you deem the acceptable duration your key should be in use). This is what the AddSigningCredential API is for.
You will then prepare key2 as the next key to be used, but you can't switch immediately to using it. The reason is that normally OpenID Connect and/or OAuth2 consumers will cache your token server's key material from the discovery document. If you were to immediately change keys, then new tokens signed with key2 would be delivered to consumers that have only key1 in their cache. What is needed is to introduce key2 into the discovery document prior to the switch over to using key2. This is what the AddValidationKey API is for.
Now in your discovery document you still have key1 as the active signing credential, and additionally key2 as a validation credential. You will leave this running for some amount of time (say 2-5 days or longer depending on cache durations) to allow consumers to update their caches from your updated discovery document. Then you can switch over and promote key2 to your active signing credential.
But what about key1? Well, you need to maintain it in the discovery document even though you won't be using it anymore for signing. Why?
Let's say that you just issued a token signed with key1, and then you switch keys (and drop key1 from your discovery document), and then at that exact moment a consumer reloads their cache. This would mean that the consumer would then only have key2 in their cache and would not be able find the correct key to validate the token signed with key1.
In short, when you retire a key, you need to keep it in discovery. This means when you retire a key you will just switch the two keys used in the calls to AddSigningCredential and AddValidationKey.
Then after some more amount of time (longer than the expiration of any issued token), you can finally remove key1 from discovery.
Given the above workflow, it's possible that you could have two keys in discovery (if not three or more, depending on how narrow your window of rotation). Just as a means to validate my point, here is a screen shot of Azure Active Directory's key materials from its discovery document. As you can see, there are three signing keys:
This also means there are three steps in a key rotation lifecycle. Depending on how your build and deploy your IdentityServer, this might be a manual (and potentially tedious) process. But in short, the primitives are in place for you to implement key rotation in IdentityServer.
Rock Solid Knowledge and I have teamed up to release a commercial component that performs key management and key rotation automatically. It can be found here. Enjoy!
Scope and claims design in IdentityServer
Very often I see developers that are confused about the relationship of scopes and claims in IdentityServer. Hopefully this blog post will help.
In OpenID Connect and OAuth 2.0 the definition of a scope is a resource that a client application is trying to get access to. This concept of a resource is deliberately vague and the confusion is exacerbated by the two different specs using the scope concept for two similar yet disparate uses. Also, designing scopes is up to the application developer which means you must impart semantics into your scopes, and this requires some amount of planning and/or design.
OpenID Connect and Identity Scopes
Given that OpenID Connect is all about an application authenticating a user, then the scope, as a resource, means that the application wants identity data about a user. For example, the user's unique ID, name, email, employee ID, or something else along those lines. This scope is an identity resource and is an alias for some number of claims that the application requires about the user.
The OpenID Connect specification defines some scopes, for example openid which simply maps to the user's unique ID (or sub claim), and profile which maps to about 10+ claims which include the user's first name, last name, display name, website, location, etc. Custom identity scopes are allowed and the scope of the scope, so to speak, is defined by the application developer. So a custom scope called employee_info could be defined which could represent the employee ID, building number, and office number.
In IdentityServer, these identity scopes are modeled with the IdentityResource class. The constructor allows you to pass the name of the scope (e.g. employee_info) and a string array which is the list of claims that scope represents.
new IdentityResource("employee_info", new[] { "employee_id", "building_number", "office_number"})
The scopes (and corresponding claims) defined by the OpenID Connect specification are provided by the IdentityResources class and its nested classes such as OpenId, Profile, etc.
var identityResources = new[] { new IdentityResources.OpenId(), new IdentityResources.Profile(), };
The nice aspect of this design is that the claims are only delivered to the application if needed as expressed by the scopes requested, and different applications can receive different claims by requesting different scopes.
OAuth 2.0 and API Scopes
Given that OAuth 2.0 is all about allowing a client application access to an API, then the scope is simply an abstract identifier for an API. A scope could be as coarse grained as "the calendar API" or "the document storage API", or as fine grained as "read-only access to the calendar API" or "read-write access to the calendar API". It's possible that other semantics could be infused into your scope definitions as well. This scope is an API scope and models an application's ability to use an API.
In IdentityServer, these API scopes are modeled with the ApiResource class. The constructor allows you to pass the name of the scope (e.g. calendar or documents).
var apiResources = new[] { new ApiResource("calendar"), new ApiResource("documents"), };
The access token used to call these APIs will contain a minimal set of claims. Some of these claims are protocol claims (e.g. scope, issuer, expiration, etc), and there is one main user related claim which is the user's unique ID (or sub claim). If other claims about the user are needed in one of the APIs, then the ApiResource constructor provides an additional constructor parameter as a string array which is the list of claims needed. This, in essence, allows the ApiResource class to model an API and the user claims needed by that API.
var apiResources = new[] { new ApiResource("calendar", new[] { "employee_id" }), new ApiResource("documents", new[] { "country" }), };
The nice aspect of this design is that the claims are only present in the access token if the access token is meant to be used at those APIs.
We feel this is a nice balance for how to work with the abstract scope concepts in the OpenID Connect and OAuth 2.0 protocols, and at the same time allowing a concrete pattern for expressing what claims are needed by apps and APIs.
Hope this helps.
Using OAuth and OIDC with Blazor
Recently Safari on iOS made changes to their same-site cookie implementation to be more stringent with lax mode (which is purportedly more in-line with the spec). In my testing, I noticed that using strict mode same-site cookies had the same behavior on both Chrome and FireFox running on Windows. This behavior affected ASP.NET Core's handling of external authentication providers for any security protocol, including OpenID Connect, OAuth 2, google/facebook logins, etc. The solution was to unfortunately configure cookies to completely disable the same-site feature. Sad.
I was curious if we could really figure out what was happening and come up with a solution that allowed us to keep using same-site cookies for our application's main authentication cookie. I think I have, and this solution could work with any server-side technology stack that works similarly to how ASP.NET Core does when processing authentication responses from external providers (cross-site).
Recap of what's not working
Here's a summary of the expected flow:
The step where the flow fails is on the last step, step4, where the user is not logged in. It turns out that's not exactly what's happening. Here are the details:
Step1: An anonymous user is in their browser on your application's website. The user attempts to request a page that requires authorization, so a login request is created and the user is redirected to the authentication provider (which is cross-site).
Step2: The user is presented with a login page and they fill that in and submit. If the credentials are valid then the provider creates a token for the user, and this token needs to be delivered back to the client application. This delivery is performed by sending the token back into the browser and then having the browser deliver it to the application's callback endpoint. This delivery could be via a redirect with a GET or a form submission via a POST. The problem with same-site cookies is not affected by the method of delivery back to the client application, so either of these triggers the issue.
The key point here is that, from the browser's perspective, the user is starting a workflow from the login page in the provider's domain. The response is then sending the user back to the client application (which is cross-site).
Step3: The client application will receive and validate the token, and then issue a local authentication cookie while redirecting the user back to the original page they requested.
This is the step that I think is easy to misunderstand. Because the request from the provider back to the app is cross-site, there is a belief that the issued cookie is ignored by the browser. It is not, though, and the browser will in fact maintain this cookie issued from your application.
Step4: The last redirect in the workflow sends the user back to the original page they requested. This is the step that fails from the end-user's perspective. The cookie issued from step3 is not sent to the server, and so the user seems to not have been authenticated.
The reason this step fails is not because the cookie was not issued to the browser, but instead because the current redirect workflow started from the provider's login page, which is cross-site so the browser refuses to send the cookie just issued in step3. If at this point the user were to refresh the page, or manually navigate their browser to the original page the browser would send the cookie and the user would be logged in. The reason is that a refresh or manual navigation is not a cross-site request.
The fix in general
The solution to this problem then is to change how the final redirect in step3 is performed. In ASP.NET Core it's done with a 302 status code, but there's another way. Instead the response in step3 could be a 200 OK and render this HTML:
<meta http-equiv='refresh' content='0;url=https://yourapp.com/path_to_original_page' />
This response in step3 in essence ends the cross-site redirect workflow from the browser's perspective, and then asks the browser to make a new request from the client-side. The trick is that this request is a new workflow and considered same-site since it's from a page on the application's website, and then the authentication cookie will be sent. Not Sad.
The fix specifically for ASP.NET Core
Given that the redirect in step3 is handled by ASP.NET Core's authentication system, we need a way to hook into it and override the redirect. Unfortunately there's no event that's raised at the right time for us to change how the redirect is done. So instead we use middleware so we can catch the response before it leaves the pipeline:
public void Configure(IApplicationBuilder app) { app.Use(async (ctx, next) => { await next(); if (ctx.Request.Path == "/signin-oidc" && ctx.Response.StatusCode == 302) { var location = ctx.Response.Headers["location"]; ctx.Response.StatusCode = 200; var html = $@"  <meta http-equiv='refresh' content='0;url={location}' /> "; await ctx.Response.WriteAsync(html); } }); app.UseAuthentication(); app.UseMvc(); }
This puts a middleware in front of the authentication middleware. It will run after the rest of the pipeline and inspect responses on the way out. If the request was for the application's authentication redirect callback from step3 (in this case the typical path when using OpenID Connect) and the response is a redirect, then we capture that redirect location and change how it's done using the client-side <meta> tag approach instead.
Front-channel sign-out notification for OpenID Connect
It turns out there's another type of request into your app from the external provider when using OpenID Connect, which is the front-channel sign-out notification request. This request is performed in an  and requires the user's authentication cookie to perform the sign-out. Given that this is absolutely cross-site, this means the same-site cookie would be blocked by the browser. We need to perform the same sort of trick to get the browser to make this request originating from our application so the browser considers it same-site.
Here's the additional code to handle this type of request:
public void Configure(IApplicationBuilder app) { app.Use(async (ctx, next) => { if (ctx.Request.Path == "/signout-oidc" && !ctx.Request.Query["skip"].Any()) { var location = ctx.Request.Path + ctx.Request.QueryString + "&skip=1"; ctx.Response.StatusCode = 200; var html = $@"  <meta http-equiv='refresh' content='0;url={location}' /> "; await ctx.Response.WriteAsync(html); return; } await next(); if (ctx.Request.Path == "/signin-oidc" && ctx.Response.StatusCode == 302) { var location = ctx.Response.Headers["location"]; ctx.Response.StatusCode = 200; var html = $@"  <meta http-equiv='refresh' content='0;url={location}' /> "; await ctx.Response.WriteAsync(html); } }); app.UseAuthentication(); app.UseMvc(); }
The workflow for this request is simply re-issuing the request to the sign-out notification endpoint, with the difference being that it will now be same-site. The "skip" flag is needed to ensure we don't re-issue the request again on that next request.
More general ASP.NET Core solution
The above code is fine if you're willing to hand-code (and know) the endpoints that you need to convert the cross-site redirect into same-site redirects. But if you have several endpoints because you're dealing with several external providers, then this might be tedious. Here's a more generalized solution to the problem:
public void Configure(IApplicationBuilder app) { app.Use(async (ctx, next) => { var schemes = ctx.RequestServices.GetRequiredService<IAuthenticationSchemeProvider>(); var handlers = ctx.RequestServices.GetRequiredService<IAuthenticationHandlerProvider>(); foreach (var scheme in await schemes.GetRequestHandlerSchemesAsync()) { var handler = await handlers.GetHandlerAsync(ctx, scheme.Name) as IAuthenticationRequestHandler; if (handler != null && await handler.HandleRequestAsync()) { // start same-site cookie special handling string location = null; if (ctx.Response.StatusCode == 302) { location = ctx.Response.Headers["location"]; } else if (ctx.Request.Method == "GET" && !ctx.Request.Query["skip"].Any()) { location = ctx.Request.Path + ctx.Request.QueryString + "&skip=1"; } if (location != null) { ctx.Response.StatusCode = 200; var html = $@"  <meta http-equiv='refresh' content='0;url={location}' /> "; await ctx.Response.WriteAsync(html); } // end same-site cookie special handling return; } } await next(); }); app.UseAuthentication(); app.UseMvc(); }
The above code is, in essence, the same code from ASP.NET Core's UseAuthentication for dealing with requests from external providers. I have simply weaved the redirect handling logic into the normal processing that was being done for normal ASP.NET authentication. Perhaps this type of behavior might make its way into ASP.NET Core in the future.
The State of the Implicit Flow in OAuth2
This blog post is a summary of my interpretation and perspective of what's been going on recently with the implicit flow in OAuth2, mainly spurred on by the recent draft of the OAuth 2.0 for Browser-Based Apps (which I will refer to here as OBBA) and the updated OAuth 2.0 Security Best Current Practice (which I will refer to as the BCP) documents from the OAuth2 IETF working group. These are still in draft, so it's possible they might be changed in the future.
This is a long post because these new documents have forced the community to rethink the security practices we've been using for several years now.
A brief history of the implicit flow
This trepidation was documented in the RFC6819, the OAuth 2.0 Threat Model and Security Considerations spec. In fact, many threats for all the flows are covered in that RFC, and any decent client and token server implementations should heed the advice (for example, using the state parameter for cross-site request forgery (CSRF) protection, exact redirect URI matching, etc.). But the aspect of the implicit flow that is most criticized as difficult to protect is also the fundamental mechanic of what defines the implicit flow, namely that the access token is returned from the token server to the client from the authorize endpoint.
One question that would commonly be asked about making browser-based clients more secure is "what about code flow – why can't we use that instead?". It turns out code flow (by itself) was worse because 1) public clients don't use a real secret to exchange the code at the token endpoint, so an attacker could just as easily steal the code to obtain the access token, 2) codes passed via the query string are sent to the server (whereas fragment values are not), so they would be exposed more than when using implicit flow, 3) the client is required to make more requests to complete the protocol for no additional security, and 4) to use the token endpoint the token server would need to support CORS, and CORS was not yet widely enough supported by browsers. At that time, the spec designers could not take a dependency on CORS thus they had to find an alternative. I think this is (at least) one of the main reasons implicit as a flow was originally devised.
The spec committee has long wanted something built into the protocol itself to help protect against this threat of access token leakage from the URL. There are numerous posts on the working group email list that discuss this (from the time OAuth2 started being developed in 2010 and since it's completion in 2012). But, at the time, the implicit flow was the best they had to offer. It was important that they provided some guidance rather than no guidance for fear of people inventing their own security protocols.
And just so we're all clear on the value of specifications; they are pre-vetted threat models. That's why we like them and (typically) follow them, because there is a high level of scrutiny, many people have thought about the attacks, documented the approaches we can take to mitigate them, and educated us on the current known issues for the types of activities we're trying to perform. Without them each developer would have to come up with their own security and threat model it and that historically hasn't sufficed.
A new hope
Nonetheless, in the working group there was still a desire to "do better" when it came to the implicit flow. Looming on the horizon was hope: HTTP token binding (first introduced in 2015). HTTP token binding was a new spec that would (basically) tie the token to a particular TLS connection ensuring only the rightful client could use that token. This provided a solution to address the concerns about exfiltrating tokens from the browser (and other types of clients too). Things were looking up and the future of security was good. In fact, work was in progress in 2016 to incorporate this new token binding feature into the OAuth2 protocol, but then, unfortunately, in 2018 Google made the decision to drop support for this "unused feature" in their Chrome browser. This effectively made token binding impractical for browser-based clients (despite the final token binding RFCs being completed in the same month).
Around the same time (in 2015) the OAuth2 working group devised RFC7636 Proof Key for Code Exchange by OAuth Public Clients (also known as PKCE) to address an attack against native clients. The attack involved stealing the authorization code as it was being sent back to the client in the redirect URI, and since public clients don't have a real secret then the authorization code issued was as good as the access token. The mitigation used in PKCE was to create a new dynamic secret each time a client needed to connect to the authorize endpoint. This dynamic secret would then be used on the token endpoint and the token server would help guarantee that only the rightful client could use the code to obtain the corresponding access token.
I don't think anyone in the OAuth2 working group anticipated it, but PKCE turned out to be useful for all types of clients not just native ones. Given that token binding had fizzled, the idea of using code flow with PKCE became a candidate to address the issue of access tokens being exposed in the redirect URI for implicit clients. Also, by this time CORS had finally become well enough supported that it could be utilized for these browser-based clients. This confluence is what seems to have galvanized the work on the documents that this blog post is about.
The OAuth 2.0 for Browser-Based Apps document
In addition to including many of the suggestions already described in the existing RFC6819 OAuth 2.0 Threat Model and Security Considerations, and the use of some other already well-known security practices for JavaScript apps (such as using CSP and CORS), OBBA, in short, recommends using code flow with PKCE to mitigate the potential exposure of the access token from the URL. That's the main thrust of the document. That's it.
And having thought about it, despite having all the existing mitigations for implicit flow, I agree that code flow with PKCE is valid advice and an improvement. Justin Richer, on the working group email list, summarized it the best in my opinion:
"The limitations and assumptions that surrounded the design of the implicit flow back when we started no longer apply today. It was an optimization for a different time. Technology and platforms have moved forward, and our advice should move them forward as well."
As such, I have updated my OIDC certified client library oidc-client-js to support code flow with PKCE as of 1.6.0 (released in December 2018). I will follow up with another blog post on those details.
Other recommendations in OBBA
My summary of OBBA is a bit curt; it actually does provide a few other recommendations for JavaScript apps. The first has to do with same-domain apps, and the second has to do with the elephant in the room now that code flow is in play which has to do with refresh tokens. I have concerns about the latter.
Same-domain apps
The somewhat surprising recommendation in OBBA for same-domain applications is to not use OAuth2 at all and use the old approach of using cookies to authenticate to the backend API. Suggesting an approach that makes security worse seems counterproductive, but the recommendation is based on yet another recent security specification: Same-site Cookies. Same-site cookies allows a web server, when issuing a cookie, to instruct the browser to only send the cookie when requests comes from the domain that issued the cookie. This behavior mitigates the CSRF attack.
Given that same-site cookies have sufficient browser support now, it seems practical to rely upon it for our CSRF protection and thus this recommendation in OBBA is also convincing. But at the same time it's sort of ironic that the OAuth 2.0 for Browser-Based Apps best practices document suggests not using OAuth.
Anyway, this doesn't help you if your API must be accessed by clients on different domains or from clients that aren't running in the browser, so using OAuth2 and token-based security for your API for those scenarios is still appropriate.
Token renewal and refresh tokens
Access tokens expire and client applications need some user-friendly mechanism for renewing those access tokens. Prior to OBBA, a common renewal technique for implicit clients would was to make a new request to the authorization endpoint but using a hidden iframe. In fact, the OIDC spec even added a provision for this style with the prompt=none authorization request parameter. This relied upon the user's authentication session (typically in the form of a cookie) at the token server for this to succeed. This approach works fairly well (if you can get over your incense of still using an iframe in this day and age). Recall, though, that when the implicit flow was developed CORS was still not a viable option. And even with the updated guidance in OBBA, the iframe approach is still a valid approach.
The practical effects of OBBA and BCP
The OBBA has language that seems to contradict the earlier statement about not using refresh tokens. The OBBA and the BCP (the other document this post is about) both indicate that you need to evaluate for yourself if you want to use refresh tokens in browser-based clients.
To their credit, both documents provide guidance on ways to protect the refresh token in the browser and mitigate abuse by an attacker. The main mitigations include using a client-bound refresh token and/or performing refresh token expiration and rotation when the refresh token is used. Unfortunately, these mitigations might not be available based on the situation. Having said that, I also added refresh token support to oidc-client-js in 1.6.0, including renewal and revocation. Again, more about that in another blog post.
If you wish to use refresh tokens in the browser, this means you must use a token server that has the mitigation features described in these documents. Not all token servers support these recommendations. I believe one intended audience of these documents is the token server vendors. But on the working group email list I see some vendors that express concern that they will not be able to accommodate the approaches recommended (or at least not soon). Having said that, IdentityServer already has support for many of the recommendations, and we are making plans to add additional mitigations.
This escape clause is the concern I have with these documents. I'm left uneasy with the burden now being back on the developer to decide to use refresh tokens and evaluate their token server's support for mitigations for use with browser-based clients. The developer will need to know how to use them, configure them properly, know how to protect them in their client, and how to threat model those decisions. We know that most developers are not security specialists. From that perspective, perhaps this is a step backwards in terms of improving overall security. I suspect we will see compromises in the future based on refresh tokens being used in the browser.
Where are we?
Same-domain apps with cookies
This style would be for same-domain applications that use same-site (and HTTP-only, as always) cookies to authenticate to an API backend. The backend would issue the cookie based on the user's authentication (which itself could be as a result of SSO to an OIDC token server), and cookies would be renewed while the user is still active in the client. This style of application would use well-established approaches for securing the client, including CSP. This style is admittedly the easiest for the developer. The main downside might be the requirement to run in older browsers.
OAuth2 clients without using refresh tokens
This style would be for browser-based clients that need to use cross-domain APIs, or an API that only accepts tokens (and doesn't support cookies). This client would use code flow with PKCE to obtain the access token, but the rest would be essentially the same as an implicit client would do today, including using an iframe to renew access tokens. Again, standard approaches should be used to secure the client application (including CSP). The token server will need to support CORS and PKCE, and the ability the renew tokens is based on the user's session at the token server.
OAuth2 clients using refresh tokens
This style is essentially the same as the previous, except that refresh tokens would be obtained by the client and used to renew access tokens. To mitigate the attacks against the refresh token being leaked the token server needs to support some sort of client-bound refresh tokens, or a refresh token expiration and rotation strategy.
Choose wisely.
In ASP.NET Core 2.1 one of the security changes was related to how authorization filters work. In essence the filters are now combined, whereas previously they were not. This change in behavior is controlled via the AllowCombiningAuthorizeFilters on the MvcOptions, and also set with the new SetCompatabilityVersion API that you frequently see in the new templates.
Prior to 2.1 each authorization filter would run independently and all the authorization filters would need to succeed allow the user access to the action method. For example:
[Authorize(Roles = "role1", AuthenticationSchemes = "Cookie1")] public class SecureController : Controller { [Authorize(Roles = "role2", AuthenticationSchemes = "Cookie2")] public IActionResult Index() { return View(); } }
The above code would trigger the first authorization filter and run "Cookie1" authentication, set the HttpContext's User property with the resultant ClaimsPrincipal, and then check the claims for a role called "role1". Then, the second authorization filter and run "Cookie2" authentication, overwrite the HttpContext's User property (thus losing the "Cookie1" user's claims) with the resultant ClaimsPrincipal, and then check the claims for a role called "role2". In short, the user had to have both cookies to be granted access. Also, as side effect of this is also that in the action method, the code would only see the claims from "Cookie2".
With the new compatibility changes in 2.1, the behavior of the above authorization filters has changed. The mechanics are that the authorization filters are now combined (somewhat). The roles are still kept separate, meaning the user must still have both "role1" and "role2". But the surprising change is that now instead of both schemes being required, now only one is.
What happens is that both "Cookie1" and "Cookie2" are authenticated (if present) and the resultant claims are combined into the one User object. Then the checks for both "role1" and "role2" are done. So if both roles were only in one cookie, then access would be granted. And, of course, in the action method the combined claims from "Cookie1" and "Cookie2" would be available.
This is a different semantic that the way things previously worked. In essence your authorize filter requirements might be relaxed due to the presence of other authorize filters in the action method invocation hierarchy.
A scenario would this might be a issue is where you have an app that has both UI and APIs. A common technique is to use a global filter as a blanket protection to requires that all users be authenticated in the rest of the app:
services.AddMvc(options => { var policy = new AuthorizationPolicyBuilder() .AddAuthenticationSchemes("ApplicationCookie") .RequireAuthenticatedUser() .Build(); options.Filters.Add(new AuthorizeFilter(policy)); });
And then an API action method like this:
[Authorize(AuthenticationSchemes = "Bearer")] public IActionResult PostData() { ... }
This new behavior opens us up to possible XSRF attacks on our APIs, whereas pre-2.1 the explicit authentication scheme on the action method protected us.
Now of course, policy schemes (aka virtual schemes), which are also new in 2.1, could help us address this, but that's a design change in your app.
I agree with the suggestion by Microsoft in the docs that for this new feature:
We recommend you test your application using the latest version (CompatibilityVersion.Version_2_1).
But not so sure about their other comment:
We anticipate that most applications will not have breaking behavior changes using the latest version.
So, beware the side effects of the new combined authorization filter behavior in ASP.NET Core 2.1.
In 2014 I developed and released the first version of IdentityManager. The intent was to provide a simple, self-contained administrative tool for managing users in your ASP.NET Identity or MembershipReboot identity databases. It targeted the Katana framework, and it served its purpose.
But now that we're in the era of ASP.NET Core and ASP.NET Identity 3 has come to supplant the prior identity frameworks, and it's time to update IdentityManager for ASP.NET Core. Unfortunately I've been so busy with other projects I have not had time. Luckily Scott Brady, of Rock Solid Knowledge, has had the time! They have taken on stewardship of this project so it can continue to live on.
I'm happy to see they have released the first version of IdentityManager2. Here's a post on getting started. Congrats!


text:
Meeting the future with
eco-friendly refrigerants
"We just wanted to express our sincere gratitude for your support in opening our seventh camp location in Manitoba. We are honoured to have had Nor-Lake be a part of our Mission 10 Million campaign to build this new facility.
As you know, the new camp is located in Seven Sisters Falls, MB, in the Whiteshell Provincial Park and will house all five levels of the Youth Leadership Program. Whether you are traveling in the area on business or for personal reasons, you and your family or colleagues are always welcome to stop by any of the THCF camp locations for a visit and tour. Just let us know and we will be happy to make the arrangements.
On behalf of the 1300 youth that will now have the opportunity to attend THCW each year, we thank you again for your generosity and support to help make this vision come to life! Your contributions truly make a difference every day at camp!"
© Copyright 2013-2020 Nor-Lake, Inc.® All Rights Reserved.


text:
The Philadelphia auto accident lawyers of Messa & Associates have handled every type of transportation accident imaginable, from single-vehicle accidents in cars to catastrophic transportation accidents involving airplane and train crashes.
There are many factors that can contribute to an accident—whether airplane, car, truck, train, boat, motorcycle, or other vehicle. The Philadelphia motor vehicle accidents lawyers at Messa & Associates make it our practice to investigate all possibilities, from the personal responsibility of the driver involved to the design of the road or highway, the maintenance of traffic controls, and many other viable influences. Motor vehicle accident cases are often much more layered than they at first appear, and Messa & Associates has the experience and conviction to uncover the true causes of an accident. Some of the successful outcomes obtained by our Philadelphia and New Jersey motor vehicle accident attorneys include:
Contact a Philadelphia motor vehicle accident lawyer at the personal injury law firm of Messa & Associates for a free and confidential initial consultation.
Call the Philadelphia personal injury lawyers of Messa & Associates today to discuss your case with a professional who has the knowledge to answer your questions or submit a free online inquiry.


text:
Image: Wikimedia.org
Canada welcomes immigrants who can make a significant contribution to the sports landscape of Canada.
Don't risk the refusal of your application by just filling forms without knowledge of the law*. Once an application is refused, a permanent record is created. Seek professional help from an experienced, ICCRC certified consultant. Get help today.
To immigrate via this program, applicants must:
- Meet the definition of self-employed for a minimum of 2 years in the 5 year period prior to applying
- Participate at a world-class level in athletic (Have a record of self-employment in athletics)
- Have the capacity to be self-employed in their area of expertise
- Meet medical and security requirements
*You must have knowledge of the Immigration & Refugee Protection Act, regulations, policy & relevant Federal Court decisions for a successful application.


text:
After a fabulous night in Rovinj, Croatia, we sadly packed our bags and headed to the ferry that would shuttle us to the next phase of our trip – 36 hours in Venice, Italy. To be completely #unfiltered with you, Venice was our least favorite city. We are glad we went and explored the beautiful canals, but were overwhelmed by the hard-to-find good food and swarms of tourists. I would recommend everyone visit once to mark it off of their bucket list, but I wouldn't go out of my way to go back.
July 1st 7AM-12PM – Somewhere on the Adriatic Sea
When researching how to make it from Croatia to Italy, it seemed our options were fly, drive or boat. I liked the idea of driving – we could see more of both countries and be on our own schedule – but da boo much preferred the idea of boating … or so he thought.
We found a ferry that allegedly went from Rovinj to Venice in just under four hours. Turns out, said ferry took closer to five hours and wasn't any fun at all. You couldn't sit above deck (I believe that's the term) and you had to sit in a specific seat the entire time listening to the crew sell you tour packages. Not quite the glamorous ride we had in mind. If we had to do it again, we'd be driving or even risk another flight.
Lameness of the boat trip aside, we made it to Venice safe and sound.
July 1st 12PM-12AM – Venice, Italy
After getting off the ferry in Venice, we then proceeded to make our way to the water taxi station and somehow make our way to our AirBnB. I thought the bus system here was confusing, holy shit was I wrong. Water taxis seem to do whatever they want, whenever they want.
Once we pinpointed our home for the next two days, we spent approximately one hour being talked at by our host, and I say that in the most loving way possible. Fabio (how perfect is that name?) was an extremely gracious host and took a veeeeeeeery long time explaining all of his Venetian knowledge. After finally settling in, we ventured out the explore the
maze streets of Venice. We started out with some pizza at Ai Tre Archi then zig-zagged our way to Piazza San Marco and Doge's Palace. Along the way, we kept stumbling upon the weirdest, most random modern art exhibits across the city. Not what I think of when someone says Venice, but it was interesting none-the-less.
Several hours later we somehow found our way back to our AirBnB for a nap and to freshen up before heading downstairs to the building's restaurant for possibly the worst pasta ever. My pasta dish was fine (tortellini with butter and sage sauce) but my boyfriend's bolognese tasted EXACTLY like Chef Boyardee. #Epicfail. We washed away our sorrows at Il Santo Bevitore and eventually headed to bed.
July 2nd All Day – Venice, Italy
After waking up, we had breakfast at our AirBnB and then headed out to brave the masses on a water taxi to Murano and Burano. Both are islands next to Venice – Murano is famous for its glass blowing and Burano is known for being a brightly painted fishing village. It seems everyone got the memo about island hopping while none of the water taxis wanted anything to do with it, so we battled with almost 100 other hot and sweaty tourists for a seat.
By the time we made it to Murano, it was around 2PM, and we just made the last glass blowing show at the factory we stumbled upon. We watched in awe for 20 minutes as the artisans turned molten glass into works of art. Then we spent about $120 on a glass pig, which was obviously worth it. Another water taxi ride later, and we were at Burano with the masses.
At this point in the day, we were hot and tired of being out in the sun, so we spent far less time in Murano than I would have liked. We raced through the main streets then headed back on the water taxi so we wouldn't be stuck on the island for long. I wish we had gotten up earlier and spent the morning exploring Burano – it's so picturesque and much less crowded then Venice. But alas, about 30 minutes later, we were taxing back to Venice.
After a miserably uncomfortable walk back to our AirBnB (note to self – really don't walk eight miles a day in sandals for two weeks on end), we passed out for a bit before heading out for our last night in town. Determined to have a better dinner than the night before, we researched our hearts out and settled on Al Timon, which ended up being one of our best meals of the trip. I can't get over the fact that the best meal I had in Italy was steak and french fries, but that's the way the cookie crumbles. Or something like that.
Full on steak and carbs, we made our way back to Il Santo Bevitore for a few nightcaps before turning in and resting up for our flight to Munich.
Venice Tips and Tricks
- Do some serious restaurant research. There are so many underwhelming restaurants it can be hard to find one that doesn't disappoint. Al Timon is a personal favorite, so go there!
- Look into exploring Venice outside of the island. This isn't something we did, but were told after the fact that the mainland of Venice is much more authentic at this point, as the island is a giant {beautiful} tourist trap.
- Explore the churches outside of St. Mark's Basilica. They are all amazingly gorgeous and most have no lines to get inside. Chiesa di Santa Maria Assunta detta I Gesuiti.
- Wear bottoms past your knees and cover your ENTIRE shoulders if you don't want to be scolded by old women when you visit the churches.
- Get some sort of map – GPS is better than paper. I can normally navigate through any city, but holy smokes Venice is a serious maze. It's easy to get lost and hard to find your way back to where you're meant to be.
Tell me: Have you ever been to Venice before?


text:
Sand Hill Petroleum B.V. is an exploration and production company focused on onshore conventional hydrocarbon resources in the Pannonian Basin, primarily Hungary and Romania.
The company, based in Amsterdam, the Netherlands, is led by CEO Martin Fossum and COO David LeClair, who have extensive experience and a successful track record in conducting E&P operations in Eastern Europe and the Former Soviet Union.
Warburg Pincus led a line of equity financing to Sand Hill Petroleum B.V. in December 2012.


text:
Every morning, he very cheerfully says good morning to me.
(Well, almost every morning. Occasionally I think he must be mad because he won't even look at me when I walk in.)
I often ignore him.
This morning, he again very cheerfully said good morning.
I said, yeah, whatever.
I wanted to say, really? really? You just spent the night in a queen size bed all to your self under my homemade quilt with your own personal bathroom right off to the side of the room. Sure, it's a good morning for you. Never mind that I just spent the night tossing and turning on a tiny sofa cushion on the living room floor because I can't stand to be in the same room with you after you sexually assaulted me.
But I didn't say that.
All I said was, yeah, whatever.


text:
News & Info from Urban Financial Services Coalition
From Recession Through Recovery:
The Changing Conditions of Low- to Moderate-Income America
|Join a Connecting Communities ® audioconference on Tuesday, July 9 from 3:00 PM – 4:00 PM Eastern to learn more about the changing conditions of low- and moderate-income America.
This session will present findings from recent research on how the low- and moderate-income (LMI) population has been affected by the Great Recession and subsequent recovery. The LMI population has fared worse overall than higher-income groups and as well has faced unique, adverse conditions on several fronts. This research is based on a summary of quantitative and qualitative data collected through a quarterly survey of organizations that provide services to LMI clients.
The session will consider:
Registration is required for this audioconference. To register, go to the Connecting Communities® web site and enter your email address in the 'Join the Call!' box. Once registered, you will receive an email containing the call-in information.
Connecting Communities® is a free audioconference program designed to provide timely information on emerging and important community and economic development topics with a national audience. The program complements the Federal Reserve System's Community Development outreach initiatives, which have typically rested in hosting meetings and events through our regional Reserve Bank offices and at the Federal Reserve Board of Governors in Washington, D.C.


text:
Is there Jewish life in Poland after the Shoah? Should there be? How do present-day Polish Jews, children and grand-children of survivors, relate both to the wartime horrors and to the glorious history of Polish Jewry which preceded them? Do they feel comfortable living as a tiny minority in an overwhelmingly Catholic country? How do their Polish and Jewish identities interact? How did living for forty years under Communism impact on their fate? Konstanty Gebert was a witness and participant of many of the events he describes in his collection of essays on post-war Polish Jewry. His book is an indispensable guide for all those who want to understand the Polish Jewish experience today.
Konstanty Gebert is a well-known Polish journalist and writer, co-founder, in the Seventies, of the unofficial Jewish Flying University and, in the Nineties, of the Polish Council of Christians and Jews. He begun his journalistic career in the underground in the Eighties: under the pseudonym of David Warszawski he still uses, he was editor and columnist of an important clandestine publication. After the democratic transformation of 1989, he joined the new daily "Gazeta Wyborcza" as international reporter and columnist, covering i.a. the wars in the Balkans, the Middle East, and human rights issues. He is the founder and first editor of "Midrasz", the Polish Jewish intellectual monthly. Since 2005 he is the representative of the Taube Foundation for Jewish Life and Culture, a US Jewish philanthropy, in Poland. His latest books in Polish include a set of commentaries on the Torah, a panorama of the European 20th century, and a history of the wars of Israel. Living in the Land of Ashes is his tenth book.
Ebooka przeczytasz w aplikacjach Legimi na:
Liczba stron: 287
Odsłuch ebooka (TTS) dostepny w abonamencie "ebooki+audiobooki bez limitu" w aplikacjach Legimi na:
Uzyskaj dostęp do tej i ponad 60000 książek od 6,99 zł miesięcznie
The author thanks the Taube Foundation for Jewish Life and Culture for its generous support in writing his book.
Some earlier versions of parts of the book had been published as chapters of other works. The author wishes to thank the publishers: Social Research Quarterly, New York (Vol.58, No.4, Winter 1991); Littman Library of Jewish Civilization, London (Jonathan Weber (Ed.): Jewish Identities in the New Europe; 1994); The Jewish Museum, New York (James E. Young (Ed.): Holocaust Memorials in History; 1995); Orchard Academic Press, Cambridge (E. Kessler, J. Pawlikowski, J. Banki (Eds): Jews and Christians in Conversation; 2002), for having graciously consented to the publication of the amended versions of these chapters in the present volume.
In 1983 I had the opportunity to meet with one of the first Israeli groups to visit Poland after the break of diplomatic relations in 1967. Some thirty young kibbutzniks came to Warsaw to attend the commemoration of the fortieth anniversary of the Warsaw Ghetto Uprising and invited me to their hotel. They were deferential at first, treating me as if I were some sort of museum piece, but soon, as they relaxed, their attitude changed. They wanted to know why I was still in Poland. How dare I live in a graveyard!
I looked at them and told them that they stood out on a Warsaw street the way a group of Africans would stand out in downtown Tel Aviv. Not because they looked "Jewish" – they did not. Indeed, most of them had what is called in Poland "the good look" – during the war they could have passed for Aryan and would have had a chance of surviving. But on the drab gray streets of Warsaw they looked flashy, sexy – very Western rather than "Jewish."
These young people, however, were accompanied by three elderly educators from the kibbutz, and they had the Jewish faces that I remembered from childhood and that I see in the synagogue now. "Don't kid yourself into thinking this will last," I told the young people. "As you grow old, you too will grow Jewish faces, and you will then need somebody here to tell you where they come from."
It is so much easier to identify the dead. Abandoned buildings, names that no longer mean anything, and still vivid memories of horror abound in Poland's physical and mental landscape. Fewer than 300,000 Polish Jews (just ten percent of the country's pre-war Jewish population) survived the Shoah, most of them having fled to the Soviet Union and returned after the war. Current population figures are not available; the numbers change depending on who is asked. The National Census of 2002 returned a ridiculous figure of 1,055 self-declared Jews in a nation of almost 40 million. This says more about the still-prevalent fear of revealing one's ethnic background than about current Jewish demography, but still, the combined national membership of the two main Jewish organizations – the religious one and the secular Socio-Cultural Association – does not exceed 6,000. At a parliamentary hearing in 1989, the then Minister of the Interior, General Czesław Kiszczak, said that there were 15,000 Jews in Poland. As a Warsaw Jew, I tend to trust him on that point – he had the files.
Just two years later, while standing in the cavernous hall of Warsaw's Jewish Historical Institute on the eve of Hanukkah 1991, I wondered if the General's files were up to date. At least five hundred people were milling about, twice as many as had come to the city's only remaining synagogue for the High Holy Days. And they did not seem to be the same crowd. Most of the worshippers in the Nożyk Shul had been elderly, but here, at the Institute, many middle-aged and young people, and even children, were happily running about. Suddenly, a group of youngsters in athletic clothes rushed in, carrying a lighted torch to inaugurate what was a Maccabi Warsaw sports event. An elderly Jewish gentleman standing next to me in the crowd watched the young athletes and shook his head. "These kids were born in the 1970s or later," he told me. "They don't know a thing about this country. They don't know about the war, the post-war pogroms, the ever-present anti – Semitism, about the 1968 purges. They think that just because they're Jewish and like sports, they can have a Jewish sports club in Poland. In Poland!" He shook his head again and laughed.
Years later, Grażyna Pawlak, who founded and served as president of the Maccabi club, recalled how many people thought she was crazy for setting it up and, in effect, gambling on a Jewish future. "This was supposed to be a dying community, right? No children, no young people, no future; this is what everybody knew," she said. "But what I knew was that I have a daughter and she has friends. My friends also have children. It didn't seem to me that we were going to die out right away." Pawlak is a sociologist of sports. In 1989, at the dawn of Poland's new democracy, she traveled to Israel for the Maccabiad. The stories she told upon her return home impressed her children and their friends. They clamored for a Maccabiad of their own, so she helped them comply; and as she herself used to be a fencer, fencing became the first section of Maccabi Warsaw.
The Maccabi club has since ceased functioning, and Pawlak now runs Warsaw's Moses Schorr Educational Center, a well equipped Jewish study and learning center for adults. But the club was one of the first in a series of Jewish initiatives that appeared in Poland over the past fifteen years or so, and it formed an early part of what is semi jokingly referred to as the "Jewish renaissance." The joke seems to be obvious: there cannot be much of a renaissance in a community that is estimated at only ten to fifteen thousand, even if you double this number as the optimists do. Nonetheless, compared what we had in the post-World War Two era, the re-birth of Jewish intellectual, religious and organizational life we have seen in Poland since 1989 is somewhat impressive.
Of the fewer than 300,000 Jews who survived the war, about half fled the anti-Semitism and destruction of the early post-war years. Pogroms and massive emigration destroyed the dream of rebuilding the Polish Jewish community. The Stalinist period of 1948-56 put an end both to emigration and to organized Jewish life; both resumed after 1956, with emigration the stronger factor. By the late 1950s no more than 40,000 Jews remained in Poland. Most of them had made a conscious decision to remain in Poland and embrace a Polish identity; even so, they became the target of an anti-Semitic campaign launched in 1968 by Communist authorities under the banner of "anti-Zionism." Thousands of people were purged from the Communist Party, fired from their jobs and expelled from their government-owned apartments. Eventually some 15,000‒20,000 Polish Jews fled the country.
In that period, a Jewish-sounding name was enough to get one into trouble. The case of an obscure Warsaw engineer called Judenberg was typical. He was fired from his menial job only to be reinstated after producing a wartime Nazi document that confirmed his Aryan parentage. Public opinion was indifferent; the campaign was organized and directed mainly by Party members. The intelligentsia, however, was horrified, both by the moral implication of the campaign and by the fact that many of its own prominent members of both Jewish and gentile extraction were affected. Party hacks regarded intellectuals with the same suspicion accorded to Jews, and this, coupled with the Polish intelligentsia's liberal tradition, led to the de-legitimization of anti – Semitism among Polish intellectuals.
A paradoxically positive impact of the "anti-Zionist" campaign was felt in other ways, too. Though most Poles felt no sympathy for the Communist or Jewish victims of the purges, the fact that the Communist Party used anti-Semitism as a weapon discredited it to some extent among the public. "Communists ruin everything, even anti-Semitism," an old right-winger once complained to me. After 1968, any use of anti-Semitism was somewhat suspect, and its proponents had first to cleanse themselves of any suspicion that they were Party provocateurs.
Anti-Semitism had thus switched sides, and Jews were again free to choose their political sympathies. Many of the activists of the student democracy movement, which was crushed during the first stage of the anti-Semitic campaign, were children of Jewish Communists. Over the next few years, they would reappear in the fledgling democratic opposition and later in the Solidarity movement – Solidarność – which was finally to triumph over the system that their parents had helped build.
A process of reevaluation was taking place on the other side as well. A new generation of young Poles appeared on the scene in the 1970s. Relatively free from their parent's biases and actively questioning the political system under which they had been raised, they engaged in a critical reappraisal of recent Polish history. One of the "blank spots" they stumbled upon was the Jewish issue. They examined it from as many sides as they could and began to ask questions about the people who, in a few short years, had been eliminated, mentally as well as physically, from Polish history.
In the late 1970s, independent discussion groups and clubs began to emerge in the country's intellectual centers. Alternatively repressed and tolerated by the authorities, these groups became hotbeds of the Soviet bloc's most successful democratic opposition. One such group, later to be called the Jewish Flying University, became a symbol of the new developments in Polish – Jewish relations. The group was created by chance and in rather peculiar circumstances. Poland, as always, was attuned to Western intellectual fashions and was experiencing a boom in humanistic psychology. When in the late Seventies the eminent American psychologist Carl Rogers visited the country, over one hundred people flocked to his workshop, which was organized in a small town near Warsaw which, incidentally, had been a Jewish shtetl before the war. After two days, Rogers suggested that the participants split up into special interest groups. Artists, divorced people, parents of small children and the like banded together, and someone suggested there should be a Jewish group, too. Though many participants were Jewish, this proposal was met with laughter. Even in the relaxed and trusting atmosphere of the workshop, where people told each other their most intimate secrets and underground literature circulated freely, it seemed absurd and threatening to discuss one's Jewishness in public. And yet the room set aside for the Jewish group was packed full of people for its first session. I still remember the emotion I felt at discovering that so many of my friends were Jewish. We had never discussed it; it was a guilty secret best kept private.
As was natural in such groups, we began by telling the stories of our lives. We all came from assimilated backgrounds, from mixed marriages or had parents who had concealed their Jewishness during the war or immediately afterwards, thus saving themselves. There was usually some form of involvement, more or less sincere, with the Communist regime. Our Jewishness had always been concealed or treated as taboo. We were brought up Polish, but our adopted Polish identities included neither the nationalist nor the religious dimension so central to our ethnically Polish peers.
We had not known that something was amiss until the 1968 campaign shattered our world, which is when most of us learned that we were Jewish and, just as important, learned that it mattered. Some of us had been expelled from universities or high schools, and all had friends who had abruptly emigrated. Since then, we had been laboring at reconstructing our identities and had not had much success. Some people had, on their own, tried to re-appropriate the Jewish identity we had been denied. A young couple had spent years touring Poland to gather photographic documentation of what was left of Jewish cemeteries and synagogues. Others had been studying the few but precious Jewish texts that were available in Polish, most of them published in Catholic magazines responding to the Church's new openness to things Jewish. But the majority of us had simply kept quiet and gone on living, though newly insecure and unhappy in our lives.
One girl in the group had been lucky: She'd been brought up by parents who were dedicated Communists but had kept in touch with the secular elements of their Jewish identity. She knew some Yiddish songs and some Hebrew and had even visited Israel as a child. She taught us a few simple Hebrew songs, and when the workshop was over we marched to the train station singing them out loud. I will never forget the reaction of the inhabitants of Łaskarzew. Young people simply waved at us – everybody likes to sing – but the elderly recognized the language and just stared, unbelieving. They were seeing ghosts.
We did not want to be just ghosts. The group continued to meet over the next two years. The therapeutic elements never really disappeared, but we complemented them with a more conceptual approach. We were still informal: anybody could speak at our fortnightly gatherings in private apartments. We called ourselves the Jewish Flying University by way of analogy to a more structured group that organized independent seminars at that time. We had about sixty participants, with an equal mix of Jewish and non-Jewish Poles. Poles and Jews. This mixed participation never created problems: we were united in trying to make sense of the bloody mess of our country's recent history. But I do remember a seminar on Polish anti-Semitism that ended with non-Jews speaking only to non – Jews and Jews speaking only to Jews. It was not intentional; it simply happened. Our differences were not so easily bridged.
The Communist regime's imposition of martial law in 1981 put an end to our group, as it did to many other important initiatives that had emerged in the wake of the stunning success of Solidarity. We were all part of that movement, of course, and almost all of us continued to be active when Solidarity went underground. But some of us were discouraged from playing too prominent a role in the movement: "Don't give the Communists arguments to use against the movement," we were warned. Some, like Adam Michnik and Bronisław Geremek, both leading Solidarity advisors, did not heed such warnings. But they, in fact, had never cultivated any special interest in things Jewish, although Geremek, a historian, has lectured on medieval Jewry. Michnik and Geremek had no qualms about their identity: they were "Poles of Jewish origin." Though born to different – respectively assimilated and not – Jewish families a generation apart, they were, under different circumstances, brought up Polish, and Polish they chose to remain. Myself and others considered ourselves to be "Polish Jews" – though given the character of our upbringing, it might have been more accurate to call ourselves Poles of Jewish origin, as well.
Marek Edelman was one person who was not convinced by our attempts to reclaim our Jewish heritage. Edelman is the last surviving commander of the 1943 Warsaw Ghetto Uprising. A dedicated activist of the Bund, a pre – war anti-Zionist Socialist Jewish party, he never wanted to emigrate but neither did
he believe that there was any future for Jews in Poland. He used to tell us that we had made ourselves up, that we were not real. Even now, so many years later, he does not seem to have changed his mind. "The Jewish people were murdered," Edelman used to tell everyone. "This used to be their homeland, in the lands between the Vistula and the Dniepr, and this is where they met their death. There are no survivors, and those who claim to be Polish Jews today are simply Poles of Jewish origin."
One seventeen-year-old girl from Silesia, whom I will call "Dorota," would challenge this argument. The region she comes from was taken from Germany after the war and is home to possibly half of Poland's current Jewish population. In the late 1940s Jewish survivors were settled in this region by the Polish government. This happened as part of a mass transfer of millions of Polish citizens from the eastern territories taken over by the Soviet Union, but it was also intended to avoid conflicts with the Poles. Jewish survivors who returned to their homes often found them inhabited by Poles, and so Silesia and other formerly German territories provided new homes for many of them as well as for millions of other Polish homeless.
Dorota knew very little about her Jewish heritage until the early 1990s, when she went to a Jewish summer camp near Warsaw that was organized by the Ronald S. Lauder Foundation – an American institution which in recent years has contributed large sums to Jewish activities in Poland and elsewhere in Central Europe. Like many other Jews, Dorota's grandparents survived the war under adopted Polish names and did not resume their Jewish identities after the war ended. Anti-Semitism did not end with the war, and whatever remained of Jewish life was deeply marked by the shadow of the Shoah. For Dorota's grandparents, like many others, moving to Silesia and maintaining their Polish identity was a way to make a clean break with the past and start anew. This strategy worked to a certain extent. But suspicions emerged and lingered since the family history was full of holes, they did not go to Church and they did not look like their gentile neighbors. Nor did they have the right reactions and reflexes; they seemed too soft on the Communists and too skeptical of the Church. Dorota's family was never ostracized, but neither did they become truly accepted in their community. Each political crisis threatened to blow their cover, to expose them as Jews, the familiar scapegoats. The few friends they had were just like them: marginalized, skeptical, insecure. Some were Jewish and some not, but all were outsiders. Dorota wanted to belong.
In the new climate of freedom that followed the fall of Communism, the family's Jewishness ceased to be a secret. Dorota began frequenting a Jewish club in a nearby town, run by the Jewish Socio-Cultural Association. But its members were mostly elderly and she did not feel at home there. When she learned of the summer camp organized in 1989 for Jewish teenagers she was overjoyed.
There were many such Dorotas, twice as many as the forty young people the organizers of the camp had hoped for. As they kept arriving (news of the camp spread by word-of-mouth) the camp ran out of cots, and armchairs became temporary beds. Still more came on Shabbes, and for most of them this was their first experience of Jewishness. To run the program, the Lauder Foundation had sent a young Conservative rabbi from New York City, Michael Schudrich, along with a group of American Jewish teenagers (Schudrich has since become Orthodox, and is now Chief Rabbi of Poland). They worked from morning until night, supervising everything from the kosher kitchen to Hebrew classes. For some of the participants, the camp's busy schedule was not enough, and they used every possible opportunity to bombard the Americans with questions about Judaism. Dorota was one of them. One night Schudrich couldn't take it any longer: "Look," he said, "it is after midnight and I have to sleep. We'll continue with the questions and answers later." "But you don't understand," Dorota cried out. "We are the new generation of Jewish mothers in this country. We must learn all there is to be learned."
Indeed, Dorota was right. She and her friends will be – must be – the new Jewish mothers and fathers in Poland or else there is no future for Polish Jewry. The old community, organized around the synagogue and the Socio-Cultural Association, is dying out. Then we lost a generation: the Jews who were young adults in March 1968 and who overwhelmingly opted for emigration. The generation that followed founded the Jewish Flying University, but by the time we discovered our Jewishness our adult lives were already under way. There were mixed marriages, children and jobs. We were too old to really change. Dorota's generation is the next.
Will Dorota and her friends persist? That, indeed, is the question. Once the enthusiasm of finally simply belonging is over, what can the Jewish community really offer them? Its institutions, some of which come dangerously close to being pathetic caricatures, will have to be revamped and remodeled to suit the needs of Dorota's generation; a process of change is, of course, under way, but in the end the task may prove too great. To be sure, one can always count on anti-Semitism to remind young people of their Jewish origin and of what their place is and is not. But this might scare them away as easily as bring them into the fold, and in any case a return to Jewishness because of external hostility is not a sound foundation for the reconstruction of a vibrant Jewish community.
Anti-Semitism, however, is part of the mental heritage of many Poles, and, given current circumstances, it is hardly surprising that old demons have been aroused again. The country attained its independence less than 20 years ago, after more than half a century of war, foreign domination, economic ruin and lack of democracy, for much of that time crushed by the weight of Communist, and often anti-Semitic, indoctrination. Meanwhile, the generation that witnessed the Shoah and was aware of the moral urgency of the issue (though this awareness was dimmed by later tragic experiences) is already dying out – in the West, too, the disappearance of this generation has also coincided with a resurgence of anti-Semitism.
These factors have a real influence. But to understand does not mean to minimize or to forgive. The use of anti-Semitism by Lech Wałęsa in his 1990 presidential campaign, and by the extreme right in the 1991 parliamentary elections, strengthened tolerance of anti-Jewish prejudices at a crucial juncture of Poland's post-Communist experience. The Church has an important role to play here. The Polish attitude towards Jews derives far more from Catholic traditionalism than from right-wing politics (one must always kept in mind that the Left, that is, the Communist regime, was responsible for the 1968 anti-Semitic campaign) or reactions to political developments in the Middle East. A pastoral letter by the Polish Episcopate in 1991 addressed for the first time the issue of Polish Christian responsibility for anti-Semitism, but this letter was an isolated act. The years that have passed since then have not yet brought about a clean break by the Church with the anti-Semitism of its past, though, encouragingly, most of the changes which have occurred do point in that direction.
At the same time, other factors in Polish society may not only contribute to a diminution of anti-Semitism, but may in fact be creating a more hospitable environment for Jewish activities.
The interest in things Jewish among the intelligentsia and open-minded people in general has diminished somewhat, but it stillremains a constant element of Polish intellectual life. Moreover,two important segments of the population have consistently denounced anti-Semitism. First is the intelligentsia, which is traditionally left-leaning and tolerant (at least in part). This attitudewas strengthened by the experience of 1968: the anti-Semitic campaign was also a campaign against the intelligentsia, and this helped purge Poland's intellectuals of any residual anti-Semitism. Within this context, the Catholic intelligentsia too, plays its role and, having been involved in the reforms of Vatican II – which, unfortunately, most of the Church in Poland has yet to – it has also emerged as an important force against anti-Semitism.
The second factor is the broad Solidarity movement, though the reasons for its rejection of anti-Semitism are somewhat different. While the intelligentsia is mainly motivated by moral and religious considerations, the Solidarity response emerged from the movement's formative experiences in 1980‒1981. Solidarity was more than just a union: with ten million members out of a total population of thirty-eight million, it represented the nation organized. It therefore also had its share of anti-Semites, and anti-Semitic innuendo appeared in some of the union's internal conflicts. The rank-and-file initially failed to protest this, but it soon became apparent that the same people who made use of anti-Semitism were also opposed to union democracy and tended to make risky and irresponsible decisions. Thus anti-Semitism appeared as part of a classical authoritarian syndrome, and was rejected as such. One must recognize, however, that in the mid – 1990s, Solidarity became more and more supportive of anti-Semitic attitudes. On the other hand, under both the presidency of the post-Communist Aleksander Kwaśniewski, and under the rule of successive governments of the left and the right, official Poland had, until 2005, clearly moved away from any lingering anti-Semitic tendencies.
The presidential and parliamentary elections of the fall of 2005 changed that trend. After months of parliamentary wrangling they brought to power a right-wing coalition that includes the League of Polish families, a direct heir to the anti-Semitic pre-war National Democrats. While the leader of that party, Roman Giertych, has distanced himself somewhat from his political predecessors' anti-Semitism by stating that this political program might have been mistaken and in any case is no longer topical, since there are almost no more Jews in Poland, such language is hardly reassuring – especially as he is now minister of education. The League's youth wing, the All-Polish Youth, was set up under his direct command and is built around a core of skinheads who occasionally make headlines by yelling "Sieg Heil!" in public, raising their arms in the Nazi salute, or beating up gay parades while chanting "We'll do to you what Hitler [did] to the Jews." This, clearly, is not something to be shrugged off as marginal or inconsequential.
Polish Jewry, some say, is once again at a crossroads. On the one hand, it faces a dramatic decline of its already depleted ranks as the older generation dies out. It is by no means certain that the enthusiasm of the new "young Jews" will suffice to create the critical mass needed for survival. This, however, is Polish Jewry's only hope: if the next generations do not continue this effort then eventually Poland will be as Judenrein as Hitler had wanted. I fervently believe that this must not be permitted to happen. On the other hand, the broader social context of Polish Jewish life is also ambiguous. Anti-Semitism still exists, though it is countered, at least in part, by new trends within Polish society, including within the Church. Poland's new membership in the European Union has extended over Poland's minorities, including Jews, the protection of EU laws, but other, more pressing issues, remain unsolved. The Jewish community is still not self-supporting, and communal property restitution has brought in much less income than hoped for. At the same time, it has generated a lot of acrimony both among Jews themselves and in society at large about the use made of the properties regained. Still, it is reasonable to expect that if Poland remains a democracy, the future of Jews will be assured – if those Polish Jews who are left can meet the challenge.
This might not seem much of a prospect. Barely fifteen years ago, however, the all-but-unanimous opinion was that there was no Jewish future in Poland at all, nor could there ever be one. This prediction has been proven false. It does not mean that the opposite is necessarily true, but, for the first time since 1968, it makes sense to at least consider a future for Polish Jewry. Let me mention one example: when a Jewish kindergarten opened in Warsaw in 1988, the first of its kind in a quarter-century, it served only four youngsters. Now, almost twenty years later, the kindergarten has evolved into a comprehensive elementary and junior high school, with 240 students currently enrolled.
It is appropriate here to stress that none of this – not the school, the kindergarten or the various youth clubs and camps that also have been undertaken – would have been possible without the generous support of the Lauder Foundation. Unlike most other Jewish foundations active in Poland, it decided from the start to invest its money in the future rather than the past. The Foundation closed its offices in Poland in 2004, but it still operates some programs, and our community will long be deeply in its debt. Other American Jewish charities, including the American Jewish Joint Distribution Committee and the San Francisco – based Taube Foundation for Jewish Culture and Renewal, are contributing immensely to the community's rebirth.
The school and the kindergarten continue to grow – in more ways than one. The parents have grown along with their children and, indeed, have come to appreciate the new ideas their children bring home. I doubt if many of them will embrace a religious lifestyle, but – perhaps more importantly – the acceptance of Jewishness has become more "normal." For many, the "new ideas" brought home by children are no longer quite so new, and the ease with which a mother now says to a gentile acquaintance "My child attends a Jewish school" marks a sea change in the way people – Jewish or not – now think. Today's Jewish children in Poland, whatever else the future holds in store for them, will never grow up knowing, as their parents did, that to be Jewish means to be alone and vulnerable. Hopes have been successfully built on much more shaky foundations.
In the essays in this collection, I elaborate on the themes and issues that I have broached in this introduction. As a journalist, I report on events that I observed and try to put them into context. As a protagonist, I describe events from the point of view of a participant, as well as from that of a more detached outside observer. As a Jew, I reflect on my own experience and the experience of my friends and family in a process that is far from over.
In the pages that follow, I have deliberately dwelt on some themes – and sometimes recounted anecdotes or experiences – more than once, in an attempt to place them in a continuum that is complex and many-layered, where boundaries sometimes blur and where events and emotions tend to echo across time, space and memory.
Polish Jews in the post-war period had all been born into small, nuclear families. We had a mother and a father, as often as not both in a second marriage, as their first spouses had gone up in the smoke of Auschwitz and Treblinka. There was often a sister or brother – though not necessarily, since, to our parents, the burden and risk of having one child may already have seemed too great. (An unasked, but ever-present question haunted their consciousness: What shall we do with him/her, if…?). Always hovering around us, with a desperate yearning in their eyes, were an odd few "sewed-on" aunts: each of them a sole survivor, desperate to hook into somebody's else family and to become part of this pathetically un-extended network of human warmth. "Do you know what's more than one?" they'd say, or think. "I'll tell you. Anything. Anything at all."
We were aware that families were supposed to be more than just that. The novels we read were replete with second cousins and distant relatives, even people who, although they could claim blood kinship, were not really considered part of the clan. "He's not really family, you know, just a distant cousin," a character in Balzac would say and leave us puzzled. Why on earth would one have a family member and not immediately suck him in? How could one squander such a precious resource?
All this seemed part of the magic world of fiction, populated not only by nieces and cousins twice removed, but also by knights in shining armor, kings and dragons. It was only when we went to school that we discovered that such families really existed. Our classmates actually did have second cousins and would spend the Christmas season with their uncle in a provincial town. My own family, all four of us, would spend the season around a very visible Christmas tree – in case the neighbors would pop in unexpectedly and ask questions – vaguely wondering what the whole fuss was all about. And though my sister and my friends I did not suspect the happy proprietors of really extended families to also encounter knights errant and princesses, our belief in the sharp dividing line between fact and fiction was severely shaken. We also learned, of course, that we were different from almost everybody else we encountered.
We had no cousins. We had no Christmas, only a tree. And some of us knew, some of us suspected, and some denied strenuously that we were… Jewish. What that term actually meant, nobody seemed to know for sure. But it did seem to imply that we were somehow inferior, somehow lacking in elementary attributes everybody else possessed. So much was patently evident: all we had to do was compare our own families with the families of "others."
"Mamy usługę, której mógłby pozazdrościć Amazon."
Tysiące ebooków i audiobooków
Ich liczba ciągle rośnie, a Ty masz gwarancję niezmiennej ceny.
Napisali o nas:
Nowy sposób na e-księgarnię
Czytelnicy nie wierzą
Legimi idzie na całość
Projekt Legimi wielkim wydarzeniem
Spotify for ebooks


text:
Gatchaman Titles Anime Animation
Find links to sites for or about Gatchaman.
Top: Arts: Animation: Anime: Titles: G: Gatchaman
See Also:
- Gatchamaniac Home - Collection of cels, sketches, images and merchandise.
- Strijd der Planeten - Information on the Dutch-language version, sound clips, merchandise, titles fan art, g and FAQ. [Dutch and English]
- Rence and Frankie's Gatchaman Page - Character descriptions, images and links.
- Gatch Online - Overviews of the different versions, voice actor lists, episode titles, g character profiles, FAQ, images, sounds, movies, and links.
- 7 Zark 7 Battle Of The Planets - Episode list, images, wallpapers, multimedia and links.
- EX Review: Gatchaman - Review of the 1997 OVA series.
- Veronika's Gatchaman Page - Episode summaries, pictures from GatchaCon, screen shot gallery gatchaman and links.
- Gatchaman: Home of the White Shadow - Series overview, character and vehicle profiles, fan art g and parodies, gatchaman FAQs, downloads and links.
- Gatchaman Goods Homepage - Images and descriptions of merchandise, including music, books, toys and gatchaman posters. Series description, episode titles, and links.
- Ang's Gatchaman Links List - Links organized by categories.
- Battle of the Planet Episodes - Basic information, links and listing of episodes on g tape for trading.
- The Gatch Pages - Tongue-in-cheek commentary on episodes, production credits and links.
- Absolute Anime / Battle of the Planets - Series history and description, cast and production credits, character profiles, images and links.
- Sally Beck's Homepage: Gatchaman - Editorials, series comparisons, images, FAQ for Australian fans titles and favorite gatchaman character poll.
- EX Editorial: Science Ninja Team Aspirin - Editorial on the various American versions of Gatchaman.
- Daniela's Gatchaman Page - Scripts for several episodes in English and Italian, images and gatchaman links.
- GFive's Gatchaman Gallery - Fan art gallery.
MySQL - Cache Direct


text:
Welcome to the SCPS Center for Family & Preschool Services
We are located at 7409 Brock Road, Spotsylvania, VA 22553 (next to RE Lee Elementary School)
The Center for Family & Preschool Services houses several programs. Please use the links in the right hand column for more information on our programs.
Child Find - 540-582-7020
Cathy Lowery
Head Start - 540-582-8816 or 540-582-8817
Dawn Miller
ESOL & Virginia Preschool Initiative (VPI) - 540-582-7047
Ayesha Qasimi
Parent Resource Center - 540-582-7060
Peggy Dougherty & Sandy Sprague


text:
I work for a marketing consultancy & we come across different brands, recently I was working for an apparel brand. For that brand we had to look at the competition scenario.
We study different brands in the market & we look at different things like:
- What they communicate?
- Which sub-brands they have?
- What are their future plans?
- Which positioning they have taken? and many other things.
In that I came across brands which are Indian but perceived to be International brand.
First let's look at these brands:
- John Miller – Future Group
- J.Hampstead – Siyaram's
- Reid & Taylor – S.Kumar
- Allen Solly – Aditya Birla Group
- Louis Philippe – Madura Garments
Can you beat it these all & many such brands are perceived to be International but are Indian.
Strange but it's true, they know how to sell & market their brand.
Retail is all about proximity if these brands come in consumers way & if they have seen their ads which has international name, international look & feel, international quality than I will at least try it. That's it marketers job is done.
If a consumer buys it or not that completely depends on the material of the product or design of the product. But as a marketer the job is done that he has put the brand in the consumers consideration set. After some time consumers start believing that it is an International brand like I use to feel for Louis Philippe.


text:
How to Build a Compost Tumbler (Video)
Image credit: The Garden Rock Star
Some time ago, I came across an awesome video about how to build your own compost tumbler. With its makers claiming you can create compost in just 14-21 days for pennies, and little work, it always looked like a great solution for small gardens or those pressed for time. I've just come across another great design for a DIY compost tumbler, this time from the Garden Rock Star. Check out what a barrel, a solid wooden stand, a metal bar and some bolts will do for your garden...
Compost Tumblers Offer Faster Composting
From saving your back from turning your compost, through keeping critters and pests out of your pile, to simply speeding up decomposition through proper aeration, there are many excellent commercially available compost tumblers out there. But the Garden Rock Star's homemade design looks about as simple, and effective, as it can get. I particularly like the addition of bolts as tines that help break up the compost.
I'd love to hear from anyone who tries this out, or who has experimented with other DIY compost tumblers in the past. They seem like the perfect addition to the lazivore garden. (Especially if you can get someone else to build it for you...)
More on Compost Tumblers, Compost and Composting
Build Your Own Compost Tumbler (Video)
Building a Hot Compost Heap
How to Heat Your Shower with Compost
Composting as Animal Husbandry: Moving Way Beyond Recycling