text:
If you are using Visual Studio 2010 and would like to use the Mole debugging tool, please visit http://www.molosoft.com to get your copy today. Mole 2010 makes debugging easier.
The video links require Microsoft Silverlight 1.0. If you do not have it, you will be prompted to install it when you click one of the links. After the short installation is completed, close the browser window that you did the install in and re-click the video you want to watch. You can also download it here. Windows XP or Vista required.
FYI: Each link has a ToolTip containing information about the video.
When you click on one of the above links your browser will open a new window and display the video player. You can resize your browser window and the video player will resize with the browser. You can also click on the Full Screen button on the video player controller. Additionally, single clicking the video will pause it. Double clicking the video is another way to switch to Full Screen mode.
Mole Videos On YouTube (lower quality vidoes for historical purposes only)
Want to learn how to create you own screen capture videos? Then read my Code Project article, Creating, Encoding and Delivering Silverlight Streaming Screen Capture Videos. Very detailed and download includes the above Silverlight video player and necessary encoding preset profile. The article also has two videos that cover the process.
New Features!
Mole was authored by Karl Shifflett, Josh Smith and Andrew Smith who make up Team Mole. The core development process took the team several weeks. Most of the additional enhancements were implemented by Andrew and Karl, with a lot of testing and feedback provided by Josh. You can visit Team Mole's Home Page here. This article was written by Karl.
Mole has been tested on WPF, WCF, WF, WinForms and ASP.NET projects on Vista, XP Pro, x32, x64, VS2005 and VS2008, C# and VB.NET. We sincerely hope all .NET developers like and use Mole. Currently Mole does not support Silverlight but we will consider writing a visualizer, or similar tool, shortly after Silverlight 2.0 is released to the public.
This article makes no assumptions about your prior exposure to the Mole project, or visualizers in general.
Mole is a Visual Studio visualizer. Visualizers have been part of Visual Studio since version 2005. During debugging sessions, visualizers allow developers to view objects and data using a customized interface. Visual Studio ships with several simple but useful visualizers. Many developers have posted visualizers for .NET classes.
Mole was designed to not only allow the developer to view objects or data, but to also allow the developer to drill into properties of those objects and then edit them. Mole allows unlimited drilling into objects and sub-objects. When Mole finds an IEnumerable object, the data can be viewed in a DataGridView or in the properties grid. Mole easily handles collections that contain multiple types of data. Mole also allows the developer to view non-public fields of all these same objects. You can learn a lot about the .NET Framework by drilling around your application's data.
Depending on the type of object you are visualizing you can view properties, fields, IEnumerable collection data, an image of the data/control, and run-time XAML.
Mole v4 allows editing of properties. Please see the Editing section below for full details.
When a great friend and co-author Josh Smith wrote Woodstock for WPF on 13 Nov 2007, I got pretty excited about how Visual Studio visualizers that target WPF can really assist developers. I started making a list of features I wanted and began working on Mole.
Mole was my first visualizer and first real WinForms program I've created with .NET 2.0. I spend most of my time with WPF, WCF, ASP.NET, SQL Server and Windows Services. So starting from scratch would prove to be challenging at times.
Mole grew alongside Woodstock as it was being developed and refined. Josh and I worked hard to develop fast performing visualizers. We both tried some crazy things during this process of refinement, some of these I wouldn't post on a billboard or even admit to a priest during confession.
To give you a comparison of what we were up against from a data loading perspective, consider the Text Visualizer which ships with Visual Studio. It allows you to view long strings in a multiline TextBox. Text Visualizer opens quickly and displays the string.
Mole displays a tree of the UI's elements and over a hundred associated properties in a DataGridView for any selected element in the TreeView in just about one second! Let's face it, the visualizer needs to load fast or it won't get used.
What you'll see in this article is a highly refined visualizer which runs lightning fast. When running Mole in stress tests with absurdly large WPF visual trees (over 10,000 elements) it was able to open in less than a second. Bearing in mind that most sane developers would never create visual trees, WinForms or ASP.NET pages with element counts of that size, it is safe to say that Mole is fast enough to be usable by the most impatient developers out there. The largest visual tree loaded in Mole that I know about is 125,000 items! Josh was just stress testing Mole.
On 26 November 2007 Mole v1, a Visualizer for WPF, was released. After Mole v1 was published, Josh, Andrew and I teamed up and have continued making significant upgrades to Mole v1.
Due to the tremendous response from the WPF community, we radically expanded Mole's capabilities. On 6 Dec 2007, we released Mole v2. On 11 Dec 2007, we made further enhancements and released Mole v2.2 Black Ops. However, these tools only targeted WPF developers.
Karl just couldn't put Mole down until extending Mole to all Visual Studio developers. So on 14 Dec 2007, we released Mole v3 that allowed all Visual Studio project types to be inspected by Mole.
After Mole v3, Andrew really wanted to add editing capabilities to Mole. So Andrew and I jumped off that cliff to bring property Editing to Mole. This was not as easy task.
Mole v4 adds editing of properties to Mole's already awesome feature set. Please see the Editing section for a full explanation of this new and powerful feature.
This project has been a wild adventure to say the least. In just over a month, we have gone from never using a visualizer to authoring this product.
For those that are interested, our development team employs a very specialized formal development methodology that is described towards the end of this article. When Josh and I started on our beginner visualizers a month ago, we never envisioned where Mole would take us. We have been working almost non-stop since we started. All three of us work regular jobs and work on Mole when we can.
One of the side effects of just coding our brains out like this, almost without a rudder, is that Mole has a few areas that could use some refactoring. We are aware of this. We are considering a new product next year that can use this one as a prototype and one that will be designed before we start coding. This was a ready-fire-aim operation. We had a lot of fun with Mole!
We are three regular guys, two C#, one VB.NET. Yes we are all bilingual, but have our preference of expression. We live in three different states and two of us have never met or spoken on the phone! Additionally, right in the middle of this Josh had to move and got a new job! Meanwhile, Karl would fire off new features like the Fourth of July. Andrew has been like a sniper, who assassinates the really nasty bugs and then disappears into the thickets until needed again.
You must install the .NET 3.0 Framework on your computer before installing Mole.
If you are developing on Vista and are running with Elevated Security enabled, you must install Mole in the following directory:
All others download and unzip the above package. Copy the file in the Release package to either:
When using Mole with ASP.NET projects that utilize IIS as the web server, as opposed to the Visual Studio's built in web server, you MUST give the account that the web site is running under, Read and Read & Execute permissions to the \Visualizers directory.
Read & Execute
If you do not do this, you will get an exception when attempting to load the visualizer in a debugging session. You would get this exception for any visualizer and not just Mole. This is because the ASPNET account has very few permissions on your computer. Adding these permissions prevents this exception.
We have provided source and test bench programs for both VS2005 and VS2008. The only difference between the two versions of the visualizer is the reference to Microsoft.VisualStudio.DebuggerVisualizers.DLL. For VS2005 the file version is 188.8.131.52 and for VS2008 the file version is 126.96.36.199.
Copy the projects to your Projects directory for either VS 2005 or VS 2008. Don't forget, after compiling, you must copy the binary to the appropriate directory.
The source code has two solutions. One solution has the visualizer project and also WPF, WinForm and ASP.NET test-bench programs that Josh and I wrote. The other solution has the WCF test bench program. I used a Chapter One sample from Michele Leroux Bustamante's book I've read, "Learning WCF". I strongly recommend "Learning WCF" to anyone interested in checking out WCF.
Mole has VS2005 and VS2008 builds and Mole has been tested on x32 and x64, Vista and XP systems.
We were fanatically obsessed with improving the speed of Mole; from how long it takes to initially load the Window, to how long it takes for an element's properties to appear in the grid. This was a very high priority because most developers simply will not use a debugging tool which slows them down. So it had to be lightning fast. Period. To speed things up we did many things, such as:
One big advantage Mole has over some other tools, is that you can use it to debug XBAP applications. Here is what you need to do to enable that:
Thanks to CodeProject member "ivolved" for this tip!
Visualizers are very easy to start. When debugging and at a breakpoint, hover your mouse over the object you want to visualize. If a visualizer is installed on your system which can visualize that type of object, the little magnifying glass will appear in the datatip. You can also start a visualizer from the Watch Window.
You can click the magnifying glass to open the default visualizer for that object type. Or you can click the down arrow and select a visualizer to use. The check mark indicates the last visualizer used for the selected object type.
When Mole opens it looks like the above image. On load, Mole configures and positions itself the same way you closed it during the previous session. Just about everything in a Mole session is persisted and restored without using the registry.
Mole's UI can change depending on which object you have selected in the Visual Studio debugger. For example, a WinForms application does not have a visual tree, logical tree, or XAML. So these features are turned off. The same logic applies to ASP.NET, DataSets, DataTables, and class objects visualized in Mole. Additionally, the "Show Attached Properties" CheckBox, "Value Source" column, and "Is DP" column will only be available in applications that support them.
The TabControl on the left of the UI contains one or two TreeView controls depending on the type of object you are visualizing. These TreeViews are Mole's "gardens". One contains the tree of UI elements, the other the logical tree of a WPF application being debugged. The UI element tree TreeView initially selects the object you selected in Visual Studio. If you select a single object that is not part of a UI element tree, that object could be the only object displayed in the tree view on the left. This does not limit the amount of drilling and discovery available to the developer using the properties grid.
The TreeNode (actually MoleTreeNode) text is formatted as follows:
Element Type - Element Name (Count Of Descendants)
Some objects were not assigned names in the program so they do not display here and some nodes do not have any child nodes associated with them.
Elements are displayed in one of four colors. White is an unselected element. Light Gray is the selected element when the TreeView has lost focus. Blue is the selected element when the TreeView has focus. Green is the initially selected object you moused over in Visual Studio.
The dark gray 4 pixel line separating the two TabControls is a GridSplitter. You may size the two regions. The size of the two panels is persisted when the size is changed so that the panels will be displayed the same when Mole is reopened.
Select Initial button will select the object that you initially selected in Visual Studio.
Expand All button will expand all TreeNodes in the entire TreeView.
Collapse All button will collapse all TreeNodes in the entire TreeView
Expand Down button will expand all TreeNodes that are children of the currently selected TreeNode.
Collapse Down button will collapse all TreeNodes that are children of the currently selected TreeNode.
Mole's Moloscope employs Max-O-Drilling technology, allowing the visualizer to drill back into the managed heap of another process to extract properties and data structures associated with the element being browsed from either the UI elements tree or logical tree. It is interesting to note that visualizers execute in a separate process from the data they are visualizing. All data must be piped through remoting, which is mostly handled by Visual Studio. The Max-O-Drilling technology we came up with is responsible for locating and maintaining references to objects on the managed heap that are being drilled into by the user.
The label below the Element Properties TabPage heading is formatted as follows:
[Drilling into] [Object Type] [Object Name]
If you are drilling, the "Drilling into" text will be displayed. Some nodes were not assigned names in the program being debugged, so it won't display here.
The Element Properties grid displays each of the selected item's properties. Columns with underlined header text can be sorted by clicking on the column header. Like many features in Mole, the selected column sort is persisted between Mole debugging sessions.
The Favorites column (Fav) indicates if this property is one of your favorites for the selected type. You may select or deselect favorites by clicking the leftmost CheckBox in the row.
The property names are hyperlinks. When clicked, they open Google.com using your default browser and set the query string to search for the property name and selected item type.
The property values are hyperlinks if the value can be drilled into.
If the property can be edited, the pencil icon will be displayed. Please see the Editing section below for full details.
Value Source identifies the source for the property value. Only WPF dependency properties have a value source. If you are not familiar with the concept of value sources, please read up on the topic at MSDN BaseValueSource Enumeration.
The Category Name column is the name of the category assigned to it on the property declaration with the Sysem.ComponentModel.Category attribute.
The rightmost column, Is DP, identifies whether this property is a dependency property or not. This column is removed when debugging applications that do not have dependency properties, like WinForms and ASP.NET.
The below images will walk you through the drilling process:
I have used the Options tab to hide several columns. The developer has selected the node in the TreeView which represents a ListBox object (not pictured here). After selecting the ListBox node, the developer drilled into the Items property of that ListBox object. Notice how the breadcrumb trails just above the grid documents where you are in the drilling process.
Notice that the Value column for some of the items is a hyperlink. This is how you can tell when you can drill into an object. Just click on these hyperlinks and you will conduct a drilling operation.
When drilling into a property that is IEnumerable, the actual data is displayed in a Collection Data region. This region, like the Favorites region can be collapsed and expanded. The [000], [001] is the index for the data in the IEnumerable collection.
To truly appreciate what is going on here is a mind expanding experience. The visualizer UI does not have any references to any data in the managed heap in the other process. Also after drilling down, the UI element tree or logical tree we are viewing has no knowledge of what is being drilled into. The data I'm referring to is also located in another processes memory space and not Mole's!
Max-O-Drilling technology enables this to happen. It took the better part of a day for me to architect and code this feature. Most of this feature resides in two places. The MoleCrumbs control and a dictionary which maintains the state of a drilling operation. Another point to further expand your mind, is that the Moloscope is just a bunch of strings and one integer, yet, Mole is able to drill into the depths of the .NET Framework.
After my first pass, the feature was operating at 98%. Not good. Josh banged on the Moloscope with a 50lbs hammer and found a few cracks. We were not happy with some false readings that when the user drilled into them, the data was not there. You have to remember that drilling into objects is a two phase process. The first phase is when a list of properties are being returned back to Mole's UI from the data source. It's during this pass, that we must determine if a property can be drilled into, without actually drilling into it. That would simply take too long and slow Mole down. We all spent a good bit of time trying to find a solution. Bottom line, Andrew figured out the best method and that is the method Mole uses. You can view Andrew's solution by searching for the IsDrillableTest method in MoleVisualizerObjectSource.vb. This method has two overloads.
There is a really funny story of how this drilling business all got started and is representative of how Mole was developed. One day Josh and I will have to post it somewhere.
This image is from the WPF Test Bench program Josh wrote for Mole. This is an application and not Mole. Displayed is a collection of the Composer class.
This image shows how Mole drilled into the ListBox items collection and displays the same data in a grid inside Mole.
I really wish the Visual Studio debugger could display data inside collections with just one click without having to type so much in the debugger to view collection data. Maybe Visual Studio 2010, please?
This image shows the collection data in multiple data tables. Since the collection contains data that is of different Types, a separate DataGridView is created for each Type of data.
This image shows what the screen will look like after collapsing the Collection Data region. The standard WinForms DataGrid does not support grouping and collapsing regions so we added the feature. Dive into Mole's code and use this feature in your applications.
Mole really shines in the next two images! .NET instructors can use this tool in the classroom to show your students how everything fits together in .NET.
Here the developer has drilled 4 layers deep to a control that exposes URI properties. You can see all the URI properties in context. The property is not just some abstract name, but a developer can see how the URI properties relate to each other. Notice that Mole v4 allows you to edit private members of the URI property directly.
In the image above, the developer has drilled three layers deep. You can see a Color object broken down into its constituent pieces.
I've played around with this a lot and it's so cool to be able to drill around the .NET Framework classes, and your own classes, too!
In the above image, an ASP.NET GridView has been selected in the UI element TreeView control. The breadcrumb points this out. We can see the Favorites section has been collapsed. Below the Favorites section is the new Fields (Black Ops) section. I wanted to call the region "Black Ops" but Josh talk me out of it. He is right, we needed to use standard naming for our UI. We have had downloads from countries all over the world, so keeping the lingo off the application can help our fellow developers translate and use Mole. However, like almost anything in Mole you can customize your version to look and say what you want. Heck, it could even play sounds or music for you!
A BIG tip for all the ASP.NET developers. You can use Mole to discover the funky names of your child controls that ASP.NET assigns them. Just debug your ASP.NET page in Mole and look at the ID, _id, Name and _name properties. No more guessing.
Fields (Black Ops) Section
Below the Search TextBox, there is a new "Show Fields" CheckBox which allows the Fields section to not be displayed if desired. This setting is persisted between Mole sessions.
Some would ask, why show private or protected members? Allow me to list several reasons. (be aware that you can easily turn this feature off by un-checking the above Show Fields CheckBox.)
In the above image, I have selected a String from the logical tree. Notice the members of the String class. Mole Black Ops has revealed some internal information that I never knew about before I started drilling around using Black Ops. I spent about an hour just drilling around and checking out WPF's classes using this feature.
The real reason I wanted this feature was to be able to view private and protected members that I have defined in my own classes. Now when I'm using Mole, I can view and drill into the module level private and protected members of classes I have written. This provides a more in-depth view of my own data.
With the release of Mole v4 comes the most requested feature, Property Editing. Andrew really wanted to incorporate editing into Mole, so he and Karl dove off the cliff and into the property editing abyss. This change impacted many areas of Mole and required much testing by the entire team. When used correctly, this feature can be a great asset to WPF and WinForm developers. We will give some usage examples below.
Visualizers allow the replacement of the object being visualized. Code Project MVP, Rama Krishna Vavilala brings this feature out in his XAML Debugger Visualizer for WPF article. He also explains the issues with replacing objects being visualized.
Since the default object replacement capabilities of visualizers are limited to the original object being visualized, we were not able to use this technique. Instead Mole edits the values in the heap directly.
As you may have already noticed in the above screen shots, not every property can be edited. Andrew wrote this explanation up for us to understand how editing in Mole works.
The editing functionality makes use of .NET's TypeConverter infrastructure. The type converter is used to convert the entered text into the appropriate type for the property/field. Therefore, only properties and fields whose associated TypeConverter can be used to convert a value from a string can be edited. The only exceptions to this are properties/fields of type Object. In that case, it is assumed that the property/field may accept a value of type string and no conversion is done.
In addition, the properties/fields of certain objects are not allowed to be edited:
We have provided a good number of type editors (see below) that assist developers in editing properties. In order to provide the most flexibility and actually deliver this version of Mole, we allow the editing of objects that probably should not be edited. In order to exclude every class that "should not" be edited would take a lot more programming time, cause Mole to run slower and in the end we would see very little payback for the effort. You must also consider that Mole allows editing with every Visual Studio project type, so that "list" of non-editable types would be HUGE.
So, please note that a certain amount of common sense is required when editing. The original purpose of the editing feature was to allow developers to adjust their UI at run-time and see the impact of those changes. But like everything in Mole, this feature took on a life of its own and even allows the editing of private members if they meet the above requirements.
Editing Features
How To Edit
There are two ways to initiate property editing. First you can click the pencil icon and the appropriate Mole Editor dialog will open. Second you can right click the pencil and select "Edit..." or "Reset/Clear." Note the "Reset/Clear" is not always available. This feature is controlled by the PropertyDescriptor.CanResetValue method and you can read up on this method here.
Color Editor
When I first opened the editor, the font text color was black. You can see how the color was changed and then applied to the project being visualized and the color updated without having to close the editor. This is accomplished by selecting a color and pressing the "Save" button.
Colors can be selected and/or set in many different ways using this editor. Also, note the color sorting below the ComboBoxes. This allows the values in the ComboBoxes to be sorted four different ways to make selection just a little easier.
Date Time Editor
Here the property being edited is a Nullable(Of DateTime). The editor also allows the setting of time if desired.
Nullable(Of DateTime)
Font Editor (WinForm)
You can see how editing a font value is applied to the project without having to close the editor. After closing the font dialog, the "Preview Font" label is updated. Clicking the Save button actually applies the change to the project object.
Font Name Editor (WPF)
Again, you can see how a font family is selected and set with the changes being applied without having to close the editor. The Font Size track bar is used to adjust the size of the preview only and not the actual font size. WPF breaks all the pieces of a font into separate properties which is different from WinForms. Also notice how font inheritance changes the entire WPF application.
Selectable Value Editor (Enum's, lists, etc.)
Here we can see the mouse cursor property being edited in the Selectable Value Editor.
All enums are edited in this fashion except enums that have the flags attribute. If the enum has a flags attribute and the property value has more than one value assigned to it, Mole won't edit it. We excluded enums with multiple values because the effort would not be worth the payback.
Text Number Editor
In the above, the Window.Text property is being edited. Notice that the Title text was changed by pre-pending, "Hi!" to the title. Again, the editor displays the result of the edit without having to close the editor.
For some WPF properties that are of type Double, the text, Auto is a valid entry. Mole supports this type of editing.
Thickness Editor (Margins, padding, rectangles, etc.)
This editor handles the rectangles, margins, thickness, etc. properties.
TimeSpan Editor
Mole is editing the EndOfTheWorld TimeSpan property.
'Tree View Object Name :
'Tree View Type Full Name: Mole.TestBench.MoleTestBench
'New Value : WidthAndHeight
'Editor Type : Int32Value
'Write Operation Type : WriteValue
'Write Error Message :
'Tree View Object Name :
'Tree View Type Full Name: Mole.TestBench.MoleTestBench
'New Value : Hi! Mole For Visual Studio - WPF Test Bench
'Editor Type : Text
'Write Operation Type : WriteValue
'Write Error Message :
Above is what the editing log looks like. After closing Mole, just paste the contents of the clipboard into your code editor to view them.
In order to support developers using C# and VB.NET a new option, "Language" has been added to the Options tab. Please select your language so that the comments will be formatted correctly for you.
I had to think long and hard about allowing ASP.NET properties to be edited. Most ASP.NET developers will probably agree that this can be problematic. We have enabled this feature, but please keep in mind that not all edits will be persisted to the page. ASP.NET has a complex page life-cycle, stores values in ViewState, cache, etc. I have been able to edit and persist many edits and see them when the page loads, but others are not persisted.
Mole allows you to search and filter the properties displayed. When searching, the Black Ops Field data and the normal property items are targeted by the search.
The "Select Search Location" ComboBox allows you to select where and how you want the search text to be used. The search is conducted as you type in your search text.
The "Show Attached Properties" CheckBox toggles the display of properties that are attached properties for those applications that support them.
Purpose of Comparision Feature: This feature is handy when you need to know why something is working for one element and not for another and sometimes the best way to do that is to see what property values are different between the objects.
The Save Properties Button allows the developer to save the data from the properties grid to an XML file. Developers can view and/or work with this XML file as they would any other XML file.
Save Properties Button
The Load Properties Button allows a saved XML file to be imported and the values from the saved file compared to the current values in the properties grid. Once the file is loaded, the Compare Value column is visible. Where the Compare Value and Value are different, the Compare Value text has been set to red.
Load Properties Button
Compare Value
When an XML file has been loaded, the Hide Matching Checkbox is enabled. When clicked this will hide all matching values making it very easy for developers to find property values that are different.
Hide Matching Checkbox
The above image shows the properties grid with only non-matching value rows being displayed.
When the developer changes the selected element or drills up or down, the properties grid unloads the saved values and the properties grid returns to normal.
This section's in-depth research and coding of the WPF logical tree was all done by Josh Smith. This is fantastic information! Thanks Josh for enhancing our understanding of the WPF logical tree!
In Mole v1 you could view the visual tree of the UI you were debugging, but not the logical tree(s). In Mole v2 we added support for viewing logical trees, as well as the properties, image snapshots, and XAML view of elements in the logical tree. The impetus behind this feature was to allow developers to inspect the logical tree so that they could understand how inherited dependency properties (such as FontSize and DataContext) get their values. Since property inheritance flows down the logical tree, this should help people better understand how and why their dependency properties inherit certain values.
Implementing this feature turned out to be rather challenging, because a significant amount of research and experimentation were necessary to fully grasp what needed to be done. After Josh completed his research into the differences between the visual tree and logical tree, he published the Understanding the Visual Tree and Logical Tree in WPF article on Code Project. If you intend on using the Logical Tree feature, you should be sure to read that article because it will explain the subtleties and quirks involved with the logical tree.
Here is a screenshot of the Logical Tree tab:
Notice how beneath the TreeView there is a text area which lists three pieces of information. The "Original Element" refers to whatever element you had selected in the Visual Tree tab before opening the Logical Tree tab. The Logical Tree tab shows the logical tree of that visual element, or, if that element is not in a logical tree, the logical tree of the element's closest ancestor which is in a logical tree. Clear as mud, right?
The "Closest Logical Ancestor" refers to the first ancestor element of the original element which is in a logical tree. If the original element (i.e. the one selected in the Visual Tree tab) is in a logical tree, then this value will read "(self)".
Lastly, the "Templated Parent of CLA" refers to the templated parent of the closest logical ancestor element. This is useful information when elements are generated by templates and are disconnected from the logical tree of the templated element/control in which they exist. If you have no idea what any of this means, we recommend that you read the article Josh wrote about this topic and hopefully it won't seem so bizarre afterwards.
The "Element Visual" TabPage displays an image of the selected element. This tab is pretty cool because it gives you insight into how the various elements in the element/control tree participate in the rendering process. This feature is supported in WPF and WinForms. Thanks to Andrew for the code to make an image from a WinForms control.
The displayed image can easily be copied to the Windows Clipboard by clicking on the "Copy Image" Button. This Button makes it super easy to get snapshot images and copy them to other documents, emails, etc.
The "Element XAML" TabPage displays the run-time XAML which was transformed into HTML and loaded in the WebBrowser control. The label under the WebBrowser control follows the format of the other two TabPages.
The 'Font +' and 'Font -' Buttons allow you to change the font size of the displayed text. This setting is also persisted between Mole sessions.
The two RadioButtons allow you to select the format for the displayed XAML, expanded or compressed. This setting is also persisted between Mole sessions.
You may right-click the WebBrowser control to access the copy, print and view source functions.
This TabPage took longer to write than any other section of code. I'm not joking. I really wish Microsoft would expose the default XSLT object which the WebBrowser control uses internally or just add a public method like, RenderXML and the control would just perform the transformation like it does when it opens a file from the disk. This would make this control SO MUCH easier to use. To be clear, what developers need is a method that takes a string or stream of XML and the control renders it as transformed HTML. The control does this with XML files but hides this for text or stream input. At any rate, I downloaded a defaultss.xslt and edited it to get the above transformations. These files are in the solution source and are also embedded resources.
This TabPage is cool because if the element contains collections, those collections will be displayed here. I have loaded 20,000 items into a ListBox and viewed the XAML for them in this XAML viewer!!
PLEASE READ THIS: If you want to conduct your own crazy list or combobox tests, remember, if your items are in a virtualizing StackPanel, only the visible items will be listed. In order to conduct one of the amusing tests, you must change the ItemsPanel in your control to a regular (non-virtualizing) StackPanel.
This TabPage lists the properties and fields you have selected as favorites. There is also a "Clear Favorites" Button that can be used to remove all your favorites, if desired.
Mole automatically remembers many settings for you, such as the window size, window location, screen number, which column is sorted in the grid, the width of the TreeViews, and more.
It also provides you with additional useful settings in the "Options" tab. Here is what that tab has to offer:
This feature was requested by Josh, 2 minutes after using Mole v1. The tooltips became a hindrance so I added the ability for the user to change the amount of time the mouse must hover over an element before the tooltip pops up.
Please notice the Version number. You can easily compare your version with the version number on Mole's Home Page. I thought about adding in automatic checking but ditched that idea. You can also visit Team Mole's blogs by clicking the links.
You can hide some columns based on your usage preference. Please note, when inspecting a non-WPF object, the Value Source and Is DP columns will be hidden, since these are WPF-only columns.
After all the stress testing and crazy things we were doing, I added the ability to limit the number of rows in collections that gets displayed. You can adjust this to suit your needs.
Please select the language you use. This setting effects the formatting of the Mole Editing Log.
Thought someone might want to back their settings up so I provided a link to the directory. Just click the hyperlink and the directory where your settings are stored will be displayed in Windows Explorer.
Viewing collection data in Mole is much easier than in Visual Studio. Basically with one or two mouse clicks you can view data inside your collection objects and collection objects that are part of the .NET Framework. Example: Children or Controls properties.
Also Mole displays collections with multiple data types in them. Example ArrayLists can contain data with dissimilar data types. The WPF ItemsCollection can contain just about anything. Mole handles this scenario with ease.
Mole provides two views for the same data. Individual members of a collection are displayed in the properties grid and can also be viewed in data tables using the "View Data" button. The collection members in the properties grid can be drilled into exposing rich data about that member. The data table view provides the typical data row view of collection members.
There are two images of viewing collection data in this article.
This was my first feature in Mole v1. I really wanted this.
Mole allows establishing Favorites to make getting to data you normally view much faster.
Let's use the ComboBox for an example. When debugging in Visual Studio and needing to inspect a ComboBox, I'm always wanting to view the SelectedIndex, SelectedValue, etc. properties. These properties are towards the bottom of list and I need to scroll down. With Mole, you can simply add these properties to your Favorites. Then, every time you look at a ComboBox, these properties are at the top of the properties grid.
Mole allows you to search the properties grid to find what you're looking for. You can search the property Name column and property Value column. With one or two keystrokes you can zero in on exactly what you're looking for.
Mole allows you to easily drill around your application, Visual Studio does not.
For example open a WinForms application, place a breakpoint and perform a "Quick Watch" on the form object. For C# target, this and for VB.NET target, Me. Look around, you'll see lots of information about a Window object in the Visual Studio debugger.
Now visualize the same object in Mole. Much more data that is easy to find and drill around is displayed. In fact the entire application is easily navigated. You can even view an image of each WinForm control.
This is one reason the Visualizer feature was put into Visual Studio. Visualizers allow the display of rich data in a customized format. The DataSet Visualizer is a good example of this. Mole just treats your entire application as rich data, displays it and allows you to drill around it.
The editing feature can help with making changes to forms that are dynamically generated. For WinForm applications, Visual Studio is a rock solid WYSIWYG editor and designer. For those applications where the UI is generated dynamically, Mole can help you edit your project at run-time, make the changes, view them and then returns a log of what you changed so that you can edit your source code.
The same features and examples from the WinForm project apply here as well.
If you are still using VS2005 and do not use Blend, Mole can really help out with your UI adjustments.
The same features described in the above WinForm section also apply to ASP.NET projects.
Depending on when you open Mole up in relation to the Page cycle, Mole allows the developer to visualize the web page from a rendered Page point of view.
Open the provided Test Bench program for ASP.NET. When you view the default.aspxpage using Mole, the Literal Controls added to the output stream of default.aspx are visible in Mole.
When using Mole with ASP.NET applications, developers can really "see" the difference in the "state" of their applications between "before a PostBack" and "after a PostBack". When debugging a page before a PostBack has occurred objects are being constructed, databases queried, DropDownList controls filled with data, etc. When debugging after a PostBack, these operations are probably not occurring because these objects can be persisted between PostBacks using ViewState. I think for new ASP.NET developers this tool is invaluable in teaching this important concept.
In all honesty, I may only be scratching the surface here. Maybe in the future, we'll see blog postings and articles on getting the most from Mole or tools like Mole.
As of Mole v4.2 can be used on WorkFlow (WF) applications. We have also posted a video on using Mole with WF on YouTube. You can learn a good bit by watching the vidoes we have posted.
Two attributes were added to the Mole.Visualizer.dll, System.Workflow.Runtime.WorkflowInstance and System.Workflow.ComponentModel.DependencyObject. These attributes instruct Visual Studio to display a data tip when the developer hovers their mouse over objects of these types or objects that are derived from these types.
A new WF project Test Bench was added to the source and test benches download. There are two places in the source code that we have left instructions for where to place break points to view WF data. These are marked with the 'TODO comment.
Mole really shines with respect to the WorkflowInstance object. This type only has two public members. When you use Mole to visualize this type, be sure to click the "Show Details" CheckBox to view the private members. You will be AMAZED at all the data that is available about the WorkflowInstance class.
Show Details
Check out the Workflow1.vb code file. View this activity in the GUI designer, then the code, then use Mole on it. It's great to see the branches in the GUI designer and then using Mole to see how this all fits together, the delegates that are created, etc.
"The Rock Star Hack of 2008!" - We at Team Mole have been trying for a long time to figure out a generic way for developers to launch Mole. On 1/19/2008, Josh "Rock Star" Smith has finally breached this stone wall with his awesome hack!!
Once you get a hold on how powerful this hack is, your debugging days will never be the same again!
Josh Smith wrote an outstanding blog entry, The Rock Star Hack of 2008 that explains this feature in great detail. Check it out!
Karl also posted a video on this awesome feature, Mole v4.2 New Generic Way To Start Mole, The Rock Star Hack!.
This feature enables you to start Mole on any object any time you want to. You do NOT need to modify the attributes on the Mole.Visualizer.dll file.
For example, in the above image, I'm using this new way of starting Mole, to visualize an exception.
Mole has been modified so that Visual Studio can reconginze System.WeakReference as a supported Type that Mole can visualize.
All that is required for a developer to use this hack, is to place a breakpoint anywhere in your code. Then use the Visual Studio Watch Window, and add a new watch, wrapping the object you want to visualizer in the constructor of the Weakreference object like so:
new System.WeakReference( object to visualize )
If you wanted to view an object class like Customers that had a variable objMyCustomers declared you would launch Mole like this:
new System.WeakReference(objMyCustomers)
After you add the new watch, press <ENTER><enter>. You will then see the magnifying glass appear. Just click it. Presto, you are viewing your object in Mole.
If you are using Visual Studio 2005, you must use the full type name, System.WeakReference when adding the watch. When using Visual Studio 2008, you can omit "System." and simply enter new WeakReference( object ).
new WeakReference( object ).
When used this way, Mole tries to figure out what project type your are using and will attempt to build the familar application tree. If Mole can't figure this out, it will load your object in the application tree, and then expose the object in the properties grid. You can then drill around like normal.
Please read: You can not use Value Types with this method of starting Mole. When Value Types are passed in the constructor of the WeakReference object, they are lost when the WeakReference object is serialized. If you pass a Value Type using this method, you will get a message box stating that you can't use Value Types in the WeakReference constructor.
Value Types
Value Type
Team Mole hopes you all like this new and exciting debugging feature!
So far, the only limitation I've run into is the Element XAML. Under certain circumstances the System.Windows.Markup.XamlWriter.Save function can throw a StackOverFlow Exception or a GenericTypeSerialization Exception. These two exceptions are thrown on the debuggee side of the remoting conversation that handles data transfer requests. Once its stack is corrupted, that process must be terminated, thus ending our visualizer session. Mole has no control over this. The StackOverFlow will be reported in a MessageBox and the visualizer will close. Just reopen it and don't select that element and view its XAML. I have seen this happen with complex 3D models in WPF projects.
You would get these same exceptions in your own code if you called System.Windows.Markup.XamlWriter.Save and passed the same object. Maybe this will be fixed in a .NET 3.0, 3.5 service pack.
We have left 'TODO and 'HACK' Visual Studio comments in the source code. Please take a look at these.
Opening up a release build of Mole can cause Visual Studio to display a message box stating: "This module was built either without optimizations enabled or without debug information." To make that stop, go to Tools | Options | Debugging | General and then uncheck the "Warn if no user code on launch" option.
The first article I read was Creating Debugger Visualizers with Visual Studio 2005 by Julia Lerman. She does an outstanding job of getting you started. Another good starting point is the MSDN Visualizer Architecture article. Also there many articles here on CodeProject and the Internet covering visualizers.
Basically there are four partners, running in two processes, that work together in the visualizer world.
Visual Studio plays the middle man handling communications between the two processes. The bottom line is, your visualizer UI has no data, until it makes a request to the VisualizerObjectSource. 'All data which moves between the two processes must be serialized.' This is important to remember when building your data structures.
Both sides of the conversation are active throughout the visualizer's life. This allows your UI to make repeated requests to the data object whenever it needs more data to display. The communications plumbing Microsoft provided is incredibly fast, even with all the serialization and deserialization going on.
If you are used to writing executables, this is going to blow your mind. Your visualizer complies into one class library DLL, part of which runs in one process and the other part is running in the other process. The classes from the Debugger process communicate through Visual Studio to classes in the Debuggee process.
Visual Studio is only concerned about two classes in your visualizer. First, your Debugger Side class which derives from DialogDebuggerVisualizer. In Mole, this is the Mole.Burrow class. Second, your Debuggee Side class which derives from VisualizerObjectSource. In Mole, this is the Mole.MoleVisualizerObjectSource class.
Visual Studio identifies these classes by looking at the following attributes placed on the assembly in which your visualizer lives. Since all visualizers must be in certain directories, it is very easy for Visual Studio to locate all visualizers on your system and determine which types have visualizers. You cannot have Visual Studio honor an attribute with a TargetType of System.Object. (Microsoft, did I miss something?) So, Mole has several attributes applied to it.
'TODO developers feel free to add more Types that Mole can visualize
' You only have to add additional attributes here.
' Mole can handle just about ANYTHING you throw at it.
<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(Mole.Burrow),_
GetType(Mole.MoleVisualizerObjectSource), _
Target:=GetType(System.Windows.DependencyObject), _
Description:="Mole (Exploring WPF)")>
<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(Mole.Burrow), _
GetType(Mole.MoleVisualizerObjectSource), _
Target:=GetType(System.Web.UI.Control), _
Description:="Mole (Exploring ASP.NET)")>
<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(Mole.Burrow), _
GetType(Mole.MoleVisualizerObjectSource), _
Target:=GetType(System.Windows.Forms.Control), _
Description:="Mole (Exploring WinForms)")>
<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(Mole.Burrow), _
GetType(Mole.MoleVisualizerObjectSource), _
Target:=GetType(System.Data.DataSet), _
Description:="Mole (Exploring DataSet)")>
<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(Mole.Burrow), _
GetType(Mole.MoleVisualizerObjectSource), _
Target:=GetType(System.Data.DataTable), _
Description:="Mole (Exploring DataTable)")>
<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(Mole.Burrow), _
GetType(Mole.MoleVisualizerObjectSource), _
Target:=GetType(System.Windows.RoutedEventArgs), _
Description:="Mole (Exploring RoutedEventArgs)")>
<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(Mole.Burrow), _
GetType(Mole.MoleVisualizerObjectSource), _
Target:=GetType(System.EventArgs), _
Description:="Mole (Exploring EventArgs)")>
<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(Mole.Burrow), _
GetType(Mole.MoleVisualizerObjectSource), _
Target:=GetType(System.ServiceModel.ServiceHost), _
Description:="Mole (Exploring WCF)")>
<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(Mole.Burrow), _
GetType(Mole.MoleVisualizerObjectSource), _
Target:=GetType(System.Data.SqlClient.SqlException), _
Description:="Mole (Exploring Exception)")>
First attribute parameter is the type of our visualizer (Mole.Burrow).
Second is the type of our data source (Mole.MoleVusualizerObjectSource).
Third tells Visual Studio what type our visualizer wants to visualize. (In Mole speak that is, "what type Mole wants to Burrow into and molenate".) In our first attribute, Mole can visualize DependencyObjects, or any class which descends from DependencyObject.
The fourth attribute parameter is the description Visual Studio displays in the listing of available visualizers when you are debugging. Glance back to the second image in this article and you'll see the above description.
The remaining attributes simply register their object types with Visual Studio so that this Mole visualizer will be listed in the data tip during debugging.
I've added a section of code to the WinForm Test Bench program that throws an SqlException. This code is commented out. You can uncomment the Try Catch block, place your breakpoint where indicated in the code and run the WinForm Test Bench program. When the SqlException is thrown, use Mole to drill around it. Remember that the SqlException has an Errors Collection that can contain one or more SQL errors.
Try Catch
I did try to get the visualizer to recognize all exceptions by setting the TargetType to System.Exception, but it would not allow other exceptions that derived from System.Exception to be visualized. So, as you can see in the above block of code, I have added an attribute with the TargetType of System.Data.SqlClient.SqlException.
Viewing the exception was for instructional purposes and to spread Mole's wings to see what the application is capable of.
At this point, all Visual Studio developers have enough information to begin using Mole for their advanced debugging needs. Additionally you can target more .NET Framework types for Molanization.
If there is some interest, Team Mole could write a paper on the internals of Mole and possibly give a presentation also.
I know this article is long, but for all the new users of Mole, necessary.
The following provides information for becoming a Mole Geek.
Insect Programming was heavily utilized during Mole's coding cycle. This is where most of Mole's features came from.
The basic tenet of Insect Programming, as opposed to eXtreme Programming, is whatever features fly into our heads, we program.
The Insect methodology increases developer creativity because it completely bypasses the boring specification process and all those meetings and long drawn out discussions, UML diagrams, etc.
What is really funny is that at work, I'm the exact opposite; no spec, no keyboard activity.
Check here Team Mole & Mole Project Home and Mole's Home Page for additional information.
If you subscribe to Karl's Blog RSS feed you will be notified of all enhancements to Mole.
You can leave comments at the bottom of this article, on our blogs or send Mole an email at: email@example.com.
Woodstock – It all started here
Mole v1 article
Mole v2 article
Mole v2.2 Black Ops article
Mole v3 Visual Studio Visualizer article
Understanding the Visual and Logical Tree In WPF article
Josh Smith's Blog
Karl Shifflett's Blog
Andrew Smith's Blog
MSDN Visualizers (has links to many MSDN visualizer topics)
Team Mole hopes you find Mole For Visual Studio a productive developer tool and that this article helps learn a little more about Visual Studio Visualizers.
From Team Mole, have a wonderful day and enjoy Mole!
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)
I'm a passionate Software Architect and Developer.
A long-time WPF-Prism fanatic who enjoys writing line of business applications, developer tools, and Visual Studio Extensions.
My front end passions are WPF, Electron, Node.js, WordPress, and Angular.
For the back end I use what is appropriate for the project: SQL Server and ASP.NET WebAPI, Azure, etc.
I am very pragmatic software engineer and strive to write simple, maintainable, and testable code. Simple code allows for solving complex problems in a maintainable way.
My Blog
My Github Repros
Just a grain of sand on the worlds beaches.
The website you were trying to reach is temporarily unavailable.
Cheers, Karl
Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.RemoteObjectSourceException: Unable to cast object of type 'Mole.MoleVisualizerObjectSource' to type 'Microsoft.VisualStudio.DebuggerVisualizers.VisualizerObjectSource'. ---> System.InvalidCastException: Unable to cast object of type 'Mole.MoleVisualizerObjectSource' to type 'Microsoft.VisualStudio.DebuggerVisualizers.VisualizerObjectSource'.
at Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.DebugeeHost.CreateSourceInternal(String assemblyNameOrLoc, Byte[] assemblyBytes, String className, Boolean isLoc)
--- End of inner exception stack trace ---
at Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.PrivateCallback.MaybeDeserializeAndThrowException(Byte[] data)
at Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.ManagedShim.DelegatedHost.CreateViewer(IntPtr hwnd, HostServicesHelper hsh, SafeProxyWrapper proxy)
General News Suggestion Question Bug Answer Joke Praise Rant Admin
Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.


