Tridium's smart services cut energy costs
As energy costs continue to rise and Government increases pressure on building owners to measure and reduce carbon emissions, Tridium will showcase how its industry-leading NIAGARAAX Framework can provide an effective smart services solution to meet these requirements.
"In the building controls world we are seeing the growing use of open communication standards for devices, like BACnet and LONWORKS" says Phil Barnett, Tridium's Sales Manager, EMEA. "At the same time, always-on internet connectivity is changing the service expectations of building owners and end-users. NIAGARAAX is capable of providing the bridge or 'middleware' between the building automation systems and the enterprise to improve carbon reporting, and help reduce energy costs and maintenance overheads in buildings. Tridium offers proven value to property owners and users in a fully scalable solution which suits stand-alone buildings, groups of buildings or entire cities".
NIAGARAAX is an open, Java-based framework which integrates diverse building services systems, control devices and communications standards, including LONWORKS, BACnet, Modbus and others into an interoperable, web-enabled application environment. It can thus be deployed to converge building control automation with information technology systems at a network level. Data thus embedded within a building's smart control devices can be accessed, consolidated and shared in ways that were not possible before with previously separate systems.
The way services are managed for a building, building estate or an entire community can also be significantly improved at the business enterprise level. Visitors will see how these smart services will allow buildings to be run more efficiently with reduced energy consumption, service costs and equipment downtime as clearly achievable gains.
As middleware, NIAGARAAX fulfils three distinct functions which are presentation, integration and the provision of a service-orientated architecture. NIAGARAAX enables all information for the various different systems to be displayed on a single user interface using a browser. The framework's integration capabilities ensure effective interaction of different systems within the building. Its service-orientated architecture enables the exchange of information with various Enterprise Application packages to create effective and efficient service and management of the buildings.
Typical enterprise applications include energy analysis, asset and maintenance management, tenant billing and measurement and the verification of carbon footprint.
You might also like


text:
MD Anderson Cancer Center has named eight innovative researchers to the second annual class of Andrew Sabin Family Fellows. The Andrew Sabin Family Fellowship Program provides $100,000 in funding per fellow over two years through a $30 million endowed gift to encourage creative, high-impact cancer research.
"It's been exciting to observe the inaugural eight fellows as their research has progressed during the first year of the Andrew Sabin Family Fellowship Program, and we're equally impressed with the 2017 class," said Andrew Sabin, a member of the MD Anderson Cancer Center Board of Visitors. "The program now nurtures 16 brilliant minds focused on finding an end to this terrible disease. My family looks forward to seeing their impact grow exponentially over the coming year. We're proud to know our gift already is making a difference for people suffering from cancer."
The Andrew Sabin Family Fellowship program awards up to eight cancer research fellowships annually to support research in four categories: basic science, clinical cancer research, physician-scientist and population and quantitative science. The generous funding over two years frees young researchers to pursue potentially practice-changing science rather than spend the bulk of their time writing grants.
Sabin, of East Hampton, New York, is president of Sabin Metal Corporation, the largest privately owned precious metals refiner and recycler in the country. An avid environmentalist, conservationist and wildlife enthusiast, he devotes much of his time and energy to advocating on a national level for increased funding for cancer research.
2017 Andrew Sabin Family Fellows
Members of the second annual class of Sabin Family Fellows and their areas of focus are:
Margarida Albuquerque Almeida Santos, Ph.D.
assistant professor, Epigenetics and Molecular Carcinogenesis
Santos focuses her research on the role of DNA repair factors, or genome guardians, in promoting tumors.
Swathi Arur, Ph.D.
associate professor, Genetics
Arur focuses her research on the interplay of RAS signaling and small RNA biogenesis enzymes in promoting tumor progression and metastasis.
Boyi Gan, Ph.D.
assistant professor, Experimental Radiation Oncology
Gan focuses his research on the role of energy sensing and metabolism in cancer.
Clifton Fuller, M.D., Ph.D.
assistant professor, Radiation Oncology
Fuller focuses his research on developing and implementing "Big Data" approaches to imaging methodologies to treat head and neck cancers more effectively.
Chad Huff, Ph.D.
assistant professor, Epidemiology
Huff focuses his research on understanding human evolution and the genetic basis of disease through statistical, computational and population genetics.
Eugene Koay, M.D., Ph.D.
assistant professor, Radiation Oncology
Koay focuses his research on developing and validating a method using CT scans to measure response in pancreatic cancer patients.
assistant professor, Gastroenterology, Hepatology and Nutrition
Rhim focuses his research on how precancerous pancreatic lesions become cancer and tumors become therapy-resistant through mutations.
Jennifer Wargo, M.D.
associate professor, Surgical Oncology and Genomic Medicine
Wargo focuses her research on delineating the role of the gut microbiome in modulating responses to cancer immunotherapy.
Andrew Sabin meets with newly named fellows to learn more about their
hopes and aspirations before touring a working laboratory at
MD Anderson. Photo by Adolfo Chavez III.
Inaugural Sabin Family Fellows
Report progress in cancer research
From basic science to better decision-making tools, eight young oncologists, now in their second year as Andrew Sabin Family Fellows, are blazing new trails in their various fields. The inaugural fellows, announced in April 2016, say the funds have enabled them to pursue innovative projects aimed at making a difference for cancer patients and their families everywhere.
We asked: What has your Andrew Sabin Family Fellowship enabled you to accomplish?
"Looking more closely at the dark region of human genomes to identify genetic variants that cannot be identified by current technologies but are particularly important to tumor development."
Ken Chen, Ph.D., associate professor, Bioinformatics and Computational Biology
"Conduct a project that examines the use of high flow oxygen and air to relieve shortness of breath, or air hunger, in cancer patients, a common symptom for which few treatment options are available."
David Hui, M.D., associate professor, Palliative, Rehabilitation and Integrative Medicine and General Oncology
"Pursue an exciting new project that will involve applying single-cell DNA sequencing technologies to breast cancer patients to understand how individual tumor cells evolve resistance to chemotherapy."
Nicholas Navin, Ph.D., associate professor, Genetics and Bioinformatics
"Further my study of DNA replication fork protection at in-depth molecular and biological levels to learn more about its potential as a cancer suppression mechanism across many different cancers."
Katharina Schlacher, Ph.D., assistant professor, Cancer Biology
"Extend my work on the role of co-occurring genetic events in KRAS-mutant lung adenocarcinoma, a prevalent and difficult-to-treat molecular subtype of non-small cell lung cancer."
Ferdinandos Skoulidis, M.D., Ph.D., assistant professor, Thoracic/Head and Neck Medical Oncology
"Develop a project to promote personalized decision-making between mastectomy and breast reconstruction or lumpectomy followed by whole-breast irradiation for women with early breast cancer."
Benjamin Smith, M.D., associate professor, Radiation Oncology and Health Services Research
"Pursue an exciting project that seeks to reduce toxicity from chemotherapy and radiation treatments to improve outcomes in our cancer patients."
Cullen Taniguchi, M.D., Ph.D., assistant professor, Radiation Oncology
"Evaluate which patients may benefit most from therapies targeting p53, the most common molecular aberration in ovarian cancer and a number of other advanced solid tumors."
Shannon Westin, M.D., associate professor, Gynecologic Oncology and Reproductive Medicine

source: m-a-p/FineFineWeb


chronizationScopeParticipant interface defines the API that model providers can use to participate in the scope management process. The SubscriberScopeManager class is a Subscriber based subclass of SynchronizationScopeManager that involves participants in the scope management process. An example of why this type of process is needed is working sets. If a working set is one of the resource mappings in a scope, the set of traversals covered by the scope would increase if resources were added to the working set.
Model-based Merging
The main repository operation type that requires model participation is merging. In many cases, models only need to participate at the file level. For this, the IStorageMerger API was introduced to allow model providers to contribute mergers that should be used to merge files of a particular extension or content type. However, in some cases, models may need additional context to participate properly in a merge. For this purpose, we introduced the IResourceMappingMerger and IMergeContext APIs.
Merge operations are still triggered by actions associated with a repository provider. However, once a merge type operation is requested by the user, the repository provider needs to involve the model providers in the merge process to ensure that the merge does not corrupt the model in some way.
There are two main pieces of repository provider API related to the model-based merging support.
 1. API to describe the synchronization state of the resources involved in the merge.
 2. API to allow model providers to merge model elements.
The following sections describe these two pieces.
API for Synchronization State Description
An important aspect of model-based merging is the API used to communicate the synchronization state of the resources involved to the model provider. The following interfaces are used to describe the synchronization state:
Abstract classes are provided for all these interfaces with the convention that the class names match the interface names with the "I" prefix removed. The only class that repository providers must override is the ResourceDiff class so that appropriate before and after file revisions can be provided.
API for Model Merging
The IMergeContext interface extends synchronization context with additional methods that support merging. Callback methods exist for:
An abstract MergeContext class is provided that contains default implementations for much of the merging behavior and also uses the IStorageMerger to perform three-way merges. A SubscriberMergeContext class is also provided which handles the population and maintenance of the synchronization state description associated with the merge context.
An operation class, ModelMergeOperation is provided which uses the IResourceMappingMerger API to perform a model-based merge operation. Subclasses need to override the initializeContext(IProgressMonitor) method to return a merge context. The operation uses this context to attempt a headless model-based merge. If conflicts exist, the preview of the merge is left to the subclass. As we'll see in the next section, there is a ModelParticipantMergeOperation that provides preview capabilities using a ModelSynchronizeParticipant.
Model Content in Team Viewers
Support for the display of logical models in a team operation is provided using the Common Navigator framework which was introduced in Eclipse 3.2. Logical models can associate a content extension with a model provider using the org.eclipse.team.ui.teamContentProviders extension point. Team providers access these content providers through the ITeamContentProviderManager.
There are several places where a team provider may wish to display logical models:
The ModelSynchronizeParticipant provides integration into the Synchronize view or any container that can display ISynchronizePages. The participant makes use of both the pre-existing synchronization participant capabilities and the Common Navigator capabilities to allow for team providers and models to tailor the toolbar, context menu and other aspects of the merge preview. The ModelSynchronizeParticipant provides the following:
Here's a checklist of steps for tailoring a model synchronize participant for a particular Team provider:
The following XML snipets illustrate how the CVS participant class is registered and how it's viewer is defined.
 <extension point="org.eclipse.team.ui.synchronizeParticipants">
 <participant
 name="CVS"
 icon="$nl$/icons/full/eview16/cvs_persp.gif"
 class="org.eclipse.team.internal.ccvs.ui.mappings.WorkspaceModelParticipant"
 id="org.eclipse.team.cvs.ui.workspace-participant">
 </participant>
 </extension>

 <extension point="org.eclipse.ui.navigator.viewer">
 <viewer viewerId="org.eclipse.team.cvs.ui.workspaceSynchronization">
 <popupMenu
 allowsPlatformContributions="false"
 id="org.eclipse.team.cvs.ui.workspaceSynchronizationMenu">
 <insertionPoint name="file"/>
 <insertionPoint name="edit" separator="true"/>
 <insertionPoint name="synchronize"/>
 <insertionPoint name="navigate" separator="true"/>
 <insertionPoint name="update" separator="true"/>
 <insertionPoint name="commit" separator="false"/>
 <insertionPoint name="overrideActions" separator="true"/>
 <insertionPoint name="otherActions1" separator="true"/>
 <insertionPoint name="otherActions2" separator="true"/>
 <insertionPoint name="sort" separator="true"/>
 <insertionPoint name="additions" separator="true"/>
 <insertionPoint name="properties" separator="true"/>
 </popupMenu>
 </viewer>
 </extension>
