Wednesday, February 17, 2010

100 keyboard shortcuts

100 keyboard shortcuts

CTRL+C (Copy)
CTRL+X (Cut)
CTRL+V (Paste)
CTRL+Z (Undo)
DELETE (Delete)
SHIFT+DELETE (Delete the selected item permanently without placing
the item in the Recycle Bin)
CTRL while dragging an item (Copy the selected item)
CTRL+SHIFT while dragging an item (Create a shortcut to the selected
F2 key (Rename the selected item)
CTRL+RIGHT ARROW (Move the insertion point to the beginning of the
next word)
CTRL+LEFT ARROW (Move the insertion point to the beginning of the
previous word)
CTRL+DOWN ARROW (Move the insertion point to the beginning of the
next paragraph)
CTRL+UP ARROW (Move the insertion point to the beginning of the
previous paragraph)
CTRL+SHIFT with any of the arrow keys (Highlight a block of text)
SHIFT with any of the arrow keys (Select more than one item in a
window or on the desktop, or select text in a document)
CTRL+A (Select all)
F3 key (Search for a file or a folder)
ALT+ENTER (View the properties for the selected item)
ALT+F4 (Close the active item, or quit the active program)
ALT+ENTER (Display the properties of the selected object)
ALT+SPACEBAR (Open the shortcut menu for the active window)
CTRL+F4 (Close the active document in programs that enable you to
have multiple documents open simultaneously)
ALT+TAB (Switch between the open items)
ALT+ESC (Cycle through items in the order that they had been opened)
F6 key (Cycle through the screen elements in a window or on the
F4 key (Display the Address bar list in My Computer or Windows
SHIFT+F10 (Display the shortcut menu for the selected item)
ALT+SPACEBAR (Display the System menu for the active window)
CTRL+ESC (Display the Start menu)
ALT+Underlined letter in a menu name (Display the corresponding menu)
Underlined letter in a command name on an open menu (Perform the
corresponding command)
F10 key (Activate the menu bar in the active program)
RIGHT ARROW (Open the next menu to the right, or open a submenu)
LEFT ARROW (Open the next menu to the left, or close a submenu)
F5 key (Update the active window)
BACKSPACE (View the folder one level up in My Computer or Windows
ESC (Cancel the current task)
SHIFT when you insert a CD-ROM into the CD-ROM drive (Prevent the CD-
ROM from automatically playing)
Dialog Box Keyboard Shortcuts
CTRL+TAB (Move forward through the tabs)
CTRL+SHIFT+TAB (Move backward through the tabs)
TAB (Move forward through the options)
SHIFT+TAB (Move backward through the options)
ALT+Underlined letter (Perform the corresponding command or select
the corresponding option)
ENTER (Perform the command for the active option or button)
SPACEBAR (Select or clear the check box if the active option is a
check box)
Arrow keys (Select a button if the active option is a group of option
F1 key (Display Help)
F4 key (Display the items in the active list)
BACKSPACE (Open a folder one level up if a folder is selected in the
Save As or Open dialog box)
m*cro$oft Natural Keyboard Shortcuts
Windows Logo (Display or hide the Start menu)
Windows Logo+BREAK (Display the System Properties dialog box)
Windows Logo+D (Display the desktop)
Windows Logo+M (Minimize all of the windows)
Windows Logo+SHIFT+M (Restore the minimized windows)
Windows Logo+E (Open My Computer)
Windows Logo+F (Search for a file or a folder)
CTRL+Windows Logo+F (Search for computers)
Windows Logo+F1 (Display Windows Help)
Windows Logo+ L (Lock the keyboard)
Windows Logo+R (Open the Run dialog box)
Windows Logo+U (Open Utility Manager)
Accessibility Keyboard Shortcuts
Right SHIFT for eight seconds (Switch FilterKeys either on or off)
Left ALT+left SHIFT+PRINT SCREEN (Switch High Contrast either on or
Left ALT+left SHIFT+NUM LOCK (Switch the MouseKeys either on or off)
SHIFT five times (Switch the StickyKeys either on or off)
NUM LOCK for five seconds (Switch the ToggleKeys either on or off)
Windows Logo +U (Open Utility Manager)
Windows Explorer Keyboard Shortcuts
END (Display the bottom of the active window)
HOME (Display the top of the active window)
NUM LOCK+Asterisk sign (*) (Display all of the subfolders that are
under the selected folder)
NUM LOCK+Plus sign (+) (Display the contents of the selected folder)
NUM LOCK+Minus sign (-) (Collapse the selected folder)
LEFT ARROW (Collapse the current selection if it is expanded, or
select the parent folder)
RIGHT ARROW (Display the current selection if it is collapsed, or
select the first subfolder)
Shortcut Keys for Character Map
After you double-click a character on the grid of characters, you can
move through the grid by using the keyboard shortcuts:
RIGHT ARROW (Move to the right or to the beginning of the next line)
LEFT ARROW (Move to the left or to the end of the previous line)
UP ARROW (Move up one row)
DOWN ARROW (Move down one row)
PAGE UP (Move up one screen at a time)
PAGE DOWN (Move down one screen at a time)
HOME (Move to the beginning of the line)
END (Move to the end of the line)
CTRL+HOME (Move to the first character)
CTRL+END (Move to the last character)
SPACEBAR (Switch between Enlarged and Normal mode when a character is
m*cro$oft Management Console (MMC) Main Window Keyboard Shortcuts
CTRL+O (Open a saved console)
CTRL+N (Open a new console)
CTRL+S (Save the open console)
CTRL+M (Add or remove a console item)
CTRL+W (Open a new window)
F5 key (Update the content of all console windows)
ALT+SPACEBAR (Display the MMC window menu)
ALT+F4 (Close the console)
ALT+A (Display the Action menu)
ALT+V (Display the View menu)
ALT+F (Display the File menu)
ALT+O (Display the Favorites menu)
MMC Console Window Keyboard Shortcuts
CTRL+P (Print the current page or active pane)
ALT+Minus sign (-) (Display the window menu for the active console
SHIFT+F10 (Display the Action shortcut menu for the selected item)
F1 key (Open the Help topic, if any, for the selected item)
F5 key (Update the content of all console windows)
CTRL+F10 (Maximize the active console window)
CTRL+F5 (Restore the active console window)
ALT+ENTER (Display the Properties dialog box, if any, for the
selected item)
F2 key (Rename the selected item)
CTRL+F4 (Close the active console window. When a console has only one
console window, this shortcut closes the console)
Remote Desktop Connection Navigation
CTRL+ALT+END (Open the m*cro$oft Windows NT Security dialog box)
ALT+PAGE UP (Switch between programs from left to right)
ALT+PAGE DOWN (Switch between programs from right to left)
ALT+INSERT (Cycle through the programs in most recently used order)
ALT+HOME (Display the Start menu)
CTRL+ALT+BREAK (Switch the client computer between a window and a
full screen)
ALT+DELETE (Display the Windows menu)
CTRL+ALT+Minus sign (-) (Place a snapshot of the active window in the
client on the Terminal server clipboard and provide the same
functionality as pressing PRINT SCREEN on a local computer.)
CTRL+ALT+Plus sign (+) (Place a snapshot of the entire client window
area on the Terminal server clipboard and provide the same
functionality as pressing ALT+PRINT SCREEN on a local computer.)
m*cro$oft Internet Explorer Navigation
CTRL+B (Open the Organize Favorites dialog box)
CTRL+E (Open the Search bar)
CTRL+F (Start the Find utility)
CTRL+H (Open the History bar)
CTRL+I (Open the Favorites bar)
CTRL+L (Open the Open dialog box)
CTRL+N (Start another instance of the browser with the same Web
CTRL+O (Open the Open dialog box, the same as CTRL+L)
CTRL+P (Open the Print dialog box)
CTRL+R (Update the current Web page)
CTRL+W (Close the current window)

Tuesday, April 21, 2009

Wowza media server

Wowza Media Server Pro is the only industrial strength Flash streaming server software delivered by a company solely focused on media servers. With Wowza Pro you get it all:
  • High Performance - the only solution for scaleable, true 24x7 live streaming
  • Protected - SecureToken anti-ripping technology and encrypted streaming for content protection
  • Innovative - exclusive support for non-Flash live encoders and SHOUTcast re-streaming
  • Interactive - two-way streaming audio, streaming video, shared object support and server side programming
  • Economical - 75% less than Adobe Flash Media Interactive Server

There are some examples for video recording, video streaming, video chats and many more in the example section included with the package. For more details please visit:


Thursday, January 8, 2009

SalesForce Single Sign On With Symfony


Single Sign-On is a process that allows network users to access all authorized network resources without having to separately log in to each resource. Single Sign-On also gives your organization the ability to integrate with an external identity management system or perform web based single sign on to

How Single Sign-On Works

The high-level process for authenticating users via Single Sign-On is as follows:
1. When a user tries to log in—either online or using the API—Salesforce validates the username and checks the user’s profile settings.
2. If the user’s profile has the "Uses Single Sign-on" user permission, then Salesforce does not authenticate the username with the password. Instead, a Web Services call is made to the user’s single sign-on service, asking it to validate the username and password.
3. The Web Services call passes the username, password, and sourceIp to a Web Service defined for your organization. (sourceIp is the IP address that originated the login request). You must create and deploy an implementation of the Web Service that can be accessed by servers.
4. Your implementation of the Web Service validates the passed information and returns either "true" or "false."
5. If the response is "true," then the login process continues, a new session is generated, and the user proceeds to the application. If "false" is returned, then the user is informed that his or her username and password combination was invalid.

Enabling Single Sign-On

1. Contact to turn on Single Sign-On for your organization.
2. Build your SSO Web Service:
Download the Web Services Description Language (WSDL) file, AuthenticationService.wsdl, that describes the Single Sign-On service. It can be used to automatically generate a server-side stub to which you can add your specific implementation. You can download the file from Setup | Develop | API | Download Delegated Authentication WSDL. The file should be saved in web directory of symfony project.

3. In Salesforce, specify your organization’s Single Sign-On Gateway URL by clicking
Setup | Security Controls | Single Sign On Settings.

4. Modify your user profiles to contain the "Uses Single Sign-On" user permission. In Salesforce, click Setup | Manage Users | Profiles to add or edit profiles. It is recommended you create a new user with a new profile to test single sign on. Do not test with the administrator account.

Process Flow

Token Generation

You can use any string as a token. But to make it secure you have to follow some encryption and decryption mechanisms. Symfony uses a plugin dwCrypt which will provide encryption and decrption functions. For the plugin to work, Mcrypt package need to be installed which in turn requires libmcrypt­2.5.8 and mhash­0.9.9 packages.
The installation procedure is given below:
1. Download and install libmcrypt­2.5.8
2. Download and install mhash­0.9.9
3. Download and install mcrypt­2.6.7
4. Enable mcrypt package for php.
5. Install dwCrypt plugin for symfony
symfony plugin-install


I.Specify a link in your intranet page which map to an action which submits SSO request to salesforce.

II.Submit SSO Request

The above url route to this action.
1.Create a function in action class to send the SSO request to salesforce.
The function should contain the following codes

$this->username = sales_force_username;
$this->token = $this->generateToken($this->username);

$this->logoutURL = the_url_that_should_appear_after_logging_out_from_salesforce

$this->startURL = sales_force_home_url_after_logging_in;
$this->ssoStartPage = "";

2.Generate token

public function generateToken($username)
$cryptService = new sfCrypt();
$token = $cryptService->encrypt($username);
return $token;

3.Submit Form

The form should submit username and token to salesforce. The following code describes the template



II. Get the soap request from salesforce.
Salesforce will contact the web service in the gateway URL with a SOAP request when the form is submitted.Suppose the gateway url is ' The code for WebService.php is given below,

define('SF_ROOT_DIR', realpath(dirname(__FILE__).'/..'));
define('SF_APP', 'symfony_application_name');
define('SF_ENVIRONMENT', 'soap');
define('SF_DEBUG', true);


ini_set("soap.wsdl_cache_enabled", "0");

$server = new SoapServer(sfConfig::get('AuthenticationService.wsdl'));


Notice that the file should reside in web directory

myWebServiceController.class.php should be written in symfony_project/apps/symfony_app_name/lib directory.

class myWebServiceController extends sfController

public $request;

* Function to initialize SOAP request
* @return void
public function __construct()
$this->context = sfContext::getInstance();
$this->request = $this->context->getRequest();

* The function handles soap request. It first parses the request.
* The user will be logged in if the
* response is true and will not be logged in if an exception is caught.
* @param Object $soapRequest - The soap request object
* @return array
function Authenticate($soapRequest)

/** This loop parses the incoming request and stores the username and token in an array*/

foreach ($soapRequest as $key=>$value)
$loginInfo[$key] = $value;

You can add validation for the incoming token here. The variable $loginInfo['password'] will give the token in the request. To authenticate the user you have to set the
Authenticated parameter to true

return array("Authenticated"=>'true');
catch (Exception $e)
throw new SoapFault("1", $e->getMessage());


If Authenticate is set to true, user become authenticated and can see the home page for logged-in users of

for more details please visit the article by my friend Rajeev:

Install Symfony1.1 in Windows with WAMP

Install Symfony1.1 in Windows with WAMP

Part 1 - Installing WAMP

WAMP is a self-installing, all-in-the-box package with Apach, MySQL and PHP 5.

1.Download WampServer2.0c.exe from if local copy is not there.
2.Double click WampServer2.0c.exe.
3.Symfony needs PHP-XSL and Apache URL Rewrite Module to function normally.

a. To activate the Rewrite module - left click on WAMP’s tray icon and then in
Apache >> Apache Modules menu select rewrite_module
(Server will automatically reboot)
b. To enable XSL for php - left click on WAMP’s tray icon and then in
PHP >> PHP Extension menu look for php_xsl and click it.
Open C:\wamp\bin\php\php5.2.6\php.ini and remove “;” from the line:
c. Save and close the file.

4.Add environment variables to have access to PHP & MySQL under the command line.
Right-click on My Computer, then Properties. Switch to Advanced tab and click the Environment Variables button. At the end of variable PATH let’s add; C:\wamp\bin\php\php5.2.6; C:\wamp\bin\mysql\mysql5.0.51b\bin (paths to MySQL and PHP files separated by a semicolon)

Part 2 - PEAR Install

PEAR (PHP Extension and Application Repository) is a PHP extension distribution system.
In the WAMP’s PHP directory (ie. C:\wamp\bin\php\php5.2.5\) run the go-pear. bat file. Follow the installation steps and answer the questions, the default config should be fine, so you can answer:
[Enter] (default value) - if we want PEAR installed system wide.
[Enter] - If we don’t want to change the directory structure.
Y - We allow PEAR to modify our php.ini.
And [Enter] twice to finish.
Inside the PHP directory the installer created a PEAR_ENV.reg file, which after double-clicking will add all the PEAR variables to the registry - no need to do it by hand. Also add the path C:\wamp\bin\php\php5.2.5\ to environmental variable similar to the one mentioned above.

Part 3 - Installing Symfony
Open the command line and write:
> pear channel-discover

If everything goes well, the following lines get displayed on the console:

Adding Channel “” succeeded
Discovery of channel “” succeeded

Execute the following command in the console
> pear install symfony/symfony-1.1.6

Part 4 - Create Symfony project

Execute the following from command line;

> cd C:\wamp\www
> mkdir myproject
> cd myproject
> symfony init-project myproject
> symfony init-app testapp
> symfony init-module testapp firstpage

The work can be seen at http://localhost/myproject/web/

Part 5 – Configuring Apache for the project

1.Open httpd.conf in the folder C:\wamp\bin\apache\apache2.2.8\conf
You can see Listen 80 statement. Include Listen 81 below that. (You are going to host the application in port 81)
2.Remove # from the line,
# Include conf/extra/httpd-vhosts.conf
3.Save and close the file.
4.Open httpd-vhosts.conf in the folder C:\wamp\bin\apache\apache2.2.8\conf\extra
5.Add new virtual host for your application.
6.Save and close the file.
7.Restart Apache : left click on WAMP’s tray icon and then in
Apache >> Service >> Restart Service

8.Take a browser and type http://localhost:81/ in the address bar.
You can see a page similar to the one given below:

[This article was created by my friend Rajeev Gopinath. Also thanks to Anoop Philip...]

Tuesday, January 6, 2009

BITSONTHERUN - Hassle-free video hosting

Bits on the Run is a clear and powerful system for converting, managing and streaming video on your site.

These features highlight why Bits on the Run is a full-fledged yet easy to work with videohosting solution. Find out why we are easier to set up, more flexible, cheaper and better to integrate than competing products.
  • High-Quality Video

  • Custom Video Players

  • Flexible Playlists

  • Hands-on support

  • Easy Workflow

  • Extensive API

  • Effective Advertising

  • Clear Pricing

Friday, December 26, 2008

PhpUnderControl Framework For Symfony Projects


phpUnderControl is an extension for Cruise Control that integrates several PHP development tools, such as

  • PHPUnit
    • Which contains a rich set of features like Unit Testing and Functional Testing, Code Coverage, Project Mess Detection and Software Metrics etc,
  • PHP_Code Sniffer
    • For static code analysis
  • PHPDocumentor
    • For API documentation generation. It comes with a powerful command-line tool that can, among other things, automatically create Cruise Control’s XML configuration files for your project.

To know more about PhpUnderControl please visit the blog posted by my friend Anoop:

Symfony Coding Standards

The golden rule: Imitate the existing symfony code

[1] Never use tabulations in the code. Indentation is done by steps of 4 blanks. For yml files 2 blanks should be used.

[2] Don't put spaces after an opening parenthesis and before a closing one.
if ($reqvalue == _getRequestValue($name)) correct
if ( $reqvalue == _getRequestValue($name) ) incorrect

[3] Use camelCase, not underscores, for variable, function and method names.

[4] Use underscores for helper functions name (only for symfony 1.0 stuff).

[5] Use underscores for option/argument/parameter names.

[6] Braces always go on their own line.

[7] Use braces for indicating control structure body regardless of number of statements it contains.

[8] Don't end library files with the usual ?> closing tag. This is because it is not really needed, and because it can create problems in the output if you ever have white space after this tag.

[9] In a function body, return statements should have a blank line prior to it to increase readability.

function fooFunction()
if (condition2 || condition3)
return 1;

return null;

[10] All one line comments should be on their own lines and in this format.
// space first, with no full stop needed

[11] Avoid evaluating variables within strings, instead opt for concatenation es and string with a lot of substitution
$string = 'something';
$newString = "$string is awesome!"; // bad, not awesome
$newString = $string.' is awesome!'; // better
$newString = sprintf('%s is awesome', $string); // for exception messages and string with a lot of substitution

[12] Use lowercase constants: false, true, null

[13] To check if a variable is null or not, use the is_null() function

[14] When comparing a variable to a string, put the string first:
if (1 == $variable)

[15] A phpdoc block begins with a single line ending with a point. All @... statements does not end with a dot:
* Notifies all listeners of a given event.
* @param sfEvent A sfEvent instance
* @return sfEvent The sfEvent instance