text:
We are Property management and Accounting outsourcing company in Yardi Outsourcing Accounting Service. We provide outsourcing service of Yardi software and give you all information of Yardi software in Yardi Outsourcing Accounting Service. With each passing year Yardi Outsourcing has tried to bring in innovation and new services in Yardi Outsourcing Accounting Service which can bring happiness to our customers. Today it stands offering exclusive online services for Property management in Yardi Outsourcing Accounting Service. The team consists of smart professionals with a desire to succeed and be the best.
Business process outsourcing (BPO) is growing and delivering benefits to various industries. For instance, the $50 billion per year off-shore BPO space, previously growing at 29%, is still forecast to grow another 10% in 2009.
We provide outsource business functions in Yardi Outsourcing Accounting Service, which are able to realize a number of benefits, including:
Progressively, real estate companies are outsourcing back-office business functions to service firms that deliver work through several models:

subset: commoncrawl


text:
Platinum Dunes always reminds me of a cheesy porn company name. Then it reminds me of Michael Bay. Then it reminds me of how much of a prick Michael Bay is. Then it reminds me that "Bad Boys" 1 and 2 are pretty awesome so he isn't all bad. Then it reminds me that I'm suppose to be talking about "Almanac", a new time travel found footage flick that the Dune boys are going to be producing. Then it reminds me that sometimes I ramble on about nothing at all. I like jelly beans.
If you've seen the trailer for "The Purge" then you're probably just as giddy with excitement as I am. Unless you're some sort of jerk who doesn't enjoy watching a movie about a family trying to survive the one night a year when there are no laws. See how I worked in the plot there? Well you're going to have to wait an extra week because the film's release date has been pushed from May 31st to June 7th. That should give you an extra week to try to fit into that new swimsuit you just bought. Oh you, you look good in everything.
Gemma Arterton and Anna Kendrick have both been added to the cast of "The Voices", a new supernatural flick staring Ryan Reynolds. In the film Reynolds plays a factory worker who accidentally kills an attractive woman and starts to take advice on how to cover his tracks from his cat and dog. Wait no that can't be right. Alright who slipped me peyote again!?
"Hatchet 3" is set to hit DVD and Blu-Ray on August 13. We're three films in, I've run out of sarcastic comments to make about these movies. Just make up your own from now on.
Spoiler alert: Eric likes it...
"Hansel and Gretel: Witch Hunters", staring Jeremy Renner and Gemma Arterton has been kicking around for some time now but with a January 11th release date looming you would think the film was pretty wrapped up. No so my friends. It looks like the folks over at Paramount are now testing the film in both R and PG-13 rating form. I can only assume this means one version will have the 3 boobed hooker alien and one version won't. Wait no, that's a different movie.
I've made a ridiculous amount of "I think Ryan Reynolds is hot" jokes on this site so I'm just going to skip it this time. I'm just going to tell you about the new movie titled "Queen Of the City" he's working on where he stars as a father who begins to find clues that his child may still be alive 8 years after she was abducted. I'm not going to close with a weird comment about his rock hard abs. I'm not even going to mention is dreamy eyes that you get lost in every time you look at them.
Just in time for the holiday season IFC is set to release a new documentary titled "The Jeffrey Dahmer Files" which follows a lovable pup across the country has he tries to find the family that accidentally left him behind. Wait wait no, that's all wrong. it's about Jeffrey Dahmer, the guy who was arrested in 1991 for the murder of 17 people. It's an honest mistake.
I don't know why I get so excited about Bigfoot movies, especially since there's so many of them coming out in the near future. I think it might be because our very own Mark just gets so excited about them and any time he gets that twinkle of excitement in his eyes the world just seems a little bit brighter. I may have said too much. "Bigfoot County" is a new found footage flick about a group of filmmakers on a hunt to find the large hairy one.