File History
A file history API has been added to allow models to access the history of files. The file history API consists of the following interfaces:
Along with this API, a generic file History view has been added. This will allow Team providers to display their file/resource history in a shared view and also allows models to display model element history for elements that do not map directly to files. The History view is a page-based view which obtains a page for the selected element in the following way:
Project Set Capability
Methods have been added to ProjectSetCapability to support the translation between a reference string used to identify a mapping between a project and remote content and URIs that identify a file-system scheme registered with the org.eclipse.core.filesystem.filesystems extension point. Team providers can optionally provide support for this in order to allow logical models to performing remote browsing and project loading.
Decorating Model Elements
Team providers can decorate model elements by converting their lightweight decorators to work for resource mappings in the same way object contributions are converted to work for resource mappings. However, there is one aspect of logical model element decoration that is problematic. If a model element does not have a one-to-one mapping to a resource, the model element may not receive a label update when the underlying resources change.
To address this issue, the ITeamStateProvider was introduced in order to give model providers access to state changes that may affect team decorations. In addition, model views can use a SynchronizationStateTester to determine when the labels of logical model elements need to be updated. This API relies on the ITeamStateProvider interface to determine when the team state of resource has changed and can be passed to a team decorator as part of an IDecorationContext.
Grouping Related Changes
Some logical models need to ensure that a set of changed files get committed or checked-in to the repository at the same time. To facilitate this, repository providers can adapt their RepositoryProviderType to an instance of IChangeGroupingRequestor. This API allows models to request that a set of files get committed or checked-in as a single unit.


Your Contact Person: Cristina Manzoni
Contact BUY AND REGISTER NOW x Support
Resonance
The Schumann Resonances circumnavigate within the earth's ionosphere at an average of 7.83 HZ. This frequency correlates with the average frequency of alpha brain waves. If our bodies are blocked or receive less of these natural frequencies, cell function is impaired.
Electromagnetic impulses (PEMF) with matching frequencies can produce cellular resonance.
Electromagnetic impulses produce resonant vibrations to membrane receptors (neuropeptides) and stimulate vital functions within the cellular structure.
This results in improved intercellular communication produced through inductive resonance.


author Wuzzy
Thu, 27 Apr 2017 15:54:28 +0100
changeset 998 f6ed8749f20b
parent 749 db0eeafa0cdf
child 1422 a6f2064e67a5
permissions -rw-r--r--
GearTypes: Add gtDuck
_TAG_ Importing an SVG into Hedgewars
= Importing from SVG files =
== Introduction ==
This is a quick and dirty description of converting an SVG into hedgewars HWMAP format. It is not at all pretty. Hopefully someone will make a prettier process. It currently makes use of Inkscape, vim, perl, g++ and a bit of manual labour. It looks best in 0.9.18+ which makes use of the variable brush size (the examples below use the second smallest size, 16px wide)
== Details ==
Open Inkscape.
Go to File->Inkscape Preferences and make sure that
 * SVG Output->Allow relative coordinates is unchecked
 * Transforms->Store transformation is set to Optimized
Open an SVG. Ideally one of simple line art, without too much use of fill or filters.
1) Select all in the image and choose ungroup, then combine all paths in the drawing (select them, then choose Path->Combine).
Note. I had some difficulty doing that with some images even after repeated use of ungroup. I ended up just going into the SVG file and deleting all the groups. This usually happens if there are filters in place. Removing all the g tags but keeping the paths inside the groups in the SVG in a text editor might be faster than cleaning up in Inkscape.
Also, some paths might be worth eliminating altogether. In order to get a better idea of what it'll look like, try: View->Display Mode->Outline. To simulate occluding, you can try combining individual paths first, and using union to combine into larger groups. This takes a bit more work. If it still doesn't look right, you're going to have to go in and delete nodes, and generally rework the shape to simulate occlusion.
2) Go to File->Document Properties and specify 4096 for W and 2048 for H. You may want to then reposition the art to be more centred vertically or horizontally.
3) Click on the path, and choose dimensions for W and H that would look good in the game (no more than 4096 for W and 2048 for H). The Lock button may be helpful here. Generally resize it and reposition it using the document white area as a guide to how it will look on the in-game drawing area, then save and quit.
4) Open in a text editor and verify there is one path. Change sodipodi:namedview's ID attribute to id="base" - this is to work around a bug in the current stable Inkscape ( extensions tool which was crashing it. This is probably fixed in 0.48.4. Note that I haven't tested this workaround. su_v says this is the correct way to do it because apparently id="base" is a reserved name for namedview in sodipodi - which seems like a rather common and collision-likely name. I had misread him and changed the path's id to base, and that seemed to work fine. If changing namedview doesn't work, try renaming the path instead.
Make sure all those groups are removed.
5) Open the file in Inkscape again, Click on the path again, then go to Extensions->Modify Path->Flatten Beziers and flatten out the curves to your taste. Default of 10 seems fine most of the time, but for small curved objects you might want something like 5. Keep in mind, the more the approximation, the more points that Hedgewars has to draw, which can be rough on the engine and network communication, then save and quit.
6) Edit the file, and delete everything but the path data. You should have a one-line file starting with something like M1234.3 456.78L3298.3 9023.34 and so on.
If instead you have a format like M 1234.678,9875._PHONE_.0,123.45 - you'll want to convert if you want to try the crude script in (10) - otherwise a smarter script would be needed. Here's some Vim commands for that syntax {{{s/\(\d\) \(\d\)/\1 L\2/g}}} and {{{s/,/ /g}}} and {{{s/\([LM]\)\s*/\1/g}}}
The coordinates should now be rounded for use by the crude script in (10) unless you plan to handle that yourself in some way. Here is a vim one-liner to do it.
Also, it is probably a good idea to remove duplicate points. Here's a regex for that. {{{s/\(L\d\+ \d\+ \)\1/\1/g}}} - you should run that a couple of times, then {{{s/M\(\d\+ \d\+ \)L\1/M\1/g}}}. That just cuts down on a bit of redundancy. If these regexes match anything, you probably should rerun them.
Since this page is a mass of hacks, here's one more redundancy reducer, in bash this time.
{{{rm dupes.txt;PREVXY=(99999 99999);sed's/\([LM]\)/\n\1/g' inputfile | while read f;do read -a XY <<< "${f:1}";if [ "${f:0:1}"!= "M" ];then if((${XY[0]}-${PREVXY[0]}<3&&${XY[0]}-${PREVXY[0]}>-3&&${XY[1]}-${PREVXY[1]}<3&&${XY[1]}-${PREVXY[1]}>-3));then echo "$f" >> dupes.txt;else echo $f;fi;else echo $f;fi;PREVXY[0]=${XY[0]};PREVXY[1]=${XY[1]};done | xargs > inputfile.dedupe}}}
If dupes.txt has anything in it, you probably should run it again. Anyway, running these reduced a complex test trace from ~8800 points down to ~6500.
7) Convert the path data. Here is a crude script to do that. Note this one uses a line size of 1 (that's the 0x01 business).
If you want larger lines you can pick anything between 0x00 and 0x3F. That's 6-636. See the [DrawnMapFormat] wiki page.
# just a one-line list of points. at least, it had better be one-line
open FILE, $ARGV[0];
 s/([LM])(\d+) (\d+)\s*/point($1,$2,$3)/eg;
sub point
 ($t, $x, $y) = _USER_;
 $y+=0; # just in case
{{{script pointdata > hwpointdata}}}
8) qCompress the data.
{{{g++ -I /usr/include/qt4 -I /usr/include/qt4/QtCore qcompress.cpp -lQtCore}}}
_TAG_
_TAG_
using namespace std;
int main(int argc, char **argv)
 QFile fromFile(argv[1]);
 QFile toFile(argv[2]);
 if( &&
{{{./a.out hwpointdata hwpointdata.Z}}}
9) Convert to base64 and you're done! (whew)
{{{base64 -w0 hwpointdata.Z > mynewhedgewars.hwmap}}}
Here are some example hwmap files from the process above. They look better in 0.9.18+ due to the added size support, allowing thinner lines.


