


OpenCV is an open source computer vision library originally developed by Intel. It is free for commercial and research use under a BSD license. The library is cross-platform, and runs on Mac OS X, Windows and Linux. It focuses mainly towards real-time image processing, as such, if it finds Intel's Integrated Performance Primitives on the system, it will use these commercial optimized routines to accelerate itself.
This implementation is not a complete port of OpenCV. Currently, this library supports :
Future versions will include more advanced functions such as motion analysis, object and color tracking, multiple OpenCV object instances …
For more information about OpenCV visit the Open Source Computer Vision Library Intel webpage, the OpenCV Library Wiki, and the OpenCV Reference Manual (pdf).
Add <...>\OpenCV\bin to system PATH' during installation (or you need to add the rigth path by yourself later) and reboot your machine.

DUE TO AN ERROR WHILE PACKAGING THE ZIP FILE, THIS VERSION UPDATED SHOULD SOLVE THE WINDOWS PROBLEM ABOUT DLL DEPENDENCIES AND OPENCV 1.0


The OpenCV Processing Library is a project of the Atelier hypermédia at the École Supérieure d'Art d'Aix-en-Provence. It is maintained by Stéphane Cousot and Douglas Edric Stanley. Special thanks to the openframeworks community for support and the C++ Binary Quicksort method.
OpenCV
The main object for all computer vision processes.
To use OpenCV library in a PApplet directly in pure Java, start with this small integration sample
for more details about Processing see the home page
import processing.core.*;
import hypermedia.video.OpenCV;
public class OpenCV_PApplet extends PApplet {
OpenCV cv = null; // OpenCV object
// Initialise Objects
public void setup() {
size( 640, 480 ); // set frame size
cv = new OpenCV( this ); // link OpenCV process to this PApplet
cv.capture( width, height ); // start video stream
}
// Display the input camera stream in frame
public void draw() {
cv.read();
image( cv.image(), 0, 0 );
}
// Call the PApplet main method
public static void main( String[] args ) {
PApplet.main( new String[]{"OpenCV_PApplet"} );
}
}
Blob
A storage object containing a blob detected by OpenCV.
Returned by blobs() method.