text:
Online shipping times are experiencing some slight delays. View estimated delivery times.
Pandora's response to COVID-19. Read more.
Track your order here.
Pandora Moments Collection Shop Now
Pandora Timeless Collection Shop Now
Discover Gift Sets Shop Now
Pandora Gift Sets Shop Now
Your Account
With a Pandora account you enjoy easy checkout, exclusive offers, your personal wish list and much more


text:
What Protestants mean by sola scriptura is that the Bible alone is the infallible written authority for faith and morals
—Evangelical Protestant apologist Norman Geisler (Roman Catholics and Evangelicals: Agreements and Differences, Grand Rapids, Michigan: Baker Books, 1995, 178; co-author, Ralph E. Mackenzie)
It is important to notice that sola scriptura, properly understood, is not a claim that Scripture is the only authority altogether. . . . There are other real authorities which are subordinate and derivative in nature. Scripture, however, is the only inspired and inherently infallible norm, and therefore Scripture is the only final authoritative norm.
— Reformed Protestant Keith A. Mathison (The Shape of Sola Scriptura, Moscow, Idaho: Canon Press, 2001, 260)
The doctrine of sola scriptura, simply stated, is that the Scriptures alone are sufficient to function as the regula fidei, the infallible rule of faith for the Church.
— Reformed Baptist apologist James R. White (The Roman Catholic Controversy, Minneapolis: Bethany House Publishers, 1996, 59; italics his)
[see the Introduction of my 100 Biblical Arguments Against Sola Scriptura for much more elaboration on definition]
The following thoughts are derived from a friendly but lively discussion with a fellow Catholic apologist.
Definitions of things are super-important. This is a crucial issue in all apologetics. I can't emphasize strongly enough how supremely important this is, because it has to do with the definition of a thing that is central in the "hottest" and most controversial issue in Catholic-Protestant apologetics.
I don't think sola Scriptura is a "bluff." This implies deliberate dishonesty, which is uncharitable. I certainly was not seeking to be dishonest when I was an evangelical Protestant. I think it is a matter of how things are properly defined within the framework of multiple broad Protestant traditions, and how the man on the street is largely unaware of same (just as Catholic men on the street often are, of our dogmas).
I don't think that because there is widespread ignorance, therefore, we shouldn't worry about matters of proper definition at all. The latter is always supremely important in any big discussion and controversy. This is not a minor matter in apologetics. We're talking about (by far) the most controversial and central issue in all of Catholic-Protestant interaction. It's #1.
All I'm saying is that we must define sola Scriptura according to how "official" Protestantism [at denominational levels] does, just as Protestants must define our doctrines and dogmas by what popes and councils and catechisms say, not based on the distortion of less educated folks. I should think that this is self-evident.
That much is clearly crucial and necessary. It seems like you want to say, on the other hand, "that doesn't matter at all; all we care about is meeting the man on the street, on a practical level." It's not either/or. We should note the definition as we know it to be, then deal primarily with how it works out in practice with Joe Protestant on the street.
If we are operating with inaccurate, mistaken definition of the very concept we are opposing, this violates the basic rules of all debate whatsoever: know thy opponent, and define basic terms at the outset. And it's uncharitable, because it appears like we are warring against straw men in some respects.
I've written way more on this than on any other topic (including two books, and part of a third). Countless times I've argued (and it's in my books) that sola Scriptura is self-defeating and unworkable in practice, that it is vicious, circular reasoning and can't be applied consistently in real life. But I take care to define the term and concept accurately, according to how educated Protestants see it. They themselves (particularly Mathison and Baptist scholar Bernard Ramm) despise the distortion of what they call SOLO Scriptura.
Ultimately, Protestants don't have to (by their own principles) be obedient to denominational authority, per Martin Luther and the internal logic of sola Scriptura (as I've argued a million times), but it's again beside the point. They define it a certain way and then ultimately contradict it. We still need to accurately define that which we oppose, and then proceed to show how it is self-defeating. I've done this a million times (see my Bible and Tradition page).
But Protestants obviously acknowledge non-biblical authorities. They only deny infallibility to them. James white, for example, would submit himself to his own Reformed Baptist tradition. He might theoretically be shown to be in error on some point, according to the Westminster Confession, etc. The average Protestant of his sort respects their own denominational sub-tradition. It's why they're there. It's why Calvinists squabble with Arminians: because they believe strongly in their own thing over against the other.
It's a weak form of tradition, by Catholic criteria, but it still is a lesser authority within Protestantism. We mustn't dismiss it as no authority at all besides the Bible. We can say it doesn't work, that it fails, that it is self-defeating (I do all that hundreds of times), but it still is authority in some sense.
Protestants believe in sola Scriptura. At the same time they don't properly think it through, to see that it is self-defeating. Lack of awareness and logical acuity is not dishonesty.
All religions have a problem of the average adherent being ignorant on any number of issues. It's not like Protestants alone suffer from this. How many Catholics could articulate the difference between infused and imputed, forensic, external justification, or explain the proper relationship of grace and works, or give a biblical defense of transubstantiation or the Two Natures of Christ, or give any reason whatsoever for acceptance of the Immaculate Conception or the Assumption?
The three examples given at the top of this post are the accepted definition of sola Scriptura. It's the Protestant's own definition, not mine or any Catholic apologist's, to define as I or we wish. We expect the same in critiques of our faith. If someone said they didn't give a fig about the definition of papal infallibility at Vatican I or the two papal statements about the Marian doctrines (1854, 1950), Catholic apologists would be quick to say that they can't do that. We'd say that they can't define our doctrine by what some drunk Catholic in a bar at 2 AM says about it. They have to go "by the books." And we have to do the same with them. It's the same intellectual standard and responsibility, both ways. Their definitions come from their own confessions and creeds.
Sola Scriptura is defined within Protestant ranks by scholars and bigwigs in denominations, following their own dogmatic creeds, confessions, systematic theologies, leading theologians, etc. It's not all that different from how we do it: it just carries less total authority because of the nature of their system (in a word, it isn't infallible, as ours is).
Major terms (and doctrines) in theology always come from the top down, not from the man on the street. This is no different between Catholicism and Protestantism either. Theology isn't democratic, because it's based on revelation (the ultimate top-down notion).
Protestants have no central authority, but they have several prominent denominational authorities. If I am critiquing the Lutherans, I consult the Book of Concord. They bind themselves to that. For Calvinists it is usually the Westminster Confession, with Calvin's works being very authoritative, too, though not absolutely so (per sola Scriptura). For Methodists, Wesley would have a high place. For Anglicans, it is the 39 Articles. Etc., etc. This is elementary to understand in Catholic-Protestant apologetics.
Protestants don't disagree regarding sola Scriptura, at the level of theologians and scholars and pastors, etc. A few extreme fundamentalist groups go to a radical "Bible Only" or what has been described derisively by informed Protestants (notably, Mathison), as a solo scriptura view. They are more united on sola Scriptura than on almost anything else, because it is one of the few principles that is agreed by virtually all (of educated ones). Everything else for them is built upon this. This particular issue happens to have a large consensus within Protestantism.
If we don't go "by the books" in defining Protestant terms, by the same token, Protestants who critique Catholicism should be able to define Catholic soteriology in the manner that the average Catholic on the street does: that basically we have to be "good people" to get to heaven. I'd venture to guess that many (less educated and informed) Catholics would be semi-Pelagians in their theology, and some even outright Pelagians. If we don't care what a religion's "official books" say and just take a head count of folks on the street, then we'd have all kinds of "interesting" definitions.
The very enterprise of apologetics would become chaotic and absurd if we took that tack on everything. It would hardly even be possible. We'd be fighting straw men a good 90% of the time. I try to critique the views of the most intelligent and respectable Protestants, not the least intelligent ones.
This is what the fringe group of anti-Catholics among Protestants love to do with us. They immensely enjoy toying (in public) with a Catholic who doesn't know what he's talking about, and exhibits so many stereotypes of what they envision Catholicism to be. But when you or I meet them, all of a sudden they have far less time and interest, for some reason. Their goal is to mock and caricature Catholic belief, not interact with the real thing.
Protestants can be told they're wrong within their own flawed authority structures. But one can also make arguments from the Bible, as I specialize in. We can take their sola Scriptura and trap them with it, by showing them that the Bible supports our views, not theirs. They will take that seriously because they believe that the Bible is inspired, as we do. It's common ground, and so it is very effective in debates. Every debate must establish the best common ground between the two positions, and go from there. Otherwise, there is no interaction at all, if nothing is held in common.
Apologists must define things primarily "by the books." We don't accept otherwise when we are critiqued, and in charity we owe the same to our Protestant brethren.
When I find folks (anti-Catholic polemicists) botching Catholic definitions I have a field day and rake them over the coals, and broadcast it to all and sundry: "Look! So-and-so doesn't even understand the basic definition of X!" I've often done this with atheists who claimed that they understood exegesis back when they were lowly Christians (let alone now: yet they consider themselves such "experts" on the Bible). I prove that they didn't have a clue, that they were and are quite ignorant about it. We must properly understand what we are critiquing: all the more so regarding the number one issue in apologetics.