were less mentally exhausted than those in the two-year group (Personality and Social Psychology Bulletin, vol 34, p 419).
Of course, there is a form of mental exhaustion that doesn't require thought: nag them into submission. Children have got this technique sussed, says Burkley.
5. The medium is the means
In this fast-paced world, we seldom have time for face-to-face meetings. You are just as likely to conduct your personal and business negotiations by email, or some other electronic medium, as you are in person. How does this impact your powers of persuasion?
The question intrigued Rosanna Guadagno of the University of Alabama and Robert Cialdini of Arizona State University, who have been comparing the persuasive power of online communication with face-to-face meetings.
In a study published in 2002, Guadagno and Cialdini had a group of students discuss the introduction of new exams (Group Dynamics: Theory, Research and Practice, vol 6, p 38). The group was split into same-sex couples. Unbeknown to the subjects, each pair included an accomplice of the experimenters whose role was to provide arguments in favour of the idea. Half the discussions took place in an online chatroom, the other half sat face-to-face.
While overall men rated the proposals similarly whether they participated in the electronic or face-to-face sessions, women in face-to-face sessions rated them more highly than those who only took part online. Guadagno and Cialdini suggest this is because groups of women tend to form communal bonds and reach agreement. Electronic communication disrupts the exchange of social cues women use to establish a communal bond and is therefore less conducive to persuasion.
On the other hand, groups of men typically try to establish their competence and independence, which can lead to competitive encounters. When two men who have not met before debate a point, online interaction is about as effective and persuasive as face-to-face.
But if they have met and had a competitive exchange, subsequent face-to-face meetings are less productive, whereas online exchanges fare far better. So while online communication can prevent women "connecting", it can help men suppress competitive urges that hamper persuasion.
So, if you're a woman and want to persuade other women you'd be better off meeting face-to-face, while men are less confrontational if contacted by email. The researchers are now studying these effects in mixed couples.
6. Style over substance
It was midnight when the knock came at the door. It was "Paul", a "neighbour", who'd "just moved in". He spoke non-stop, without pause or hesitation, detailing a problem with a truck that had run out of gas and his need for $20, which he would, of course, return first thing in the morning. Later, Kurt often looked back and wondered just how it was he got taken in so easily.
"Paul" was a master of his craft: Kurt later learned that four other people on the street had also been taken in by the con.
Maybe we shouldn't be so surprised when things like this happen. Persuasion, it turns out, may have as much to do with how you say something as what you're saying. And the less time you're allowed to think about the content, the more the style of delivery matters. At least, those are the findings of two marketing professors who decided to tease style and substance apart.
John Sparks at the University of Dayton in Ohio and Charles Areni at the University of Sydney, Australia, knew from earlier work on courtroom transcripts that people equated certain kinds of speech with lack of credibility. In particular, hesitant phrases such as "I mean", "you know" and "isn't it?" reduced a speaker's power. But no one had looked at the exact relationship between style and content.
The researchers asked 118 undergraduates to read a transcript of a testimonial about a scanner. In one version, the speaker used hesitations like "I mean" and "ummm"; in the other, he used none. They also gave half the students enough time to read it thoroughly, while the others got just 20 seconds, to see how limiting a person's understanding of the substance would alter the persuasiveness of the style.
The researchers found that in both versions style was important. When hesitant language was used, people were less easily convinced that this was a scanner worth buying - even when it was a better scanner at a lower price. Style was especially important, the researchers found, when time was limited (Journal of Applied Social Psychology, vol 38, p 37). "If you can't pay attention to what the speaker is saying," Sparks says, "you pay attention to how they say it."
So take a lesson from Paul, the conman. If you want to be persuasive, don't stumble, pause or use language that shows hesitation. And for goodness sake, don't give your listeners time to think about what you're really saying.
7. Get them angry
Angering people may seem like an odd way to go about persuading them, but according to Monique Mitchell Turner, a communications professor at the University of Maryland, College Park, it is seriously underrated as a tool of persuasion.
Much study has gone into how emotions aid persuasion. The best known and most studied is fear. It serves well in campaigns that try to steer you clear of certain activities, like smoking or unprotected sex.
But fear doesn't always work, says Turner, and over time, people become more resistant to scare tactics. The same applies to guilt. It can be effective (think of maternal guilt), but not once people clue into the fact they're being manipulated. Worse, it has to be carefully calibrated: too much and people resist. "We don't want people telling us we're bad people," says Turner.
Anger is different. For one thing, it's focused on someone else's misdeeds, not your own. Also, it's a very utilitarian emotion, she says, usually in response to a perceived injustice. "Anger makes people feel empowered," Turner says.
There has been a long debate, she says, about whether anger can be constructively harnessed. In studying groups that employ anger as a tactic - most notably animal rights groups such as People for the Ethical Treatment of Animals, as well as environment organisations and even political campaigns - she has found that, given the right conditions, it can.
First, people have to be convinced that the issue is relevant to them, that it affects them or their children or their community. At that point, says Turner, you need to hammer home what's wrong with the world as it is. Once you have got people roiled up, you can offer them a way to remedy the situation (Public Relations Review, vol 33, p 114).
"When those feelings of anger are accompanied by the feeling that there is a solution to this problem, then the message is more likely to be persuasive," she says.
8. Resistance isn't futile
Historically, psychologists studying persuasion have concentrated on what makes certain messages more appealing than others. But over the past few years researchers have begun revising that idea. A growing body of evidence suggests that breaking down people's resistance to persuasion can be even more important.
The reason for this is that people are naturally suspicious of attempts to persuade them. This is especially true if they think they are being duped.
In laboratory studies, merely reminding people that they are vulnerable to manipulation - for example, showing them magazine adverts with celebrities or models endorsing products they clearly know nothing about - makes them generally more difficult to persuade (Journal of Personality and Social Psychology, vol 83, p 526).
So far so obvious, but there's a useful point here. Resistance means that very persuasive arguments can backfire. People who successfully resist persuasion often become even more entrenched in their wrong-headed opinions, and the stronger, more credible or authoritative they perceive the attempt at persuasion to be, the more certain of their opinions they become when they resist it (Journal of Personality and Social Psychology, vol 83, p 1298).
At first blush, this seems paradoxical. You might think a strong, authoritative argument would hold greater sway. Not necessarily. It seems that if people resist good arguments presented by an expert, they conclude their own arguments must be even stronger.
This sets up a bit of a catch-22. "If you want to change people's attitudes, it's good to have strong arguments," says Zakary Tormala of Stanford University. "But if they manage to resist your message, they might become more certain of the very attitudes you want to change."
How to overcome this deadlock? Tormala's colleague Richard Petty of Ohio State University says: "Present positions closer to your target's views, then move them towards your goal a little at a time." You could also try charming them by boosting their self-esteem. "When people feel good about themselves, they are more open to challenging messages," he says.
RELATED ARTICLE: 5 Ways to Persuade Anyone to Do What You Want
Hypnotically Persuade Anyone to Willingly and Eagerly Do What You Want!
Grab the most influential ebook designed to easily seduce others to like you, fully improve your relationships, multiply your profits, win negotiations, and attain complete power.
Learn more here...


text:
In today's digital age, where communication is often swift and concise, your Whatsapp Bio With Emoji serves as a crucial introduction to who you are or what your business represents. It's the first impression users get when they visit your profile, and making it impactful is key to engaging your audience effectively. In this comprehensive guide, we delve into the art of crafting a compelling Whatsapp Bio With Emoji enriched with emojis, elevating your profile's appeal and making it stand out amidst the digital clutter.
The Power of Emojis in Communication
Emojis have become ubiquitous in digital communication, transcending language barriers to convey emotions, ideas, and context succinctly. Their visual nature enables quick comprehension, making them a powerful tool for expressing personality and tone in written text. Incorporating emojis into your Whatsapp Bio With Emoji adds vibrancy and personality, instantly capturing the attention of visitors and infusing your profile with warmth and relatability.
Crafting Your WhatsApp Bio: Best Practices
1. Reflect Your Personality
Whatsapp Bio With Emoji is an opportunity to showcase your unique personality or brand identity. Whether you're an individual or a business entity, infusing your bio with emojis that reflect your persona or values adds depth and authenticity. Consider incorporating emojis that resonate with your interests, profession, or the essence of your brand.
2. Keep It Concise
While emojis can enhance your Whatsapp Bio With Emoji, it's crucial to maintain brevity to ensure clarity and readability. Aim for a concise yet impactful bio that communicates essential information while leaving a lasting impression. Select emojis that complement your text and convey meaning succinctly, avoiding overcrowding or ambiguity.
3. Highlight Key Information
Your WhatsApp bio should provide relevant information that enables visitors to understand who you are or what your business offers. Incorporate emojis strategically to highlight key details such as your profession, interests, contact information, or a brief description of your services. Emojis serve as visual cues that draw attention to critical elements, enhancing the overall readability and appeal of your bio.
4. Use Emojis Sparingly
While emojis can enhance the visual appeal of your WhatsApp bio, moderation is key. Avoid overusing emojis, as it can dilute their impact and detract from the clarity of your message. Select emojis judiciously to complement your text and convey emotions or concepts effectively without overwhelming the reader.
- Best Bio For Twitter
- Twitter Bio For Programmer
- Lawyer Twitter Bio Ideas
- Twitter Bio For Cool
- Twitter Bio For Professional
Whatsapp Bio With Emoji as Brand Signifiers
For businesses, emojis can serve as powerful brand signifiers that reinforce brand identity and values. Selecting emojis that align with your brand's tone and messaging can strengthen brand recognition and resonate with your target audience. Whether it's a playful emoji to convey creativity or a symbol that embodies your brand's ethos, incorporating emojis strategically can elevate your brand's presence on WhatsApp and foster a deeper connection with users.
Optimizing Your WhatsApp Bio for Engagement
In addition to incorporating emojis, optimizing your Whatsapp Bio With Emoji for engagement involves strategic placement of keywords, clear calls to action, and regular updates to keep it relevant. Emojis can enhance the visual appeal of your bio, but pairing them with compelling copywriting and a clear value proposition can maximize engagement and drive desired actions from visitors.
Crafting a captivating Whatsapp Bio With Emoji is an art form that requires careful consideration of your audience, messaging, and brand identity. By leveraging the power of emojis to express personality, highlight key information, and engage your audience effectively, you can create a memorable bio that leaves a lasting impression on visitors. Embrace creativity, stay true to your brand, and let emojis add flair to your WhatsApp bio, making it a compelling gateway to who you are or what your business represents.

source: openbmb/Ultra-FineWeb