Secure Shell (SSH) public key authentication can be used by a client to access servers, if properly configured. These notes describe how to configure OpenSSH for public key authentication, how to enable a ssh-agent to allow for passphrase-free logins, and tips on debugging problems with SSH connections. Password free logins benefit remote access and automation, for example if administering many servers or accessing version control software over SSH.
Public key authenticate can prevent brute force SSH attacks, but only if all password-based authentication methods are disabled. Other options to protect against brute force SSH attacks include pam_tally, or port knocking. Public key authentication does not work well with Kerberos or OpenAFS, which require a password or principal from the client.
Definition of terms used in this documentation:
Never allow root-to-root trust between systems. If required by poorly engineered legacy scripts, limit the from access of the public keys, and if possible only allow specific public keys to run specific commands. Instead, setup named accounts for users or roles, and grant as little root access as possible via sudo.
For more information, see also SSH, The Secure Shell: The Definitive Guide. SSHKeyChain offers integration between the Apple Keychain and OpenSSH.
First, confirm that OpenSSH is the SSH software installed on the client system. Key generation may vary under different implementations of SSH. The ssh -V command should print a line beginning with OpenSSH, followed by other details.
$ ssh -V
OpenSSH_3.6.1p1+CAN-2003-0693, SSH protocols 1.5/2.0, OpenSSL 0x0090702f
If OpenSSH is running on a non-standard port, consult running OpenSSH on a custom port for the appropriate client configuration necessary to access the port.
A RSA key pair must be generated on the client system. The public portion of this key pair will reside on the servers being connected to, while the private portion needs to remain on a secure local area of the client system, by default in ~/.ssh/id_rsa. The key generation can be done with the ssh-keygen(1) utility.
client$ mkdir ~/.ssh
client$ chmod 700 ~/.ssh
client$ ssh-keygen -q -f ~/.ssh/id_rsa -t rsa
Enter passphrase (empty for no passphrase): …
Enter same passphrase again: …
Do not use your account password, nor an empty passphrase. The password should be at least 16 characters long, and not a simple sentence. One choice would be several lines to a song or poem, interspersed with punctuation and other non-letter characters. The ssh-agent setup notes below will reduce the number of times this passphrase will need to be used, so using a long passphrase is encouraged.
The file permissions should be locked down to prevent other users from being able to read the key pair data. OpenSSH may also refuse to support public key authentication if the file permissions are too open. These fixes should be done on all systems involved.
$ chmod go-w ~/
$ chmod 700 ~/.ssh
$ chmod go-rwx ~/.ssh/*
The public portion of the RSA key pair must be copied to any servers that will be accessed by the client. The public key information to be copied should be located in the ~/.ssh/id_rsa.pub file on the client. Assuming that all of the servers use OpenSSH instead of a different SSH implementation, the public key data must be appended into the ~/.ssh/authorized_keys file on the servers.
# first, upload public key from client to server
client$ scp ~/.ssh/id_rsa.pub server.example.org:
# next, setup the public key on server
server$ mkdir ~/.ssh
server$ chmod 700 ~/.ssh
server$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
server$ chmod 600 ~/.ssh/authorized_keys
server$ rm ~/id_rsa.pub
Be sure to append new public key data to the authorized_keys file, as multiple public keys may be in use. Each public key entry must be on a different line.
Many different things can prevent public key authentication from working, so be sure to confirm that public key connections to the server work properly. If the following test fails, consult the debugging notes.
client$ ssh -o PreferredAuthentications=publickey server.example.org
Enter passphrase for key '/…/.ssh/id_rsa': …
…
server$
Key distribution can be automated with module:authkey and CFEngine. This script maps public keys stored in a filesystem repository to specific accounts on various classes of systems, allowing a user key to be replicated to all systems the user has access to.
If exporting the public key to a different group or company, consider removing or changing the optional public key comment field to avoid exposing the default username and hostname.
As an optional step to limit usage of the public key for access to any servers, a from statement can be used before public key entries in the ~/.ssh/authorized_keys file on the servers to limit where the client system is permitted to access the server from. Without a from limit, any client system with the appropriate private key data will be able to connect to the server from anywhere. If the keypair should only work when the client system is connecting from a host under example.org, set from="*.example.org" before the public key data.
server$ cat ~/.ssh/authorized_keys
from="*.example.org" ssh-rsa AAAAB3NzaC1…
If a text editor is used to add the from option, ensure the data is saved as a single line; some editors may wrap the public key and thus corrupt the data. Each public key in the ~/.ssh/authorized_keys file must not span multiple lines.
Multiple hosts or addresses can be specified as comma separated values. For more information on the syntax of the from option, see the sshd(8) documentation.
from="*.example.org,10.*,external.example.com" …
To reduce the frequency with which the key passphrase must be typed in, setup a ssh-agent(1) daemon to hold the private portion of the RSA key pair for the duration of a session. There are several ways to run and manage ssh-agent, for example from a X11 login script or with a utility like Keychain. These notes rely on the setup of ssh-agent via an @reboot crontab(5) entry, along with appropriate shell configuration.
The ssh-agent must only be run on the client system. The private key of the RSA key pair must remain on the client system. Agent forwarding should be used to make the key available to subsequent logins to other servers from the first server connected to.
The following crontab(5) entry should run the agent at system startup time. The crond daemon on BSD and Linux systems should support the special @reboot syntax required for this to work.
@reboot ssh-agent -s | grep -v echo > $HOME/.ssh-agent
To setup the agent for the first time without having to reboot the system, run the following.
$ nohup ssh-agent -s > ~/.ssh-agent
Once the ssh-agent is running, any shells already running will need to source in the environment settings from the ~/.ssh-agent file. The SSH_AUTH_SOCK and SSH_AGENT_PID environment variables set in this file are required for the OpenSSH commands such as ssh and ssh-add to communicate with the ssh-agent on the client system.
$ . ~/.ssh-agent
Notes on configuring all shells to be able to run arbitrary commands are available. This reduces the initial setup to the following commands, which can be done from the script reagent.
$ nohup ssh-agent -s | grep -v echo > ~/.ssh-agent
$ allsh - < ~/.ssh-agent
If csh or tcsh is being used instead of a Bourne-based shell, replace the -s argument with -c, and the source command used instead of . in any running shells.
The shell’s startup script on the client system will need to be modified to pull in the required environment settings from ~/.ssh-agent and setup useful aliases. The agent settings in ~/.ssh-agent should not be read in if the client system is being connected to as a server. Remote connections set the SSH_CLIENT environment variable, so ~/.ssh-agent must not be read in when this variable contains data.
[ -z "$SSH_CLIENT" ] && . $HOME/.ssh-agent
alias keyon="ssh-add -t 10800"
alias keyoff='ssh-add -D'
alias keylist='ssh-add -l'
The -t option to ssh-add will remove keys from memory after the specified number of seconds. This option prevents the keys from being left unlocked for long periods of time. Older versions of OpenSSH will not have the timeout -t option.
For the csh and tcsh shells, slightly different configuration of the agent and aliases is required. Consult the relevant ssh-agent(1) and shell documentation.
Once the ssh-agent is running and shell configured to read in the appropriate settings and set easy aliases, enable the key then test a login to a remote server. The keyon will only need to be run when initially adding the private key data to ssh-agent, and only rerun if ssh-agent is restarted or the key is removed with keyoff.
client$ keyon
…
client$ ssh server.example.org
server$ exit
client$ keyoff
Use the keylist command to see what keys are in the agent process.
$ keylist
1024 01:a1:aa:34:21:bc:7d:a4:ea:56:a4:a1:1a:c5:fa:9f /home/…/.ssh/id_rsa (RSA)
If password free logins do not work, see tips on debugging problems with SSH connections to work out where the problem may be.
To make other applications not run from a shell aware of the agent, the environment definitions in the ~/.ssh-agent file will need to be read into the software in question. Consult the documentation for the software to see whether this is possible.
For simple client to server connections, SSH agent forwarding will not be a concern. However, if from the server connected to, one logs into other servers, SSH agent forwarding will need to be enabled. If SSH agent forwarding is disabled, a private key must be available on the proxy system that is recognized by the server being connected to.
To enable forwarding, either use the -A option to ssh when connecting, or set ForwardAgent in an OpenSSH config file, such as ~/.ssh/config. Note that command line arguments override the user-specific configuration file, which in turn can override the global ssh_config configuration file, if any.
Host *
ForwardAgent yes
ForwardX11 no
Agent (and X11) forwarding may represent a security risk, providing more options to an attacker on a compromised server to work back to the client system. If paranoid, disable Agent and X11 forwarding by default, and only enable the features where needed. Also enable StrictHostKeyChecking and use configuration management software such as CFEngine to distribute a global ssh_known_hosts file to all client systems.
Posted by admin on March 9th, 2009
Flash/Flex/AIR produces a poor quality(pixelated) image when you load a larger image and try to re size it in the player to a much smaller size.
I searched the web and found this post http://www.cafesilencio.net/blog/bitmapdata-resize-quality-in-flex-and-air, tried the code but I didn’t see any improvements on the image quality.
It seams that Flash player doesn’t use a bilinear/bicubic interpolation algorithm to resize images, probably that’s why the produced image is so bad.
I came up with a solution, it seams that if you first apply a Blur effect on the image, then resize it, the produced image will appear much nicer. Of course the amount of Blur has to be calculated, otherwise we will end up with a poor quality image…again.
Check out the image before/after my solution, also you can try out the solution here
(don’t forget to check the “Apply Blur” check box to see my re size solution)
Here is the code for resize images using blur.
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="applyEffects()"> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.core.UIComponent; [Bindable] private var blurQualityDP:ArrayCollection = new ArrayCollection([{label: 'Low', value: BitmapFilterQuality.LOW}, {label: 'Medium', value: BitmapFilterQuality.MEDIUM}, {label: 'High', value: BitmapFilterQuality.HIGH} ]); public static function getUIComponentBitmapData( target:UIComponent ):BitmapData { var bd:BitmapData = new BitmapData( target.width, target.height, true, 0 ); var m:Matrix = new Matrix(); bd.draw( target, m, null, null, null, true ); return bd; } private function applyEffects():void { var w:int = widthSlider.value; var ratio:Number = w / originalImage.width; var h:int = originalImage.height * ratio; if (applyBlur.selected){ var blurXValue:Number = Math.max(1, originalImage.width / w) * 1.25; var blurYValue:Number = Math.max(1, originalImage.height / h) * 1.25; var blurFilter:BlurFilter = new BlurFilter(blurXValue, blurYValue, int(blurQuality.selectedItem.value)); originalImage.filters = [blurFilter]; } else { originalImage.filters = []; } var bd:BitmapData = getUIComponentBitmapData(originalImage); var rbd:BitmapData = resizeImageBD(bd, w, h); img1.source = new Bitmap(rbd, PixelSnapping.AUTO, true); } public static function resizeImageBD( bitmapData:BitmapData, width:Number, height:Number ):BitmapData { var newBitmapData:BitmapData = new BitmapData( width, height, true, 0x000000 ); var matrix:Matrix = new Matrix(); matrix.identity(); matrix.createBox( width / bitmapData.width, height / bitmapData.height ); newBitmapData.draw( bitmapData, matrix, null, null, null, true ); return newBitmapData; } ]]> </mx:Script> <mx:VBox> <mx:HBox> <mx:Label text="Image Width" /> <mx:HSlider id="widthSlider" value="300" minimum="0" maximum="1600" width="800" change="applyEffects()" liveDragging="true" snapInterval="5" dataTipPrecision="0"/> <mx:CheckBox id="applyBlur" label="Apply Blur" change="applyEffects()"/> <mx:ComboBox id="blurQuality" dataProvider="{blurQualityDP}" change="applyEffects()"/> </mx:HBox> <mx:Label text="Image Width: {widthSlider.value}" /> <mx:Canvas> <mx:Image id="originalImage" source="@Embed(source='test7.jpg')" x="100" y="100"/> <mx:Image id="img1" /> </mx:Canvas> </mx:VBox> </mx:Application>
Saturday 14 July 2007, by ,
All the versions of this article: [English] [français]
We shall see in this article how to make a presentation with LaTeX, using the powerful class Beamer. If you want to make an outstanding "stressfree" presentation and bring your ideas or your work under a whole new light, let’s get started!!!
You will first need to install the package Beamer. Under Debian or Ubuntu, you can type the following command:
Once the latex-class Beamer is installed, you are definitely ready to stat your first presentation!!!
A few explanations:
means that our document is a Beamer presentation
this package enables us to use special letters (with accents, cedillas, etc). You can discard this command when the presentation is in English.
This is our outer theme (color and background). As you can imagine, there are tons of themes. You can refer to Beamer documentation for more details.
this defines the title of the presentation. As you can see, there are two titles:
the first one, between brackets. [Making a LaTeX presentation with Beamer] is a substitute title which appears at the bottom of the page. This is useful especially if the original title is long. Since this is anoption only, if it is not mentioned, then the original title is the one shown in the bottom of the page.
the second one, between braces, is the principal title of the presentation.
The command
defines Nadir Soualem and Astozzia (us!) as the authors of the presentation.
defines where the presentation was held. Finally, we use
as the date.
To define the document, we use the markers
To define a slide of the presentation, we use the markers
To define a page title (frame), we mention it as follows
Introduction will be the title of the page. To define the first page, which contains details such as the title, the author, the date, etc - we use a frame in which we include the \titlepage command
To define a frame containing the layout of the presentation, we proceed as follows:
The layout is therefore mentioned at every section and subsection. You should insert \section and \subsection throughout the presentation and out of the frames:
A good presentation is one that is dynamic and attracts the audience’s interest. Generally, we resort to a dynamic type of presentations. Alternatively stated, when we speak, we simultaneously show significant points of the talk, or hide others, or keep just the important ones. We shall see in this section how animations function in Beamer.
In order to view several items of a list on the same slide, we type the following commands inside a frame:
We will thus see the items of our list, one by one.
An alternative way to visualize the elements of a list item by item is to use the \item<n-> command, where n is a natural number referring to the slide, beginning from which the item appears.
An example is worth a long speech:
\item<n-m> means that the list item will appear on slides numbered n to m, whereas \item<p> means that the item will appear on slide p.
Sometimes the lists you want to display are long and it is not practical to use the \item<n-> command. An alternative solution is the use of the [<+->] command
Up to now, we have dealt with lists. We shall now see how to use text and slides.
\uncover<n-> will display the text from slide n on; \uncover<n-m> means the text element will appear from slide n to m. Finally, \uncover<p> means that the text will appear on slide p. Here is a case in point of a frame containing the \uncover command.
Be careful not to forget the braces after the \uncover command. The syntax is as follows:
\only works like\uncover with the exception that the \only command is not as "cumbersome" on slides. Here is an example:
Here is an other example to better grasp the difference between \only and \uncover
\invisible<n> makes text invisible on slide n
As an alternative, one can use the \alt
To highlight text in red on slide n, we use the \alert<n>{...} command.
The first argument is the red, green, yellow, blue, etc ... The second is the text to be colored
To define internal links, we should add the following package in the preamble
Then, we should define a label pointing on the frame:
you define MY_LABEL as you please ! Finally, on the frame where the link is to be created, we proceed as follows:
There we are! We can see a button Refer to this page pointing to the frame labeled MY_LABEL.
Thus, the first argument of \hyperlink{...}{\beamergotobutton{...}} is the name of the label to be pointed at and \beamergotobutton{...} has the name of the button as an argument.
For important stuff, we define blocks as follows:
As clear as onion soup !!!
First off, we should add the package colortbl to the preamble
To display rows dynamically, we shall use the \pause command as follows:
To display columns dynamically, we shall use the \onslide<n-> command as follows:
For two columns, we proceed as follows:
l,r,c refers to the position: left, right, center. The syntax is as follows:
To insert an image or a figure, we proceed as in LaTeX by using the \includegraphics command. Here is an example:
In Beamer, we should distinguish between two types of figures:
PS type: .eps, .ps and pspicture type (LaTeX)
General type: .pdf, .png, .jpg, .jpeg
You will need to compile a Beamer-class file.
I assume that the your file is called file.tex.. There are ways to compile, depending on the type of figure you inserted. For PS-type figures, we shall use the following commands
We shall obtain the file file.pdf.
For general-type figures, we shall use the command
We shall also obtain the file file.pdf.
It goes without saying that explaining all the possibilities that Beamer offers is way too long. This is why I am referring to this exhaustive documentation documentation.
Have fun !!!
Demo App: http://coloredlists.com
Examples Gallery
|
What's New
|
In the video below, I explain a simple three-step process for turning twitter into an automated testimonial machine. This is REALLY cool stuff that I have never seen anyone else teach. It’s an example of how you can get creative in using twitter to promote your business way beyond the uses most people think of.
(This video is best utilized by pausing as you follow along and follow the steps in your own account.)
Sites mentioned: RSSContentTool.com


People use websites to make decisions—from what product to buy to what health treatment to seek. [1][2][3] When someone consults a website, there is a precious opportunity not only to provide useful information but also to influence their decision. To make the most of this opportune moment, web professionals need to understand the rhetorical concept of kairos.
Greek rhetoricians defined kairos as saying or doing the right thing at the right time. Clues to understanding kairos lie in its dual etymological roots: Weaving and archery. [4] In weaving, kairos occurs in the instant at which the shuttle passes through an opening in the loom’s threads; this is the moment when all the threads come together to create the fabric. Similarly, on the web, the threads of technology, design, content, culture, and user science intertwine to form the fabric—or context—that swathes the opportune moment.
But what seizes the moment? That’s where the other etymological root of kairos, archery, sheds light. Something has to act like an arrow and—ZING!—hit the mark, with enough force to stick. For Greek rhetoricians, that something was spoken language. On the web, that something is written language.
As web professionals, we craft a context for the opportune moment. But we then need to aim at that context with words that zing. To do that, I believe we have much to learn from kairos.
At Stanford University, B.J. Fogg studies the intersection of influence and technology. Dubbed “captology,” or the study of computers as persuasive technology, Fogg’s research shows how people are influenced by their relationship with technology. [5] In a modern notion of kairos, he observes the value of getting information to people at the right time.
Similarly, Andrea Lunsford explores writing, technology, and literacy. [6] Lunsford’s recent work analyzed student writing in a range of contexts—from chat sessions to academic papers. She found that students’ use of technology does not damage their writing abilities but, in fact, improves their awareness of kairos.
As Lunsford’s study suggests, social media, such as blogging and microblogging, turns users into writers who can respond to kairos quickly. For example, social media allows companies to respond to an angry or confused customer. Importantly, what social media users write is published publicly for anyone to see, a situation that requires writing quickly yet carefully. [7] Users of social media, therefore, need to know the basics of writing for the opportune moment. At the same time, kairos renews the value of professional web writing. Influential words for planned opportune moments, such as a landing page, are more critical than ever.
Now that we have defined kairos and asserted the importance of writing for it, let’s explore it further with examples.
To select the right words, take cues from rhetoric and psychology. I do not mean use unctuous sales language or manipulative mind control, nor do I necessarily mean use catchy words. I simply mean add influential weight to web writing based on centuries of rhetorical wisdom and a growing body of scientific knowledge. To illustrate, I offer examples in three different contexts.
A service is not physical like a product. People cannot see it or touch it. To boot, a service usually requires or encourages an obligation for a time period, which can cause people to hesitate. What words help sell a service?
Use words that make the service tangible. Explain how the service works with vivid words. This helps people see it in their lives. Besides being clear, this approach helps avoid a cognitive bias based on the availability heuristic, the tendency to judge probability or frequency based on how easily an example comes to mind. [8] If people can’t effortlessly imagine when they would use the service, they will think they don’t need it. Netflix makes its service easy to envision with small images and the prominent words “Rent, Receive, Watch, Exchange.” Zing.

Fig. 1: Netflix appeals to customers through the use of images and prominent words about their service.
Use words that tap into unifying values. If a service will be someone’s companion for a while, it better match his or her ideals. Take Grasshopper, the voicemail service for entrepreneurs, as an example. When labeling the voicemail plans, Grasshopper could have gone with the de facto “Basic, Premium, Plus” or “Bronze, Silver, Gold.” Instead, someone pondered the values of their entrepreneurial customers and selected “Start, Grow, Max.” Across industry, location, and demographic, what entrepreneur doesn’t fervently aspire to grow? Zing.

Fig. 2: Grasshopper uses a dose of creative copy to describe their service plans.
Customer service is a growing use for social media. A customer complaining through social media not only wants a problem solved but also is deciding whether to remain loyal. To further complicate the situation, customers criticize companies both about problems with their own experience and about complex problems they perceive with the company or its industry.
Take Comcast, a large cable provider, as an example. Frank Eliason responds to customers on Twitter as @comcastcares. What words help Frank address complaints?
Use words that concede. Reciprocity is the social norm of treating others the way they treat you—especially repaying someone when he or she gives you something. [9] Frank uses this approach to address a complex criticism of the cable and communications industry, as shown in this exchange sparked by Graham Hill about net neutrality.

Fig. 3: Comcast addresses customer issues in a Twitter exchange.
Notice that Frank is not giving an obsequious “I’m sorry” or an insincere “You’re right.” He listens to the customer’s viewpoint, concedes to some aspects of it, and offers more information to refine the viewpoint. In the process, the customer gives him, and Comcast, some slack. Zing.
Some health problems are annoying. Some are scary. Still others are embarrassing. Sexually transmitted diseases (STDs) can be all three. Entangled in a web of social and moral issues, STDs are not part of most dinner conversations. That makes the web a haven where people at high risk of STDs, sexually active teenagers, can obtain credible information anonymously and quickly.
One important choice these teenagers face is whether to be tested. The stakes in this choice for the teenagers and for society are high. If adolescents with an STD fail to seek testing and early treatment, they may spread the disease to others and suffer complications ranging from infertility to death. So, in this situation, what words help teenagers decide?

Fig. 4: Using words that strike the right tone draws readers in.
Use words that strike the right tone. Words that read like an angry parent wagging his or her finger will not fly. The CDC website, high on search rankings for any STD-related term, states the facts without passing judgment. See this example for chlamydia, a popular fact sheet.
While this neutral tone likely will not drive teens away, will it prompt them to act? Compare it to another example, GYT (Get Yourself Tested) on It’s YOUR (Sex) Life, a campaign sponsored by MTV and the Kaiser Family Foundation. Mobile and web slang is a centerpiece of the campaign. I wondered with Tracy Clark-Flory of Salon.com whether using this vernacular is trying too hard, like a middle-aged mom who wears her teen daughter’s clothes. For example, read this text from the main GYT page.

Fig. 5: Use words that frame the option to act to help readers relate to your content.
The tone makes my eyes roll, but I am not the target audience. The question is does the tone resonate with teens? Based on the compelling results of this campaign so far, the answer appears to be yes. Zing.
Use words that frame the option to act. Framing is a psychological and rhetorical heuristic of how people respond to information. Simply put, people react differently to the same choice stated differently. When a best choice exists, framing can make it clear. Framing also overcomes the weaknesses of human judgment. One weakness, optimism and overconfidence, is magnified during teen years. [10] This weakness shows in very risky choices such as driving extremely fast or while under the influence. You might recognize this phenomenon as the “I’m invincible” syndrome. Let’s see how words on the web frame the option to get tested for STDs. The CDC website hints at action in its explanation of diagnosing an STD, as shown in this example for chlamydia.

Fig. 6: The CDC hints at a call to action in their description of an STD.
If the disease is diagnosed with a test, then the implication is the teenager should get tested. I venture that this approach is too subtle for our situation.
The Mayo Clinic succinctly explains the option to get tested and why. However, as a resource for a general audience, it does not directly address a teen’s indomitable state-of-mind.

Fig. 7: The Mayo Clinic uses straight-forward reasons to get tested which addresses a wide audience.

Fig. 8: GYT uses a very direct and upfront approach to reaching readers.
In contrast, GYT bluntly states that young adults are far from immune to STDs, so they need testing. And what rebellious teen doesn’t aspire to take control of life rather than obey an order? Zing.
These examples are only a small sample. People make innumerable decisions using websites. Our websites, then, offer countless possibilities to influence. We can turn these possibilities into realities by understanding and writing for kairos—but we often do not.
To push for quick word choices by playing down their consequences, I’ve watched more than one web professional shrug and say “We’re not saving lives here.” Sometimes, I even nodded in agreement. Not anymore. Our websites could help people help themselves—and the people around them—by guiding them into good decisions. In that respect, our websites could save lives.
When I think about that potential, I’m convinced that we have more than an opportunity to say the right words at the right time. We have a responsibility to do so. Let’s embrace the responsibility, not shirk it, by investing in words that zing. 
[1] Horrigan, John. 2008. HYPERLINK "http://www.pewinternet.org/Reports/2008/Online-Shopping.aspx" Online shopping. Pew internet and American life project. February 13.
[2] Fox, Sussanah and Jones, Sydney. 2009. HYPERLINK "http://www.pewinternet.org/Reports/2009/8-The-Social-Life-of-Health-Information.aspx" The social life of health information. Pew internet and American life project, June 11.
[3] Smith, Aaron. 2009. HYPERLINK "http://www.pewinternet.org/Reports/2009/6--The-Internets-Role-in-Campaign-2008.aspx" The internet’s role in campaign 2008. Pew internet and American life project, April 15.
[4] Stephenson, Hunter W. 2005. Forecasting opportunity: Kairos, production, and writing. Lanham: University Press of America.
[5] Fogg, B.J. 2003. Persuasive technology: Using computers to change what we think and do. San Francisco: Morgan Kaufman.
[6] Thompson, Clive. 2009. Clive Thompson on the new literacy. Wired. August 24.
[7] Halvorson, Kristina. 2009. Content strategy for the web. Berkeley: New Riders.
[8] Schwarz, N. et al. 1991 Ease of retrieval as information: Another look at the availability heuristic. Journal of personality and social psychology. 61 (2)195-202.
[9] Cialdini, Robert. 2001. Influence: Science and practice. Needham Heights: Allyn & Bacon.
[10] Thaler, Richard and Sunstein, Cass R. 2008. Nudge: Improving decisions about health, wealth, and happiness. New York: Penguin Books.
Related Topics: Content Strategy, Writing
Was it good for you, too? Join the discussion »
« Why API providers lie about email lookups | Main | How to harvest Facebook profiles from emails without logging in »
TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d83454428269e20120a86c0850970b
Listed below are links to weblogs that reference How to split up the US:
The author of the Twilight series is Mormon and the books amount to propaganda for the abstinence-until-marriage movement. Considering the pent-up angst, relationship drama, and hunky teen characters, I wonder whether they effectively convey that message.
Ashley is the name of a river in South Carolina - it's also the name of a (male) character in "Gone with the Wind" which probably helps account for its popularity.
This is only a preview. Your comment has not yet been posted.
As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.
Having trouble reading this image? View an alternate.
![]() |
The Internet Movie Script Database (IMSDb) |
![]() |
|
movie script resource! |
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|
GWT Designer™ is a GUI creator that supports GWT. Use GWT Designer's visual tools and wizards, and Java code will be generated for you. You don't need to write any lines of Java code, but you can fully edit the resulting Java if you wish. GWT Designer is derived from the award-winning WindowBuilder Pro™ and leverages its sophisticated development facilities — including drag-and-drop, bi-directional code generation, internationalization, and a multitude of layout managers. Overview Webinar: "Taking the Pain out of Ajax Development with GWT and Java"GWT Designer was announced in a webinar on Wednesday, October 25, 2006. |
|
Our growing collection of walk-through movies will help you understand features. View the Web Demos » |
|
Using WindowBuilder for Google Web Toolkit & GWT-EXT - Web application tutorial |
GWT Designer™ from Instantiations is powerful, easy-to-use, and bi-directional. With its WYSIWYG tools, you can easily:
add controls using drag-and-drop.GWT Designer™ is a plug-in to any of:
Context Free Art
A CFDG file is mostly a bunch of rules for drawing shapes using other shapes. There are a few other optional components and one mandatory component:
Here is an example of all these CFDG file parts:
/* Example CFDG File This is a block comment. */ // This is one type of line comment # This is the other type of line comment startshape Foo // There must be a startshape directive include stuff.cfdg // Include rules and paths from stuff.cfdg background { b -1 } // This changes the background to black tile { s 3 4 } // tile the design on a grid with spacing 3 units wide and 4 units high //size { s 3 4 x 1 y 2} // Size the canvas 3 units wide and 4 units high, centered on (-1, -2) // Let us define a rule for shape Foo that is a white square // containing a black circle. This will be on a black background. rule Foo { SQUARE { b 1 } CIRCLE {} Bar { b 1 s 0.5 } } path Bar { MOVETO { y 1 } 12* { r (5 * 360 / 13) } { LINETO { x cos(90 + 5 * 360 / 13) y sin(90 + 5 * 360 / 13) } } CLOSEPOLY {} FILL { p evenodd } }
After getting familiar with the basics, you might want to proceed to the tutorials. If you have trouble remembering all of the details in the cfdg syntax then check out the reference card.
See also Context Free cans and cannots.
Maven2 should support TestNG out of the box without the need to download any additional plugins (other than TestNG itself).
The latest current good version of the Surefire plugin that you want is 2.4. You can find the full instructions on the Surefire web site (here are the TestNG-specific instructions).
| Goal | Description |
|---|---|
| test | Compiles and runs your tests |
| site | Creates your Maven generated site, which will include the TestNG report output. |
| Property | Optional? | Description |
|---|---|---|
| includes | No | Comma delimited list of regexp patterns to include source files with. Ie **/Test*.java |
| groups | Yes | Comma delimited list of groups to be included in test. If left blank will run all tests by default. |
| excludedGroups | Yes | Comma delimited list of groups that should not be included in test run. |
| suiteXmlFiles | Yes | Comma delimited list of file paths pointing to testng.xml suite files. (src/test-data/testng-core.xml,src/test-data/testng-functional.xml)
Warning: When defining suiteXmlFiles most of the other parameters are ignored. |
| threadCount | Yes | Number of threads to run for tests |
| parallel | Yes | When using threads, whether or not to run them in parallel. Use tests to have each test run in its own thread or methods to have the methods invoked from different threads. |
In order to use javadoc style annotations you currently must run Maven with a java 1.4 jvm in order for them to be seen. If you try running your javadoc annotated tests in a 1.5 jvm they will most likely not be found. It is hoped in a future release this problem will be eliminated.
A sample surefire report with TestNG can be found here.
Martin Gilday has added a new archetype for Maven2: to create a project using the archetype you simply have to specify my repository and the archetype ID.
mvn archetype:create -DgroupId=org.martingilday -DartifactId=test1 -DarchetypeGroupId=org.martingilday -DarchetypeArtifactId=testng-archetype
-DarchetypeVersion=1.0-SNAPSHOT -DremoteRepositories=http://www.martingilday.org/repository/
Of course substitute in your own groupId and artifactId.
Don't forget to keep checking back at Martin's blog for more updates.
The TestNG Maven plug-in is quite simple and consists of two goals and a series of optional properties.
Currently the 1.1 version of the plug-in is bundled with
official releases of TestNG. To utilize the plug-in, copy the
maven-testng-plugin-
For the latest version of the plug-in (1.2 as of 12/12/05),
update your maven.repo.remote to include http://www.vanwardtechnologies.com/repository/
and then issue the following command: maven plugin:download. Maven will issue a series of questions,
answer them as follows:
| artifactId: | maven-testng-plugin |
| groupId: | testng |
| version: | 1.2 |
| Goal | Description |
|---|---|
| testng | Runs TestNG |
| testng:junit-report | Creates a JUnit style report |
| Property | Optional? | Description |
|---|---|---|
| maven.testng.suitexml.name | Yes | XML file name- defaults to testng.xml |
| maven.testng.suitexml.dir | Yes | Directory where XML file lives. Defaults to ${basedir}/test/conf |
| maven.testng.output.dir | Yes | Default report directory. Defaults to ${maven.build.dir}/testng-output |
| maven.testng.source.dir | Yes | For 1.4- where test source is. Defaults to ${basedir}/test/java/ |
| maven.testng.report.dir | Yes | Directory for JUnit reports. Defaults to ${maven.build.dir}/testngJunitReport |
18 |
Adult Content Notice |
| The content that you are about to view may contain material only suitable for adults. To continue, you must confirm that you are at least 18 years of age. | |
|
|
|
|
|
|||||
|
|||||
|
||||
|
|
||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Most Popular Articles
Recently Visited Articles
Highest Rated Articles
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() | ||||
Copyright 2002 JewishEncyclopedia.com. All rights reserved.
Privacy
Terms of Use
Contact
|
||||