text:
(The Root) — Forget the tomfoolery commonly associated with Atlanta nowadays — reality-TV catfights, hair pulling, unsupervised egomaniacs and poseurs looking to be idolized. The city with more Peachtree streets than visitors can remember is very supportive of individuals who want a healthier and more serene quality of life.
A new transplant to the area from Los Angeles — a vegan who enjoys outdoor activities — recently asked me if there was anything in Atlanta that aligned with her interests. Is there?! Metro Atlanta can be like a supportive friend to anyone dedicated to healthy living, offering a variety of support and encouragement. One of the most obvious offerings is green space. It's really green here — because of the 356 parks and green spaces managed by the city of Atlanta. And many neighborhoods in metro Atlanta have a nearby park with a walking track.
Where to Work Out
One popular spot where many Atlantans and visitors like to get their exercise on is the city's version of New York's Central Park, Piedmont Park (521 Park Drive NE, Atlanta). Situated on 185 acres in the heart of Midtown, the park offers a few trails that joggers, walkers, bladers and bicyclists can trek. There's the Park Loop, the longest circuit at 1.68 miles; the .96-mile Lake Loop, which circles Clara Meer; and the Active Oval, which is .70 miles and includes a half-mile running path.
While Piedmont Park is conveniently located, Stone Mountain Park (1000 Robert E. Lee Drive, Stone Mountain) is a runner's paradise. You can either walk or run up the 1.3-mile Walk Up Trail to the mountain's summit, which offers a fantastic panoramic view of the metro area. The five-mile paved loop at the mountain's base helps you keep track of your progress with its highlighted mile markers at every half-mile. In total, the 3,200-acre state park has 15 miles of hiking and walking trails and a 363-acre lake.
Another popular choice is the Silver Comet Trail (4573 Mavell Road, Smyrna), which begins in nearby Smyrna and is more than 61 miles long, spanning more than three counties northwest of Atlanta. Named for the Silver Comet passenger train that traveled along a former railroad, the paved trail is often the site of cycling and foot races. This trail doesn't run through the city of Atlanta, but city officials are reportedly looking to build trails that connect to it.
The YMCA is also very useful, not just for tightening up glutes and having a place to run indoors when it rains, but also for offering travelers the convenience of visiting other locations. Yes, a lot of gyms offer that feature, but do they have the YMCA's pricing? There are 21 YMCAs throughout metro Atlanta, including five in the city. Another option is taking classes or pumping iron at one of 33 recreation centers operated by the Atlanta city government. Like the YMCA, the city-run facilities offer a variety of dance, swimming and aerobic classes that will get the blood flowing.
Where to Eat
Most restaurants nowadays include some type of "healthy" meal alternative. Just look at the latest offerings at popular fast-food chains. But if you are looking for an eatery that's undeniably organic, sometimes it's just best to go to one that has built a solid reputation for healthy food. Lov'n It Live (2796 E. Point St., East Point), located 10 minutes outside the city, is one of those places. It specializes in freshly prepared organic-living and vegan cuisine, but I've witnessed meat-eating former jocks having to stop themselves from licking the plate once they're done eating. Yeah, it's pretty good.
R. Thomas Deluxe Grill (1812 Peachtree St. NW, Atlanta), a family-owned restaurant in Atlanta's Brookwood neighborhood, is a popular 24-hour spot with an expansive menu that includes free-range meat and organic, gluten-free, vegetarian, vegan and raw-food choices. R. Thomas is also known for its fruit and vegetable smoothies and juices, which are welcome after a workout.
In Atlanta's West End near the Atlanta University Center, Food for Life Supreme (880 Martin Luther King Jr. Drive SW, Atlanta) offers a variety of options for omnivores, carnivores and herbivores alike. Its colorful atmosphere and creative menu are draws for many people desiring improved health.
The Real Chow Baby, an all-you-can-eat American stir-fry restaurant, is another option for patrons with varying food needs. With locations in the West Midtown (1016 Howell Mill Road, Atlanta) and Virginia Highland (782 Ponce De Leon Ave. NE, Atlanta) neighborhoods, the Real Chow Baby gives patrons the choice of having a tasty salad or stir-fried veggies with rice and chicken.
Where to Shop
If you're someone who prefers preparing meals at home to eating out, you can't go wrong at Your Dekalb Farmers Market (3000 E. Ponce De Leon Ave., Decatur). No matter what your ethnicity or what part of the world you hail from, this grocer will have something familiar to you. The 140,000-square-foot market offers fruits, vegetables, spices, meats and other related products. Just remember to bring a jacket, even in the summer, because it's pretty chilly in there. And yes, it can get crowded!
Sevananda Natural Foods Market (467 Moreland Ave. NE, Atlanta) is a popular consumer-owned cooperative that sells herbs in bulk, an array of vitamins and supplements, and mostly organic and/or vegan grocery and foods. It's considered the city's first health food store. No matter where you are on the healthy-living spectrum, this health food coop, located in Atlanta's Little Five Points community, is a stop for all.
Atlanta also has a number of community gardens where residents purchase fresh, organic fruits and vegetables. A popular one is Truly Living Well, headed up by K. Rashid Nuri, which has five locations around metro Atlanta, including four acres in the Old Fourth Ward near the Martin Luther King Jr. National Historic Site (75 Hilliard St. NE, Atlanta).
Where to Get Checked Out
There are health screenings offered throughout the year in metro Atlanta that are sponsored by nonprofits; retailers like CVS, Rite Aid and Sam's Club; and local politicians. A slew of them took place in May and earlier in June. But don't fret — there are others scheduled for the remainder of the 2012. On Sept. 9 between 10 a.m. and 3 p.m., the Community Health & Men's Promotion Summit (CHAMPS) will have a health summit offering free health screenings for men at the Georgia World Congress Center (1 Georgia Dome Drive NW, Atlanta). Check the Atlanta Journal-Constitution and local community boards for details on additional screenings.
In case anyone has any doubts, and despite what statistics may show, Black Americans do exercise and lead healthy lives. Visit just about any gym or park in the city and you'll see African Americans of all ages and sizes and from various socioeconomic backgrounds getting in a workout. And like any good friend, metro Atlanta is supporting every step, jump and breaststroke they take along the way.
View The Root's Healthy Cities: Atlanta in a larger map
Aisha I. Jefferson is an Atlanta-based contributor to The Root.