text:
JRC Active participation at the European Maritime Days' 2022 Thematic Session 3 on "Sustainable Blue Economy Implementation through Smart Specialisation"
19 May 2022 to 19 May 2022
Semi-presential at Pala de André - Viale Europa.
48122 Ravenna, Italy
The European Maritime Day 2022 was held as a hybrid semi-presential event in Ravenna (Italy) on 19-20 May 2022. Within the Thematic sessions on the "European Maritime Policies" a Thematic Session 3 was organised on "The Sustainable Blue Economy implementation through Smart Specialisation", where the JRC was featuring the intervention of the JRC Dir.B Director M. Landabaso Alvares.
The session focused on the implementation of the sustainable blue economy in the context of the EU Sea Basin and Macro-regional Strategies where Smart Specialisation Strategies (S3) are a useful tool to further support regional cooperation in transitioning towards a sustainable blue economy, by creating the necessary innovation ecosystems. The discussion highlighted how blue interregional partnerships can facilitate the design, demonstration, scaling up and market introduction of new mature innovative services and products that promote green business models and practices.
The main purpose of the intervention was to present results of the blue economy related work done by the JRC in the frame of the Smart Specialisation in support of the blue economy's emerging sectors and present future opportunities for the blue economy innovation cooperation in Europe.
Key messages of the JRC presentation are as follows:
There is a high potential for blue growth innovation activities across the regions in Europe
Blue economy represents an important niche of innovation possibilities for many regions across the EU. One out of five EU regions are specialising in at least one domain related to the blue economy, including e.g. Coastal and Maritime Tourism, Marine Renewable Energy, Marine Biotechnology and Aquaculture, Green shipping and water transport, etc.
Supporting innovation in these areas is of particular importance with the aim to facilitate the design, demonstration, scaling up and market introduction of new, innovative services and products that promote green-blue business models and practices.
Smart Specialisation activities support policy-makers, regional and national authorities and other stakeholders involved in research and innovation to bridge blue growth investment platforms and regional innovation initiatives.
JRC has been supporting Blue Economy through Smart Specialisation Strategies (S3)
Together with DG Mare, JRC has been exploring in topical reports the potential of S3 in emerging sectors such as in the Blue Biotechnology including Aquaculture, Desalination, and in Marine Environmental Protection and Micro-Plastics. JRC has also contributed in these areas to the Annual EU Blue Economy Reports for the years 2019, 2020, 2021, as well as to the upcoming 2022 report.
For new partnerships being created around Blue Economy, JRC prepared a self-assessment Toolbox for developing interregional S3 Partnerships, including guidance for the effective development of both the partnership itself and its innovative ideas, in order to pave the way for long-term solutions to improve the effectiveness of the innovation collaboration
JRC has also been facilitating the implementation of sustainable blue economy strategies in the context of the EU Sea Basin and the EU Macro-regional Strategies through the Smart Specialisation Strategies' (S3) in the regions and EU Member States involved.
JRC will continue to support sustainable Blue Economy as part of the recently launched Partnerships for Regional Innovation
The Partnerships for Regional Innovation are a new initiative turning words into actions in the Commission's endeavour to put innovation at the core of EU policy making, delivering the European Green Deal. They help territories identify local challenges and set place-based directionalities for sustainability and societal wellbeing, and can be a catalyser for connecting local strengths and efforts to new sustainable EU-wide value chains. The Partnerships are launched by JRC and the Committee of the Regions, and supported by both line Commissioners, Gabriel and Ferreira.
The Partnerships introduce local missions to coordinate actions, policies and funding instruments under a single steer, and promote region-wide stakeholder engagement, introducing co-creation and working across governmental departments.
Inside the Commission the services team-up to mainstream innovation in our policies and ensure we coordinate and promote synergies between strategies (Sustainable Blue Economy Communication, the EU Industrial Strategy, the Innovation Communication, etc.) and funding and financing opportunities (Horizon Ocean Mission, Structural Funds, Financial support Invest EU / BlueInvest,…).
In reply to the Call for Pilots, the applications from 3 Member States, 29 single regions (NUTS2 or NUTS3) and from 6 networks of regions representing together around 50 additional regions have been received as shown on the PRI participation map.
In support of implementing the Partnerships a PRI Playbook was launched on 17 May to guide the implementation of the PRI Pilots.
The regions, Member States and territories across the EU are invited to work together with the Commission and CoR in building synergies across the Blue Economy Policies and Instruments, building on this new integrated territorial approach.
This workshop as well as the overall EMD event embodied a very good opportunity for the blue economy stakeholders across Europe to raise the awareness of the S3 related activities in the blue growth sectors - especially the emerging ones, which are the most vividly related to the research and innovation activities, and to re-connect the blue economy innovation community across Europe and beyond.


Skip to end of metadata
Go to start of metadata
Compare with Current View Page History
« Previous Version 5 Next »
The sample is described in the following topics.
Download and set up WSO2 App Factory using the instructions given in section Installation.
Building the Sample
Executing the Sample
1. Create a API that gives Washington whether details in sandbox and London whether details in the production environment. Lets call this Weather API. Internally it calls the API of
2. Create an application in AppFactory. Lets call it Customer Portal - cportal application. When you create an application in App Factory it will be automatically created in API-M.
3. Subscribe the application to the Weather API as follows.
4. Generate keys by clicking on the create dependencies.
5. Write your application to get keys by calling the CarbonContext and Registry APIs. The correct sandbox and production keys will be used depending on where the application is deployed. Here is the code to do that.
CarbonContext cCtx = CarbonContext.getCurrentContext();
Registry registry = (Registry) cCtx.getRegistry(RegistryType.SYSTEM_GOVERNANCE);
Resource resource = registry.get("Key");
if(resource.getContent() instanceof String){
 key = (String) resource.getContent();
 key = new String((byte[]) resource.getContent());
 6. Deploy the application to "Development" environment and view results
7. Promote the application to "Production" environment and view results.
 - No labels


text:
Comprehensive DescriptionRead full entry
BiologyA pelagic (Ref. 26340) schooling species usually found in offshore reefs (Ref. 9710). Juveniles are encountered along shores of sandy beaches, also over muddy bottoms (Ref. 9626). May penetrate into brackish water and ascend rivers. Feed on fishes, shrimps, and other invertebrates (Ref. 3277). Often approach divers (Ref. 9710). Eggs are pelagic (Ref. 4233).

source: HuggingFaceFW/fineweb-edu


Cigarette Gift Giving Practices in China: A Descriptive Analysis
The practice of gifting cigarettes is deeply rooted in Chinese culture and found throughout China regardless of economic or smoking status.1 The gifting of cigarettes, particularly premium brands, is considered both a sign of respect and a status symbol and is particularly common during holidays and other special occasions. The tobacco industry exploits these gift giving holidays, e.g., Spring and Fall Festival, by promoting their brands using festival values, such as, warmth, friendship, and celebration.2 These practices have contributed to the normalization of smoking in China and have be
Resource Language:


.
-
- \o \c MainWindow inherits from QMainWindow and contains a \c VibrationSurface
- as its central widget, and also has a menu from which it is possible to
- make the phone vibrate.
- \endlist
-
- \section1 XQVibra Class Definition
-
- The \c XQVibra class uses the pimpl-idiom to hide the platform specific
- implementation behind a common interface. Technically it would be possible
- to support more target platforms, with only the addition of a private
- implementation. The rest of the code would work the same, since only the
- common interface is used.
-
- \snippet examples/widgets/symbianvibration/xqvibra.h 0
-
- \c XQVibra provides a very simple interface for us to use. The interesting
- part are the three slots \c start(), \c stop() and \c setIntensity(). Calling the start
- method initiates vibration for the specified duration. Calling it while the
- device is already vibrating causes it to stop the current one and start the
- new one, even if the intensities are the same. The \c setIntensity() method
- should be called before starting vibration.
-
-
- \section1 VibrationSurface Class Definition
-
- \c VibrationSurface inherits from QWidget and acts like a controller for a
- \c XQVibra object. It responds to mouse events and performs custom painting.
-
- \snippet examples/widgets/symbianvibration/vibrationsurface.h 0
-
- The virtual event methods are reimplemented from QWidget. As can be seen,
- there is no public programmable interface beyond what QWidget provides.
-
-
- \section1 VibrationSurface Class Implementation
-
- Mouse events control the intensity of the vibration.
-
- \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 0
- \codeline
- \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 1
- \codeline
- \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 2
-
- Presses starts the vibration, movement changes the intensity and releases
- stops the vibration. To set the right amount of vibration, the private
- method \c applyIntensity() is used. It sets the vibration intensity according to
- which rectangle the mouse currently resides in.
-
- \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 3
-
- We make sure only to change the intensity if it is different than last
- time, so that the vibrator isn't stopped and restarted unnecessarily.
-
- The range of vibration intensity ranges from 0 to XQVibra::MaxIntensity. We
- divide this range into a set of levels. The number of levels and the intensity
- increase for each level are stored in two constants.
-
- \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 4
-
- Each rectangle has an intensity of one \c IntensityPerLevel more than the
- previous one.
-
- \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 5
-
- The rectangles are either put in a row, if the widget's width is greater
- than its height (landscape), otherwise they are put in a column (portrait).
- Each rectangle's size is thus dependent on the length of the width or the
- height of the widget, whichever is longer. The length is then divided by
- the number of levels, which gets us either the height or the width of each
- rectangle. The dx and dy specify the distance from one rectangle to the
- next, which is the same as either the width or height of the rectangle.
-
- \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 6
-
- For each level of intensity, we draw a rectangle with increasing
- brightness. On top of the rectangle a text label is drawn, specifying the
- intesity of this level. We use the rectangle rect as a template for
- drawing, and move it down or right at each iteration.
-
- The intensity is calculated by dividing the greater of the width and height
- into \c NumberOfLevels slices.
-
- \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 7
-
- In case the widget's geometry is too small to fit all the levels, the user
- interface will not work. For simplicity, we just return 0.
-
- When we know the axis along which the rectangles lie, we can find the one
- in which the mouse cursor lie.
-
- \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 8
-
- The final clamp of the intensity value at the end is necessary in case the
- mouse coordinate lies outside the widget's geometry.
-
-
- \section1 MainWindow Class Definition
-
- Here's the definition of the \c MainWindow class:
-
- \snippet examples/widgets/symbianvibration/mainwindow.h 0
-
- \c MainWindow is a top level window that uses a \c XQVibra and a
- \c VibrationSurface. It also adds a menu option to the menu bar which can
- start a short vibration.
-
- \section1 MainWindow Class Implementation
-
- In the \c MainWindow constructor the \c XQVibra and the \c VibrationSurface
- are created. An action is added to the menu and is connected to the vibrate
- slot.
-
- \snippet examples/widgets/symbianvibration/mainwindow.cpp 0
-
- The \c vibrate() slot offers a way to invoke the vibration in case no
- mouse is present on the device.
-
- \snippet examples/widgets/symbianvibration/mainwindow.cpp 1
-
- \section1 Symbian Vibration Library
-
- The \c XQVibra class requires a platform library to be included. It is
- included in the \c .pro file for the symbian target.
-
- \quotefromfile examples/widgets/symbianvibration/symbianvibration.pro
- \skipto /^symbian \{/
- \printuntil /^\}/
-*/
diff --git a/doc/src/images/symbianvibration-example.png b/doc/src/images/symbianvibration-example.png
deleted file mode 100644
index 21461b6a19.._PHONE_
--- a/doc/src/images/symbianvibration-example.png
+++ /dev/null
Binary files differ


text:
Environmental Justice in Maryland
The mission of the Maryland Department of Environment (MDE), in part, encourages fostering economic development, healthy and safe communities, and quality environmental education for the benefit of the environment, public health, and economy. Embraced in this mission is an encouragement to foster these opportunities in all communities. Environmental Justice (E.J.) at MDE parallels the agency's mission and emphasizes quality of life, economic development, and environmental protection improvements in all communities, particularly those that are disenfranchised and far removed in decision-making. The E.J. policies at MDE are working to improve the quality of life in communities through a vision of partnerships and collaborations.
A primary goal of the policy is to develop an environmental justice tool kit that offers strategies that can integrate the goals of all concerned parties to resolve concerns and assist in revitalization efforts through approaches that are aimed at protecting and restoring our environment, as well as stimulating economic growth and safe, healthy communities. Other key components of the E.J. efforts at MDE include initiating collaborations among government, public and private stakeholders; developing new platforms for public participation, community and business participation; and, creating new and innovative ideas to assist in land and community revitalization.
Useful Link: Permit Application Database Search
|Acrobat® Reader is required to view and print the PDF files. If you do not have it click on the icon to the right.


The Honourable Sir William P. Howland
2nd Lieutenant Governor of Ontario
July 14, 1868 to November 12, 1873
Born in 1811 in Pawling, New York, William Howland was educated at Kinderhook Academy. In 1830, he settled in Cooksville, Upper Canada, and became a naturalized British subject in 1841. He operated Lambton Mills and later a grocery business in Toronto. In 1857, Mr. Howland became a member of the Legislative Assembly of the Province of Canada, and later served in the cabinet as Minister of Finance, Receiver General, and Postmaster General. After Confederation, he became an MP in 1867, and was Minister of Inland Revenue from 1867 to 1868. Mr. Howland was appointed Ontario's second Lieutenant Governor in 1868 and served until 1873. He was knighted in 1879, and died in Toronto in 1907.


text:
From the Amazon #1 Bestselling Author
Three short stories set in Ireland. The first story, Perhaps A Few, happens just before Ireland's devastating potato famine of 1845-49. Troika is a story from the dark 1930s, while Blitzkrieg Ireland 2016 considers what might happen during the centenary of the 1916 Easter Rising, the event that led to Ireland's independence. These stories are entirely speculative, creative fiction. It is a given that Ireland has had a pretty sorry history; Ireland Trilogy brings some of the formative forces into sharp focus.
About Gary J Byrnes
See more books from this Author
Published October 27, 2012
History, Literature & Fiction.


self replicating machines
Hi crm!
Although I'm not sure how much sense it makes and how useful it might be, I find space colonization cool. I think, rather than building space
ships and sending humans to space to build space colonies it might be better to send self replicating machines and build colonies and space ships and then send humans there and use them.
So the question is, how far are we from building self replicating machines? [0]
There's a lot of automation already, autonomous car driving, lights out manufacturing [1] and even one of the most complex tasks, production of integrated circuits is striving for lights out.
The Mars rover Curiosity can be told to move to a certain place and then does so autonomously.
OTOH a recent development was a robot that is able to find a socket and plug itself in to charge it's batteries... with a 93% success rate. It appears a bit clumsy, as it doesn't use vision to find sockets, as they come in different shapes and colors (and the lights may be out), so it senses the electric field. [2] This makes me wonder how much we still have to work on real world visual processing and understanding.
The replicators don't have to be completely autonomous. They can still communicate with human and report difficulties and be updated, given help or new tasks (build habitats, space ships, satellites, mine asteroids and transport stuff, recycle space junk, etc).
How long could it be until we can assemble what we already have and create the missing links to get such machines? 10 years?
Add pictures here
<% } %>
Add image file


