text:
Nioxin Smoothing Reflectives Pure Shine Gel 3.4 oz.
We know you want the goods as soon as possible, which is why orders received by 3pm ET leave our warehouse the very same day. We'll send you an email that day to confirm shipment and the email will include your tracking information.
Our warehouse is closed Saturday & Sunday, so orders received after 3pm ET on Fridays will not ship out until Monday.
When your hair needs natural-hold and silky-straight control, Nioxin Pure Shine Gel provides reflective shine and curl definition.
Technology Makes It Work:
- SmoothPlex, a unique blend of Kukui Oil and Silk Amino Acids, gives hair moisture, natural shine and smooth control.
- No PVP Film Formers, gives exceptional shine and smoothness without build-up on the scalp and hair.
- Free of Drying Alcohol, doesn't dry out the hair or scalp.
- Contains Sunscreens for the hair, helps prevent damage to the hair from the drying effects of the sun.
Apply desired amount to hands and evenly work through towel dried hair. Style as desired.
Folica stands behind the authenticity of everything we sell. Since 1998, Folica has made it our mission to provide you with an outstanding selection of hair and beauty products at highly competitive prices.


text:
Institutional Research at Wesley serves all areas of the college by providing expertise in data gathering, research methodology and data analysis. The goal is to provide good quality, meaningful data to make informed decisions for planning purposes. Institutional Effectiveness at Wesley serves as the umbrella for the assessment processes in Academic Programs, Student Learning and Operational Support Units to the academic area.
Institutional Effectiveness directs all systematic institutional surveys and data gathering. Below is the Ten Year Calendar of national surveys and inventories used by Wesley College for assessment. In addition, IR oversees the creation and analysis of surveys for internal data gathering and assessment.
Mission Statement
The Office of Institutional Research provides expertise and leadership in supporting assessment of student learning, master planning, and strategic planning. The director is responsible for communicating data-related information to both internal and external constituencies to support accreditation, program review, and institutional effectiveness.

subset: commoncrawl


text:
Scalable SQL Database with the NoSQL Goodies
Crate allows to query and compute data with SQL in real time by providing a distributed aggregation engine, native search and super simple scalability.
Distributed SQL
Use familiar SQL syntax for real time distributed queries across a cluster. Crate is based on the Lucene / Elasticsearch ecosystem with built-in support for binary objects (BLOBs).
Read more about Crate's features or learn how to install Crate anywhere!
Worry-free setup
Easy to setup distributed database for apps and services at scale. The perfect fit for ephemeral distributed environments like Docker. Ready-to use for SQL and ORM users.
Migrate with best practice tips.
Learn how to install Crate in the cloud.
JOINs are nearly ready!
JOINs have been one of our most requested features and we would welcome your help testing them. Sign up to our testers list and we'll be in touch with details.
The Latest Posts
|Analyzing Germany's Weather with Crate
|Crate AMI for simple launching of EC2 Instances
|Running Crate on Linux and Windows with Azure
Crate vs MySQL
Crate makes scaling a breeze, while still using standard SQL syntax. It offers auto-sharding and replication, super-fast multi index queries, distributed aggregations and sort, lightning-fast full-text search, and super simple cluster management. Cut the number of nodes in half while gaining a 10-20x performance increase.
Crate vs NoSQL Solutions
Crate vs Cassandra
Cassandra is great for writes but not so much for reads and requires more constraining schema definitions. Crate offers outstanding full-text search, SQL interface, dynamic cluster resizing, auto-rebalancing, powerful concurrent reads and writes, and the flexibility to grow by allowing aggregates and sorting fields to be changed at anytime.
Crate vs MongoDB
No need for a team of specialists to run and scale your cluster. A Crate cluster is extremely simply to scale and manage. Faster aggregations, powerful full-text search, binary object store (BLOB) support, a permissive license, the ability to combine schemas with JSON (unstructured) in one database, as well as the ability to query with SQL standard syntax make Crate a better choice.
Crate rocks ...
- ... as a resilient, distributed SQL database for container and microservice-driven environments with automatic sharding and replication.
- ... as a "post-Hadoop/next-gen Vertica" solution with accurate distributed distinct aggregations and real time MapReduce via standard SQL queries built on top of Lucene / Elasticsearch.ecosystem.
- ... to drastically increase performance and scalability of your MySQL or MongoDB cluster while supporting structured and unstructured data.
- ... if you process semistructured/dynamic data, including geospatial data. Crate supports binary objects as well.
- ... as a horizontally scaling database for applications that require powerful full-text search and flexible schemas.
- ... as flexible deployment solution either local (for dev), on bare metal, cloud VMs, containers.


text:
To embed, copy and paste the code into your website or blog:
On May 22, 2014, the Consumer Financial Protection Bureau ("CFPB") issued an edition of its Supervisory Highlights that includes eight suggested steps to take to avoid fair lending violations when granting credit exceptions. These suggestions fall short of being clear guidelines. Rather, the CFPB indicates the type of compliance program that it finds acceptable. In sum, the CFPB expects (1) written credit exception policies; (2) a policy on the documentation of the reasons for the credit exception that is "at a minimum, sufficient to effectively monitor compliance with the exceptions policies;" (3) a record retention policy that "should, at a minimum, correspond with the record retention obligations of Regulation B;" (4) the monitoring of compliance with the policies; (5) compliance audits; (6) corrective action; (7) training and (8) management and/or board oversight. Importantly, the mere existence of such policies and procedures may not avoid an enforcement action by the CFPB as the CFPB determines whether a policy meets its interpretation of the law and if there has been adequate compliance with the policies and procedures. Certainly, the absence of any of the enumerated policies and procedures will be a significant problem as will be the adoption of policies that are not followed. Finally, this pronouncement by the CFPB recognizes that many lenders do not have optimal policies or procedures in place and is a forewarning of enforcement activity in the future related to fair lending.
See more »
DISCLAIMER: Because of the generality of this update, the information provided herein may not be applicable in all situations and should not be acted upon without specific legal advice based on particular situations.
© Williams Mullen
Your first step to building a free, personalized, morning email brief covering pertinent authors and topics on JD Supra:
Sign up to create your digest using LinkedIn*
Back to Top
Copyright ©


text:
Madonna spotted without wedding ring
Madonna was photographed in Los Angeles recently without her wedding ring on, acknowleding that her marriage to Guy Ritchie has a hit rough patch. Her rep insists it's not a big deal though, saying:
Madonna was photographed in Los Angeles recently without her wedding ring on, acknowleding that her marriage to Guy Ritchie has a hit rough patch. Her rep insists it's not a big deal though, saying:
I got to get a good solid perception of Guy Richie this last weekend while watching Snatch and listening to the directors commentary.
He is a cunt. A whiney, sniffling, Yankophile with no sense of humor and zero verve.
@20 she almost got hit by a train, but it went right through her David Letterman Tunnel, and I'm not talking about her pussy you dirty fuckers……..
She could take a hint from another aging 'musician' and fall out of a tree while on vacation.
Hey, Snatch was brilliant. Maybe you just didn't get the British sense of humour. It s film based on stereotypes. And that was the American stereotype, deal with it.
She already did fall off a horse, and that didn't do the trick. Must come up with something more devious and more likely to cause permanent injury. Hey, I know! She can star in another movie directed by her husband! That should kill off both of them.
Why the hell do the Brits call her Madge? They should just call her what she is: a has been Windsor wannabe who blackmails her two hit wonder husband into have sex with her while he cries because she has pictures of his mother blowing a horse. She'll look like Cher in no time.
#24 Hey Lila your reading comprehension fucking sucks. Snatch was fucking brilliant but if you listen to RICHIE TALK during the movie you'll learn that a) he himself thought it sucked, b) he can't bring himself to admit he knows who Brad Pitt is but he mentions his name 100 times during the flick and c) he is a whiney, snivling little Yankphile cunt.
#13 – No, we have little tolerance for stupid people. But, we'll make and exception and let you both stay.
#20 – A jet ski could sail right through that gap in her teeth. What about a double-decker bus? That would be pretty funny and appropriately English.
She's a fugly bitch and I bet she's tougher than nails. I simply cannot imagine her being nice, b/c she looks like the type to believe her own hype. GRLTC – can you say beard?
#27 – #24's a fucking retard. Don't respond to it. We don't feed the animals here.
Can I just ask the obvious? It's not like we don't ALL know that she's married. So what if she doesn't wear the ring? Just cause I like to get naked doesn't mean I broke up with my wardrobe.
Oops, that was an accident – didn't mean to post…
Maybe her ring, like my clothes, looks better on the floor.
It's not a big deal to not wear a wedding ring.
And also that MaWhora was making out with the drummer in her band.
So what.
Oh Please, all this wedding ring stuff is SUCH B.S. She is trying to fire a shot across his bow. When you are a celebrity you KNOW what the press will pick up on. How could she not read all the speculation about Nick and Jessica when she would show up places without her ring. She knows damn well that if she does that they will be asking the same questions, AND after what Guy's father just said in the paper she is well aware that her marraige is under scrutiny. She must think we are as dumb as the people who bought her tickets to her tour.
"Hmmmm, I've got a tour coming up, hmmmmm,publicity, publicity, I've got an idea, I'll take off my ring just like Jessica and Britney, yeah I'll get photographed for that! It'll be in all the papers and on TV, yeah, I'm going with THAT.
I always think Madonna can do no wrong, but her latest efforts are falling flat with me. I prefer her as a 50 year old mother living in England. Staging her next comeback on the heels of her marriage breaking up would be so annoying because when you're single and alone, you're always more hungry for attention and it shows.
Sorry but 50 year olds cant do it like 25 year olds, not even her. I really don't want to see her become a parody of herself! Maybe she'll come up with something completely different instead of trying to relive the 80's?
She took off the ring to divert attention away from those grotesque hands of hers.
EGADS Madonna! David Blaine's hands were less pruney…
Take care of your kids and stop trying to be relevant, or I'll strangle you with the Land-Cock. Oh, and no one will hear you scream b/c the Land-Balls will be gagging your mouth.
I always thought this woman looked hideous, both her body and her face.
She kind of looks good in this picture. The photographer must have been shocked when developing that pic.
Britney gave up Kaballah and now this bitch isn't wearing her ring. There is a connection but I don't care enought to make it…or make one up.
Alexis Arquette looks more feminine.
Brits call her Madge, because it is short for Madonna.


text:
Touch by Alyssa Milano 110 Black eyeglasses are classically simple. This subtly cateye style comes in glossy black acetate with upturned oval shaped lenses. The frame front is enhanced by polished silver studs at the outer corners, while the glasses are finished with a small butterfly logo on the tip of the left temple.About the Brand
Touch by Alyssa Milano eyewear expands the Touch brand with an expanded selection of eyeglasses and endless style combinations. Designed for a fun and fearless woman, this collection is an extension of Alyssa's casual, sultry style. The combination of modern acetates and colours and the vintage inspired elements of high temples, cat eye slants and modified Retro Wingtip shapes are an ideal feminine blend. Assert confidence and exude your natural charm in these stylish glasses that transition with your everyday moments.