text:
Rapid Results Marketing Workshop is a practical small business marketing workshop that teaches entrepreneurs how to quickly attract prospects, increase profits and grow like never before!
This Program is for YOU IF . . .
- Your business is in drastic need of qualified leads.
- Your marketing doesn't pull like it used to.
- You want strategies to increase profits quickly.
- You want to know how to attract customers without spending a fortune.
- You want the Best Practices for growing your small business.


text:
Book Direct with the Owner at Oyster Creek QLD with our WA Accommodation Agent in Oyster Creek, for all your holiday and travel needs.
Address: 754 Fingerfield Road Deepwater, Baffle Creek QLD 4674
Address: 1384 Coast Road, Baffle Creek QLD 4674
Address: , Rosedale QLD 4674
Address: Mouth of Baffle Creek Conservation Park, Baffle Creek QLD 4674
Address: Rules Beach, Rules Beach QLD 4674
copyright © 2020 WA Accommodation. All rights reserved.


text:
Home » Vinyl » KOVAC, BORIS: Ritual Nova 2. (vinyl)
KOVAC, BORIS: Ritual Nova 2. (vinyl)
A rich and folk tempo-ed work built from ethnic and electronic sounds and instruments. Layered and always at root folkloristic harmonic constructions with an extraordinary sense of pace and inner dynamic.THIS IS A VINYL RELEASE
Code: PE01
Price: £20.00