text:
What is a self-closing script element?
A self-closing script element is a piece of code that is written to execute a script without requiring any additional coding. It is written in the same syntax as a regular script element, but the opening and closing brackets are omitted. This means that the code can be written in a single line, which is why it is often referred to as a "one-liner".
For example, the following code is a self-closing script element that prints the phrase "Hello World" to the console:
As you can see, this code does not require any additional coding to make it work. All you need to do is copy and paste the code into your script and it will run as expected.
Key points to remember


text:
Prof Paul Ekins appointed Co-Chair of UN's Global Environment Outlook report (GEO-6)
12 October 2016
Prof Paul Ekins OBE, Director of UCL ISR, has today been appointed as Co-Chair of UNEP's 'Global Environment Outlook' report (GEO-6), the world's most comprehensive assessment of the state of the global environment.
The assessment, produced by UN Environment in response to a request by Member States, provides policy makers with trends and projections for air, climate, water, land and biodiversity and an outlook for the future. It demonstrates the interactions between social, economic and environmental drivers, assessing how different policy options may move us to a more sustainable world in the near to longer term.
Prof Ekins will provide leadership and guidance in the areas of green economy and green growth, sustainable resource use, energy and environmental policy. His Co-Chair, Prof Gupta, Professor of Environment and Development at the University of Amsterdam, will lead in the areas of environmental sustainability, inclusive development and governance.
UN Environment Chief Scientist, Jacqueline McGlade, said, "I am pleased to announce that two of the world's most eminent scientists, Prof Gupta and Prof Ekins, have agreed to lead the production of the world's most comprehensive environmental assessment.
In accepting the co-chair role, Prof Ekins said: "It is a huge privilege and responsibility to be invited to co-chair the production of GEO-6. In this report I will seek to highlight the opportunities for economic growth and increased human welfare that will arise from addressing today's local and global environmental challenges."
"I hope that this report will assemble and compellingly present the evidence that people at all stages of development stand to gain enormously from the implementation of economically efficient environmental policies, and that these policies will be essential in enabling the global community to meet the Sustainable Development Goals (SDGs), which it endorsed in 2015," he added.
A new GEO 6 website is now online. It provides information on the GEO 6 process and activities. It also provides access to regional assessments and other resources.


text:
Managed by | Updated.
Workflow scripts can fail and errors must be handled appropriately. A common approach is to have a failing workflow script exit with a non-zero exit code so that Funnelback can detect the problem and fail the update (sending a notification email if it has been configured).
To achieve this in shell scripts, make sure you set the -e flag in the hashbang line: #!/bin/sh -e or #!/bin/bash -e. This will cause the shell to immediately exit with an error code if one the script commands fail.
To achieve this in Groovy script, throw an exception with a message of why the script cannot continue:
throw new Exception("Unable to connect to remote system");
Never use System.exit() as it will cause the JVM to shutdown. Depending on the context it may have bad consequences, such as shutting down the Jetty webserver if the script is being run by Jetty.


EN
Ce contenu n'est pas disponible dans votre langue. Voici la version anglaise.
How to: Perform Input Validation in WCF
patterns & practices Developer Center
Applies To
 - Microsoft Windows Communication Foundation (WCF) 3.5
 - Microsoft .NET Framework 3.5
 - Microsoft Visual Studio 2008
Summary
This how-to article shows you how to perform input and data validation on parameters in WCF operations. The article shows you how to create a custom parameter inspector that can be used to validate input on both the server and the client.
Contents
Objectives
 - Learn how to create a custom parameter inspector to validate parameters in the operations of the service.
 - Learn how to create a custom endpoint behavior that will consume the parameter inspector.
 - Learn how to create a custom configuration element that will allow exposing of the custom endpoint behavior in the configuration file.
Overview
Input and data validation represents one important line of defense in the protection of your WCF application. You should validate all parameters exposed in WCF service operations to protect the service from attack by a malicious client. Conversely, you should also validate all return values received by the client to protect the client from attack by a malicious service.
WCF provides different extensibility points that allow you to customize the WCF runtime behavior by creating custom extensions. Message Inspectors and Parameter Inspectors are two extensibility mechanisms used to gain greater control over the data passing between a client and a service. You should use parameter inspectors for input validation and use message inspectors only when you need to inspect the entire message flowing in and out of a service.
To perform input validation, you will build a .NET class and implement a custom parameter inspector in order to validate parameters on operations in your service. You will then implement a custom endpoint behavior to enable validation on both the client and the service. Finally, you will implement a custom configuration element on the class that allows you to expose the extended custom endpoint behavior in the configuration file of the service or the client.
For the purpose of this how-to article, you will create a WCF Service with wsHttpBinding and host it in IIS.
Summary of Steps
 - Step 1: Create a Sample WCF Service
 - Step 2: Create a Windows Class Library for Parameter Validation
 - Step 3: Create a Class That Implements the Validation Logic
 - Step 4: Create a Class That Implements a Custom Endpoint Behavior
 - Step 5: Create a Class That Implements a Custom Configuration Element
 - Step 6: Add the Custom Behavior to the Configuration File
 - Step 7: Create an Endpoint Behavior and Map It to Use the Custom Behavior
 - Step 8: Configure the Service Endpoint to Use the Endpoint Behavior
 - Step 9: Test the Parameter Validator