text:
The Magazine
In Tebow We Trust
From The Scrapbook
Jan 23, 2012, Vol. 17, No. 18 • By THE SCRAPBOOK
But it would be inane to criticize Romney like this in a news story, because he's not actually putting the word "apologize" in the president's mouth. Does Brisbane seriously not know the difference between a factual assertion and a characterization? It appears he doesn't. A reporter might be expected to challenge the former, but the issue of refereeing characterizations in the name of fairness is a much more complicated one that goes to the heart of a paper's credibility. More often than not, it's not within the purview of news reporters.
The sane response for Brisbane would be to ask why some readers are so incensed by the accurate quotation of Mitt Romney's rhetoric on the front page they can't be bothered to turn to the editorial page, where columnists such as Krugman are employed precisely to give voice to their objections.
But if the New York Times has to ask whether it should report the facts and then answers its own question in such a way as to convincingly demonstrate it has no concept of what being objective even means, it truly is doomed.
The Olbermann Deficit
The Scrapbook has fond memories of Keith Olbermann, the volatile cable talking head. In a career distinguished as much by its instability as its substance—in a handful of years he has been variously employed by CNN, Fox, ESPN, MSNBC, and Current TV—we came to enjoy his impassioned, Senator Claghorn-style denunciations of Republicans and, in particular, President George W. Bush. Not because we agreed with anything he had to say—Olbermann is a mindless liberal partisan and, in the words of one former boss, a self-evident "nut"—but because the saying of it was so entertaining. Kind of like watching somebody else's deep-voiced toddler having a meltdown. Olbermann's unique combination of left-wing piety, uncontrollable rage, comic pomposity, and manic glossolalia could be found nowhere else in the televised universe.
Unfortunately, The Scrapbook has been Olbermann-deprived for several months now. Last year he had an inevitable falling-out with the "Lean Forward" folks at MSNBC, and settled in at Current TV, a media project of former Vice President Al Gore and one of his rich friends, Joel Hyatt. Never heard of Current TV? Neither had we, and despite The Scrapbook's residence in the nation's political capital, we haven't been able to find it on any of the local cable services, either.
That is, The Scrapbook—and 312.8 million other Americans since, according to the New York Times, Olbermann's present audience is estimated to be about 200,000 viewers, down from a reported million at MSNBC. But we still love him, and here's why. The Times informs us that Olbermann and Current TV are furious with one another (he and Gore reportedly don't speak), and it is probably just a matter of time before Olbermann explodes, yet again, and stalks away from his employer of six months, which is paying him $50 million over the course of a five-year contract. By The Scrapbook's rough calculation, that's approximately $50 per viewer, on an annual basis, being drained from the wallets of Al Gore and Joel Hyatt, and wasted on Olbermann.
Thanks, Keith!
Recent Blog Posts
The Weekly Standard Archives
Browse 19 Years of the Weekly Standard


text:
While I suppose the First Lady isn't actually in this video, I can only imagine she was the one who got the President Obama and Vice President Biden to agree to jog through the White House in support of Michelle Obama's Let's Move! initiative, which is designed to get kids to exercise and eat healthy.
First Lady Michelle chose a striking red overcoat for the arrival ceremony for French President Francois Hollande. Man that color really pops!
Apparently this photo that President Obama used to celebrate Valentine's Day wasn't actually taken on V-Day, but nevertheless, it's an adorable photo of the First Couple!
In honor of Valentine's Day, we're posting our top five "First Lady in Red" outfits. Such a bold color, such a strong woman.
President Barack and First Lady Michelle Obama asked Mary J. Blige to perform at the State Dinner for French President Francois Hollande. It looks like a great time was had by all!
The First Lady looked absolutely magnificent in her blue Carolina Herrera dress at the first State Dinner of the Obamas' second term. And our feature image shows just how the First Couple feel about one another as President Barack helps First Lady Michelle off stage.
Last night First Lady Michelle Obama hosted French President Francois Hollande for a State Dinner, the first of President Obama's second term. For the occasion she chose a blue Carolina Herrera evening gown with a full skirt and black lace overlay top.
POTUS & FLOTUS show off their dance moves listening to a performance by the NYU Vocaholics at the White House.


text:
Respiratory Airline Hoses
2 Results Found that Include 4 Products
How can we improve the Search Experience?
Product availability based on selecting either shipping or pick up and a location. Dismiss
Ship or Pickup Enter Location
- Airline HoseAirline Hose
Multiple product options available
Multiple product options available
Price $289.50 - $322.25
- Coiled Airline Hose, 50 ft. L, NylonCoiled Airline Hose,50 ft. L,Nylon
- Item # 6AW41
- Mfr. Model # V55030
Coiled Airline Hose, For Use With Supplied Air System, Couplers 1/4 In. Industrial Interchange, Length 50...More
Price $423.75 / each
+Add to list
Catalog Page # 2404
Note: Product availability is real-time basis and adjusted continuously. The product will be reserved for you when you complete your order. More


text:
Diba Pilot Slouch Wide Calf Boot
Compare at $100.00
Add To Bag
Please select your size, width, and color.
Check In-Store Availability
Select color, size, and width before proceeding to check in-store availability.
select locations
Add to Wishlist
Item # 308044
The Diba Pilot is versatile and looks great on everyone. This slouchy tall shaft boot is perfect for a night out on the town or a casual dinner with friends!
- Slouchy faux leather upper
- Strap and buckle detail
- Round toe
- 14¼" shaft height, pull on
- 16" calf circumference
- Padded fabric lining
- 2¾" block heel
- Synthetic sole
- Imported
- View more Women's Diba Shoes
By: Goosey
Location: Boston, MA
May 17, 2015
Great boot
"This is a nice, slouchy boot. The only problem I've had with them is that the insole likes to slip around a bit when I do a lot of walking. That said, I've done a lot of walking around in them and they're great!"
By: Tatum
Location: Granville, OH
February 04, 2015
"I am in love with these boots. I have them in black and brown and they are my favorite boots. They go good with everything and I can wear them for 10 hours comfortably."
By: DOVT
Location: VT
January 10, 2015
for a wide calf it is pretty narrow
"loved the boots but just not wide enough.calf is pretty narrow..."
By: KBECK94
Location: Marietta, Ga
December 14, 2014
Great Boot!!
"I'm very tall and often boots are too short and hit me at that awkward spot on the calf. Last year I found a perfect tall style Diba boot that I ended up getting in two colors. This year I needed a more casual pair and this pair worked great. I tried the regular calf version on at the store but decided to go with the wider calf version as I will be wearing this more over jeans and the extra inch helped. A great boot for taller women."
Click anywhere to close this.


text:
A friend of mine have about 12 days to make the trip from Portland to San Francisco. We're both in good shape and have toured several thousand miles each. I would expect to be about to go at least 70-80 miles a day if we want to.
One question: Which route to take from Portland to the coast?
The recommended route for ample time seems to be the 30 through Astoria, but I feel we will be pressed for time and this might be going to far out of the way.
So for a more direct route, either
1) Route 6 to Tillamook
2) Nestucca Access Rd to the 101 at Beaver
We are flying in and will likely by biking from the Airport, unless anyone can recommend against this idea. Maybe public transportation to get us out of the city?
SO......my second question.
Rain.....We are leaving on May 13. I expect there to be somewhere between a decent amount and an ungodly amount of rain. I have a decent gore-tex shell,but no real 'rain pants'. I'm figuring whatever I wear will get soaked through anyway, so maybe rain pants aren't a big deal. Maybe some sort of lightweight synthetic would be fine.
(We don't wear spandex )
Suggestions clothing wise for making this trip as pleasant as possible given the likely climate? I have never been to this part of the country before and don't know exactly what to expect, although I have read a number of trip reports and have a book. Seems like the weather is likely to be highly variable.
Thanks so much for your time!


text:
Teeth are more than just precious rocks that fall out of skulls so that they can be turned into jewelry. Keep your headstones polished with this Groupon.
Choose Between Two Options
- $39 for a dental package, which includes an exam, cleaning, and x-rays (a $241 value)
- $99 for a 60-minute in-office laser teeth-whitening treatment (a $399 value)
Dental Designs
Dr. David Duke loves technology. At Dental Designs, he uses an intraoral camera—a pen-size device that projects the teeth and the crevices between them onto a screen for easy examination—among other gadgets to help him treat his patients. Dr. Duke's services include preventive care and reconstructive dentistry, though he vests most of his interest in cosmetic enhancements, such as teeth whitening, veneers, and Invisalign, clear orthodontics that secretly straighten smiles.
80% of 15 customers recommend
"Dental Designs exceeded my expectations. Great Dental office and if they accept my insurance I will definitely go back."
"Place was decorated and designed like a spa. Very relaxing and good customer service."
420 East South Temple Suite 410
Salt Lake City, UT 84111
+18013552202Get Directions


text:
Here is a case study of one of the companies we've been working with, Mincom.
They've made great use of Visual Studio 2008 and specifically of Cider/WPF.
If you create a type that defines an attached property, you will notice that this attached property does not show up in the WPF Designer (Cider) Property Browser. So how do you get it to show up and what level of control do you have over when it shows up?
As it turns out, you can use the following attributes to control how your properties show up in the Property Browser:
AttachedPropertyBrowsableWhenAttributePresentAttributeAttachedPropertyBrowsableForChildrenAttribute AttachedPropertyBrowsableForTypeAttribute
You apply them to the get accessor of your attached property definition, like this:
public class WhenAttributePresentTestControl : Grid { public static readonly DependencyProperty ShowWhenCustomAttributePresentProperty = DependencyProperty.RegisterAttached( "ShowWhenCustomAttributePresent", typeof(int), typeof(WhenAttributePresentTestControl));
public static void SetShowWhenCustomAttributePresent(UIElement element, int value) { element.SetValue(ShowWhenCustomAttributePresentProperty, value); }
[AttachedPropertyBrowsableWhenAttributePresentAttribute(typeof(MyCustomAttribute))] public static int GetShowWhenCustomAttributePresent(UIElement element) { return (int)element.GetValue(ShowWhenCustomAttributePresentProperty); } }
One thing to keep in mind is that one of the requirements of showing attached properties in the designer is that the owning type needs to have been loaded by the designer. This happens whenever the designer accesses the type because it is in the XAML source or is a dependency of an element loaded from the XAML source.
Attached to this post is an example of using all 3 of these attributes.
This attribute allows you to specify that your attached property show up in the Property Browser when the selected item has a given attribute applied to it. If the attribute has a default value, that value also has to be different from the default value.
In the example above that passes in "MyCustomAttribute" as the attribute to look for, when CustomLabel below is selected in the designer, the Property Browser will show the ShowWhenCustomAttribute attached property however it will not when CustomLabelNoCustomAttribute is selected:
[MyCustomAttribute] public class CustomLabel : Label { }
public class CustomLabelNoCustomAttribute : Label { }
This attribute indicates that the attached property should be available for the children of the given control. There are two main flavors for this attribute. One that includes descendants and one that does not. As you might expect including descendants refers to including all children or simply the direct children of the control.
[AttachedPropertyBrowsableForChildrenAttribute(IncludeDescendants=true)] public static int GetShowForChildrenDeep(UIElement element) { return (int)element.GetValue(ShowForChildrenDeepProperty); }
This attribute allows you to specify that your attached property show up when a given type or types derived from that type are selected in the designer. The following sample would make your attached property show up when any Grid, derived Grid, Button or derived Button is selected.
[AttachedPropertyBrowsableForType(typeof(Grid))] [AttachedPropertyBrowsableForType(typeof(Button))] public static int GetShowForTypes(UIElement element) { return (int)element.GetValue(ShowForTypesProperty); }
Sample Attached
I have attached a sample to this blog post the shows the usage of all the attributes listed above in the Cider WPF Designer.
DevComponents recently released their DotNetBar Suite for WPF and it is loaded with design time features. Using Cider Extensibility, DevComponents really has put together one of the richest design times I've seen to date.
Denis talks about the features on this blog post.
The DotNetBar suite provides a set of controls that make it easy to build an application with an Office Ribbon, Window Management and an Outlook style Navigation Pane control.
The first thing to notice is that for the elements you care to move to other positions -- the buttons in the Ribbon (including on the application menu), and the windows in the application -- can be moved by simply clicking and dragging. Very cool use of setting up a ParentAdapter correctly.
Here's a sequence where I moved a button from the Recent Documents list to the Command Button area to the Application Menu main buttons to a location on the ribbon -- all using drag drop.
For redocking the windows at design time, the user gets the Visual Studio-esque docking targets and highlighting:
Much better than having to find the right set of XAML to modify right?
Each selectable element also has a popup menu associated with it that allows the user to edit the controls in place.
The application Menu:
Drop down buttons (these can be dragged dropped around the whole UI to multiple drop targets):
The Ribbon Tab:
And Windows:
DevComponents have made use of the following Cider Extensibility features to make this happen: Adorners, DefaultInitializers (to setup the XAML for their controls when they are created from the toolbox), and ParentAdapter (for drag/drop move/repositioning of theirr controls).
Really is a great example of how powerful the Adorner Extensibility features are in Cider.
Again -- I am looking for more design time examples to feature on this blog so please contact me with your examples!
I've received two bug reports from Control Vendors regarding Style.Triggers not working correctly at design time in the WPF Designer RTM. Fortunately, we do have a workaround to the problem. Suppose you have a trigger defined as follows:
<Style TargetType="{x:Type local:CustomControl1}"> <Style.Triggers> <Trigger Property="local:CustomControl1.SecondTemplate" Value="True"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type local:CustomControl1}"> <Border Background="Red" BorderBrush="Green" BorderThickness="4"> </Border> </ControlTemplate> </Setter.Value> </Setter> </Trigger> </Style.Triggers> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type local:CustomControl1}"> <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style>
What you would expect is that in the designer when you set the SecondTemplate property to true you would get something that looks like this:
Unfortunately, the style doesn't update.
To work around this issue, if you define triggers for both the true and false values, you will get the desired behavior:
<Style TargetType="{x:Type local:CustomControl1}"> <Style.Triggers> <Trigger Property="local:CustomControl1.SecondTemplate" Value="True"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type local:CustomControl1}"> <Border Background="Red" BorderBrush="Green" BorderThickness="4"> </Border> </ControlTemplate> </Setter.Value> </Setter> </Trigger> <Trigger Property="local:CustomControl1.SecondTemplate" Value="false"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type local:CustomControl1}"> <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"> </Border> </ControlTemplate> </Setter.Value> </Setter> </Trigger> </Style.Triggers> </Style>
Hope that helps!
This sample is attached. When you open the sample it will be in a state where the style triggers don't, well, trigger at design time. If you uncomment the workaround and comment the original style, you will see the style triggers will then work in the designer.
There are definitely some cool 3rd party WPF tools coming out as of late -- for example, Mole. Here is another cool one that helps you to get a handle on your WPF resources.
Another great example of cool design time functionality in Cider (WPF Designer in Visual Studio 2008) comes from Actipro. Their Office Ribbon control uses Cider Extensibility to add task panes invoked by an adorner that makes configuring their control a breeze.
For example, when the main Ribbon is selected a little widget adorner in the upper right hand corner is shown and when clicked will bring up a task pane that uses the Cider Editing Model to make updates to the XAML:
Likewise, they've done that for TabGroup, Tab and StackPanel tasks:
There are other examples as well, virtually every major clickable element has a task pane associated with it. Very cool.
You can also drag and drop elements of your Ribbon around -- which really makes designing your control really easy.
Actipro has also made good use of the Property Browser, the collection editors have all been setup using the NewItemTypesAttribute which allows the end user of their controls to use the collection editors to configure the Ribbon:
Similarly, with non collection properties in the Property Browser:
Actipro uses the following Cider Extensibility points: DesignModeValueProvider (set a different value for the instance in the UI from that which is serialized to XAML), lots of Adorners, and Property Editing Extensibility.
For additional information, see http://www.actiprosoftware.com/Products/DotNet/WPF/Ribbon/DesignerSupport.aspx
Now that Visual Studio 2008 has been released, one of the real fruits of my job is to see how our customers end up using our product. Specifically, I really enjoy seeing how WPF Control Developers end up using the WPF Designer Extensibility API that I talk about so much on this blog.
If you have examples of how you are using extensibility for your WPF controls -- please drop me a line (you can send a message from this blog) and I'll definitely blog about your product.
The first example I received that shows off design time extensibility comes from divelements - SandDock for WPF.
SanDock is a very cool set of controls that provide a vast array of Window Management functionality. Here is a shot of their demo application inside the designer. (showing off how you can redock your windows at design time using adorners)
Here they use MenuActions to add context menu items that help the user configure their application:
Finally, here is a more clear shot of their clever use of adorners to provide a design time window docking functionality similar to the dockable windows feature in Visual Studio:
They have also made their own EverythingPolicy (to show adorners on more elements than just the primary selection), ParentAdapter (to handle reparenting), and DefaultInitializer (note the XAML spit when instantiating their controls from the toolbox),
Lots of great illustrations of how you can use the power of Cider's extensibility model to create a first class design time experience.
Here is the divelements page describing the designer support: http://www.divelements.co.uk/net/controls/sanddockwpf/documentation/designer.htm
If you add a TextBox as an adorner to your design time, by default you will not be able to give that TextBox focus. That is, you won't be able to set the cursor in it so that you can type.
Similarly, if you use a TabControl as an adorner, by default you won't be able to switch the tabs by clicking on them.
The solution is to set the AdornerPanel.IsContentFocusable property to true:
AdornerPanel ap = new AdornerPanel(); ap.IsContentFocusable = true;
One caveat here: we know we have a bug in the TextBox keyboard handling where the delete key will always delete the selected control, even when the user is in text entry mode in a TextBox -- i.e. hitting the delete key won't delete the text, it will delete the control.
Cider is currently known as the "WPF Designer for Visual Studio" but we're also in the works of being known as the "Silverlight Designer for Visual Studio".
In other words, we care about Silverlight and the following is pretty cool:
· On December 19th, Blockbuster will premiere the first full-length feature film, Jackass 2.5, directly to online audiences on Windows and Mac using Microsoft Silverlight
· Jackass 2.5 will be made available for free, for anyone in the US 17 or older, courtesy of Blockbuster at www.blockbuster.jackassworld.com beginning December 19th through December 31st, 2007
· This is one of the largest projects in Blockbuster history, made possible using the rich media CDN from Limelight Networks and Silverlight
· Silverlight is a 1.5MB cross-browser, cross-platform plugin for IE, Firefox and Safari users. Details and download at http://www.microsoft.com/silverlight
The ecosystem around Silverlight is continuing to grow, with an impressive line-up of customers like MLB.com, BMW, Sony Ericsson, Baidu (#1 search site in PRC), NBA.com, Entertainment Tonight (CBS/Paramount) and UVNTV.com, to name a few. See more at http://silverlight.net/Showcase/
Recently I had a customer point out the following from the documentation:
Differences in Specifying Toolbox icons
In the Windows Forms Designer framework, you specify a Toolbox icon for your custom control by applying the ToolboxBitmapAttribute to your control class.
In the WPF Designer framework, you use an embedded resource and a naming convention to specify a Toolbox bitmap. In addition, you use the ToolboxBrowsableAttribute to restrict which types in an assembly are available for populating a Toolbox.
Followed by the question "What is the naming convention?"
I thought I'd answer that question by posting to my blog as it is not the first time I've had that question.
First, a note about the ToolboxBrowsableAttribute, it is defined in Microsoft.Windows.Design.dll so you don't want to use it declaratively in your code because that would require making a reference to Microsoft.Windows.Design.dll which will only be available on machines that have Visual Studio 2008 installed. Use the Metadata Store as discussed here and Metadata Assemblies as discussed here.
Toolbox Icon Naming Convention
Type is defined as:
namespace Proseware.Core.Controls
public partial class ProseControl : UserControl
public ProseControl()
Default namespace: Proseware.Core.Controls
ProseControl.Icon.png is added as an Embedded Resource.
This causes the image at Proseware.Core.Controls.ProseControl.Icon.png from the resources inside the assembly in which ProseControl is contained to be used as the toolbox icon:
(view from reflector)
Multiple Sizes
The naming convention supports multiple image sizes. For the following example:
public ProseControl()
For the ProseControl type, the following images in the resources will all be found and the best match for size will be used.
Or, alternatively (the '.' After Icon is not required but is acceptable):
If the desired size by the host is 64 pixels by 64 pixels, and Proseware.Core.Controls.ProseControl.Icon.Large.png is the best match based on size and aspect ratio, it will be used. All of the images will be looked at.
If there are 2 images with the same size and aspect ratio, the host will decide which it will use.
Sample Project
Attached to this post is a sample project that illustrates how to get an icon defined for your control. To test, build the solution, right click on the toolbox and click "Choose Items...". Switch to the WPF Components tab and navigate to one of the control assemblies. You will then see your control with it's icon on the toolbox.
Ran across this today and I thought I would pass it along as it is a very useful tool for WPF developers.
Mole II is a high performance, full featured Visual Studio Visualizer which allows you to inspect elements in the WPF visual tree or logical tree, as well as all properties of those elements.
Mole II is a high performance, full featured Visual Studio Visualizer which allows you to inspect elements in the WPF visual tree or logical tree, as well as all properties of those elements.
Mark Wilson-Thomas is our resident WPF Layout expert and is leveraging my blog to get some great information out about how the VS 2008 WPF Designer approaches layout:
How to get the best out of the WPF designer when laying out your WPF app
Lots of folks have asked what the reasoning is for the WPF designer giving a new control instance on the design surface a width and height, and margins so that it stays where you drop it and sizes to a reasonable default size. The story of "why we emit margins to make things feel like anchored controls in Windows Forms" by default in the Cider layout system is really about making it possible to traverse two paths to your final layout, and to cross over from one to the other:
Path 1: This is the popular "Visual Place-and-size" path that people have been used to on practically every GUI designer that's shipped since Visual Basic.
Path 2: This is the "Container first" path, where you lay out the Grid(s) or other containers that will govern the layout, then place controls inside them (generally with zero margin) and let the container take care of the resize behavior for you
Path 2 is an approach I've seen advocated in several posts and discussions on the topic. Both from a "WPF platform-purist" point of view and an experienced Web UI developers point of view, I agree this a clear and straightforward way of thinking about layout in WPF. However if you're one of the many millions of developers who have been working with Windows Forms, VB, etc for years, and have never built a web app, it will probably not be an easy transition for you to be forced to start thinking this way for your first app building experiences – and in addition, you may never want to build a fully resizable app.
So if you're a developer with that set of experience, what we let you do is get a pretty much functional WPF app in the traditional way you always have using path 1 (and actually for a lot of applications you might even stop there). If you wish to, we then give you help to start dropping gridlines into your design and snapping them to your controls/your controls to them (getting the zero margins you are looking for) ready to move into Auto-layout-land. Unfortunately, we didn't have time on Cider v1 to deliver the full set of features that would give you the "flip-to-auto" part of the story on the design surface, so you have to go to XAML or the property inspector to make it happen, and when you do the behavior of the design surface can become a little "quirky" in places.
So, what's the best path for getting great layout in the designer then?
The application layout path that works best right now if you want to use the WPF design surface is:
NOTE 1: If you need to move/resize things after this step, it's best to flip back out of auto first.NOTE 2: Steps 1 & 2 are pretty much interchangeable
Why doesn't the designer favor auto layouts by default?
I think it's reasonable to argue we should have started with a mode that favored auto layouts by placing new controls with no margins in whatever container they were added to (rather than the method we have used) by default. However after many discussions in the team we felt this kind of total break with the past for our default experience would be just too jarring for too many existing UI technology users.
I do think that a designer setting that allowed you to have a more "start with auto" approach would be a useful feature, and we'll think about that for future releases. As an aside, right now one way to work in a "start with auto" approach should you wish to do so, is to work entirely in the XAML editor and not use the toolbox for control creation at all. That way you will get only the properties you explicitly wanted at creation time.
We've been seeing some issues where VS 2008 crashes when creating a new WPF project. The underlying issue is that on certain machine configurations, the .Net Framework is not updating correctly.
In order to short circuit diagnosing that you're in this state, one of my colleagues on the deployment team has written a tool that will tell you whether or not the .Net Framework is installed correctly or not.
If you are having issues, please take a look at this tool http://blogs.msdn.com/aaronru/archive/2007/11/29/net-framework-3-5-installation-validation-tool.aspx. It will tell you whether or not your .Net Framework installation is correctly installed.
After that, have a look at this tool to collect log files: http://blogs.msdn.com/astebner/archive/2007/08/01/4172276.aspx
If you do have this issue, please contact the Cider team directly via our forum at: http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=169&SiteID=1 or via my blog and have the results of the .Net Framework install check and log files ready.
Thank you and sorry for any inconveniences.
This is a pretty exciting day as Visual Studio 2008 has shipped. This is the first product I've shipped with Microsoft which makes it a milestone for me. I think back to what feels like yesterday (2 years ago) when I started on Project Cider and all we had was a half working XAML previewer.
Since I represented my team in the Developer Division shiproom, late last week I got to sign these big 6 foot Visual Studio boxes and received a t-shirt of all of the best shiproom quotes. I was happy to see I got quoted twice!
It really has been a great experience for me and I've learned a lot over the past two years. I really look forward to working on our next release.
Here is Soma's announcement:
One of the challenges of building a designer after the framework has shipped (as is the case with Cider) is that the designer isn't always able to support all of the coding patterns that develop before the tools become available.
This is not a new problem. Brian Pepin wrote a similar article to this one back in 2004 about Windows Forms.
This post will discuss some of those patterns that are valid at runtime but are not supported by Cider.
Code Behind in Controls
Cider, like Blend is fundamentally a XAML designer. We load up XAML files. When you write code behind for a particular control, that code behind may or may not be run at design time.
If the code behind is in the constructor of a control that is hosted by a parent in the Cider designer, it will be run when that control is loaded onto the design surface. For instance, if I create a UserControl named MyUserControl and place it on a Window, the constructor for MyUserControl will be run when that Window is loaded in Cider.
However, if I am designing MyUserControl in Cider, because that type is being modified and created at that time, we don't instantiate MyUserControl -- which in turn means that none of the code behind for MyUserControl will be run.
By the same logic, the code behind for any Window that is being designed will also never be run.
Additionally, if you ever load XAML that binds to custom properties for a type being designed (i.e. Window is being designed or MyUserControl is being designed), those bindings will fail because again, the instance that is on the designer is the base class (Window, UserControl) of the type you are designing and not the actual type.
For example:
<Window x:Class="DontDoThis.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300" Name="MainWindow"> <Grid> <!--Notice how I can't bind to a Custom property on Window1 since the CustomInt property doesn't exist at design time--> <TextBox Text="{Binding ElementName=MainWindow, Path=CustomInt}" Height="29" Margin="55,28,77,0" VerticalAlignment="Top" /> </Grid></Window>
Base Classes
As I've alluded to above, when we design a type, we instantiate its base class and show that in the designer. What that means is that the base class for any type that you wish to show in the designer must be concrete (i.e. not abstract) and also have a public default constructor.
That is, if I derive a class AbstractDerivedWindow from Window and then derive ConcreteDerivedWindow from AbstractDerivedWindow and try to load up and design ConcreteDerivedWindow, we will fail since we try to instantiate AbstractDerivedWindow, which we cannot.
More concretely:
<loc:AbstractDerivedWindow x:Class="DontDoThis.ConcreteDerivedWindow" . . . > . . . </loc:AbstractDerivedWindow>
will not load in the designer with the error: Type 'AbstractDerivedWindow' is not usable as an object element because it is not public or does not define a public parameterless constructor or a type converter.
Setting Property Values in Code Behind
For compiled controls, for example a UserControl on a Window, that control is instantiated XAML + code which means that the code behind will run for that UserControl when it is on the design surface.
If the code behind for that UserControl makes property changes, our model will not pick that up... which will result in the model and the designer getting out of sync with each other.
In some situations, that isn't so bad, consider the following:
public partial class UserControl2 : UserControl { public UserControl2() { InitializeComponent(); Background = Brushes.Blue; }
Cider will look at the properties that are set on a control after it's constructor has run and treat those values as the default values regardless of whether or not they are truly the default value as per the Dependency Property definition, set by the XAML for that control (i.e. UserControl2.xaml) or set programmatically as above.
When I instantiate UserControl2 above on Window1.xaml, the Background property is set to Blue. If I set the Background property locally:
<loc:UserControl2 Background="Cyan" />
It changes as expected and when I delete the Background attribute in the XAML (<loc:UserControl2/>) the Background goes back to Blue.
That said, there are situations like the following where our designer will not match the runtime values because the properties are being set programmatically and our model doesn't pick it up.
public class CustomControl1 : Button { String property_One;
public String Property_One { get { return property_One; } set { SolidColorBrush backgroundSolidColorBrush = System.Windows.Media.Brushes.Firebrick; SolidColorBrush foregroundSolidColorBrush = System.Windows.Media.Brushes.White; Background = backgroundSolidColorBrush; Foreground = foregroundSolidColorBrush; property_One = value; } } }
And this control is instanced on a Window as follows:
<custom:CustomControl1 Margin="11,36,11,124" Property_One="One"/>
In this case, due to some internal "shadow property/design mode value provider" magic we do in the designer, the Background and Foreground properties are set to Firebrick and White respectively at runtime but not in the designer.
It's also important to note that the designer does not make calls to property accessor methods (get/set) for Dependency Properties.
Along the same lines as what I discuss here and some of my other "why doesn't my XAML load" posts, Jim Galysn has written a great post about troubleshooting designer load failures.
As it turns out, we have a bug in finding metadata assemblies that will be in Visual Studio 2008 RTM. I described how we find and load metadata assemblies in a previous post and the bug pertains to the situation where:
The main line scenarios where this will be true is:
In order to handle all of the situations (note that your customers may GAC your assemblies on you provided your assemblies are strong named) you need to provide 2 sets of design time assemblies (in your AssemblyFolder):
Sorry for the inconvenience, at least there is a reasonable workaround.
Recently I made a post about how to deal with Application.Current at design time. I thought I'd follow that up with another example of why your XAML may not show up in the WPF Designer (Cider) due to assumptions that are not true at design time.
In this case, we're talking about implementing an IMultiValueConverter for a MultiBinding:
public class SampleConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) { string text = (string)values[0]; Brush backgroundBrush = (Brush) values[1]; return text + backgroundBrush.ToString(); } (. . .) }
In my sample, I am using this SampleConverter in a ControlTemplate that is defined in Application.Resources:
<ControlTemplate x:Key="ReadOnlyTextBlockTemplate" TargetType="{x:Type TextBox}"> <ControlTemplate.Resources> <loc:SampleConverter x:Key="SampleConverter"/> </ControlTemplate.Resources> <Border BorderBrush="Black" BorderThickness="1"> <TextBlock> <TextBlock.Text> <MultiBinding Converter="{StaticResource SampleConverter}"> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Text"/> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Background"/> </MultiBinding> </TextBlock.Text> </TextBlock> </Border> </ControlTemplate>
This all works fine at runtime but at design time, I fail to load with the error:
Error 1 Unable to cast object of type 'MS.Internal.NamedObject' to type 'System.String'. C:\Users\jnak.REDMOND\Desktop\MultiBindingExample\MultiBindingExample\App.xaml 13 21 MultiBindingExample
If you attach another instance of Visual Studio and debug into this, you'll find this:
Ahh, I made an assumption that is always true at runtime but is not always true at design time.
There are situations like this where some of our hookup is still being worked out and your code needs to handle this in order to work correctly in the designer.
The simple fix here is to deal with this exception being thrown or check the type before trying to cast it (or use a construct such as "as" and check for null).
-- Project is attached for full repro.
As we approach the end of the Orcas project schedule (Visual Studio 2008) I've been doing some app building in order to help validate the quality of the product that we are shipping.
In doing so, I ran into a WPF bug that actually ended up costing me a fair amount of time.
I was trying to display a collection of teams where each team had a collection of tasks. I used an ItemsControl to display the teams and inside the ItemTemplate for each team, I had an ItemsControl that displayed the tasks.
I got the teams showing up but only the first task for the first team showed up. I went on trying to debug this, using TextBlock set to various binding expressions so that I could see the data as DataBinding would see the data. After a few hours of finding nothing wrong with my code, I hit the web and found that I had hit on a bug.
In fact, I found 2 bugs in this area:
There is an illustrative code sample in the forum posting so I didn't bother adding my own in this post. I did want to raise awareness to this issue as there is a workaround (reference the DataTemplate for the ItemTemplate from resources) and I hope I can save someone some time.
We made a change post Visual Studio 2008 (Orcas) Beta 2 in the way the AdornerProvider.Activate() and AdornerProvider.Deactivate() methods are called.
In the past you could assume that the Activate() and Deactivate() methods would be called exactly once per AdornerProvider instance.
This is no longer true, in Visual Studio 2008 RTM, it will be possible that for a given AdornerProvider instance, the Activate() and Deactivate() methods will be called multiple times. I had to update my TechEd samples to accomodate this.
Scott Guthrie, a GM in the division I work in (Developer Division) has just made a great post about how Microsoft will be releasing the source code of the .Net Framework libraries along with Visual Studio 2008.
I know, I know, the majority of you that develop using one of the .Net techologies use reflector, so this may not seem like a big deal but consider the demo that Scott walks through that shows the integration of debugging, source and symbols. This is such a win for .Net developers.
A really cool new feature for Visual Studio 2008 is the Toolbox Controls Installer which as the name implies, allows you to add controls to the toolbox. It's much easier than some of the previous VS package type work you used to need to do.
There is a great sample in the Visual Studio SDK 2008 that shows you how to add a Windows Forms control, Web Control and WPF control to the toolbox programmatically. The sample is called "Controls" -- and includes a WPF control and design time that may be familiar to those of you who have been reading my blog. (I'm surprised at how much mileage some of my samples get!)
There is one caveat, in some of the online documentation that doesn't show the WPF example (it was added later), there is a missing registry value that is required to make this work:
<Registry Root="HKLM" Key="$(var.VisualStudioRegistryRoot)\ToolboxControlsInstaller\CustomControlLibrary, Version=22.214.171.124, Culture=neutral, PublicKeyToken=1631b3e7a8fbcce5" Value="Litware Controls" Type="string"> <Registry Name="Codebase" Value="[#CustomControlLibrary.dll]" Type="string" /> <Registry Name="WPFControls" Value="1" Type="string" /> </Registry>
The "WPFControls" value above.
Very cool feature, really simplifies toolbox installation. Note: this is implemented in VS 2008 Beta 2.
There are a ton of WPF samples on MSDN which are really useful if you are developing in or learning WPF. If you aren't aware of these samples, please check them out.
One of the samples illustrates a point I want to make in my post today -- which is that as much as we try to avoid making you do this, sometimes you have to tweak your XAML/code in order to make it work within the Cider designer.
The sample I am going to use is from a DataTemplate Sample located here: http://msdn2.microsoft.com/en-us/library/aa972119.aspx
If you load up this sample in VS 2008 beta 2 or later and (after conversion) you'll see that you can build and run the application no problem. However, if you open up Window1.xaml, you'll notice that it fails to load in the designer and you'll get an error:
'myTaskTemplate' resource not found. at MS.Internal.Helper.FindResourceHelper.DoTryCatchWhen(Object arg) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
The problem occurs when we try to instantiate the TaskListDataTemplateSelector which is in the Window.Resources:
<local:TaskListDataTemplateSelector x:Key="myDataTemplateSelector"/>
This class does the following:
public class TaskListDataTemplateSelector : DataTemplateSelector { public override DataTemplate SelectTemplate(object item, DependencyObject container) { if (item != null && item is Task) { Task taskitem = item as Task; Window window = Application.Current.MainWindow;
if (taskitem.Priority == 1) return window.FindResource("importantTaskTemplate") as DataTemplate; else return window.FindResource("myTaskTemplate") as DataTemplate; }
return null; } }
Do you see the problem? What do you suppose Application.Current.MainWindow is in the designer?
Since Visual Studio isn't a WPF application, for a long time during the development of Cider Application.Current returned null. It no longer returns null but it is setup by Cider and has to do with Cider and not what you will get when you run your application.
In other words, calls to window.FindResource() will fail.
So what can you do to make this work in the designer? Well you have a few options, but if you've been following this blog for a long time you'll remember this post on detecting design mode.
Since this situation nicely demonstrates the use of design mode, I'll solve the problem that way by changing the above code to check for Design Mode before accessing Application.Current.
public override DataTemplate SelectTemplate(object item, DependencyObject container) { if (!DesignerProperties.GetIsInDesignMode(container) && item != null && item is Task) { Task taskitem = item as Task; Window window = Application.Current.MainWindow;
(. . .) }
The parameter you pass to GetIsInDesignMode doesn't really matter here since I'm counting on the default value which has been overriden to true in the context of a designer, the DependencyObject passed in will look for the IsInDesignMode attached property up it's tree.
Now -- lo and behold! The designer loads in Cider.
[One warning -- the code to set the binding via the Editing Object Model will not work in VS 2008 beta 2 but will work in RTM]
Recently I wrote a post about writing Design Time Adorners. I had a good question come up on our Cider forum and I thought I would answer that question in the form of a post and sample which will illustrate how to accomplish much of what the person who made the post was trying to do.
The question was essentially: How can I use design time adorners to make it easy to setup bindings between controls?
I've updated my sample from my post on writing Design Time Adorners to not only set the Background of my SimpleCustomControl but also to set the Background of all of the siblings of my control to bind to the Background of my control -- as long as my SimpleCustomControl has a name and the Background property of the sibling control is not set.
I piggy backed on the adorner that is already there so this post is really about using the Editing Object Model than adorners per se as the Editing Object Model is used in many situations, not just with adorners.
How the design time works
1) I start with my SimpleCustomControl in a Grid with 3 Buttons and 1 label as siblings. Notice that one of the Buttons has it's Background set.
2) I click on the Adorner for the SimpleCustomControl (the paint can that appears when the SimpleCustomControl is selected) and select a color.
3) Notice how the Background for the siblings that didn't have the Background property set is now set to a binding to the Background of my SimpleCustomControl.
So how did I get this to work?
As mentioned above, I added all of the functionality to the existing handler for when the adorner gets clicked -- inside of _ColorsListControl_ClosePopup():
void _ColorsListControl_ClosePopup(object sender, RoutedEventArgs e){ (. . .)}
The first step is to get at the ModelItems for the siblings of the SimpleCustomControl. I get at them by going to the parent of the SimpleCustomControl (the Grid) and then asking for all of the Grids children.
ModelItem parentModelItem = adornedElementModelItem.Parent; ModelProperty siblingsProperty = parentModelItem.Properties["Children"]; ModelItemCollection siblings = siblingsProperty.Collection;
The next step is to enumerate through those ModelItems and if the Background property is not set, set it to a binding:
foreach (ModelItem mi in siblings) { if (mi != adornedElementModelItem && !mi.Properties[Control.BackgroundProperty].IsSet) { (. . .) // set to a Binding } }
Setting the Background to a Binding is done by creating a Binding instance, and setting the Background property of the sibling to it. Then we setup the Binding by setting both the ElementName and Path properties.
using (var scope = mi.BeginEdit()) { ModelItem binding = ModelFactory.CreateItem(Context, typeof(Binding)); mi.Properties[Control.BackgroundProperty].SetValue(binding); binding.Properties["ElementName"].SetValue(adornedElementModelItem.Properties["Name"].Value); binding.Properties["Path"].SetValue(new PropertyPath("Background"));
scope.Complete(); }
And that's it -- one caveat is that as all my posts, this is quick and dirty code to illustrate a concept and this code may have to be tweaked to handle all of the various situations that can arise in the usage of the SimpleCustomControl.
The code for this sample is attached to this blog post.
I've posted about design time adorners a few times in the past however there have been some API changes since then so I thought I'd do a fresh post.
What are design time adorners?
Adorners are WPF elements that you can put on the Cider design surface when your custom control is instantiated and selected. The end user who is using Cider can interact with your adorners to make updates to the XAML.
For example, the selection handles, grid lines and rails when a Grid is selected are put on the design surface through the same adorner infrastructure I am describing in this post.
Create an AdornerProvider
The first step is to create an AdornerProvider that will add your adorners when your control is selected. You will associate this AdornerProvider to your control using the Metadata Store as described in this post and this post.
public class MyCustomAdornerProvider : PrimarySelectionAdornerProvider { Public MyCustomAdornerProvider () { Button buttonAdorner = new Button(); buttonAdorner.Background = Brushes.Red; AdornerPanel panel = new AdornerPanel(); panel.Children.Add(buttonAdorner); Adorners.Add(panel);} (...) }
The key things to point out here are:
Add UIElements (the Adorners) to an AdornerPanel
Setup the AdornerPlacementCollection with Position and Size Methods that are additive (take a factor + offset):
In this API, "Content" refers to the control being adorned as its layed out on the design surface at 1X zoom.
For example, to setup a button that will be above and to the left of the associated control when it is selected, you would do the following:
AdornerPlacementCollection placement = new AdornerPlacementCollection();placement.SizeRelativeToAdornerDesiredHeight(1.0, 0);placement.SizeRelativeToAdornerDesiredWidth(1.0, 0);placement.PositionRelativeToAdornerHeight(-1, -NudgeAmount);placement.PositionRelativeToAdornerWidth(-1, -NudgeAmount);AdornerPanel.SetPlacements(adorner, placement);
To control how your adorners will act when zooming in and out, you can set the stretch properties on the AdornerPanel:
Handle the interaction with your Adorners (handle events or setup tasks)
For a lot of adorners that you will put on the design surface, handling the interaction is as simple as handling the events on the adorner itself. For example:
BouncyButton adorner = new BouncyButton();adorner.Click += new RoutedEventHandler(OnButtonClick);
And in OnButtonClick() you can make changes to the XAML by working through the Editing Object Model. The following sample code shows how to get the ModelItem for a given adorner and modify one of its properties through the ModelProperty class.
ModelItem adornedElementModelItem = AdornerProperties.GetModel(_ColorsListControl);adornedElementModelItem.Properties[Control.BackgroundProperty].SetValue(new SolidColorBrush(_ColorsListControl.SelectedColor));
Hook up your AdornerProvider to the control via the FeatureAttribute and MetadataStore
The other thing you can do is use Tasks. A Task associates a collection of input gestures that are bound to commands and the handlers for those commands. Cider defines a set of ToolGestures that you can use as input gestures and thus handle -- in other words you can handle a click gesture on a Rectangle even though the Rectangle doesn't have a Click event.
Task clickTask = new Task();clickTask.ToolCommandBindings.Add(new ToolCommandBinding(_ClickCommand, OnRectangleClick));clickTask.InputBindings.Add(new InputBinding(_ClickCommand, new ToolGesture(ToolAction.Click)));AdornerPanel.SetTask(adorner, clickTask);
And as before, in OnRectangleClick() you can use the Editing Model (ModelItem, ModelProperty) to update the XAML from your adorner.
Setup the Metadata
Finally, in your Metadata Assembly, you will set up the metadata to associate your AdornerProvider to the control you want it to show up for:
builder.AddCustomAttributes(typeof(ButtonWithDesignTime), new FeatureAttribute(typeof(PopupButtonAdornerProvider)));
I've attached a sample to this blog post that shows all of the concepts above and will work on beta 2 and RTM.
One of our User Education writers who takes care of much of the Cider Extensibility documentation that will go into MSDN helped make the very early and beta set of docs on these subjects available for all to read.
You'll find them attached to this blog post.
You'll also find that aside from this blog and Brian and Soak's blog, there is very little little information out there on how to write things such as property editors, design time adorners, MenuActions (adding context menu items to the right click menu) etc. etc.. which makes these docs really helpful at this point in time.


text:
|Accession Numbers: EG10312 (EcoCyc), b4313, ECK4304
Synonyms: hyp, pilH
FimE, along with FimB, is a recombinase in Escherichia coli which catalyzes the site-specific recombination required for inversion of a 314-bp invertible DNA element, the fim switch (fimS), to control transcription of the type I fimbrial structural genes--a process known as phase-variation switching. fimS contains the promoter for expression of the fimbrial structural genes. The promoter is positioned to allow expression of fimAICDFGH when fimS is in the ON orientation, but not when it is in the OFF orientation. FimB is responsible for both OFF-to-ON and ON-to-OFF switching at equal rates. FimE is responsible for primarily ON-to-OFF switching.
FimB and FimE share significant homology with the lambda integrase family of site-specific recombinases [Dorman87].
Analyses of fimB and fimE mutants and direct assays indicate that fimB is able to mediate recombination in both directions (on-to-off and off-to-on) while fimE primarily stimulates recombination in the on-to-off direction [Klemm86, Pallesen89, Blomfield91, McClain91, McClain93, Gally96, Kulasekara99]. fimE mutants do arise which are able to perform OFF-to-ON switching [Smith99, StentebjergOles00]. Extensive analysis of fimS has been performed showing the specificity of FimB and FimE for fimS sequences, the effect of sequence alterations on the ability of FimB and FimE to catalyze inversion, the effects of temperature and media on inversions, and the effects of alterations in the way other accessory proteins like Lrp, IHF, and H-NS are able to interact with this system [Abraham85, Dorman87, Eisenstein87, Schwan92, Dorman92, Blomfield93, Gally93, Olsen94, Gally94, Dove94, Blomfield97, Roesch98, Lahooti05, McCusker08, Holden07, Ogara00].
fimS also acts as a phase-variable switch with respect to fimE mRNA stability [Kulasekara99, Sohanpal01, Joyce02, Hinde05]. In the OFF position, fimE transcripts are terminated by a Rho-dependent terminator within fimS and are much less stable than transcripts produced with fimS in the ON position [Joyce02, Hinde05]. The reduction in FimE allows FimB to increase OFF-to-ON inversions and induce fimbrial gene expression. Expression of fimE is positively regulated by LrhA preventing fimbrial gene expression [Blumer05]. fimB and fimE are repressed by H-NS [Olsen98, Donato99]. Expression of fimB and fimE are controlled by RcsB during growth at neutral pH by increasing fimB transcription or decreasing fimE transcription depending on salt concentration [Schwan07]. The effects of pH and osmolarity on fimB and fimE expression have also been studied in uropathogenic E. coli [Schwan02].
Citations: [Teng06, Wolf02, Hasman00, Breines94]
Gene Citations: [Schwan94]
Locations: cytosol
|Map Position: [4,540,060 -> 4,540,656] (97.85 centisomes, 352°)
|Length: 597 bp / 198 aa
Molecular Weight of Polypeptide: 23.116 kD (from nucleotide sequence)
Unification Links: ASAP:ABE-0014143 , CGSC:18346 , EchoBASE:EB0308 , EcoGene:EG10312 , EcoliWiki:b4313 , ModBase:P0ADH7 , OU-Microarray:b4313 , PortEco:fimE , PR:PRO_000022620 , Protein Model Portal:P0ADH7 , RefSeq:NP_418733 , RegulonDB:EG10312 , SMR:P0ADH7 , String:511145.b4313 , UniProt:P0ADH7
Relationship Links: InterPro:IN-FAMILY:IPR002104 , InterPro:IN-FAMILY:IPR011010 , InterPro:IN-FAMILY:IPR013762 , Pfam:IN-FAMILY:PF00589
In Paralogous Gene Group: 470 (4 members)
GO Terms:
|Biological Process:
|GO:0006310 - DNA recombination
[UniProtGOA11, GOA01a, McClain93]
GO:0015074 - DNA integration [UniProtGOA11, GOA01a, Klemm86]
GO:0006351 - transcription, DNA-templated [UniProtGOA11]
GO:0006355 - regulation of transcription, DNA-templated [UniProtGOA11]
|Molecular Function:
|GO:0003677 - DNA binding [GOA01a]
|Cellular Component:
|GO:0005829 - cytosol [DiazMejia09]
|MultiFun Terms:
|cell structure → pilus
|information transfer → DNA related → DNA recombination
|metabolism → biosynthesis of macromolecules (cellular constituents) → fimbri, pili
|regulation → genetic unit regulated → operon
|regulation → type of regulation → DNA structure level
Essentiality data for fimE knockouts:
|Growth Medium
|Growth Observations
|LB Lennox
|Yes [Baba06, Comment 1]
|M9 medium with 1% glycerol
|Yes [Joyce06, Comment 2]
|MOPS medium with 0.4% glucose
|Yes [Baba06, Comment 1]
|Feature Class
Gene Local Context (not to scale):
Transcription Unit:
10/20/97 Gene b4313 from Blattner lab Genbank (v. M52) entry merged into EcoCyc gene EG10312; confirmed by SwissProt match.
Abraham85: Abraham JM, Freitag CS, Clements JR, Eisenstein BI (1985). "An invertible element of DNA controls phase variation of type 1 fimbriae of Escherichia coli." Proc Natl Acad Sci U S A 82(17);5724-7. PMID: 2863818
Baba06: Baba T, Ara T, Hasegawa M, Takai Y, Okumura Y, Baba M, Datsenko KA, Tomita M, Wanner BL, Mori H (2006). "Construction of Escherichia coli K-12 in-frame, single-gene knockout mutants: the Keio collection." Mol Syst Biol 2;2006.0008. PMID: 16738554
Blomfield91: Blomfield IC, McClain MS, Princ JA, Calie PJ, Eisenstein BI (1991). "Type 1 fimbriation and fimE mutants of Escherichia coli K-12." J Bacteriol 173(17);5298-307. PMID: 1679429
Blomfield93: Blomfield IC, Calie PJ, Eberhardt KJ, McClain MS, Eisenstein BI (1993). "Lrp stimulates phase variation of type 1 fimbriation in Escherichia coli K-12." J Bacteriol 175(1);27-36. PMID: 8093239
Blomfield97: Blomfield IC, Kulasekara DH, Eisenstein BI (1997). "Integration host factor stimulates both FimB- and FimE-mediated site-specific DNA inversion that controls phase variation of type 1 fimbriae expression in Escherichia coli." Mol Microbiol 23(4);705-17. PMID: 9157242
Blumer05: Blumer C, Kleefeld A, Lehnen D, Heintz M, Dobrindt U, Nagy G, Michaelis K, Emody L, Polen T, Rachel R, Wendisch VF, Unden G (2005). "Regulation of type 1 fimbriae synthesis and biofilm formation by the transcriptional regulator LrhA of Escherichia coli." Microbiology 151(Pt 10);3287-98. PMID: 16207912
Breines94: Breines DM, Burnham JC (1994). "Modulation of Escherichia coli type 1 fimbrial expression and adherence to uroepithelial cells following exposure of logarithmic phase cells to quinolones at subinhibitory concentrations." J Antimicrob Chemother 34(2);205-21. PMID: 7814281
DiazMejia09: Diaz-Mejia JJ, Babu M, Emili A (2009). "Computational and experimental approaches to chart the Escherichia coli cell-envelope-associated proteome and interactome." FEMS Microbiol Rev 33(1);66-97. PMID: 19054114
Donato99: Donato GM, Kawula TH (1999). "Phenotypic analysis of random hns mutations differentiate DNA-binding activity from properties of fimA promoter inversion modulation and bacterial motility." J Bacteriol 181(3);941-8. PMID: 9922259
Dorman87: Dorman CJ, Higgins CF (1987). "Fimbrial phase variation in Escherichia coli: dependence on integration host factor and homologies with other site-specific recombinases." J Bacteriol 169(8);3840-3. PMID: 2886490
Dorman92: Dorman CJ, Bhriain NN (1992). "Thermal regulation of fimA, the Escherichia coli gene coding for the type 1 fimbrial subunit protein." FEMS Microbiol Lett 78(2-3);125-30. PMID: 1362708
Dove94: Dove SL, Dorman CJ (1994). "The site-specific recombination system regulating expression of the type 1 fimbrial subunit gene of Escherichia coli is sensitive to changes in DNA supercoiling." Mol Microbiol 14(5);975-88. PMID: 7715458
Eisenstein87: Eisenstein BI, Sweet DS, Vaughn V, Friedman DI (1987). "Integration host factor is required for the DNA inversion that controls phase variation in Escherichia coli." Proc Natl Acad Sci U S A 84(18);6506-10. PMID: 2888114
Gally93: Gally DL, Bogan JA, Eisenstein BI, Blomfield IC (1993). "Environmental regulation of the fim switch controlling type 1 fimbrial phase variation in Escherichia coli K-12: effects of temperature and media." J Bacteriol 175(19);6186-93. PMID: 8104927
Gally94: Gally DL, Rucker TJ, Blomfield IC (1994). "The leucine-responsive regulatory protein binds to the fim switch to control phase variation of type 1 fimbrial expression in Escherichia coli K-12." J Bacteriol 1994;176(18);5665-72. PMID: 7916011
Gally96: Gally DL, Leathart J, Blomfield IC (1996). "Interaction of FimB and FimE with the fim switch that controls the phase variation of type 1 fimbriae in Escherichia coli K-12." Mol Microbiol 21(4);725-38. PMID: 8878036
GOA01a: GOA, DDB, FB, MGI, ZFIN (2001). "Gene Ontology annotation through association of InterPro records with GO terms."
Hasman00: Hasman H, Schembri MA, Klemm P (2000). "Antigen 43 and type 1 fimbriae determine colony morphology of Escherichia coli K-12." J Bacteriol 182(4);1089-95. PMID: 10648536
Hinde05: Hinde P, Deighan P, Dorman CJ (2005). "Characterization of the detachable Rho-dependent transcription terminator of the fimE gene in Escherichia coli K-12." J Bacteriol 187(24);8256-66. PMID: 16321930
Holden07: Holden N, Blomfield IC, Uhlin BE, Totsika M, Kulasekara DH, Gally DL (2007). "Comparative analysis of FimB and FimE recombinase activity." Microbiology 153(Pt 12);4138-49. PMID: 18048927
Joyce02: Joyce SA, Dorman CJ (2002). "A Rho-dependent phase-variable transcription terminator controls expression of the FimE recombinase in Escherichia coli." Mol Microbiol 45(4);1107-17. PMID: 12180928
Joyce06: Joyce AR, Reed JL, White A, Edwards R, Osterman A, Baba T, Mori H, Lesely SA, Palsson BO, Agarwalla S (2006). "Experimental and computational assessment of conditionally essential genes in Escherichia coli." J Bacteriol 188(23);8259-71. PMID: 17012394
Klemm86: Klemm P (1986). "Two regulatory fim genes, fimB and fimE, control the phase variation of type 1 fimbriae in Escherichia coli." EMBO J 5(6);1389-93. PMID: 2874022
Kulasekara99: Kulasekara HD, Blomfield IC (1999). "The molecular basis for the specificity of fimE in the phase variation of type 1 fimbriae of Escherichia coli K-12." Mol Microbiol 31(4);1171-81. PMID: 10096084
Lahooti05: Lahooti M, Roesch PL, Blomfield IC (2005). "Modulation of the sensitivity of FimB recombination to branched-chain amino acids and alanine in Escherichia coli K-12." J Bacteriol 187(18);6273-80. PMID: 16159759
McClain91: McClain MS, Blomfield IC, Eisenstein BI (1991). "Roles of fimB and fimE in site-specific DNA inversion associated with phase variation of type 1 fimbriae in Escherichia coli." J Bacteriol 173(17);5308-14. PMID: 1679430
McClain93: McClain MS, Blomfield IC, Eberhardt KJ, Eisenstein BI (1993). "Inversion-independent phase variation of type 1 fimbriae in Escherichia coli." J Bacteriol 175(14);4335-44. PMID: 8101185
McCusker08: McCusker MP, Turner EC, Dorman CJ (2008). "DNA sequence heterogeneity in Fim tyrosine-integrase recombinase-binding elements and functional motif asymmetries determine the directionality of the fim genetic switch in Escherichia coli K-12." Mol Microbiol 67(1);171-87. PMID: 18034794
Ogara00: O'gara JP, Dorman CJ (2000). "Effects of local transcription and H-NS on inversion of the fim switch of Escherichia coli." Mol Microbiol 36(2);457-66. PMID: 10792731
Olsen94: Olsen PB, Klemm P (1994). "Localization of promoters in the fim gene cluster and the effect of H-NS on the transcription of fimB and fimE." FEMS Microbiol Lett 1994;116(1);95-100. PMID: 7510658
Olsen98: Olsen PB, Schembri MA, Gally DL, Klemm P (1998). "Differential temperature modulation by H-NS of the fimB and fimE recombinase genes which control the orientation of the type 1 fimbrial phase switch." FEMS Microbiol Lett 1998;162(1);17-23. PMID: 9595659
Pallesen89: Pallesen L, Madsen O, Klemm P (1989). "Regulation of the phase switch controlling expression of type 1 fimbriae in Escherichia coli." Mol Microbiol 3(7);925-31. PMID: 2571915
Roesch98: Roesch PL, Blomfield IC (1998). "Leucine alters the interaction of the leucine-responsive regulatory protein (Lrp) with the fim switch to stimulate site-specific recombination in Escherichia coli." Mol Microbiol 1998;27(4);751-61. PMID: 9515701
Schwan02: Schwan WR, Lee JL, Lenard FA, Matthews BT, Beck MT (2002). "Osmolarity and pH growth conditions regulate fim gene transcription and type 1 pilus expression in uropathogenic Escherichia coli." Infect Immun 70(3);1391-402. PMID: 11854225
Schwan07: Schwan WR, Shibata S, Aizawa S, Wolfe AJ (2007). "The two-component response regulator RcsB regulates type 1 piliation in Escherichia coli." J Bacteriol 189(19);7159-63. PMID: 17644608
Schwan92: Schwan WR, Seifert HS, Duncan JL (1992). "Growth conditions mediate differential transcription of fim genes involved in phase variation of type 1 pili." J Bacteriol 174(7);2367-75. PMID: 1348054
Schwan94: Schwan WR, Seifert HS, Duncan JL (1994). "Analysis of the fimB promoter region involved in type 1 pilus phase variation in Escherichia coli." Mol Gen Genet 1994;242(5);623-30. PMID: 8121417
Smith99: Smith SG, Dorman CJ (1999). "Functional analysis of the FimE integrase of Escherichia coli K-12: isolation of mutant derivatives with altered DNA inversion preferences." Mol Microbiol 34(5);965-79. PMID: 10594822
Sohanpal01: Sohanpal BK, Kulasekara HD, Bonnen A, Blomfield IC (2001). "Orientational control of fimE expression in Escherichia coli." Mol Microbiol 42(2);483-94. PMID: 11703669
StentebjergOles00: Stentebjerg-Olesen B, Chakraborty T, Klemm P (2000). "FimE-catalyzed off-to-on inversion of the type 1 fimbrial phase switch and insertion sequence recruitment in an Escherichia coli K-12 fimB strain." FEMS Microbiol Lett 182(2);319-25. PMID: 10620686
Teng06: Teng CH, Xie Y, Shin S, Di Cello F, Paul-Satyaseela M, Cai M, Kim KS (2006). "Effects of ompA deletion on expression of type 1 fimbriae in Escherichia coli K1 strain RS218 and on the association of E. coli with human brain microvascular endothelial cells." Infect Immun 74(10);5609-16. PMID: 16988236
UniProt10: UniProt Consortium (2010). "UniProt version 2010-07 released on 2010-06-15 00:00:00." Database.
UniProtGOA11: UniProt-GOA (2011). "Gene Ontology annotation based on manual assignment of UniProtKB keywords in UniProtKB/Swiss-Prot entries."
Wolf02: Wolf DM, Arkin AP (2002). "Fifteen minutes of fim: control of type 1 pili expression in E. coli." OMICS 6(1);91-114. PMID: 11881836
©2015 SRI International, 333 Ravenswood Avenue, Menlo Park, CA 94025-3493
SRI International is an independent, nonprofit corporation. Privacy policy Disclaimer


text:
Employee Of The Month Gallery
Jessica Simpson is set to get pulses racing in New Year comedy Employee Of The Month. She plays the newest recruit at a department store who prompts Dane Cook and Dax Shepard to battle for her affections…
Roll your mouse over the left and right-hand sides of the image and then click to view more pictures.
5 of 5
Watch the trailer and see clips of Jessica Simpson in action or check out the sexiest actresses of 2006
Recent Galleries:
- Sicario (Emily Blunt/Benicio Del Toro) Photo Gallery
- The Intern (Robert De Niro/Anne Hathaway) UK Premiere Photo Gallery
- Batman Vs Superman: Dawn of Justice - First-look photo gallery
- The Man From U.N.C.L.E Character Poster Gallery
- Marvel's Ant-Man Character Poster Gallery
- Mission: Impossible Rogue Nation Character Poster Gallery
- London Has Fallen Teaser Poster Gallery
- Far From The Madding Crowd (Carey Mulligan/Matthias Schoenaerts) Photo Gallery
- Batman V Superman: Dawn of Justice - Teaser Poster Gallery
- Jurassic World (Chris Pratt/Bryce Dallas Howard) Poster Gallery


text:
We here at Aural Standards are particularly partial to songs about our city, and "Los Angeles" by friend-of-the-blog Liza Oppenheimer is a new fave. We've also got a certain affinity for all (er, most) things Dustin Hoffman, so upon learning that the Dee Robertson-directed video for this folksy jangler would pay a little tribute to Midnight Cowboy, well, we were elated. Check out the clip below, and then learn a little more from Liza after the jump.
This is us
We're on TwitterMy Tweets
We're on Instagram
Some Categories
Some TagsAlpha Pup Andre Hyland anticon. awe Baths beat music Best Coast Big Search Brooklyn chillwave Chris Martins Coachella Daedelus Dam-Funk Dangerbird Das Racist Diplo Dirty Projectors DJ culture Domino Downtown Independent Dublab Echo Park Echoplex electronic music festivals Flying Lotus Fool's Gold Foreign Born free mp3s free music funk Funny Ha Ha Hydra Head INCHES indie labels L.A. beat scene Leaving Records live music Long Beach Los Angeles Low End Theory Madlib Manimal Vinyl matthewdavid Mayer Hawthorne MP3s music crit music criticism music news music videos Nite Jewel No Age Not Not Fun Odd Future OFWGKTA Origami Vinyl pop San Francisco Sargent House Silver Lake Snoop Dogg Spaceland Stones Throw Sub Pop Take The Echo The Franks The Gaslamp Killer The Onion The Scenesters The Smell The Vacationeers TV On The Radio underground rap Vampire Weekend vinyl wallpaper. Warp Wavves


text:
On April 13th there will be a white belt (1st and 2nd stripe) checkpoint class taking place at GDJJ Academy. From 10 am to 12:30 pm. Must be a white belt with at least one stripe to attend the class.
-GDJJ Academy Students & Affiliates (only) save $ by pre-registering for the class
-$25 Fee for GDJJ Academy Students
-$35 Fee for GD Affiliates
-$40 Fee at the door for both GDJJ Academy Students and GD Affiliates
-Fees are NOT refundable
Registration Available online or at GDJJ Academy
Checkpoints are mandatory 2 hour sessions that allow a student to review moves and positions from the curriculum that they may or may not be familiar with, making sure to go over the specific details that often/commonly get missed by students. A student will receive focused instruction and Checkpoints are an excellent resource for information that will help students towards their promotion. You must have attended to Check points (plus the Self Defense), in order to receive your diploma when promoted.


text:
Thursday, October 11, 2012
© Copyright 2015 Gwinnett Daily Post
Diane Alexander Clark, 65, of Sugarloaf Country Club, Duluth, Georgia, died October 9, 2012. Funeral services will be held at 11:00 a.m., Friday, October 12th at Crowell Brothers Peachtree Chapel Funeral Home in Peachtree Corners. The family will receive friends from 6:00 p.m. - 8:00 pm, Thursday, October 11th at the funeral home. Burial will be at Bethel Baptist Church Cemetery in Sylvester, Georgia. Mrs. Clark, a native of Albany, Georgia, was the owner and vice president of Discovery Point Franchising, Inc., a childcare franchising and development company located in Duluth, Georgia. Prior to founding Discovery Point with her husband, Cliff Clark, Mrs. Clark taught English for many years at Loganville High School in Loganville, Georgia and several other school systems in Georgia. Mrs. Clark held a BS in English and a Masters Degree in Education. She was named a Georgia Star Teacher as well as receiving numerous other teaching awards throughout her career. Mrs. Clark is survived by her husband, Cliff Clark of Duluth; mother, Carolyn Petrea of Sylvester, GA; and two sisters, Donna and W. N. Apperson and Rama Medders, all of Sylvester, GA. Arrangements by Crowell Brothers Peachtree Chapel Funeral Home, 5051 Peachtree Industrial Blvd., Peachtree Corners, GA 30092, (770) 448-5757.
More like this story
- Diane Clark ( October 10, 2012 )
- Deanna Dixon ( July 10, 2013 )
- Harold Hawkins ( April 1, 2007 )
- Thomas Ackerman ( October 28, 2008 )
- James Harrison ( October 6, 2010 )


text:
Buy more Save more
Get up to 15% Off
Your Total Candy Cash
(781) 335-2200
9am - 5pm EST
Send UsAn Email
Live Chat M-F
9 am - 5 pm EST
Don't have an account? Sign Up Now!
Your Cart is empty.
4.0 lbs -
Item Id: 10-00780
Availability: In stock
White Lindor Truffles Bag: 12 Count Exquisitely creamy chocolate and artistic mastery combine to create our Lindor Truffle with an irresistibly smooth center guaranteed to melt the heart of every chocolate connoisseur on your gift list. Features an assortment of velvety smooth white chocolate cream center inside white candy, milk chocolate cream inside milk chocolate, and dark chocolate cream inside dark chocolate Each bag is approximately 5.1oz. Flavor: Milk, Dark & White Chocolate
*Percent Daily Values are based on a 2,000 calorie diet. Your daily values may be higher or lower depending on your calorie needs:
Rate this product on a scale from 1-5 stars (five being the best)
Learn About the Candy Bank >
Shop Custom Candy >


text:
Artisanal Mayonnaise: You Knew It Was Coming
Walking down Vanderbilt Avenue in Brooklyn one weekend, I did a double take when I saw a little storefront selling mayonnaise.
Just mayo? Does the condiment deserve such a spotlight?
Empire Mayonnaise co-founder, chef and mayo mixologist Sam Mason thinks so.
"There's no better thing to work with than a fat-soluble medium," he said.
Mayonnaise is simple to make -- one of those kitchen staples we could and should be making fresh at home, like frosting, salad dressings and gravy. It's an emulsion of egg yolks, oil, vinegar and salt. But Mason is upping the 'Wow' factor by using oils flavored with black garlic, smoked paprika, wasabi and bacon.
While vinegar can be a flavoring agent, too -- think champagne, red wine, tarragon -- Mason says oil is the workhorse, since it makes up 90 percent of the emulsion.
The 30-year-old, who used to work as a pastry chef in the food lab that is wd-50, talks a lot about percentages. That's how he thinks about his blends. The paprika mayo, for example, "is 15 percent smoked paprika oil." He starts with an oil-to-yolk ratio of 10 percent, then tinkers with the mix from there.
"Nothing's over 20 percent," he said. "Saffron, which can be overpowering, we have that at 1 percent."
I nod, but I'm way out of my comfort zone. What, no recipes?
The other factor in making mayo that intimidates me is the process of suspending those droplets of oil in those fat molecules. The emulsification can break. The key is adding the oil in a slow and steady stream. The slower, the better, Mason says.
How slow?
"At first, I used a squeeze bottle," he said. "I'd be standing there like a jerk for 30 minutes."
Yes, that slow.
He restored his coolness value by rigging up a contraption that's straight out of a chemistry lab. He mounted a separatory funnel to a stand, and placed it next to the mixer. A little valve at the bottom allows Mason to adjust the speed of the oil stream.
The set-up is not likely to last very long. Mason says orders are coming in so fast, he would like to graduate to a 20-quart floor-model mixer: "It would make 10 cases of mayonnaise an hour, instead of 2!"
I wondered aloud where he'd put a floor mixer; the walk-in, and the rest of the space, is pretty small. Although Mason and his partners, Elizabeth Valleau and Benjamin Palmer, opened Empire Mayonnaise in April, Mason says they've already outgrown the space.
"We didn't have a reference point," he said. "There's no 'Opening a Mayonnaise Store for Dummies' book."
They're churning out 300 jars of mayonnaise a week, mostly through their website and to specialty shops selling his mayo like The Meathook and the Bedford Cheese Shop. About 100 of those jars are also sold at their brick-and-morter store.
"We have one lady who told us she drove all the way from the Bronx," said Mason. Orders have also come in from as far away as Poland.
And what are people to do with mayonnaise, beyond slathering it on sandwiches and mixing it into potato salad? Put it on grilled meats.
"The Nitehawk Cinema in Williamsburg uses our lime pickle mayo on their burgers," said Mason. "The heat turns it into oil, and it totally changes the hamburger." Or how about a coffee mayo on roast pork?
He also said coffee mayo is good on donuts.
Fat-soluble meets fat-fried?! It makes sense. Germans, Danes and Belgians are known to dip their French fries, or pommes frites, in mayonnaise. Why not fried, sweet dough?
Mason urged me to make my own coffee mayo and try the donut-dipping experience.
"Use decaf freeze-dried coffee as the flavoring, and use canola oil," he said, "at a ratio of 10 percent."
Readers, I'll report back when I figure that out.


text:
Check Availability
I lived in these apartments for three years and it has it's list of pros and cons. Let's start out with the pros, the grounds are kept up to par, the staff try a work with you when things come up… Full Review ▶
The new resident manager must feel like Obama being chosen to come in and fix someone else's mess, and have to be blamed for other people eras. Yes, like all apartments in Georgia there have been some car thefts and breakins.… Full Review ▶
As a resident of these apartments I would not recommend these apartments to anyone. Corporate must have thrown a warm body in the office as manager to avoid taking the time to find a competent individual. They never answer the phone… Full Review ▶
I would not recommend these apartments to anyone because the management is Horrible!! They never answer the phone during business hours and her attitude is terrible. The entire apartment is built with cheap material and the gates are always broke. You… Full Review ▶
THIS PROPERTY IS NOT AT ALL WHAT IT SEEMS,FROM OFFICE STAFF ALL THE WAY DOWN TO IT'S TWO-FACED TENANTS.IF YOU LIKE A LOT OF CONFUSION AND LIES WELCOME ALL.!! Full Review ▶
I really fell in love with theses Apartments when they first open.But my views on theses apartments have change greatly. They have been threw alot of changes and I mean not good changes.They really need to improve. Full Review ▶
The property has just been re-built and is beautiful. The clubhouse has a fitness center and computers on the internet. There is a gate too.
Full Review ▶
|Estimated Rent
|$ 835
|$ 625
Laundry On-Site
Laundry in Units
Laundry Connections in Unit
Rent Trends
|Avg. Monthly Rent
|$ {{complexPricing.averageMonthlyRent}}
|$ {{complexPricing.minMonthlyRent}} - $ {{complexPricing.maxMonthlyRent}}
Disclaimer: Rental rates have been collected from Internet users and represent snapshots of a rental prices over time. These rates may not be a reliable indicator of current rents or the price offered to new residents. How to use this information.
0 Images for this Property
Nearby Apartments
- 33%
Hidden Oaks Apartments2950 Springdale Road, Atlanta, GA 30315 7 Reviews
- 88%
Avalon Ridge Apartments- Atlanta183 Mount Zion Road, Atlanta, GA 30354 10 Reviews
- 49%
Savannah Midtown215 North Avenue, Atlanta, GA 30308 120 Reviews


text:
"Detropia," the new documentary from "Jesus Camp" directors Heidi Ewing and Rachel Grady, is an impressionistic view of a once-vibrant, now-emptying Detroit. The film, which opens Friday at the District's West End Cinema, depicts the Motor City as a ghost town whose blank-canvas vibe is more attractive to conceptual artists than blue-collar workers — or the manufacturing firms that might hire them.
This is not the portrait the filmmakers set out to draw. "We kind of thought we were doing a phoenix-from-the-ashes story," says Grady via cellphone as she heads from New York, her current home, to the District, where she spent most of her childhood.


text:
May 1945. Hitler is dead, and the Third Reich is little more than smoking rubble. No GI wants to be the last man killed in action against the Nazis. But for cigar-chewing, rough-talking, hard-drinking, hard-charging Captain Jack Lee and his men, there is one more mission: rescue 14 prominent French prisoners held in an SS-guarded castle high in the Austrian Alps. It's a dangerous mission, but Lee has help from a decorated German Wehrmacht officer and his men, who voluntarily join the fight.
Based on personal memoirs, author interviews, and official American, German, and French histories, The Last Battle is the nearly unbelievable story of the most improbable battle of World War II - a tale of unlikely allies, bravery, cowardice, and desperate combat between implacable enemies.
©2013 Stephen Harding (P)2013 Blackstone Audio, Inc.
"Write the book, THEN the screenplay."
This book as a screenplay, which may have been at the back of the author's mind. There are a couple of themes you could work with - the continuum of loyalism, especially after the death of Hitler is one, how to best arrange for one's personal destiny if you know you're going to be on the losing side is another.
Ironically, the author spends much more time fleshing out the portrayal of the detainees and various German/Austrian notables. It could be he couldn't resist the thought of forcing the swashbuckling tank commander into a yankee stereotype, best introduced in a headlong rush of action.
There are the makings of a much better narrative than that which was told. Ultimately disappointing. A popular history written by someone hoping the screenplay gets picked up.
"Title is very misleading"
The time of the book is very misleading in the sense that 95% of the book had nothing to do with the battle itself but with the politics between the French at the castle. The battle itself was very interesting but because the title I expected to hear more of the tactics and the collaboration between the Germans and the Americans and fighting this last battle. If you want a book about politics more than actually about war and a battle this would be looking to buy if you're looking for a book that has to do with an actual fight and how the battle developed this is not what you're looking for
Report Inappropriate Content
If you find this review inappropriate and think it should be removed from our site, let us know. This report will be reviewed by Audible and we will take appropriate action.


text:
Marker Celsius Insulated Ski Pants (Men's)
Product Details
Markers Celsius insulated mens ski pants combine the waterproof, windproof, breathable properties of Gore-Tex fabric with a relaxed fit and warm Topsfill insulation. The durable, fully seam sealed Gore-Tex shell fabric keeps you dry so the Topsfill insulation can keep you warm. A loose, relaxed fit makes these pant perfect for hiking or playing in the park. Adjustable waist tabs let you create the perfect fit.
- Gore-Tex 25K waterproof shell fabric, Topsfill insulation
- Zippered hems
- Multiple pockets, waterproof zippers
- 31-inch inseam
Questions and Answers
User Reviews
I just bought a pair of these pants and skied three times with them and they are already torn at the cuffs. They have no reinforcement on the inside of the cuffs so they will tear easily when skiing. The insulated Gore Tex is great. Just wish they were more rugged. I think I'll have some reinforcements sewn into them.
I just bought a pair of these pants and skied a few times in sub zero temperatures and through a snow storm. They keep you dry and warm. The pockets are the right size and very useable. Being 5'7, I ordered the small size. They fit perfect around the waist but the inseam were about a little bit longer than I expected.


text: An essay on a Jack Gilbert poem @ thethepoetryblog By driftlessareareview September 17, 2012 culture economics fantasy fiction film hollywood jack gilbert philosophy poetry reviews sex My essay on a Jack Gilbert poem is over on thethepoetryblog. Click the link to go to the essay. Rate this:Share this:FacebookTwitterLinkedInEmailPocketMoreGoogleTumblrRedditPinterestLike this:Like Loading... Related


text:
YIELD: (3) 2 2 Crust Pies
IngredientsDRY INGREDIENTS
(6c) 4c. flour
(2-5/8c) 1-3/4c. butter / Crisco
(1-1/2T) 1T sugar
(3t) 2t. salt
(1-1/2T) 1T. cider vinegar
(1-1/2) 1 egg
(3/4) 1/2c. water (cold)
PreparationBlend dry ingredients to consistency of cornmeal
Mix liquids in a separate bowl and add to flour mixture
Blend well
Chill 1 hour
*Use tapioca in bottom crust
*Rub crust with milk and sprinkle with sugar