text:
Season 3: Local, USA: Season 3
Culled from public television stations and independent producers, LOCAL, USA shows the depth and diversity of people in fascinating short stories. This season brings individuals together to talk about their slice of life - from the witnesses of a historic event that changed a neighborhood, and a nation, to the men and women finding themselves and their passion & place. Hosted by Tina Martin.
The coming-of-age story of a young Muslim American competing at Rubik cubing competitions.
Tariq's Cube
Kids in Crisis: You're Not Alone
The mental health journeys of four young people, told entirely in their own words.
Kids in Crisis: You're Not Alone
Veterans Coming Home - Careers
Showcases veterans finding new career paths and adapting to the civilian work world.
Veterans Coming Home - Careers
The health challenges veterans face in transitioning from military to civilian life.
Veterans Coming Home - Health
An environmental restoration effort led by the Pokagon Band of the Potawatomi Indians.
The Seven Generation River
The forgotten story of a '63 civil rights protest and its connection to today's issues.
'63 Boycott
A BEYOND GRADUATION collection of two short documentary stories.
Beyond Graduation - DOCS!
Behind-the-Scenes - Beyond Graduation
Go behind-the-scenes of the production of BEYOND GRADUATION.
Behind-the-Scenes - Beyond Graduation
Young journalists travel the U.S. exploring issues that divide us & stories that unite us.
Crossing the Divide
Follow the journey of three women, who have served time in jail for opioid-related crimes.
Opioids from Inside
Meet five men and women chasing their versions of the American Dream in New York.
My Everyday Hustle
Meet THE MAYORS OF SHIPROCK - unstoppable young Navajo leaders working to bridge divides.