Step 1: Create a Sample WCF Service
In this step, you create a WCF service in Visual Studio, hosted in an Internet Information Services (IIS) virtual directory.
 1. In Visual Studio, on the File menu, click New Web Site.
 2. In the New Web Site dialog box, in the Templates section, select WCF Service. Make sure that the Location is set to Http.
 3. In the New Web Site dialog box, set the new Web site address to http://localhost/WCFTestParameterValidation and then click OK.
 4. By default, your WCF service will be configured to use wsHttpBinding binding with message security and Windows Authentication. Verify that your web.config configuration file looks as follows:

 …
 <services>
 <service name="Service" behaviorConfiguration="ServiceBehavior">
 <!-- Service Endpoints -->
 <endpoint address="" binding="wsHttpBinding" contract="IService">
 <identity>
 <dns value="localhost"/>
 </identity>
 </endpoint>
 <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
 </service>
 </services>
 …

Step 2: Create a Windows Class Library for Parameter Validation
In this step, you create a Microsoft Windows class library project that will include three classes for the custom parameter validation:
 - One class to implement the parameter validation logic
 - A second class to implement the endpoint behavior that will use the custom parameter class
 - A third class to implement a behavior extension so that the validator will be visible in the service and client configuration files
Perform the following steps:
 1. Open a new instance of Visual Studio, leaving your WCF service solution open.
 2. In the new instance of Visual Studio, on the File menu, click New and then click Project.
 3. Expand Visual C#, click Windows, and then select Class Library.
 4. In the Name field, type MyParameterValidator and then click OK.
 5. In the Solution Explorer, right click References, click Add Reference, click the .NET tab, select System.ServiceModel, and then click OK.
 6. In the Solution Explorer, right-click References, click Add Reference, click the .NET tab, select System.Configuration, and then click OK.
 7. Open the Class1.cs file and rename the class name from Class1 to Validation.
 8. Add the following using statements to the top of the Class1.cs file.

 using System.Configuration;
 using System.ServiceModel;
 using System.ServiceModel.Configuration;
 using System.ServiceModel.Description;
 using System.ServiceModel.Dispatcher;

Step 3: Create a Class That Implements the Validation Logic
In this step, you create a new class, derived from IParameterInspector, to implement the validation logic.
The newly created class has the following characteristics:
 - It implements AfterCall() and BeforeCall() methods.
 - When used as part of the service, BeforeCall() will be invoked before the parameters are dispatched to the service operation. AfterCall() will be invoked after the service has processed the call and is returning a response to the client. Use BeforeCall() to validate your input parameters and AfterCall() to validate your output parameters.
 - When used as part of the client, BeforeCall() will be invoked before calling the service, and AfterCall() before the service's response is dispatched to the client code. Use AfterCall() to validate the response from the service, and BeforeCall() to validate the return from the service.
This example uses simple validation logic to check if the parameter passed to the operation is within the values 1 and 5. If the validation fails, an exception is thrown with the Validation Input Error message.
Perform the following steps:
 1. Open the Class1.cs file and rename the class name from Class1 to Validation. Click Yes in the dialog box that appears.
 2. Add the following using statements to the top of the Validation.cs file:

 using System.ServiceModel;
 using System.ServiceModel.Dispatcher;

 3. Add the following code to implement the AfterCall method in the ValidationParameterInspector class:

 public class ValidationParameterInspector : IParameterInspector
 {
 public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
 {

 if (operationName == "GetData")
 {
 for (int index = 0; index < outputs.Length; index++)
 {
 if (index == 0)
 {

 // execute the method level validators
 if (((int)outputs[index] < 0) || ((int)outputs[index] > 5))
 throw new FaultException("Your Error Message");
 }

 }

 }
 }
 }

 4. Add the following code to implement the BeforeCall method in the ValidationParameterInspector class:

 public class ValidationParameterInspector : IParameterInspector
 {
 public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
 {
 …

 }

 public object BeforeCall(string operationName, object[] inputs)
 {

 if (operationName == "GetData")
 {

 for (int index = 0; index < inputs.Length ; index++)
 {
 if(index==0)
 {
 // execute the method level validators
 if (((int)inputs[index]<0) || ((int)inputs[index] > 5))
 throw new FaultException("Validation Input Error");
 }

 }

 }

 return null;
 }
 }

Step 4: Create a Class That Implements a Custom Endpoint Behavior
In this step, you create a new class, derived from IEndpointBehavior, that implements a custom endpoint behavior.
The newly created class has the following characteristics:
 - It implements ApplyClientBehavior() to add the ValidationParamaterInspector to the client operation and enable client-side validation.
 - It implements ApplyDispatchBehavior() to add the ValidationParameterInspector to the dispatch operation and enable service-side validation.
 - It verifies that it is enabled in the configuration before adding the ValidationParameterInspector to the client or dispatch run time.
Perform the following step:
 - Copy the following code snippet and paste it into the Class1.cs file, inside the Validation class that already exists:

 class ValidationBehavior : IEnd


text:
Also found in: Dictionary.
1. Discoid or coin-shaped; denoting the thick mucous or mucopurulent sputum in certain respiratory diseases, so called because of the disc shape assumed when it is flattened on the bottom of a sputum mug containing water or transparent disinfectantor shape of lesions in nummular eczera.
2. Arranged like stacks of coins, denoting the lining up of the red blood cells into rouleaux formation.
[ L. nummulus, small coin, dim. of nummus, coin]
nummiform(nŭm′mĭ-form) [L. nummus, a coin, + forma, shape]
1. Coin-shaped, said of some mucous sputum.
2. Arranged like a stack of coins.


text:
Project in progress
What is your wish for this project?
Site is a Charter School 1 mile from the Pacific Ocean. 1. Monitor rainfall at school site, (10" diameter rain collection funnel will drain into 1" diameter graduated measuring tube. This will assess rainfall per meteorological guidelines) 2. Establish rain barrel catchment system for garden use during drier months. 3. Create rain garden for excess runoff and for areas not connected to catchment system.
How are you going to do it?
Students, and faculty, will become more aware of what an inch of rain is. Collected water will be used to grow, and ultimately harvest, vegetables and ornamental flowers. Rain garden will return rain water to ground instead of asphalt, cement and gutters draining rainfall directly to the ocean.


text:
La Notre Dame
Educational opportunities go beyond the traditional classroom. Each semester all students participate in conversation tables conducted by native speakers. Our language clubs sponsor cultural events and provide service projects such as tutoring to local elementary and secondary school students. Some students gain work experience by serving as tutors, department assistants, or language laboratory monitors. Our junior-senior colloquium enables our French, German, and Spanish majors to meet together to discuss literary and cultural issues introduced by guest speakers.
Every spring a growing number of students are inducted into Phi Sigma Iota, an international honor society recognizing outstanding language students. Eligibility for the Delta Chi Chapter is based on five criteria: two courses completed at the 300 level or higher; a 3.5 GPA (approximately) in the studied language, departmental recommendation, committed enthusiasm for the study of language and culture as evidenced inside and outside the classroom and through the pursuit of international study, when possible, and class rank in the top 30%. Factors that will be taken into account for a positive departmental recommendation include no evidence of academic dishonesty, enthusiastic participation in events sponsored by the department, and perhaps a leadership role, such as effective FLTA mentor, conscientious student assistant, reliable lab monitor, tutor, and/or club officer. Seniors who are in their 2nd 300 or 400 level class are eligible to be considered for membership, with departmental recommendation.
Incoming freshmen who intend to major in languages are encouraged to compete for departmental scholarships. Information about our departmental scholarship can be found on our financial aid website.
Teaching assistants, who are native speakers of languages taught at Lycoming, help students with pronunciation and language proficiency. They also arrange readings and activities that engage students outside of a classroom setting with listening and learning about cultural practices of various countries. Below are photos from readings and events about Halloween and Christmas.
More photos about awards and modern language activities can be found in the photo gallery below.


