Kurinchi Blogger Scribbles …


Archive for the ‘General’ Category

Dec 06
2009

HTTP-Header: User-agent modification

Last updated: December 5th, 2009

When a browser makes a request to the server, it sends information such as its operating system name, version in addition to the type of the browser from which the request originates in the header variable “user-agent”.

Depending on the request made, server responds back with specific details which can range from browser specific css layout to calling certain javascriptsfor certain browsers.

Changing the user-agent also helps us in understanding how spider-agents or bots will see the pages that we build. It also helps us design applications that will mimic a request as originating from a mobile phone and helps us in viewing the behavior of the application in different mobile clients.

To read more about HTTP-Headers check ietf

Dec 04
2009

LogMeIn, Hamachi: Create VPN in minutes

Last updated: December 3rd, 2009

Managed or Unmanaged networks? Create a VPN in minutes with this software which is available FREE of cost for non-commercial use.

Setting up a Virtual Private Networks is as easy as clicking through the buttons. Check out this product at LogMeIn

Nov 27
2009

WebScarab for web application test

Last updated: November 28th, 2009

WebScarab is a testing tool used for analysing application data that is passed between browsers and servers. It can be used to review and modify data at either end by intercepting data originating from http and https layers. This tool can also be used as a bandwidth simulator (slow/fast network), in session id analysis, spidering url’s, parameter analysis and for many other testing schemes.

WebScarab is developed as an open source tool by The Open Web Application Security Project (OWASP) and can be downloaded from OWASP website

Nov 19
2009

GUID: Meaning and its application

Last updated: November 19th, 2009

GUID stands for “Global Unique Identifier” and is a term usually referring to Microsoft’s implementation of unique identity number (in a distributed environment) that it generates to identify different entities such documents, COM’s, DLL’s, interfaces, records, and other objects. It is also known as UUID – Universal Unique Identifier interchangeably.

GUID implemenation is a 128 bit (16 byte) value consisting of sets of hexadecimal digits separated by hyphens. As the total number of unique keys is large the probability of two numbers being the same is very small.

The AutoNumber datatype in MS-Access and the Identity datatype in SQL Server is a GUID implementation.
(more…)

Nov 17
2009

Firefox: Developer Friendly Browsing Tool

Last updated: November 16th, 2009

Firefox is one of the best tool available for web developers which equips the developer with code testing and debugging capabilities.

There are many useful firefox options and extensions that comes in handy during software development life cycle and in this article we will be listing few of useful plugins that we commonly use.

To find information related to the page that is getting displayed on the browser click Tools > Page info. This will give you permission settings of a page, security identity of the page, feed url and other page specific information like page content-type, encoding, meta tags used, cookie permission settings etc.

Web Developer extension
Added as a toolbar in firefox, this extension gives CSS related information, page information, outlines page elements, tab index, gives topographic information and many such details.
(more…)

Nov 16
2009

SSL: Points to consider before choosing the right certificate

Last updated: November 16th, 2009

Points to consider before choosing the SSL certificate

i) Strength of the encryption offered by the certificates

ii) Browser comptability or recognition of the certificates. A well known brand is recognized by most of the browsers in the market

iii) If the certificate offers backward comptability across browsers offering

iv) Whether the Certification Authority (CA) is a Trusted Root or if they use a Chained Root Certificates.

v) Which web server will be used for SSL installation. Chained root certificates may be little complicated on some web servers.

vi) Nature of the application that will be served over the SSL – depending on the volume of the transactions and the value of each transaction

vii) Warranty offered by the certificate (if that matters which most certainly is when it comes to ECommerce products)

Nov 11
2009

UTF and Byte Order Mark (BOM)

Last updated: November 11th, 2009

UTF abbr. Unicode Transformation Format is a super set of characters that facilitates the display of characters from ALL languages that is currently in use.

BOM stands for Byte Order Mark (also known as ZERO WIDTH NON-BREAKING SPACE) appearing at the beginning of a data stream to define the byte order (whether it is little endian or big endian). BOM is to indicate that the file is Unicode based.

Possible problem caused by Byte Order Mark
In IE6, it will send the dispaly into quirks mode with its presence before “<DOCTYPE …”

How to check the presence of BOM?
View the source code of the page that does not display correctly in a user agent. Or, open the file in the editor which does not support UTF encoding to see the BOM’s signature on the files.

Suggestion
If the user-agent gives problem when you program for multi-lingual websites, check the editor settings to see what format is being used for saving program files. Notepad++ has the option to convert files to UTF and to UTF without BOM. Use the appropriate settings to convert your files.

A character set related tutorial on W3C site can be found here

Byte Order Mark on Wiki

Article on PHP and UTF

Nov 10
2009

Query string limit in GET data and Size limit in POST Data

Last updated: November 11th, 2009

RFC 2616 – Section 3 states:

“Servers should be cautious about depending on URI lengths above 255 bytes because some older client or proxy implementations may not properly support these lengths.”

Different browser agents support different URI length acceptance. In addition, servers too play a role in accepting/denying URI’s over certain length which may either truncate the URI or may give lengthy URI message indications.

It is always advisable to rely on shorter URI’s and to post data when more field sets are to be transferred across web pages.

POST data too has its limit. In this case, it is the size of the data which is controlled by the server settings.

Some interesting discussions:

Limit on query string GET URL parameters

Oct 11
2009

Passing data from HTTPS to HTTP

Last updated: October 10th, 2009

Have you ever come across a situation when you need to pass data from HTTPS to HTTP controlled web pages? If you have, you would have come to know that the header values especially REFERER values become empty. Reason for this being that it is not secure to transfer data from a security controlled HTTPS layer to a non-secure site serving HTTP content.

This is one of the key points to remember if you are involved in integrating applications

Solution(s) to the above scenario
i) Transfer data between HTTPs layers instead
ii) pass GET data as query string values
iii) Programatically handle the session across the two sites behind the scenes either by storing a cookie or through database controllers

Some of the tools that comes handy in checking the Header Values are FireBug, Live HTTP Headers, HTTP Watch plugin

Oct 10
2009

How to include PEAR libraries with CakePHP?

Last updated: October 8th, 2009

Suggested solutions from other sites:
1) Modify /config/paths.php
2) Create separate php.ini settings file with the path to PEAR library
3) Modify the app_controller.php with the PEAR path settings

My preference is to add the PEAR library to the “vendors” folder and to modify the app_controller to have the PEAR path included through it.

if( file_exists(VENDORS.’Pear’)){
ini_set(‘include_path’, ini_get(‘include_path’) . PATH_SEPARATOR . PEAR);
}

Above solution suggested at CakePHP’s trac

Depending on the library that you want to get included in the programs, add the library to the respective view

App::import(‘vendor’, ‘XML_Feed_Parser’, array(‘file’ => ‘../vendors/pear/XML/Feed/Parser.php’));


Valid HTML 4.01 Strict  Valid HTML 4.01 Strict