初めての人と話す時や大勢の人の前で話す時は、どうしても緊張してしまいますよね。「慣れれば大丈夫」と言われても、慣れるまではなかなか不安が尽きません。そこで今回は、そんな時に役立つ、色々な場面で使える「緊張をほぐすヒント」をご紹介します。
まずは、面接など「初めての人と1対1で話す場合」についてです。
<面接で気を楽にする3つのアイデア>
▽人見知りが考えた、面接のときに少し楽になれる3つのアイディア - じゃがめブログ
こちらでは、自身も人見知りだという筆者が、面接の際の緊張を少しでも和らげるための3つのヒントを紹介しています。
- 笑顔をつくる
- 面接官の良い所を見つける
- 面接官の目ではなく鼻の頭辺りを見る
話しやすい雰囲気を作るのに欠かせないのがまず「笑顔」。そして優しげ、真面目そうなど、相手の良いところを見つけられれば親近感もわきます。また目を見るのではなく「目よりも少し下の鼻の頭辺り」を見ることで、自分にも、相手にとってもプレッシャーを軽減することができます。
<「緊張してる?」と聞かれたらどうする?>
▽面接で「緊張してますか?」と聴かれたら? - [大学生のキャリアプラン]All About
では、面接官に「緊張してますか?」と聞かれた場合はどうすればいいのでしょうか。こちらのエントリーでは、そんな時は「もちろん御社が第一志望ですから緊張しています」と、緊張していることを素直に話すと同時に“熱意”を伝え、そこから上手く自己アピールにつなげる方法を紹介しています。
続いては、プレゼンなど「大勢の人の前で話す場合」に緊張を和らげる方法です。
<あえて「最悪のパターン」を考えてみる>
こちらで紹介しているのは、あえて先に「最悪の場合、どうなるか?」を考えるという方法。たとえ失敗したとしても、死ぬことはありません。また事前にしっかりと準備をしておくことも、自信につながります。エントリーでは、「プレゼンチェックリスト」も用意されているので、最後の仕上げに確認したいですね。
<意外に見落としがち?プレゼン前のチェック項目>
▽プレゼンテーションで緊張しない準備:Allegro Barbaro:ITmedia オルタナティブ・ブログ
何度もプレゼンを経験しているという筆者が、自身の経験を元に紹介する「プレゼンの際に緊張を和らげるポイント」がこちらです。資料の準備は完璧でも、それだけでは上手くいかないのがプレゼンです。全体の流れをイメージし、ひととおりリハーサルしておくことはもちろん、「話し始めだけは決めておく」「ムリな敬語、丁寧語は不要」「アドリブや過剰サービスは慎む」といった、つい見落としがちな項目もチェックしておきたいですね。
<石破茂さんに学ぶ「緊張しない話し方」>
こちらは衆議院議員の石破茂さんによる「人前で緊張しない話し方」。今は人前でスラスラ話している石破さんも、初めて立候補した当時は緊張で上手く話せなかったとのこと。場数を踏むことはもちろんですが、以下のような項目も大切だと語っています。
- 話す前に十分に準備すること
- 決まったパターンの話だけするのではなく、臨機応変・変幻自在に対応できるよう、幅広い勉強をして「話の抽斗」を多く持っておくこと
<立ち方にも緊張をほぐす効果が!>
▽ジョブズやマイケルに学ぼう!聞く人を惹き付ける「プレゼンの話し方」 - はてなブックマークニュース
プレゼンで緊張しないためには、「立ち方」もポイントに。演台などを軽くつかんだり、重心を落としてどっしりと構えることで、手足の震えや身体のこわばりを押さえてリラックスすることができます。
<お笑い芸人のテクニックから学ぼう>
▽人前で緊張しないための方法 まとめ | 笑わせる技術を紹介 - お笑いテクニック・ブログ
芸人さんにとっては、「すべったらどうしよう」「セリフを忘れたらどうしよう」といった悩みは尽きません。そんな時、事前にできる対処法を紹介しているのがこちらです。また「絶対1位になる」「大爆笑をとる」といった、過剰な期待をしすぎないことも大切です。
最後は、「異性と話す場合」の緊張をほぐすヒントです。
<同性だと思って接してみる>
▽【コラム】理系のための恋愛論 (315) 女子と緊張しないで話せるようになる考え方 | ネット | マイコミジャーナル
女性と話すのが苦手だという男性の悩みに答えているこちらのエントリーでは、緊張を解く方法として「この人が男子だったら」と考えてみることをすすめています。異性として意識しすぎてしまうのではなく、同性の友達のような感覚で接することで、それまで見えてこなかった相手の“内面”が見えてくるかもしれません。
数をこなすうちに、自分なりの「緊張しないコツ」も見えてくるはず。慣れるまでの間も、考え方を少し変えてみたり、不安な要素は事前に少しでも取り除いておくことで、気持ちが楽になりますね。
Title Photo by iwagoro
Conheça o livro que explica como você pode criar sites que serão bem entendidos pelos sites de busca e conseguir um posicionamento melhor no Google e no Yahoo!
Vivemos em um mundo em que somos dependentes dos sites de busca para encontrar o que precisamos. Pessoas de todo o mundo pesquisam em sites como o Google e o Yahoo! por produtos e serviços. Só que estas pessoas costumam clicar apenas nos primeiros links. Agora imagine uma empresa que não aparece com o seu produto nos resultados? E aí que entra o livro SEO – otimização de sites.
Nem todo mundo tem como participar de cursos sobre o assunto. Também é possível ler diversos artigos pela internet, porém a informação é espalhada e nem sempre confiável. Com o livro SEO – Otimização de Sites, qualquer um pode ter acesso ao material e estudar por conta própria com a confiança de técnicas testadas e honestas para evitar o uso de técnicas de ganho rápido, mas que podem causar a exclusão do seu site do Google por exemplo. Você sabe o que otimização de sites? Descubra e tire suas conclusões da importância dele.
Segundo a Jupiter Research, 62% dos usuários clicam na primeira página dos resultados de busca e 90% até a terceira página.
Livro SEO Otimização de Sites
Página Inicial | O que Otimização de Sites? | Comprar o livro | Autor | Blog do livro | Contato
| Team: | Baptists |
|---|---|
| Description: | Kivans associated with a Baptist Church http://en.wikipedia.org/wiki/Baptist |
| We Loan Because: | It's more blessed to give than to receive (but being Baptists somehow also engenders a keen interest in ensuring good stewardship of the £/$ we earn or give away) |
| Created: | August 30, 2008 |
| Number of Members: | 19 |
Adds haml options & fixes bug with partial options
Web developers are used to using dynamic and frameworks like Ruby on Rails to develop applications. When it comes to working with static, non-dynamic websites it can seem like stepping back in time.
Output full HTML pages
All examples are based on YAML's standard XHTML markup. All layout modifications are CSS based without any markup changes (aside from removing unused columns). For more information see chapters Basic Variations and Variable Order and Use of Content Columns.
September 12th, 2009 at 6:02 pm
Hi Janos,
Thanks for the post, in my search to high-quality resizing with flex/air, it was very helpfull. But I also found this way to resample bitmap data.
envrac.org
Greetz,
September 21st, 2009 at 9:22 pm
Thanks for this source code! I was looking for a Flex component which would support bi cubic interpolation while scaling the original image. Based on your source code I managed to make a new component which supports this. Here’s the source code:
package custom_components
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.IBitmapDrawable;
import flash.display.LoaderInfo;
import flash.display.MovieClip;
import flash.display.PixelSnapping;
import flash.events.Event;
import flash.filters.*;
import flash.geom.Matrix;
import flash.geom.Point;
import flash.geom.Rectangle;
import mx.controls.Image;
import mx.core.UIComponent;
import mx.core.mx_internal;
use namespace mx_internal;
public class SmoothImage extends Image {
public function SmoothImage():void {
super();
}
override mx_internal function contentLoaderInfo_completeEventHandler(evObj:Event):void {
var currTarget:LoaderInfo = evObj.currentTarget as LoaderInfo;
// create a copy of original bitmap
var originalImage:BitmapData = new BitmapData(currTarget.width, currTarget.height);
originalImage.draw(evObj.target.loader as IBitmapDrawable);
// blur values are arbitrary - for me 7 worked fine - you can experiment with these
var blurXValue:Number = 7;
var blurYValue:Number = 7;
// setting up the blur filter
var blurFilter:BlurFilter = new BlurFilter(blurXValue, blurYValue, int(BitmapFilterQuality.LOW));
// applying the blur filter to the copy of the original image
originalImage.applyFilter(originalImage,
new Rectangle(0, 0, originalImage.width, originalImage.height),
new Point(0, 0),
blurFilter);
// resizing the original image
var rbd:BitmapData = resizeImageBD(originalImage, this.width, this.height);
// assigining the resized version of the image to the Image component
this.source = new Bitmap(rbd, PixelSnapping.AUTO, true);
super.contentLoaderInfo_completeEventHandler(evObj);
}
public static function resizeImageBD( bitmapData:BitmapData, width:Number, height:Number ):BitmapData {
var newBitmapData:BitmapData = new BitmapData( width, height, true, 0x000000 );
var matrix:Matrix = new Matrix();
matrix.identity();
matrix.createBox( width / bitmapData.width, height / bitmapData.height );
newBitmapData.draw( bitmapData, matrix, null, null, null, true );
return newBitmapData;
}
}
}