: Determination of the background absorption and the threshold energy", "ispublished": "pub", "full_text_status": "public", "note": "\u00a9 1983 The American Physical Society. Received 16 February 1983. The support of the National Science Foundation (Grant No. CHE-81-12589) and the National Institute of Health (Grant No. GM21111-09A) is gratefully acknowledged.\n\n
Published - BOLprb83.pdf
", "abstract": "Two approaches for the determination of the background absorption (\u03bc_0) in the extended x-ray-absorption fine structure (EXAFS) are presented. Both methods, experimental and computational, take advantage of the damping of the EXAFS amplitude resulting from the convolution with Gaussian functions of different widths. In the experimental method two or more spectra are collected with the use of different spectrometer slit widths, resulting in spectra of different resolutions for the same sample. In the computational approach the convolution is accomplished via a convolution algorithm. The intersection points of the resulting spectra are used to generate \u03bc_0. At the absorption edge, the spectra intersect at a unique point, which is shown to be a measure of the threshold energy, E_0. Illustration of the two methods for background removal is given for a copper-foil sample. The computational approach is superior to the experimental method of damping the EXAFS spectra to give \u03bc_0.", "date": "1983-09-15", "date_type": "published", "publication": "Physical Review B", "volume": "28", "number": "6", "publisher": "American Physical Society", "pagerange": "2921-2926", "id_number": "CaltechAUTHORS:20120706-142629255", "issn": "_PHONE_", "official_url": "_URL_ "rights": "No commercial reproduction, distribution, display or performance rights in this work are provided.", "funders": { "items": [ { "agency": "NSF", "grant_number": "CHE-81-12589" }, { "agency": "NIH", "grant_number": "GM21111-09A" } ] }, "doi": "10.1103/PhysRevB.28.2921", "primary_object": { "basename": "BOLprb83.pdf", "url": "/records/0k0d3-p6p50/files/BOLprb83.pdf" }, "resource_type": "article", "pub_year": "1983", "author_list": "Boland, John J.; Halaka, Folim G.; et el." }, { "id": "_URL_ "eprint_id": 1293, "eprint_status": "archive", "datestamp": "2023-08-22 03:26:00", "lastmod": "2023-10-13 22:43:52", "type": "article", "metadata_visibility": "show", "creators": { "items": [ { "id": "Kruse-C-A", "name": { "family": "Kruse", "given": "Carol A." } }, { "id": "Tin-G-W", "name": { "family": "Tin", "given": "George W." } }, { "id": "Baldeschwieler-J-D", "name": { "family": "Baldeschwieler", "given": "John D." } } ] }, "title": "Stability of erythrocyte ghosts: A \u03b3-ray perturbed angular correlation study", "ispublished": "pub", "full_text_status": "public", "keywords": "drug delivery, enzyme replacement, \u03b3-ray probe", "note": "Copyright \u00a9 1983 by the National Academy of Sciences. \n\nContributed by John D. Baldeschwieler, November 29, 1982. \n\nThis research was supported by grants from the National Institutes of Health (GM-21111-09), the National Science Foundation (CHE-81-12589), and the Monsanto Company. A generous gift from Mr. and Mrs. Lester Finkelstein, Associates of the California Institute of Technology, provided fellowship support for C.A. K. and is gratefully acknowledged. This is contribution no. 6731 from the Arthur Amos Noyes Laboratory of Chemical Physics. \n\nThe publication costs of this article were defrayed in part by page charge payment. This article must therefore be hereby marked \"advertisement\" in accordance with 18 U. S. C. \u00a71734 solely to indicate this fact.", "abstract": "The structural integrity of erythrocyte ghosts made by the preswell and slow-dialysis techniques has been studied in vitro by use of \u03b3-ray perturbed angular correlation (PAC) techniques and also by standard in vitro leakage methods employing sequestered labeled markers. Complexes of (111)In(3+) and nitrilotriacetate were encapsulated in ghosts made from human, rabbit, rat, and mouse erythrocytes, and their leakage was monitored by both methods. In addition, (125)I-labeled bovine serum albumin was encapsulated, and ghost integrity was monitored by conventional leakage measurements. With the PAC technique the percentage of material released from human ghosts was determined quantitatively, and the results were equivalent to those obtained by the conventional method. In addition, at various times after intravenous injection, tissue distribution of the ghosts in the mouse was studied. The percent injected dose per gram of tissue of the labeled surface proteins of erythrocyte ghosts in circulation approximated that of the entrapped labeled albumin. This suggests that the ghost membrane and contents are strongly associated in vivo. Large (125)I-labeled bovine serum albumin molecules and small (111)In(3+)-nitrilotriacetate complexes were delivered in high quantities to the lung initially, and to the liver and spleen. Because erythrocyte ghosts have the ability to entrap a wide range of substances and deliver them to specific organs, ghosts may be preferable to other drug carriers or drug therapy for treatment of certain disorders.", "date": "1983-03-01", "date_type": "published", "publication": "Proceedings of the National Academy of Sciences of the United States of America", "volume": "80", "number": "5", "publisher": "National Academy of Sciences", "pagerange": "_PHONE_", "id_number": "CaltechAUTHORS:KRUpnas83", "issn": "0027-8424", "official_url": "_URL_ "rights": "No commercial reproduction, distribution, display or performance rights in this work are provided.", "primary_object": { "basename": "KRUpnas83.pdf", "url": "/records/4wfad-wf630/files/KRUpnas83.pdf" }, "resource_type": "article", "pub_year": "1983", "author_list": "Kruse, Carol A.; Tin, George W.; et el." }, { "id": "_URL_ "eprint_id": 1424, "eprint_status": "archive", "datestamp": "2023-08-22 03:11:50", "lastmod": "2023-10-13 22:48:45", "type": "article", "metadata_visibility": "show", "creators": { "items": [ { "id": "Wu-P-S", "name": { "family": "Wu", "given": "Po-Shun" } }, { "id": "Wu-H-M", "name": { "family": "Wu", "given": "Hsiu-Mei" } }, { "id": "Tin-G-W", "name": { "family": "Tin", "given": "George W." } }, { "id": "Schuh-J-


text:
Date: Summer 2012
Why do engineers often use superheated steam to transfer heat?
There are several reasons:
1. It has high heat content (and heat content is tunable with pressure)
2. It is made of water, which is cheap and readily available (and other than being hot, is pretty safe stuff)
3. It is easy (and cheap) to pump (gas) compared with other heat transfer fluids
4. It readily transfers heat owing to it being a vapor (conduction and convection)
Hope this helps,
Engineers use superheated steam to transfer heat because it is the most efficient means to do so.
Some nuclear reactor designs use liquid sodium to transfer heat, but that is a much more hazardous (corrosive) and expensive process.
We can go down the list of other heat transfer mediums, but steam always comes out to be the most efficient.
Click here to return to the Engineering Archives
Update: November 2011


coming through at the center of the base than at the ski edges ("edge high"). This will be very obvious.
If the ski is convex so that the base in the center of the ski is higher than the edges ("base high"), the light band will be more narrow at the center of the base, wider over the edges. The Ruby Stone Blade is used to correct the convexity.
Keep in mind that you can also observe your base flatness just by the structure pattern. If it is consistent the entire base, it is flat. Inconsistencies disclose high or low spots and are generally easy to see.
Advanced Techniques:
It is common for ski bases to have waves on them, and stone grinding will not remove them because the stone rides up and down with the waves. The waves have to be cut off from an angle. Also, they cannot be seen. If you use the Base Flattener at an angle as shown in the picture, you will find there is more drag in certain spots than others. Those spots with extra drag are base waves. As you continue to make additional passes on the base you will find the drag at that point becomes progressively less and that finally it disappears, the wave is removed.
Skip marks can ONLY be put in the base with the steel blades, NEVER the Ruby Stone Blades. Skip marks are caused by
 - pushing the tool down the base with too much speed
 - pushing on the tool with excessive pressure
 - using a blade that is too dull, it needs sharpening
 - The base is too smooth and slick, roughen it with the Ruby Stone
 - Trying to do too much work too quickly
 - you have a rock hardened/damaged edge section next to the mark
You won't put in skip marks if you keep the blade nice and sharp and use the tool with a lighter touch, letting the tool do the job rather than over-muscling it. If you have a rock hardened/damaged section it needs to be polished out with the Ski Sharp Stones before flattening with the steel blade.
If you do put in skip marks, they won't damage the performance of your skis. They just don't look very good. To remove, angle the Base Flattener and use the Ruby Stones, the angle used coming from the opposite angle as the skip marks in the base, they have to be cut off from a cross-angle.
Due to the curvature of the ski at tip and sometimes at tail (flip tail skis) using the Ruby Stone Blade by hand can sometime work better than in the Base Flattener. Just keep the blade up on edge and follow the contour of the base to get a uniform structure across the width.
If your ski is very concave it is best to use the File Base Flattener, the steel blade is best kept for fine detail work rather than using it for heavy work.
It is VERY IMPORTANT to polish off the burr that is left whenever you work on metal ski edges, a burr makes the skis over-sharp and dangerous. We recommend the SkiVisions Ski Sharp for such purpose, or you can polish the edges by hand with a stone.
The steel blade falls from the tool when the retaining screws are loosened. It is sharp and heavy and should be done over your bench carefully.
Maintain a firm grip on the tool when running it off the tail of the ski so you don't drop it.
Keep your fingers on the tool and out of the way of the sharp metal ski edges. Your ski must be held in a ski vise when using the Base Flattener.
(Note: reprinted from SkiVisions with permission.)
The following videos relate to using the Base Flattener and maintaining the cutting inserts:
SkiVisions Flattening bases with the Base Flattener Part 1
SkiVisions Flattening bases with the Base Flattener Part 2
SkiVisions Maintaining Cutting Inserts, Base Flattener Stones, HS Steel Bar & Files
Tips & Info Sections:
Ski & Snowboard Tuning Overview


Click here to Skip to main content
13,801,506 members
Click here to Skip to main content
Add your own
alternative version
Stats
380.8K views
2K downloads
136 bookmarked
Posted 1 Mar 2005
Licenced
How to Test Private and Protected methods in .NET
, 1 Mar 2005
Rate this:
Please Sign up or sign in to vote.
This article explains some theory behind testing/not testing private methods, and then provides and walks through a downloadable code sample to demonstrate these testing techniques.
Introduction
Test Driven Development is the practice of (1) writing tests, (2) writing code that passes those tests, and (3) then refactoring. This concept is becoming very popular in the .NET community due to the quality assurance that it adds. While it is easy to test public methods, the natural question emerges "How do I test protected and private methods?"
This article will:
 - Summarize some key points of the "Should-you-even-test private methods debate"?
 - Make the case that it is still useful to at least know how to test private and protected methods - regardless of which side of the debate you're on.
 - Provide the theory and downloadable code sample to demonstrate these testing techniques.
Background Theory
Should You Test Private Methods?
A Google search will show you that there's a lot of debate about using private methods, let alone testing them. The table below summarizes some of the common views of the pro and con for both issues.
ProCon
Use private methods
 - Encapsulation - Private methods provide encapsulation, which makes the code easier for the end client to use
 - Refactoring - It is easier to refactor private methods because they are never directly called by external clients, therefore changing the signature won't break any method calls.
 - Validation - Unlike public methods that must validate all input because they are called by external clients, private methods are called safely within the class and don't require the same rigor of validation - the inputs should have been already validated in the public methods.
 - Test Scope - Exposing every method as public greatly increases the test scope. Private methods are used only how the developer intended them, whereas public methods need to be tested for every possible case which required a broader test scope.
 - Didn't Refactor - If a class is complicated enough to merit private members, then it should be refactored.
 - Hides Functionality - Private methods (if designed correctly) provide useful features that clients may want access to, so any private method worth testing should really be public.
Test private methods
 - Test Control - Private methods can contain complex logic and it increases test control to be able to directly access the method and test it, instead of needing to indirectly accessing it through a public method.
 - Principle - Unit Testing is about testing the smallest functional piece of code; private methods are functional pieces of code, therefore on principle private methods should be testable.
 - Already Covered - Only the public interface should be tested. Private methods should already have thorough test coverage from being called by the public methods that are tested.
 - Brittle Code - If you refactor the code, and juggle around the private methods, and if you had tests linked to those private methods, then you need to juggle around your tests too.
There are bright and experienced people on both sides of the issue. So while I have no intention or expectation of ending the "should I test private method" debate, there is still value for both sides to know how to test them. Even if you think that private methods should not be tested:
 - Your opinion will be more influential if you can at least show that you are able to test them, but choose not to (i.e. you're not saying "Don't test private methods" simply because you don't know how).
 - Having the option of testing non-public methods lets you see what really works best for your team over time.
 - As long as there are still some valid situations, it's worth having a convenient way to test them.
Good Criteria and Inadequate Techniques
Andrew Hunt and David Thomas explain in their book, Pragmatic Unit Testing in C# with NUnit, that good unit tests are ATRIP:
 - Automatic
 - Thorough
 - Repeatable
 - Independent
 - Professional
There are three additional criteria that any testing overhead for private/protected methods should meet:
 - Transparency - Don't alter the System Under Test (SUT), such as adding wrapper methods in the production code.
 - Scope - Be able to run in both Debug and Release mode.
 - Simplicity - Have minimal overhead, and hence be easy to change and simple enough to introduce minimal risk.
Keeping these criteria in mind, there are several strategies that fall short:
StrategyProblem
Don't have any private methods.
 - This avoids the issue.
Use the directives #if DEBUG ... #endif to wrap a public method which in turns wraps the private method. The unit tests can now indirectly access that private method through the public wrapper. (This is a method that I myself have used many times, and found it to be tedious and non-object oriented).
 - This only works in Debug mode.
 - This is procedural and not object-oriented. We would need to wrap the individual methods in both the production code and unit tests.
 - This alters the SUT by adding the public method wrappers.
Use the [Conditional("DEBUG")] attribute on public methods that wrap the private methods.
 - This only works in Debug mode.
Create internal methods to access the private method; then have a public test class elsewhere in the assembly that wraps those internal methods with public ones.
 - This alters the release code by adding the internal hooks, ultimately making the private methods accessible in production.
 - This requires a lot of extra coding, and is hence brittle.
Testing Protected Methods
A protected method is visible only to derived classes, therefore it is not immediately available to a test suite. For example, suppose we wanted to test the method from ClassLibrary1.MyObject:
protected string MyProtectedMethod(string strInput, int i32Value)
{
 return this.Name + ": " + strInput + ", " +
 i32Value.ToString();
}
The book Pragmatic Unit Testing in C# with NUnit explains one solution: make a derived class MyObjectTester that inherits class MyObject, and then create a public method TestMyProtectedMethod that wraps the protected one. For example:
public new string TestMyProtectedMethod(string strInput, int i32Value)
{
 return base.MyProtectedMethod(strInput,
 i32Value);
}
This approach is simple, yet meets all the criteria:
CriteriaFulfillment
TransparencyBy using inheritance and putting the MyObjectTester class in the UnitTests assembly, it doesn't add any new code to the production assembly.
ScopeNothing in this approach depends on Debug-only techniques.
SimplicityAlthough this approach requires a new derived class, and an additional public wrapper method for each protected method, it is object-oriented and type safe.
Testing Private Methods
Testing private methods is a little more involved; but we can still do it using System.Reflection. You can use Reflection to dynamically access methods of a type, including both instance and static private methods. Note that accessing private methods does require the ReflectionPermission, but that is not a problem for Unit Tests running on a development machine or build server.
Suppose we wanted to test the private method MyPrivateMethod from ClassLibrary1.MyObject:
private string MyPrivateMethod(string strInput, DateTime dt, double
 dbl)
{
 return this.Name + ": " + strInput + ", " +
 dt.ToString() + ", " + dbl.ToString();
}
One solution is to create a UnitTestUtilities project with a helper class to call the test method via reflection. For example, the download solution has the following methods in UnitTestUtilities.Helper:
public static object RunStaticMethod(System.Type t, string strMethod,
 object [] aobjParams)
{
 BindingFlags eFlags =
 BindingFlags.Static | BindingFlags.Public |
 BindingFlags.NonPublic;
 return RunMethod(t, strMethod,
 null, aobjParams, eFlags);
} //end of method
public static object RunInstanceMethod(System.Type t, string strMethod,
 object objInstance, object [] aobjParams)
{
 BindingFlags eFlags = BindingFlags.Instance | BindingFlags.Public |
 BindingFlags.NonPublic;
 return RunMethod(t, strMethod,
 objInstance, aobjParams, eFlags);
} //end of method
private static object RunMethod(System.Type t, string
 strMethod, object objInstance, object [] aobjParams, BindingFlags eFlags)
{
 MethodInfo m;
 try
 {
 m = t.GetMethod(strMethod, eFlags);
 if (m == null)
 {
 throw new ArgumentException("There is no method '" +
 strMethod


develops structure that is not directly available from either input--it is not "copied from the inputs" ("Conceptual Integration Networks" 144). The square in the blended space represents this emerging structure that is composed and completed in the conceptual blend, and which can even be elaborated further if the mind traces out the new logic and principles made possible in the blend. One clear advantage of the blending model over conceptual metaphor theory is that it challenges the idea that only one source domain will provide all of the key structure in a rhetorical figure. In so-called "primary" metaphors such as KNOWING IS SEEING and the TI1VE IS SPATIAL, MOTION, the source alone does appear to provide all of the key structure to the resultant blended space (Lakoff and Johnson Philosophy in the Flesh 49- 54). In many cases, however, a figure that we might call metaphorical actually receives crucial structure from more than just one input space. Such a blend may even have more than two input spaces (Figure 1-2 is only a minimal network), and a blend will often develop new structure of its own, recruiting new elements not available from the inputs. Another advantage of blending theory is that the two circles correlating to source and target domains are here called "input spaces" (or "input mental spaces") rather than "domains." The concept of the input mental space is potentially more open-ended than the concept of the domain, which may imply a completed or bounded set of knowledge. Indeed, whereas conceptual metaphor theory emphasizes the stable and enduring set of conceptual metaphors in the cognitive unconscious, blending theory is more apt to stress the "partial and temporary" nature of the "mental space," defined as a partial and temporary representational structure which speakers construct when thinking or talking about a perceived, imagined, past, present, or future situation. Mental spaces (or,'spaces', for short) are not equivalent to domains, but, rather,


text:
Cats are very strange animals. One of their odder behaviors is scratching around their food bowl. They look like they are trying to kick dirt over the food in order to bury it. Presumably that is what they do in the wild. But the "dirt" house cats are kicking over the food is imaginary.
This suggests that wild cats do not know they are burying their food. That is, it is not goal-directed behavior. If it were goal-directed, house cats would either not bother with the scratching, or they would be very frustrated by their lack of success.
This is not to suggest at all that cats are all dumb instinct. On the one hand, much of their behavior seems very human-like. On the other hand, plenty of human behavior is instinct masquerading as goal-directed behavior. Sex, for instance, has a clear purpose but that's not usually why we do it. (Even if you believe sex has purposes other than procreation, such as pair bonding, it is hard to explain prostitution — which, while not as common as cats "burying" their food, is still common enough to require explanation.
So why do cats scratch around their bowl? I suspect it just feels good. Evolution does not require that we know why we do what we do — just that we do it.


text:
The Power of Signage in Commercial Real Estate
Commercial real estate relies on signage in a variety of ways. Signs point potential investors and business owners toward an available commercial listing. They indicate which real estate agents or developers to contact to check out the property. They also provide specs showing potential buyers what the property has to offer. Utilizing eye-catching signage in real estate sets your property apart from others, making it a quicker sell.
Let's break down how to use signage in commercial real estate. We'll discuss how a sign affects curb appeal, the types of real estate signs that are used, and tips for creating effective real estate signage.
The Importance of Signage Placement
Commercial real estate is all about "location, location, location". Effective signage can help create a strong first impression of the property, showcase its unique features, and communicate important details such as availability and pricing. Additionally, it can be used within a property to help direct visitors, label spaces and showcase tenants and occupants.
Well-designed and strategically placed signs can help capture the attention of passersby and draw them to the property, increasing the chances of generating leads and ultimately closing a deal. Signage can also help establish the property's brand and identity, making it easier for potential tenants or buyers to remember and recognize it in the future. You may display signage in the following locations to attract attention:
- Lobby or common space
- Parking garages
- Rooftop or exterior walls
- Windows facing busy streets
Types of Real Estate Signs
There are many different types of commercial real estate signage. Below are some of the most common types:
- Building Identification Signs: These signs are used to identify the name of the building and its tenants. They can be located at the entrance of the building or mounted on the building exterior.
- Window Graphics: Window graphics are used to display logos, messages, or promotions on the windows of a business. They can be applied to the interior or exterior of the window and come in a variety of materials, such as vinyl, perforated film, or static cling.
- Banners: Banners are temporary signs that can be used to promote events, sales, or other time-sensitive messages. They are typically made from vinyl or mesh material and can be hung on buildings or freestanding frames.
- Directional Signs: These signs are used to direct customers to a specific location within a property, such as a parking lot or entrance.
- Project Signs: Project signs are temporary signs that are used to promote a development or construction project. They often include renderings or artist impressions of the finished project and can be placed on the project site or nearby.
To be most effective, signs should always be posted in easy to spot locations and should be designed in such a way that they're readable from the street and sidewalks. Prominent placement is important, as is use of contrasting colors and legible fonts.
Tips for Designing Effective Real Estate Signs
Below are a few tips for designing effective real estate signs.
- Size and Placement: Consider where the sign will be placed when choosing the size of the sign. The farther away from the street or sidewalk the sign will be placed, the larger it will need to be in order to get noticed.
- Color Selection: Contrasting colors are easier to see in a variety of lighting conditions. Be sure to use contrasting colors that look good together – avoid using colors that clash.
- Text and Font Choices: Sans serif fonts are often easier to read than serif fonts. The more straightforward the font, the better. Avoid use of fonts with curly letters or fanciful shapes.
- Imagery and Graphics: Imagery and graphics can help attract attention to a sign. Use images carefully and stick to use of simple graphics to avoid cluttering the sign
The Benefits of Using Professional Printing and Signage Services
Although commercial real estate signage may sound easy to design, many struggle to create signs that are easy to read and useful to the audience that would be paying attention to them. The best way to ensure that your sign is as effective as possible is to work with a professional printing and signage service to get your sign designed, printed, and installed.
Bishop Image Group has done it all, from commercial real estate signage and high rise signage plastered across a building to storefront signage intended to drive customers through your front door. Contact us today to request a free quote on your real estate signage. We're here to help!