text:
Android Midframe
Grab a toolkit for your Android device model and fix your broken phone or tablet!
iFixit has you covered with parts, tools, and free repair guides. Repair with confidence! All of our replacement parts are tested to rigorous standards and backed by our industry-leading warranty.
Android modelinizi seçin:
Android ile çalışan parçalar:
Galaxy S7 Midframe
Replace the midframe assembly for a Samsung Galaxy S7.
Galaxy S7 Edge Midframe
Replace a broken or damaged metal midframe assembly in your Samsung Galaxy S7 Edge with this part. This assembly includes the motherboard heat pipe, the internal power an...
Galaxy S5 Sport Midframe
Replace a damaged midframe assembly for the Sprint only Samsung Galaxy S5 Sport smartphone.
Galaxy Note 4 Midframe (AT&T)
Replace the plastic middle frame, edge bezel, external volume and power button covers, speaker, and rear facing camera lens cover for an AT&T model Samsung Galaxy Note 4.
LG G2 Midframe (Sprint)
Middle support frame for the LG G2
Huawei Honor 8 Midframe
This part is the midframe for the Huawei Honor 8 smartphone.
LG G2 Midframe (AT&T)
Middle support frame for the LG G2
Galaxy S8+ Midframe
Replace a scratched edge bezel or a bent metal midframe for a Samsung Galaxy S8+.
Nexus 5 Midframe
Replace the plastic midframe for the LG-D820 model Google Nexus 5.
Galaxy S8 Midframe
Replace a scratched or bent metal midframe for a Galaxy S8.
Cihaz Bilgisi
Android is a Linux-based, open source operating system for mobile devices created by Android Inc., now owned by Google. Today, many different companies use Android for their mobile device product lines including Samsung, HTC, Motorola, and many others.
The first Android phone was the HTC Dream released in October of 2008. Since then Android devices, including tablets and phones, have become popular all across the world. As of May 2013, a total of 900 million Android devices had been activated and 48 billion apps had been installed from the Google Play store. It's currently the most widely used smartphone OS.


text:
The Arm Glossary is a list of terms used in Arm documentation, together with definitions for those terms. The Arm Glossary does not contain terms that are industry standard unless the Arm meaning differs from the generally accepted meaning.
See the Arm Glossary for more information.
Arm welcomes feedback on this product and its documentation.
Feedback on this product
If you have any comments or suggestions about this product, contact your supplier and give:
- The product name.
- The product revision or version.
- An explanation with as much information as you can provide. Include symptoms and diagnostic procedures if appropriate.
Feedback on content
If you have comments on content then send an e-mail to email@example.com. Give:
- The title.
- The number .
- The page number(s) to which your comments refer.
- A concise explanation of your comments.
Arm also welcomes general suggestions for additions and improvements.


text:
Privacy Notice
Privacy: Our site uses a registration form for purposes of order fulfillment and customer contact when necessary. This data may also be used to announce special offers of items, new product introductions or new services. (You can opt out of receiving future mailings by emailing or calling us.) The site also uses cookies for the sole purpose of keeping track of your shopping cart during the current shopping session. None of the information we gather from you is used for any other purpose than to administer your orders or contact you. We do not give, sell, rent or exchange this information with any third parties.


text:
27 October, 2009 | (01 hr)
Sign In to access this Webcast
Corporate learning and development play a crucial role in any organization's talent development strategy. Businesses that continue to invest in their learning and development budgets during economic slowdowns benefit from increased market share and profitability. Why? When the economy eventually improves, companies will have a stronger workforce from having made the investment in their human capital assets. Participants in this webcast will learn strategies to develop exceptional learning and development initiatives regardless of the economic climate.
Michelle Blieberg
Michelle Blieberg is a Senior Fellow, Human Capital at The Conference Board. In this role, Michelle supports the Human Capital Practice which includes The Conference Board Human Capital Exchange™, research, conferences, webcasts and programs in a broad spectrum of ...Full Bio
Trina L. Soske
Trina, a partner at Oliver Wyman Leadership Development, and global practice leader for the firm.
Trina has over 25 years of strategy-consulting and leadership development experience with companies ranging from start-ups to Fortune 50. Her broad industry background includes healthcare, bi...Full Bio
Jean McNulty
Jean served as a Conference Portfolio Manager and Council Program Director for The Conference Board from 1992 until 2000. During this time she supervised a number of Program Directors in the development and production of conferences as well as serving as the Program Director for two Marketi...Full Bio


text:
Roasted Baby Peppers Stuffed with Tuna Recipe
These Roasted Baby Peppers Stuffed with Tuna from The Mozza Cookbook are Nancy Silverton's ode to an antipasto made by Lidia Bastianich, one of the forebears of traditional Italian cooking in America.
Silverton updated these poppable little peppers by stuffing them with olive oil-poached tuna instead of the canned stuff, making for a flaked tuna that's lacking the fishiness department, more like sandwich-worthy version of vitello tonnato. When spooned into sweet little roasted peppers these are the sort of sweet-salty cocktail hour snacks that call for a flute or two of chilled prosecco.
Adapted from The Mozza Cookbook by Nancy Silverton with Matt Molina and Carolynn Carreño. Copyright © 2011. Published by Alfred A. Knof. Available wherever books are sold. All Rights Reserved
- Yield:makes 48 pepppers
- Active time: 30 minutes
- Total time:1 hour
- For the peppers:
- 48 baby peppers (preferably assorted colors), stems attached
- 3 tablespoons extra-virgin olive oil
- Kosher salt
- For the tuna stuffing:
- 1 pound albacore tuna
- 1/2 teaspoon kosher salt
- 1/4 teaspoon freshly ground black pepper
- 1 lemon, sliced into 1/4-inch rounds
- 1 long sprig of rosemary, broken into a few pieces
- 6 cups extra-virgin olive oil, or enough to cover the tuna
- 3/4 cup Garlic Mayonnaise (recipe follows)
- 2 heaping tablespoons finely chopped fresh Italian parsley leaves
- 2 heaping tablespoons capers (preferably salt-packed), soaked for 15 minutes if salt-packed, rinsed, drained, and finely chopped
- 1 1/2 tablespoons Dijon mustard
- 3 anchovy fillets (preferably salt- packed), rinsed, backbones removed if saltpacked, and finely chopped
- 2 1/2 teaspoons apple cider vinegar
- 2 teaspoons fresh lemon juice
- For assembling the peppers:
- 2 cups loosely packed arugula (preferably wild)
- Finishing-quality extra-virgin olive oil
- 1 lemon, halved
- Maldon sea salt or another flaky sea salt, such as fleur de sel
- For the Garlic Mayonnaise:
- 1 extra-large egg yolk
- 2 teaspoons Champagne vinegar
- 2 teaspoons fresh lemon juice
- 1 large garlic clove, grated or minced
- 1 teaspoon kosher salt, plus more if needed
- 3/4 cup grapeseed oil or another neutral-flavored oil, such as canola oil
- 1/4 cup extra-virgin olive oil
For the Garlic Mayonnaise: Combine the egg yolk, vinegar, lemon juice, garlic, and salt in a medium bowl and whisk to combine. To keep the bowl steady as you whisk, wet a kitchen towel, squeeze out the excess water, and roll it up on the diagonal. Lay the rolled towel in a ring on your work surface and set the bowl in the center of the ring. Combine the grapeseed oil and olive oil and add the oil a few drops at a time, whisking constantly to form an emulsion. When you've added about half of the oil begin to drizzle the oil in a slow steady stream, continuing to whisk constantly, until all of the oil has been added. Taste for seasoning and add more salt, if desired. The garlic mayonnaise can be made up to three days in advance; transfer it to an airtight container and refrigerate until you are ready to use it.
To prepare the peppers, adjust the oven racks so one is in the middle position and preheat the oven to 350ºF. Place the peppers on a baking sheet, rub them all over with the olive oil, sprinkle with salt, and spread them out in a single layer. Roast the peppers for about 30 minutes, turning them occasionally, until their skins are wrinkled and slightly charred in places. Remove the peppers from the oven, leaving the oven on at the same temperature, and set aside to cool to room temperature.
To prepare the stuffing, cut the tuna into 1-inch thick slices, season with the salt and pepper, and place the slices in a small saucepan. Arrange the lemon slices and rosemary around the tuna and pour in enough olive oil to cover. Place the saucepan in the oven to cook the tuna for about 10 minutes, until medium-rare. (To test, split one of the slices with a fork to see the center.) Remove the tuna from the oven and let it cool to room temperature in the oil.
Combine the Garlic Mayonnaise, parsley, capers, mustard, anchovies, vinegar, and lemon juice in a large bowl. Remove the tuna from the oil and break it into the bowl with the mixture. Use a wire whisk as you would a potato masher to break up any large chunks but you do want the tuna to have texture. Fold the tuna and other ingredients until they are thoroughly combined.
To assemble, slice each pepper almost in half lengthwise, leaving them attached on one side. Carefully scrape out and discard the seeds, and spoon a scant tablespoon of stuffing into each pepper. Arrange the peppers on a platter. Scatter the arugula over them, drizzle with the finishing-quality olive oil, and the juice on the lemon, sprinkle with sea salt, and serve.
All products linked here have been independently selected by our editors. We may earn a commission on purchases, as described in our affiliate policy.


text:
Seeing these images of the baroque state beds at Beningbrough Hall, North Yorkshire, reminded me of the upward thrust of much baroque decoration.
The beds with their elaborate canopies happily echo the vertically oriented panelling of the rooms crowned by intricately carved friezes. You are encouraged to look up, and be amazed.
The beds originally came from Holme Lacy in Herefordshire, latterly the seat of the Earls of Chesterfield. The 10th Earl of Chesterfield sold Holme Lacy in 1909 and bought Beningbrough in 1917.
The red state bed came to Beningbrough at around that time. The blue state bed was sold by the Chesterfields when they left Holme Lacy but rejoined its twin at Beningbrough in 1980.
Both beds were probably made by the émigré French upholsterer Francis Lapierre (active 1683 – d. 1714) and are in the style of Daniel Marot (1661-1752), the court architect and designer who popularised baroque decoration in Britain.
So here the story here is not just about art history, social history and family history, but also about the visual and spatial interaction between objects and spaces.


text:
The RS Pro silicone heater mats are designed for areas where standard heating methods are difficult to apply.
All the mats are self-adhesive and have etched foil elements embedded into a glass cloth supported rubber compound. These features provided you with a highly robust but flexible product.
Backing adhesive from Nitto, no loss in performance
Thin and lightweight
Less thermal mass
Flexible Silicone with etched foil heating elements
Fits to irregularly shaped objects
Wide temperature range
240 V ac type mats have a circular hole in the centre which can accept a bi-metallic
Available in square, rectangular and round
Production of heaters
Automotive industries
Medical Industries
GRP repairs
Heater mats are not suitable for stand-alone operation.
In order to obtain optimum performance from these products, it is advised that temperature sensing and control elements be used with them.
|Mat Shape
|Power Rating
|Circular Mat Diameter
|Peak Temperature
|Supply Voltage
|12 V dc


text:
Rising fuel prices and the associated higher cost of virtually everything else may have hit a number of economic sectors in the second quarter of this year, but the tech industry appears to have escaped unscathed. Industry analysis firm Jon Peddie Research has released its report on the GPU market for the past quarter, and the numbers remain healthy.
GPU chip sales typically decline in the second quarter, but the drop this year was just 0.49 percent. That's the smallest decrease since 2001, when sales fell 10.75 percent, and it indicates strong, consistent demand for GPU products across the board. JPR estimates that some 94.4 million GPUs were sold in Q2, for a 16 percent year-on-year increase (year-on-year shipments for Q2 2007 - Q2 2008 are shown below).
As for the third quarter, JPR refrained from making a concrete prediction, but noted that it could be a record quarter, barring a major recession.
AMD and NVIDIA both enjoyed solid shipment growth year-on-year, but Intel ran away with the market, with a whopping 46 percent increase in units shipped.
All three manufacturers cannibalized sales from other companies; VIA/S3's sales plunged by 84 percent, while Matrox fell to just 100,000 GPUs shipped for the entire quarter. Without intending offense to Matrox fans, it's a wonder that the company still exists at all, or that JPR bothers to track it.
As for AMD, the company lost about 1.5 percentage points of market share (down to 18.1 percent, from 19.5 percent), but the increase in unit shipments is of more practical benefit to the company, since physical shipments mean revenue, and revenue is what AMD needs most. Nano sales in future quarters may help VIA's integrated GPU sales, but the company badly needs a new GPU solution, as I noted in my review of the Nano last week.
Desktop GPUs still outsell mobile parts by a clear majority, but the gap is narrowing. Desktop sales fell five percent compared to Q1, to 59.2 million units, while mobile sales rose 8.1 percent over the same period. Intel claims the lion's share of the mobile market, with 57.1 percent market share; AMD and NVIDIA lag behind with 17.9 percent and 23.6 percent of the mobile GPU market.
Intel's dominance in this area is due in no small part to the long-term success of the company's Centrino branding. In order to qualify as a Centrino product, a laptop must use certain Intel-built components, and that includes the GPU.
Peddie notes that he expects AMD to make "impressive" gains in Q3, and that's a forward-looking statement I would echo. ATI's recent 4850/4870 series is challenging (and arguably besting) the strongest products NVIDIA has to offer, and that doesn't look likely to change.


text:
Welcome and thank you for your interest in becoming a part of the CHI Living Communities team!
Our employees are dedicated to making a difference in the lives of older adults in our faith based senior living communities across the country.
CHI Living Communities is looking for individuals that will live and reflect our core values of reverence, integrity, compassion, and excellence. Campuses are located in Ohio, Kentucky, Iowa, Wisconsin, North Dakota, Oregon and Colorado.
Our residents and our employees both agree that home is truly here for all who reside, work, and visit.
Click here to learn about our Core Values, Employee Benefits, and Professional Development.
For information about open positions at Riverview, click here.