<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Neuromedia</title>
	<atom:link href="http://www.neuromedia.co.za/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.neuromedia.co.za</link>
	<description></description>
	<lastBuildDate>Fri, 24 Feb 2012 17:30:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Responsive Web Design</title>
		<link>http://www.neuromedia.co.za/responsive-web-design/</link>
		<comments>http://www.neuromedia.co.za/responsive-web-design/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 12:18:22 +0000</pubDate>
		<dc:creator>Neuromedia</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[copywriting]]></category>
		<category><![CDATA[responsive web design]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=147</guid>
		<description><![CDATA[What is responsive web design? The term Responsive Web Design was coined by web designer Ethan Marcotte (http://unstoppablerobotninja.com/) in an article on A list Apart (http://www.alistapart.com), and it basically amounts to a new way of designing and developing websites to ensure that the design is optimized for all possible types of browser window displays, resolutions,  [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What is responsive web design?</strong></p>
<p>The term Responsive Web Design was coined by web designer Ethan Marcotte (http://unstoppablerobotninja.com/) in an article on <em>A list Apart</em> (http://www.alistapart.com), and it basically amounts to a new way of designing and developing websites to ensure that the design is optimized for all possible types of browser window displays, resolutions,  sizes and shapes as well across browsing platforms, using a combination of flexible or fluid grids, flexible images and CSS media queries. Marcotte qualified his definition by saying that:</p>
<p><em>“A responsive design is composed of three distinct parts:</em></p>
<ol>
<li><em>1.      </em><em>A flexible grid.</em></li>
<li><em>2.      </em><em>Flexible images. Or more specifically, images that work in a flexible context (whether fluid themselves, or perhaps controlled via overflow).</em></li>
<li><em>3.      </em><em>CSS3 Media queries, which optimize the design for different viewing contexts, and spot-fix bugs that occur at different resolution ranges.”</em></li>
</ol>
<p>With the advent of smartphones, e-readers, netbooks and tablets, the number of screen-sizes and devices our websites are served to and displayed on are increasing exponentially as are browsing methods such as the use of touchscreens, game controllers, mice and keyboards. Thus as technology grows and changes so must our scope as designers. Responsive web design means a whole new way of working when designing, including using new features of CSS3 and tools like Javascript and PHP to ensure that websites are completely scalable from one device to another and from portrait to landscape on devices that offer both. For example, instead of using absolute values, scalable web design means using percentages and em’s.</p>
<p>Clients will obviously want designs that are accessible across a wide range of devices, and one option up until now has been to design separate websites for separate devices. While this still has its place in some scenarios, responsive web design offers an alternative to this.</p>
<p>Some of the basic tools and techniques needed to accomplish the design of a responsive website will now be examined more closely.</p>
<p>&nbsp;</p>
<p><strong>2. Features of responsive web design</strong></p>
<p><strong>Responsive Typography</strong></p>
<p>Responsive typography means that your typography and its attributes scale to be optimally legible on the screen they are being read on and remain correctly positioned within the design structure. This means that when coding, you will use em’s and percentages instead of absolute pixel or point sizes so that fonts remain resolution independant. Using different stylesheets or CSS3 media queries, text can be altered to display legibly for the device the user is reading on.</p>
<p>There are also external tools such as Lettering.js (http://letteringjs.com/) which grant designers much greater control over their web typography (letter spacing, leading and kerning) by making font sizes flexible and FitText (http://fittextjs.com/) which makes heading sizes relative to the width of the parent containers and display devices, rather than relative to the other text, so that they fill space as they should.</p>
<p><strong>Flexible images</strong></p>
<p>As the name suggests, flexible images are images that scale with the size of the device screen. There are several ways to accomplish flexible images sizing, some of which are simple but more resource-heavy and others more complex but lightweight in terms of image load times.</p>
<p>Using just HTML and CSS, the width and height of an image can be set using the CSS <strong>max-width </strong>property. When set to 100%, images will be loaded to the site at their original sizes and then resized by the browser to fit the containers they are in (which with media queries will change depending on the device they are viewed on). The downside to this is that for smaller devices like mobiles, page load times can be unnecessarily slowed down by an image-heavy page or large images.</p>
<p>Another option is to crop images using the <strong>overflow: hidden</strong> CSS property, meaning only selected portions of an image will display on smaller screens.</p>
<p>Moving on to more complex methods of display, scripts like Javascript and PHP can be used to select from many versions of an image on a server and display them to the site depending on screen size and resolution.</p>
<p><strong>Responsive web page layouts</strong></p>
<p>The use of flexible grids is paramount to responsive web design. The flexible grid builds on the idea of liquid layouts and basically means that designers must stop using pixel values to define elements and start using percentages – all layout elements must be calculated as percentages relative to their parent containers.</p>
<p>CSS3 media queries are the crux of responsive web design and responsive web page layouts. They are applied to toggle the website layout width and height in response to the width and height of the user device and allow the designer to code any styling element to display differently depending on the size of the screen width or resolution it will appear on.</p>
<p>This means that a 3-column desktop website can become a single column mobile website by changing the layout and positioning of column elements using the media query inside a stylesheet or by linking to a completely separate stylesheet in the link tag, for example:</p>
<p>&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; media=&#8221;screen and (max-device-width: 480px)&#8221; href=&#8221;example.css&#8221; /&gt;</p>
<p>This would link any device with a screen and display size of less than 480px to a stylesheet called example.css, and bypass the main website stylesheet altogether.</p>
<p><strong>Testing and cross-browser support</strong></p>
<p>Naturally, it is vital to test your websites across all the major browsers, both pc and mobile as well as testing them on as many devices as possible. Software applications such as Adobe Device Central are very useful for testing like this as it has a large library of device interfaces on which to display your design. Free tools like Web Developer (http://chrispederick.com/work/web-developer/) are also very useful for web development testing as they allow you to view your designs in many different window sizes.</p>
<p>When trying to be as wide-reaching as possible, there will always be gaps and shortfalls where things do not work across all the mediums you are trying to reach. In some cases, Javascript or other scripting fixes can be applied to compensate for browser incompatibilities, especially for earlier versions if IE or mobile devices which don’t support many of the newer features of CSS and HTML5 like the media query.</p>
<p>In some circles, these is a growing de-emphasis on the necessity for a website to look identical from browser to browser providing the site displays in a functional and aesthetically pleasing way. Naturally, those users with browsers that support features such as HTML5 and CSS3 will have a richer experience, but as long as the content of the site is accessible to all, the exhaustive amounts of time that can be wasted trying to get the site looking identical across all browsers can be bypassed by accepting the differences as they are.</p>
<p>&nbsp;</p>
<p><strong>3. C</strong><strong>onclusions</strong></p>
<p><strong>Pros</strong></p>
<p>Responsive web design is a good way to “future proof” websites against the ever-changing nature of the technology we use to view the web with. Its nature makes it adaptive and thus longer lasting in terms of the life-span of the website. It eliminates the need for different designs for different devices and thus saves time.</p>
<p>As opposed to a simple static design, a responsive design improves overall user experience by offering the user something he can view correctly over all his various internet access platforms, and possibly even makes the site accessible to more users that it would have been otherwise as so many users (especially in this country) have mobile internet access, but no desktop access.</p>
<p>It forces designers to think outside of the standard-static-website box, (which we should have been doing for a while now anyway) and expand the scope of our designs.</p>
<p>&nbsp;</p>
<p><strong>Cons</strong></p>
<p>Different devices have different capabilities, and responsive web design on the whole does not seem engineered to design to the lowest common denominator (i.e. older, slower mobile devices).</p>
<p>CSS Media queries are applied only after all content has been downloaded, including images markup, scripts, etc, meaning that even if the display looks good across all devices, there will be bandwidth problems for mobiles especially in cases of image-rich sites. Only if smaller images are served to the mobile separately using scripting, will this problem be overcome.</p>
<p>In addition, CSS3 Media queries are not supported by most mobile handsets or by older web browsers, meaning that complex javascript workarounds may be necessary.</p>
<p>Responsive web design has been called a fad and a quick fix by some, who are in favour of device-specific development, saying that it is not possible to downscale a desktop website effectively and still get a pleasing outcome. Certainly, responsive design cannot make a website all things to all people and there is only so much that media queries can achieve. Due to the sheer number of different devices out there, a site is never going to look perfect on all of them.</p>
<p>&nbsp;</p>
<p><strong>The future</strong></p>
<p>There is a place for responsive web design out there, but one needs to look very carefully at what the website is trying to achieve. Simply put, responsive web design is appropriate for certain websites and not appropriate for others.</p>
<p>For any standard run-of-the-mill website, having a responsive site is a great idea, but a before committing to the design, a detailed analysis of who visits the site, from where (what devices) and why, will help the designer decide whether going the responsive route is best, or whether designing a dedicated mobile site is a better idea. At the end of the day, the user decides the role responsive web design will play.</p>
<p>When a mobile user is after content and nothing much else, for example on a news website, it makes more sense to build a separate mobile site mainly stripped of images, giving it a better load time, and perhaps use responsive web design to tackle desktop and tablet devices.</p>
<p>In addition, in the case of large application websites like Facebook, it would seem evident that mobile apps are more appropriate than a resized version of the main site because the user can find and access what they want instantly instead of having to navigate around. The same would apply to image-rich consumer websites where the user wants <em>limited and</em> <em>specific data that is easy to find</em>. Instead of having him scroll around looking for things, building an appropriate mobile interface would probably be a better route.</p>
<p>I tend to agree with Kayla Knight from Smashing Magazine, that responsive web design is not the be-all and end-all answer to mobile and device web design, it is merely a concept and one of several options, which, “when implemented correctly can improve the user experience as technology evolves.” It is certainly more inclusive than the alternatives and <em>will</em> reach a wider range of web users. It is brilliant that using CSS3 and HTML 5 we can now build a site that will port from the oldest pc to the newest mobile device in a way that wasn’t possible 5 years ago, but I believe that mobile-specific sites or alternatively mobile apps, will also always have their place.</p>
<p>&nbsp;</p>
<p><strong>References</strong></p>
<p><strong>Ethan Marcotte clarifies his definition of “Responsive Web Design</strong>”. June 23 2011. David Cochran .09 September 2011. <a title="http://alittlecode.com/ethan-marcotte-clarifies-his-definition-of-responsive-web-design" href="http://alittlecode.com/ethan-marcotte-clarifies-his-definition-of-responsive-web-design">http://alittlecode.com/ethan-marcotte-clarifies-his-definition-of-responsive-web-design</a></p>
<p><strong>10 Excellent Tools for Responsive Web Design</strong>.  Aug 3 2011 . Jason Gross. 09 September 2011. <a title="http://sixrevisions.com/tools/responsive-web-design/" href="http://sixrevisions.com/tools/responsive-web-design/">http://sixrevisions.com/tools/responsive-web-design/</a></p>
<p><strong>Fit To Scale</strong>. May 10th, 2011. Trent Walton. 13 September 2011. <a title="http://trentwalton.com/2011/05/10/fit-to-scale/" href="http://trentwalton.com/2011/05/10/fit-to-scale/">http://trentwalton.com/2011/05/10/fit-to-scale/</a><strong></strong></p>
<p><strong>Responsive Web Design: What It Is and How To Use It</strong> .January 12th, 2011. Kayla Knight. September 13<sup>th</sup> 2011. <a title="http://coding.smashingmagazine.com/2011/01/12/guidelines-for-responsive-web-design/" href="http://coding.smashingmagazine.com/2011/01/12/guidelines-for-responsive-web-design/">http://coding.smashingmagazine.com/2011/01/12/guidelines-for-responsive-web-design/</a></p>
<p><strong>Responsive Web Design.</strong> May 25, 2010. Ethan Marcotte. September 08 2011. <a title="http://www.alistapart.com/articles/responsive-web-design/" href="http://www.alistapart.com/articles/responsive-web-design/">http://www.alistapart.com/articles/responsive-web-design/</a></p>
<p><strong>Understanding the Elements of Responsive Web Design</strong>. March 14, 2011. Jason Gross. 09 September 2011. <a title="http://sixrevisions.com/web_design/understanding-the-elements-of-responsive-web-design/" href="http://sixrevisions.com/web_design/understanding-the-elements-of-responsive-web-design/">http://sixrevisions.com/web_design/understanding-the-elements-of-responsive-web-design/</a></p>
<p><strong>Responsive Web Design Techniques, Tools and Design Strategies</strong> July 22nd, 2011. Smashing Editorial. 09 September 2011. <a title="http://www.smashingmagazine.com/2011/07/22/responsive-web-design-techniques-tools-and-design-strategies/" href="http://www.smashingmagazine.com/2011/07/22/responsive-web-design-techniques-tools-and-design-strategies/">http://www.smashingmagazine.com/2011/07/22/responsive-web-design-techniques-tools-and-design-strategies/</a></p>
<p><strong>Foreground images that scale with the layout</strong>. April 24, 2009. Zoe Mickley Gillenwater. 13 September 2011. <a title=" http://zomigi.com/blog/foreground-images-that-scale-with-the-layout/" href=" http://zomigi.com/blog/foreground-images-that-scale-with-the-layout/"> http://zomigi.com/blog/foreground-images-that-scale-with-the-layout/</a></p>
<p><strong>Responsive Web Design &#8211; Stop and Think.</strong>  26 August 2011.  Anthony Grace. <a title="http://www.codersbarn.com/post/2011/08/26/Responsive-Web-Design-Stop-and-Think.aspx" href="http://www.codersbarn.com/post/2011/08/26/Responsive-Web-Design-Stop-and-Think.aspx">http://www.codersbarn.com/post/2011/08/26/Responsive-Web-Design-Stop-and-Think.aspx</a></p>
<p><strong>Responsive Web Design, most complete guide</strong>. September 13th, 2011. WebDesignShock. 14 September 2011. <a title="http://www.webdesignshock.com/responsive-web-design/" href="http://www.webdesignshock.com/responsive-web-design/">http://www.webdesignshock.com/responsive-web-design/</a></p>
<p><strong>11 reasons why Responsive Design isn’t that cool!</strong> August 24th, 2011. WebDesignShock. 14 September 2011. <a title="http://www.webdesignshock.com/responsive-design-problems/   " href="http://www.webdesignshock.com/responsive-design-problems/   ">http://www.webdesignshock.com/responsive-design-problems/</a></p>
<p><a title="http://www.webdesignshock.com/responsive-design-problems/   " href="http://www.webdesignshock.com/responsive-design-problems/   "> </a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuromedia.co.za/responsive-web-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5 Common PHP security issues and how to address them</title>
		<link>http://www.neuromedia.co.za/5-common-php-security-issues-and-how-to-address-them/</link>
		<comments>http://www.neuromedia.co.za/5-common-php-security-issues-and-how-to-address-them/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 12:04:54 +0000</pubDate>
		<dc:creator>Neuromedia</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[copywriting]]></category>
		<category><![CDATA[Cross Site Scripting (XSS)]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP security]]></category>
		<category><![CDATA[Remote file inclusion and remote code execution]]></category>
		<category><![CDATA[Session and cookie hacking]]></category>
		<category><![CDATA[SQL injection]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=143</guid>
		<description><![CDATA[PHP has developed into the most popular language for programming on the web, but like all languages, it has its weaknesses. Described below are some of the more common areas of vulnerability found in PHP web applications and suggestions on how they can be managed and prevented. &#160; 1. SQL injection What is it? One [...]]]></description>
			<content:encoded><![CDATA[<p>PHP has developed into the most popular language for programming on the web, but like all languages, it has its weaknesses. Described below are some of the more common areas of vulnerability found in PHP web applications and suggestions on how they can be managed and prevented.</p>
<p>&nbsp;</p>
<h3>1. SQL injection</h3>
<p><strong>What is it?</strong></p>
<p>One of the most common forms of hacking, it is an attack specifically targeted at database-driven web applications or websites which link to and interact with databases. A SQL injection attack is a type of code injection where the attacker exploits vulnerabilities in the website’s security measures in order to send special SQL queries to the database that can modify it, delete data and tables within it or delete the whole database in the worst case.</p>
<p>Attacks occur when the developer has failed to build in any checking or data validation functionality for the areas of the site where data from external sources can be inserted into the site. Attackers will append their own SQL statements into unprotected SQL queries that utilise data submitted by a user to look up something in the database.  Attack entry points can include search boxes, login forms, email query forms, signup boxes, etc.</p>
<p>Where user input is allowed to directly interact with building the SQL statement which interacts with the database, with no form of filtering, an attacker can easily control the statement that is executed.</p>
<p>So for example, an unprotected statement would be:</p>
<p><em>$query = &#8220;SELECT * FROM users WHERE username = &#8216;niki&#8217;&#8221;;  </em></p>
<p>A SQL injection query will result in the following attempt:</p>
<p><em>$query = &#8220;SELECT * FROM users WHERE username = &#8221; or &#8217;1=1&#8242;&#8221;;</em></p>
<p>The result returned here would always be true, and thus the contents of the entire table<em> users </em>would be displayed.</p>
<p><strong>What are the implications?</strong></p>
<p>Attackers can gain access to all the information in the database including names, usernames, passwords and other sensitive information.</p>
<p>Tables and information in the databases can be altered, created or dropped which could obviously have dire effects on the front end of the website.</p>
<p>The entire website can be defaced if the hacker gains admin privileges.</p>
<p><strong>How can it be prevented?</strong></p>
<ul>
<li>Data must be verified, validated and cleaned up before it can enter the application &#8211; all input received must be sanitised.</li>
<li>Sensitive information such as passwords should be encrypted using SHA or SHA1</li>
<li>Any technical information must be removed from error messages which can sometimes contain technical details that might reveal security vulnerabilities to an attacker. Attackers will specifically look to error messages to get information such as database names, table name and usernames. Error messages can be disabled or you can create your own custom error messages.</li>
<li>Limit the permissions granted on the database – the fewer permissions, the lower chance of attack – for example, people accessing the front end of a website through a signin need  far fewer permissions than someone accessing the backend CMS.</li>
<li>The best way to santise data is to ‘escape’ any characters in a string entered into the website which may have special meaning in MYSQL and therefore potentially be dangerous. When a character is escaped it is effectively ignored by the database and made ineffective in a query. The standard character used by PHP and MY SQL to escape characters is the backslash (). This technique is used in several functions in PHP which exist to protect and sanitise data.</li>
</ul>
<p>The <strong>mysql_real_escape_string</strong>  escapes any special characters in a string and replaces characters that have a special meaning in MySQL with an escape sequence for use in an SQL statement  - the function adds backslashes to the following characters &#8211; n, r, x00, x1a, ’, ” . Note: this function is for PHP versions 4.3.0 and above. Another (older) option to use is <strong>addslashes.</strong></p>
<p>There is a function called <strong>magic_quotes_gpc</strong>  &#8211; when this on, then all the POST, GET, COOKIE data is escaped automatically, but this function is now deprecated.</p>
<p>You can take your protection one step further and prevent words such as ‘update’, ‘insert’, ‘drop’, and ‘union’ from being added to the database (these all being words which can alter tables and databases), but this may affect valid queries on your database.</p>
<ul>
<li>One way to bypass the problem if you are an inexperienced developer is to use a pre-existing framework such as CakePHP (http://cakephp.org/) or a prebuilt CMS such as WordPress or Drupal, which have built-in routines and security measures to prevent SQL injection.</li>
</ul>
<p>&nbsp;</p>
<h3>2. Cross Site Scripting (XSS)</h3>
<p><strong>What is it?</strong></p>
<p>Probably the most common form of hacking, this is where a hacker uses a legitimate website’s vulnerability to force that website to do certain things. The malicious user embeds client side scripting commands (often JavaScript or HTML but can be, VBScript, ActiveX or Flash) in order to collect session information and cookies and use these to hijack sessions and further attack the site. The inserted code can be used in several ways, including to steal other user’s private information or to deface the site by rewriting the content of the HTML pages.</p>
<p>Forums and message boards are especially vulnerable to this type of attack. An example would be: a hacker will create his own malicious website and inject hyperlinks onto the legitimate site – hyperlinks and email links are often posted in forums. When a user clicks the hyperlink, the vulnerability in the legitimate website allows the injection of malicious code into that site, and from there onto the user’s machine via their browser.</p>
<p><strong>What are the implications?</strong></p>
<p>Once injected, the malicious code is stored in the website’s database and when it is fetched and displayed to the visitor, the resultant page can be distorted – code can also be run which steals cookies or sends information such as the session ID to a malicious third-party site.</p>
<p>If JavaScript is injected into the HTML source, it can also be used for simple things such as redirecting a user to a spam website or in a more sophisticated attack such as keylogging  -  sending the user’s keystrokes (e.g. passwords) to an external database.</p>
<p>XSS can be used for user-account hijacking, changing user’s settings and stealing their confidential information. As mentioned, sessions and cookies can be hijacked or stolen, altered and reused. New uses are continuously being found for XSS by hackers, according to Cgisecurity.com.</p>
<p>A method used in conjunction with XSS is known as Cross-Site Request forgery. This is where the malicious code tricks the user’s browser to send requests under the guise of the legitimate user, so for example, it could use a user’s online email account to automatically send out emails such as spam mail.</p>
<p><strong>How can it be prevented?</strong></p>
<p>As with SQL injection, the best way to prevent XSS is to use escape functions. Specifically to escape characters that comprise HTML and JavaScript syntax like ‘&lt;’ and ‘&gt;’ or to convert them into HTML entities, (so &lt; would become &amp;lt; for example).</p>
<p>The <strong>htmlspecialchars ()</strong> function indentifies any output you don’t want to be HTML output and converts it into plain HTML entites, so for example: &#8216;&amp;&#8217; becomes &#8216;&amp;amp;&#8217; and &#8216;&#8221;&#8216; (double quote) becomes &#8216;&amp;quot;&#8217;</p>
<p>The <strong>htmlentities()</strong> function can also be used and it similarly converts all applicable characters to HTML entities.</p>
<p>In forum websites, where legitimate users will want to post HTML such as links, an alternative syntax such as bbcodes (which is very common on forums) can be used to overcome the escaping of HTML characters.</p>
<p>The most important way prevent XSS is to rigorously test the site before launching it.</p>
<p>&nbsp;</p>
<h3>3. Remote file inclusion and remote code execution</h3>
<p><strong>What is it?</strong></p>
<p>This is a security breach which allows an unknown or malicious party to run code on your web server or client side and can lead to several further types of hacking.</p>
<p>Remote file inclusion is caused by a site vulnerability which allows an attacker to deploy a malicious file onto the web server. This can be caused by improper use of the include() and require() functions when the register_globals directive is on(allowing the user to initialise variables remotely). The register_globals directive is the setting which controls the availability of superglobal variables (e.g. form data, cookie data). If the directive is on, an uninitialized variable can be used to include unwanted and malicious files from remote locations. If the allow_url_fopen is enabled in php.ini, remote files can be uploaded to the website’s server via HTTP or FTP from a remote location.</p>
<p><strong>What are the implications?</strong></p>
<p>Remote file inclusions can lead to things such as data theft, remote code execution on the server, code execution on the client-side leading to problems such as cross site scripting and denial of service (DoS).</p>
<p>Remote code execution on the server side means that if the file that the attacker has included is a shell (a file which can affect the operating system) the attacker can run system-level code on the server and use this to retrieve or alter data on that server or hack the end-user’s terminal.</p>
<p>Client side remote code execution can lead to cross site scripting, as discussed in the previous section of this essay.</p>
<p>Denial of Service prevents the users of a site from being able to access that site by preventing the web servers from serving web pages or overloading the server with requests, slowing it down and basically making the site inaccessible.</p>
<p><strong>How can it be prevented?</strong></p>
<p>The register_globals directive should always be OFF – in later versions of PHP, it is off by default, but one should always check that.</p>
<p>If the register_globals directive has to be set to ON for some reason, all variables must be correctly initialised.</p>
<p>There are other php directives can be used to prevent remote file inclusion, which include:</p>
<ul>
<li><strong>allow_url_fopen</strong> (set to on by default)  -  controls whether remote files should be includable and should be turned to OFF.</li>
<li><strong>allow_url_include </strong>(set to off by default)  -  controls whether the include(), include_once(), require() and require_once() commands are able to include remote files into the code.</li>
<li>Enabling <strong>safe_mode </strong>which forces PHP to test of user ID permissions before opening files.</li>
</ul>
<p>Additional precautions include always validating user input and being very careful with any data retrieved from remote servers or locations. The simplest way to stop it is to just ensure that all include files are locally hosted and to never accept files from anywhere else unless absolutely necessary.</p>
<p>Restricting user privileges to an absolute minimum can also help prevent this.</p>
<p>&nbsp;</p>
<h3>4. Session and cookie hacking</h3>
<p><strong>What is it?</strong></p>
<p>The hacking of sessions and cookies cannot breach the database or the web application itself, but can compromise user accounts.</p>
<p>A session is an entity triggered when a user initiates contact with a server and consists of a period of interaction between the user and the web application which may be authenticated using security measures such as a password and username. During this session, the web application will store a file or cookie on the user’s machine (browser) which will contain information about the session such as the user’s preferences, authentication data or for example, shopping cart information.</p>
<p>XSS, discussed previously is the most common way in which hackers can steal cookies. Another risk is when hosting is shared by multiple people and session ID’s are stored in a shared /tmp directory, meaning anyone can access and read them.</p>
<p><strong> What are the implications?</strong></p>
<p>When a user logs in to a site, a session ID is created for the user, and a session hacker will try to obtain the legitimate user’s session ID and use the information. When the hacker steals and tries to reuse a session ID, it is known as session fixation, and it could basically allow the hacker to login as an authentic user and cause damage or alter the user’s account – this is particularly dangerous when the user is an administrator or someone whose account contains sensitive data.</p>
<p><strong>How can it be prevented?</strong></p>
<p>Session ID’s should be changed often, therefore the <strong>session_regenerate_id()</strong> function should be used every time the user logs in, assigning them a fresh ID – this prevents hackers from setting session ID’s prior to login.</p>
<p>Risks can be mitigated by revalidating a user who is about to perform sensitive tasks such as resetting their password (i.e. by making them re-enter their old password).  Also, if a password is to be stored in a session variable, it must be encrypted (using the sha1() function), but most sources suggest it is best not to store a password in a session variable at all.</p>
<p>In cases of shared hosting, you can redirect the data to be saved in a location only you can access by using the <strong>session.save_path</strong> directive.</p>
<p>Using an SSL or secured connection if your web application is handling sensitive information such as credit card numbers can also prevent session and cookie hacking.</p>
<p>&nbsp;</p>
<h3>5. Directory traversal (aka path traversal)</h3>
<p><strong>What is it?</strong></p>
<p>This is a method of exploiting web applications by accessing files beyond the document root directory allowing the hacker to view restricted files and folder and interact with the server by executing commands. The attack usually occurs through a web browser and is accomplished by the attacker entering a URL into the address bar which will take him out of the root directory and into the main server directories – this would generally take some guesswork on the part of the hacker, but can actually be pretty easily done. It can also be achieved through input portals on the front end of the web application.</p>
<p><strong>What are the implications?</strong></p>
<p>Once inside the server’s system files and folders, the hacker has access to all sorts of information and sensitive data including application source code, configuration and critical system files. They may even add or delete files and play havoc with the server’s setup.</p>
<p><strong>How can it be prevented?</strong></p>
<p>The simplest answer is that you should sanitise and validate all user input correctly by removing all suspect data and filtering out meta characters.</p>
<p>Another precaution to take is to never store sensitive configuration files inside the web root.</p>
<p>Wikidpedia suggests that if a suspect request to a file is made, the full filepath should be built up, if it exists and all the characters in the path should be normalised (e.g. change %20 to spaces).</p>
<p>In addition, careful programming on the web server is very important as are the use of security software, patches and vulnerability scanners.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Conclusion</p>
<p>These are but a few of many security vulnerabilities presented by the PHP web application setup – there are many more. But there are certain fundamental things one can do to prevent the bulk of the worst and most damaging attacks.</p>
<p>To recap:</p>
<p>Firstly, all data that comes from outside your web application must be validated, filtered and sanitised – failure to do this leaves you wide open to attacks.</p>
<p>Secondly, all error outputs should be turned off once the application is live, as they can give attackers vital information about the web application such as database and table names. Once live, all errors can be written to a log file instead.</p>
<p>Controls and directives which allow files to be uploaded to your site should all be turned off unless absolutely necessary. These configurations would be set inside the php.ini file. PHP configuration can directly influence the severity of the effects of an attack and are often set to insecure values by default&#8230;the recommended settings for maximum security are:</p>
<ul>
<li>register_globals &#8211; OFF</li>
<li>allow_url_fopen &#8211; OFF</li>
<li>magic_quotes_gpc -  OFF</li>
<li>safe_mode and open_basedir &#8211; enabled and correctly configured.</li>
</ul>
<p>&nbsp;</p>
<p>Variables should always be initialised as uninitialised variables present a huge security risk.</p>
<p>Development accounts (such as username: admin, password: admin) and default usernames and passwords should always be eradicated before the site goes live.</p>
<p>PHP Frameworks and prebuilt CMS applications are generally very secure and could be considered an option for inexperienced developers.</p>
<p>Consider using security applications and testing software to check the security of your applications – there are many PHP tools to test code security such as PHP Security Scanner, Spike PHP Security Audit Tool and PhpSecInfo.</p>
<p>&nbsp;</p>
<p>References</p>
<p><strong>Web references:</strong></p>
<ol>
<li><strong>Breaking down scary terms and what they mean: </strong><a title="http://technosailor.com/2010/12/30/infosec-101-breaking-down-scary-terms-and-what-they-mean/" href="http://technosailor.com/2010/12/30/infosec-101-breaking-down-scary-terms-and-what-they-mean/">http://technosailor.com/2010/12/30/infosec-101-breaking-down-scary-terms-and-what-they-mean/</a></li>
<li><strong>Chapter 11:  Shell commands:</strong>  <a title="http://omake.metaprl.org/manual/omake-shell.html" href="http://omake.metaprl.org/manual/omake-shell.html">http://omake.metaprl.org/manual/omake-shell.html</a></li>
<li><strong>Common PHP Security Mistakes and What You Can Do About Them:</strong> <a title="http://www.eweek.com/c/a/Security/Common-PHP-Security-Mistakes-and-What-You-Can-Do-About-Them-427112/" href="http://www.eweek.com/c/a/Security/Common-PHP-Security-Mistakes-and-What-You-Can-Do-About-Them-427112/">http://www.eweek.com/c/a/Security/Common-PHP-Security-Mistakes-and-What-You-Can-Do-About-Them-427112/</a></li>
<li><strong>Directory Traversal Attacks: </strong>  <a title="http://www.acunetix.com/websitesecurity/directory-traversal.htm" href="http://www.acunetix.com/websitesecurity/directory-traversal.htm">http://www.acunetix.com/websitesecurity/directory-traversal.htm</a></li>
<li><strong>Five common Web application vulnerabilities by Sumit Siddharth, Pratiksha Doshi :</strong> <a title="http://www.symantec.com/connect/articles/five-common-web-application-vulnerabilities" href="http://www.symantec.com/connect/articles/five-common-web-application-vulnerabilities">http://www.symantec.com/connect/articles/five-common-web-application-vulnerabilities</a></li>
<li><strong>How to Fix PHP Vulnerabilities (So Your Site Won’t Get Hacked):</strong> <a title="http://www.codediesel.com/php/how-to-fix-php-vulnerabilities/" href="http://www.codediesel.com/php/how-to-fix-php-vulnerabilities/">http://www.codediesel.com/php/how-to-fix-php-vulnerabilities/</a></li>
<li><strong>HTTP cookie:</strong> <a title="http://en.wikipedia.org/wiki/HTTP_cookie" href="http://en.wikipedia.org/wiki/HTTP_cookie">http://en.wikipedia.org/wiki/HTTP_cookie</a></li>
<li><strong>Introduction To PHP Security Vulnerabilities:</strong> <a title="http://debuggable.com/posts/introduction-to-php-security-vulnerabilities:480f4dfe-97f8-4975-ab28-4eb0cbdd56cb" href="http://debuggable.com/posts/introduction-to-php-security-vulnerabilities:480f4dfe-97f8-4975-ab28-4eb0cbdd56cb">http://debuggable.com/posts/introduction-to-php-security-vulnerabilities:480f4dfe-97f8-4975-ab28-4eb0cbdd56cb</a></li>
<li><strong>mysql-real-escape-string</strong> : <a title="http://www.php.net/manual/en/function.mysql-real-escape-string.php" href="http://www.php.net/manual/en/function.mysql-real-escape-string.php">http://www.php.net/manual/en/function.mysql-real-escape-string.php</a></li>
<li><strong>Path Traversal</strong>: <a title="https://www.owasp.org/index.php/Path_Traversal" href="https://www.owasp.org/index.php/Path_Traversal">https://www.owasp.org/index.php/Path_Traversal</a></li>
<li><strong>PHP dig:</strong> <a title="http://www.phpdig.net/ref/rn41re781.html" href="http://www.phpdig.net/ref/rn41re781.html">http://www.phpdig.net/ref/rn41re781.html</a></li>
<li> <strong>PHP Top 5:  </strong><a title="https://www.owasp.org/index.php/PHP_Top_5" href="https://www.owasp.org/index.php/PHP_Top_5">https://www.owasp.org/index.php/PHP_Top_5</a></li>
<li><strong>PHP Security:</strong> <a title="http://en.wikipedia.org/wiki/PHP#Security" href="http://en.wikipedia.org/wiki/PHP#Security">http://en.wikipedia.org/wiki/PHP#Security</a></li>
<li><strong>Rfi (remote File Inclusion) What Is It? How Do I Stop It?:</strong> <a title="http://www.knowledgesutra.com/forums/topic/61805-rfi-remote-file-inclusion-what-is-it-how-do-i-stop-it/" href="http://www.knowledgesutra.com/forums/topic/61805-rfi-remote-file-inclusion-what-is-it-how-do-i-stop-it/">http://www.knowledgesutra.com/forums/topic/61805-rfi-remote-file-inclusion-what-is-it-how-do-i-stop-it/</a></li>
<li><strong>The Cross-Site Scripting (XSS) FAQ:</strong> <a title="http://www.cgisecurity.com/xss-faq.html" href="http://www.cgisecurity.com/xss-faq.html">http://www.cgisecurity.com/xss-faq.html</a></li>
<li><strong>Threat glossary:</strong> <a title="http://www.h-spot.net/threat_glossary.htm" href="http://www.h-spot.net/threat_glossary.htm">http://www.h-spot.net/threat_glossary.htm</a></li>
<li><strong>Top 7 PHP Security Blunders:</strong> <a title="http://www.sitepoint.com/php-security-blunders/" href="http://www.sitepoint.com/php-security-blunders/">http://www.sitepoint.com/php-security-blunders/</a></li>
</ol>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuromedia.co.za/5-common-php-security-issues-and-how-to-address-them/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The importance of Web Accessibility: how to build an accessible website</title>
		<link>http://www.neuromedia.co.za/the-importance-of-web-accessibility-how-to-build-an-accessible-website/</link>
		<comments>http://www.neuromedia.co.za/the-importance-of-web-accessibility-how-to-build-an-accessible-website/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 11:59:39 +0000</pubDate>
		<dc:creator>Neuromedia</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[copywriting]]></category>
		<category><![CDATA[how to build an accessible website]]></category>
		<category><![CDATA[web accessibility]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=141</guid>
		<description><![CDATA[1. Introduction Definition Accessibility in its broadest sense is the ease with which one can access, read and understand the information on a web page. It is influenced by many factors including disability, the browser being used and the functionality supported by the user’s browser.  In order to design an accessible site, the web developer [...]]]></description>
			<content:encoded><![CDATA[<p><strong>1. Introduction</strong></p>
<p><strong>Definition</strong></p>
<p>Accessibility in its broadest sense is the ease with which one can access, read and understand the information on a web page. It is influenced by many factors including disability, the browser being used and the functionality supported by the user’s browser.  In order to design an accessible site, the web developer must adhere to standards and practices which will result in a website that is cross-browser compliant, available across all hardware platforms and accessible to those with physical, visual or cognitive disabilities (estimated to be about 1 in 10 people), and by extension, any enhancement software that these individuals might use to access and browse the internet. The most important fact to remember is that the <em>content</em> of the site is what the user is there to read and it should take precedence over presentation where ease of access is concerned.</p>
<p>In short, an accessible website can be browsed and understood by anyone, regardless of visual impairment, physical or cognitive disability, choice of browser, device or personal preferences.</p>
<p><strong>Types of disability and general considerations</strong></p>
<p>Aside from the challenges of coding a website which caters for disabilities, developers need to deal with the simple fact that HTML is a constantly evolving language and that its features are supported variably from one web browser to the next. Thus the first consideration must be cross browser compliance.  In order to achieve this, graceful degradation of code is vital. As the browser reads code, it skips anything it cannot understand and reads the next thing. Graceful degradation means that when using new features in HTML, they must always be followed by the older features as an alternative so that anything new not recognised by the browser will be replaced by older features.</p>
<p>Next, the platform on which the internet is accessed must be dealt with and the developer must produce a design which is available across diverse platforms such as mobiles, tablet PC’s, gaming consoles, laptops and home computers.</p>
<p>The technologically limited should also be considered – people with slow connections or low bandwidth will be heavily affected by download speed (e.g. poor infrastructure in third-world countries or people using mobile devices), so the designer should try to ensure the fastest load speed possible.</p>
<p>Finally, accessibility concerns regarding disabilities must be addressed and each type of disability presents its own set of considerations which affect the design process. Listed below are the most common types of disability and some general notes on the challenges faced by users and designers. A more detailed examination of certain aspects follows thereafter.</p>
<p><strong>1. Visual impairment</strong></p>
<p><strong>Colour-blindness: </strong> These are individuals who have difficulty seeing colour or distinguishing between colours. Colour-blindness is usually either monochromatic (the user can only see black, white and shades of grey), red-green colour-blindness (the most common, where red and green are indistinguishable) or blue-yellow colour-blindness (where blue and yellow are indistinguishable).</p>
<p>The web developer needs to be very careful about using colour to convey information when considering colour-blindness. Another consideration is the use of colours for text and backgrounds as the wrong combinations may be rendered indistinguishable to a colour-blind person.</p>
<p><strong>Poor eyesight / low vision: </strong>These users will often increase the default size of the text on a page or use magnification software (e.g. Zoomtext) to scan the page. Some may use the magnification software in conjunction with a screen reader. It is important to remember when designing, that magnification software only highlights small areas of the screen at a time and that scrolling or moving content will most likely be unreadable because of this.</p>
<p><strong>Blind:  </strong>The blind generally use screen reading software (such as JAWS or Windows Eyes) to browse web pages. Some (but not many) use a refreshable Braille interface. The screen reader reads content as it appears in the HTML code, and the most important consideration here is that content and presentation are kept separate (by means of stylesheets) and that content is presented in a logical order, with the main content as close to the beginning of the body as possible.</p>
<p>In addition, pages and vital information must never be dependent on images alone and all images on the site must have descriptive ALT tags (unless they are for decoration only, in which case they can be named alt=”” which will be passed over by the screen reader). Important to remember is that users of screen readers use the keyboard only and not a mouse, so the site must be navigable by keyboard.</p>
<p><strong>2. Auditory impairment</strong></p>
<p>All audio material on the website must have a textual representation in the form of a transcript if the site content is to be available to deaf people. Transcripts are also useful to people working in very noisy environments or people without access to speakers. The developer could consider asking for signing to be made available on very important video presentations.</p>
<p><strong>3. Physical impairment</strong></p>
<p>This refers to people who are permanently disabled or temporarily injured and are unable to exert fine motor control and have very limited or no use of a mouse. Depending on the disability, they will use voice navigation software (such as Dragon Naturally Speaking) or devices which approximate the functionality keyboard tabbing. In designing, the absence of fine motor control must be taken into account when deciding on the size of page elements.</p>
<p><strong>4. Cognitive and learning impairment</strong></p>
<p>This refers to people who have difficulties with memory, problem-solving, perception, conceptualisation, reading and comprehension (e.g. dyslexia, learning disabilities). Some of these users make use of ‘browse aloud’ software (e.g. Textic) with which words are spoken aloud as they are highlighted in the text. With these disabilities in mind it is important to use simple, easy language and avoid large blocks of complicated text on web pages (which improves general readability too).</p>
<p>With all these considerations in mind, there are many tools out there to aid in the development of accessible websites which aid in the testing of sites and code to ensure they pass the standards as set out by the W3C.</p>
<p><strong>2. Features</strong></p>
<p>What follows is a more in-depth examination of some features and associated considerations with respect to accessibility.</p>
<p><strong>Tables</strong></p>
<p>The most important thing about tables and accessibility is that they should never be used for layout, and only ever used to display tabular data. Screen readers will read across a table and then down to the next row, which means that site content becomes completely jumbled if tables have been used for layout.</p>
<p>If tables are being used to present tabular data, it must be laid out in a logical order and the use of spaces at the end of cells and breaks at the end of rows is recommended. The use of rowspan and colspan are not recommended and complex tables with multiple levels of headings and well as the use of columns of empty cells should be avoided. Tables can be captioned using the &lt;caption&gt; tag to make them easier to identify, or they can be summarised using invisible text or the summary attribute, which is read by the screen reader but does not appear on the page.</p>
<p>The &lt;th&gt; (table header) tag can be used in place of &lt;td&gt; and &lt;tr&gt; tags to contain data such as column and row headings. Tables can also be divided into grouped sections using &lt;thead&gt; (containing the header elements like labels), &lt;tbody&gt; (containing the actual data) and &lt;tfoot&gt; (containing column totals, etc) tags. Using the &lt;thead&gt; tag allows the body to scroll while the head remains static, which is useful for devices with limited screen space like mobile phones.</p>
<p><strong>Navigation</strong></p>
<p>Navigation as discussed here applies to both the actual navigation bar, and to methods of navigating about a page and between pages.</p>
<p>The most important thing to ensure with the navigation bar of the site is that it remains consistent throughout the site – this is not just general good practice, but also assists those with difficulty seeing or concentrating to always know where they are on a page. The navigation bar should stand out from the rest of the site and be distinctive with respect to colour and contrast so it is not confused with any of the other elements of the page. The links on the bar should be very clearly named and descriptive, they should make it easy to access all the content on the site and they should also be of sufficient size to present a big enough target to those who have limited motor control (meaning sufficient padding around each link and the use of the ‘display: block;’ property).</p>
<p>Also, it is regarded as a good idea to place certain elements at ‘expected’ places on a page (such as the search bar on the top right), which aids those using screen magnifiers (which show only a small portion of the screen at once) to know where to look for them.</p>
<p>For people using screen readers, it is vital to include ‘skip links’, placed before the navigation in the code, allowing the user to choose to omit having the reader software read out the full navigation code and to have the main content as close to the top as possible. These links typically skip to the most commonly used features; ‘skip to main content’ and ‘skip to search’, ‘skip to sitemap’ for example.  They can be made invisible by being absolutely positioned off the screen so that the screen readers will read them in the code, but sighted users won’t actually see them. Hidden text can be used anywhere on the site to provide context or information to the blind.</p>
<p>For navigation within a page the accepted practice is to use heading tags (h1 to h6) for heading up sections instead of just larger font sizes, as screen readers can differentiate headings as the starting point of a new segment of the page, allowing the user quick access to areas of interest. The page heading should be h1. Large font sizes and possibly different colours should be used for the headings to aid those with poor eyesight.</p>
<p>For links within a page, it is important to provide descriptive link text as opposed to links which say ‘click here’ (e.g. view our <span style="text-decoration: underline;">financial records</span> vs. <span style="text-decoration: underline;">click here</span> for our financial records). All links on a page should have a focus state with a different colour, which assists users in knowing where they are on a page when navigating by keyboard. Important links can also be assigned keyboard shortcuts by using the ‘accesskey’ attribute.</p>
<p>Having a sitemap is an essential for accessibility – it should be easy to find, logically laid out and easy to read.</p>
<p>Images which require the user being able to see them and click on a specific spot (such as an image map) should not be used for navigation without some form of supplementary navigation. Moving targets which require mouseover action to access them should never be used for links or to convey important information.</p>
<p>Form navigation is also an important consideration and the rule of thumb here is that the form instructions and information should always come before the form fields in the HTML, as the blind user will need to know what to do with a field before filling it in. Instructions should also be clear and explicit about the type of content required, allowable content and whether the field is required.  Form elements should also always be correctly labelled, which aids not only the blind, but also those with reduced motor control, as the text becomes clickable. Forms must all be tag navigable for keyboard-only users.</p>
<p><strong>Relative font sizes</strong></p>
<p>Poorly sighted users will often either change the size of the default text on a page, or zoom into the page to read the text. Text must therefore be resizable and the page must not break if the user zooms into it. The use of fluid layouts is important here.</p>
<p>Using relative font sizes is simply specifying which text on a page is larger or smaller than other text on the page, all of which is relative to the default text size that the user has chosen. Relatively sized fonts scale smoothly when being zoomed, whereas absolute font sizes can pixellate. Some browsers have issues altering the sizes of absolutely sized fonts.</p>
<p>Relative font size is define using % or em, and fixed font size using point size or pixel values (px or pt). Often, base font size will be defined in the body CSS (in pt) and then all other font sizes are percentages of that.</p>
<p><strong>Frames</strong></p>
<p>Frames are largely obsolete and seldom used anymore and for the purposes of accessibility, they should only ever be used to fulfil a function which cannot be achieved by any other means. Frames present screen readers with huge navigability issues and cause confusion with backward navigation and other functions.</p>
<p>In cases where frames must be used, the content must always be provided in an a alternate &lt;noframes&gt; version for the disabled user. This presents hassles with maintenance, especially if there is a lot of dynamic content on the page.</p>
<p><strong>Javascript and scripting libraries</strong></p>
<p>There are several considerations to bear in mind when it comes to scripting, the most basic of which is that all content on the site must be available to the user even if the scripting is not. Disabled users cannot always take advantage of the added functionality offered by scripts and some users will simply have JavaScript support turned off in their browsers. Any content and navigation provided by scripting alone will be inaccessible.</p>
<p>It is important that scripts are coded to degrade gracefully and ensure the content is still available to the user. Ideally a &lt;noscript&gt; version of the page should be present, offering the user the same content minus the scripting. Browsers which support scripts will ignore the noscript version.</p>
<p>Any scripting should be device independent, meaning that it should work independent of mouse or keyboard input – any information produced by a mouse hover, for example, would be unavailable to disabled users. Scripting must also not interfere in any way with a user’s ability to navigate with a keyboard (such as onchange functions).</p>
<p>In terms of cross browser accessibility, all HTML produced by scripting functions must be validated by testing the code in a validation application, and not just assumed to be correct.</p>
<p><strong>File distribution</strong></p>
<p>File distribution refers to the distribution of files from a website in a downloadable format. The most important consideration for optimum accessibility is to make sure that the file is available to as many users as possible.</p>
<p>Clearly, plain text is the most universally accessible format but it does not allow for document formatting. Offering the user a choice is generally the best route – for text documents, the most accessible option is PDF (portable document format) which is accessible across most platforms. Word documents are now more accessible and can be recognised across several platforms including Windows, Mac OS X and Open Office.</p>
<p>For compressed files, the most commonly used types are .rar and .zip – again, in order to maximise accessibility, offering users a choice would be the best option.</p>
<p><strong>World-wide issues</strong></p>
<p>World-wide issues include things like time zone, date format and currency indicators. Bearing in mind that visitors to the site will be from all over the world, time zones should be specified for time sensitive information and the date format should be internationally recognised.</p>
<p>Location information should be explicit and not a localised abbreviation (such as ZA for South Africa) and currency information should be universally accessible (a currency converter application could be used).</p>
<p>Extra character sets may be needed for a site that is to be published in languages other than eglish that use characters not found in the standard English alphabets (e.g. Chinese or Arabic).</p>
<p><strong>Conclusion</strong></p>
<p>Once all these factors have been taken into account, it is possible to build a website that is both attractive and functional, but also accessible to those with a wide range of special needs. Extensive testing is required and the use of an accessibility audit such as the one that follows is a good idea. There are many applications out there that you can test the site against which will test not only for accessibility issues but will also help improve your code by validation (checking the code against predetermined standards) and linting (checking the code for commonly made mistakes).</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>3. A Brief accessibility audit checklist</strong></p>
<p>&nbsp;</p>
<p><strong>1. Does all auditory and video content have a transcript?</strong></p>
<p><strong>2. Is the webpage visible and easily readable when viewed in monochrome?</strong> &#8211; A screenshot of the website changed to a monochrome image in an image editor should show this too. Has it been tested by a service like Vischeck to make sure it can be easily read by colour-blind viewers? &#8211; <a href="http://www.vischeck.com/">http://www.vischeck.com/</a>  .</p>
<p><strong>3.  Are content and presentation separate?</strong></p>
<p><strong>4.  Does code degrade gracefully?</strong>  This applies to both the HTML and any scripting on the site – is all the content on the site still available in an understandable way even of scripting is not supported and regardless of the browser used?</p>
<p><strong>5. Can all moving elements on a page be paused, stopped or turned off?</strong></p>
<p><strong>6. Is any important information conveyed using moving elements anywhere and if so, is the information available elsewhere?</strong></p>
<p><strong>7. Is the design of the page device independent?</strong> Can it be navigated with any device (mouse, keyboard, phone keypad, etc) ?</p>
<p><strong>8. Is the site compatible across all the major browsers: Internet Explorer, Firefox, Opera, Safari and Chrome?</strong></p>
<p><strong>9. Does the site work in a text only browser such as Lynx?</strong></p>
<p><strong>10. Can the site be successfully viewed across a range of devices e.g. mobile phones, tablets, small and large screens?</strong></p>
<p><strong>11. Is the navigation bar consistent throughout the site, clear and distinct from other elements on the page?</strong></p>
<p><strong>12. Have ’skip to’ links been included before the navigation bar?</strong></p>
<p><strong>13. Is content clear, simple and easy to read?</strong></p>
<p><strong>14. Are all headings marked up with ‘h’ tags?</strong></p>
<p><strong>15. Do all images on the site have ‘alt’ attributes?</strong></p>
<p><strong>16. Is all field information presented before fields in forms?</strong></p>
<p><strong>17. If a ‘captcha’ module is used, does it have an auditory component?</strong></p>
<p><strong>18. Can you successfully zoom into and out of the site without the text pixellating? Can you adjust the default font size successfully? </strong></p>
<p><strong>19. Has the html and CSS been validated by the W3C markup validation service?</strong> <a href="http://validator.w3.org/">http://validator.w3.org/</a></p>
<p><strong>20. Has the code been tested by a linting service to pick up common mistakes?</strong> <a href="http://www.w3.org/Tools/weblint.html">http://www.w3.org/Tools/weblint.html</a></p>
<p><strong>21. Has the site been assessed by Bobby</strong>, an application developed by the Center for Applied Special Technology (CAST), which analyses web pages and identifies accessibility problems. <a href="http://www.cast.org/bobby/">http://www.cast.org/bobby/</a></p>
<p><strong>22. Have the site been checked by WAVE</strong>, the Web Accessibility Visual Evaluator which highlights all the elements in a page and examines their accessibility- <a href="http://www.temple.edu/inst_disabilities/piat/wave/">http://www.temple.edu/inst_disabilities/piat/wave/</a></p>
<p><strong>23. Has the site been viewed by a disabled person?</strong> Invite disabled people to view and comment on the site.</p>
<p><strong>24. Final checklist:</strong></p>
<p>Has the site been checked with:</p>
<p>-          Images turned off?</p>
<p>-          JavaScript turned off?</p>
<p>-          Frames turned off?</p>
<p>-          Sounds turned off?</p>
<p>-          Using keyboard only?</p>
<p>-          Stylesheets turned off?</p>
<p>-          Screen-reader software (such as JAWS)?</p>
<p>-          Magnification software?</p>
<p>-          Across multiple browsers?</p>
<p>-          Across multiple devices</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuromedia.co.za/the-importance-of-web-accessibility-how-to-build-an-accessible-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A history of HTML</title>
		<link>http://www.neuromedia.co.za/a-history-of-html/</link>
		<comments>http://www.neuromedia.co.za/a-history-of-html/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 11:55:11 +0000</pubDate>
		<dc:creator>Neuromedia</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[copywriting]]></category>
		<category><![CDATA[history of HTML]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=139</guid>
		<description><![CDATA[HTML was invented by World Wide Web inventor Tim Berners-Lee with a support team at CERN. He is currently the Director of the W3C, the group that sets technical standards for the Web and vets and approves changes to HTML versions. HTML or HyperText Markup Language is a subset of SGML (Standard Generalized Markup Language) [...]]]></description>
			<content:encoded><![CDATA[<p>HTML was invented by World Wide Web inventor Tim Berners-Lee with a support team at CERN. He is currently the Director of the W3C, the group that sets technical standards for the Web and vets and approves changes to HTML versions.</p>
<p>HTML or HyperText Markup Language is a subset of SGML (Standard Generalized Markup Language) which is a technological specification describing the markup languages which are used in any form of electronic document handling, publishing or exchange. HTML markup is written using HTML elements, which contain paired tags and object identifiers. It forms the building blocks upon which all web pages are created.</p>
<p>The first version of HTML (HTML1) was first formally published on June 1993 and has seen many changes since its first release – it is a constantly evolving and many new versions with a constantly expanding syntax have since been released.</p>
<p>In its earlier forms, nothing was standardised about HTML, and once browser companies gained popularity and the ‘browser wars’ began, the companies began writing proprietary HTML elements that would only work with their browsers (e.g. Some examples of these are the &lt;marquee&gt;&#8230;&lt;/marquee&gt; tags (scrolling text) which originally only worked with Internet Explorer).</p>
<p>This led to the code becoming very unwieldy and cross-browser incompatibility was almost guaranteed, making early web design very difficult. The W3C, founded in 1994 began working on HTML guidelines and a comprehensive reference for web authors.  HTML 2.0 was released in 1995 – it contained all the original specifications, but included many new elements and functions and became the standard for website development in the mid-90’s. While many core HTML features were defined in this version, standardisation was still a problem.</p>
<p>Browser-specific tags persisted until HTML version 3.2 was released by W3C, which was the first official attempt at standardising the syntax. It did not include extensions tags which had been created by the browser companies and it became the official standard in 1997 – it is still supported almost fully by all browsers today, although a lot of the code is considered deprecated.</p>
<p>HTML 4.0 was released in 1998 and included many new features relating especially to the styling and appearance of websites, with old tags trimmed and offering support  to cascading stylesheets*, HTML’s new presentational language. It also offered 3 versions:    Strict, in which deprecated elements are forbidden, Transitional, in which deprecated elements are allowed and Frameset, in which mostly only frame related elements are allowed. Minor corrections to the documentation saw the release of HTML 4.01 in 1999.</p>
<p>*Cascading Style Sheets (CSS) were created with a purpose of drawing a distinct line between the content of the document (written in a markup language) and the presentation of the document. Styles are defined and stored outside of the HTML documents on separate style sheets which hyperlink to the relevant pages. Cross-site styles can thus be easily created and changed without the use of tag elements. While the concept for a separate styling document was mooted as early as 1993, CSS1 was only released in 1996, and it wasn’t until 2000 that the first full browser support for CSS1 existed (Internet Explorer 5.0).</p>
<p>In 2000, W3C put forward XHTML 1.0 as a recommendation, and it now stands as a joint standard with HTML 4.01.</p>
<p>XHTML was a new form of markup which incorporated all the syntax of HTML 4.01, but the markup rules of XML (eXtensible Markup Language – another subset of SGML), forcing stricter rules on web authors to ensure proper markup in order for the code to work properly. It placed emphasis on logical sequencing, valid and efficient coding and the use of CSS to control the all visual styling and layout on websites.</p>
<p>W3C pushed forward with the development of XHTML version 2. At the same time a separate group of web technology fans, browser programmers and specification writers calling themselves the Web Hypertext Application Technology Working Group (WHATWG) saw that the developments in XHTML 2.0 weren’t going anywhere new and started developing a new spec outside of the W3C protocol called HTML 5.0. W3C took this on board in favour of XHTML 2.0 and a working draft of HTML 5.0 was published in 2008.</p>
<p>HTML 5 shows a move toward integration of media elements into the syntax with elements like &lt;video&gt;, &lt;audio&gt;, and &lt;canvas&gt;. These features optimised to handle multimedia and graphical content on the web without having to resort to plugins and APIs. It features many new elements and has also eliminated many elements from older versions of HTML. There is currently some browser support for HTML 5, most notably from Google’s Chrome browser. It has been accepted and sanctioned now by organisations such as Youtube, Apple and Microsoft, and is expected to be fully implemented and supported by 2014.</p>
<p>&nbsp;</p>
<p>References</p>
<p><a title="http://www.xmluk.org/css-history-information.htm" href="http://www.xmluk.org/css-history-information.htm">http://www.xmluk.org/css-history-information.htm</a><br />
<a href="http://www.yourhtmlsource.com/starthere/historyofhtml.html">http://www.yourhtmlsource.com/starthere/historyofhtml.html</a><br />
<a href="http://inventors.about.com/od/computersoftware/a/html.htm">http://inventors.about.com/od/computersoftware/a/html.htm</a><br />
<a title="http://www.ironspider.ca/webdesign101/htmlhistory.htm" href="http://www.ironspider.ca/webdesign101/htmlhistory.htm">http://www.ironspider.ca/webdesign101/htmlhistory.htm</a><br />
<a title="http://www.yourhtmlsource.com/accessibility/xhtmlexplained.html" href="http://www.yourhtmlsource.com/accessibility/xhtmlexplained.html">http://www.yourhtmlsource.com/accessibility/xhtmlexplained.html</a><br />
<a title="http://en.wikipedia.org/wiki/HTML5" href="http://en.wikipedia.org/wiki/HTML5">http://en.wikipedia.org/wiki/HTML5</a><br />
<a title="http://en.wikipedia.org/wiki/HTML" href="http://en.wikipedia.org/wiki/HTML">http://en.wikipedia.org/wiki/HTML</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuromedia.co.za/a-history-of-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A history of the Open Source movement</title>
		<link>http://www.neuromedia.co.za/a-history-of-the-open-source-movement/</link>
		<comments>http://www.neuromedia.co.za/a-history-of-the-open-source-movement/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 11:52:04 +0000</pubDate>
		<dc:creator>Neuromedia</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[copywriting]]></category>
		<category><![CDATA[history of open source]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=136</guid>
		<description><![CDATA[Wikipedia defines Open Source culture as “the creative practice of appropriation and free sharing of found and created content&#8230;where participants in the culture can modify those products and redistribute them back into the community or other organizations.” The concept of Open Source had its roots in ‘hacker culture’ and the “Free Software Movement” which was [...]]]></description>
			<content:encoded><![CDATA[<p>Wikipedia defines Open Source culture as “<em>the creative practice of appropriation and free sharing of found and created content&#8230;where participants in the culture can modify those products and redistribute them back into the community or other organizations</em>.”</p>
<p>The concept of Open Source had its roots in ‘hacker culture’ and the “Free Software Movement” which was formed in 1984 to promote the idea of free access to information. The introduction of software such as Linux, developed by Linus Torvalds in 1991, set an precedent for the sharing of source code when its developer announced that it was an open code operating system and invited other developers to alter, improve and add to it. It was to be freely available on the internet for anyone to download and use.</p>
<p>The Open Source Initiative was formed to educate, advocate and oversee the dissemination and sharing of software and as an umbrella association to represent those in the ‘free software’ culture, which up till then had no structured organisation.</p>
<p>In 1997, Eric Raymond  published an influential paper in The Cathedral and the Bazaar which described the practices of the ‘free software’ community, including concepts like  distributed peer review. It is believed that Raymond’s presentation of this paper at the O&#8217;Reilly Perl Conference in September 1997 prompted the unprecedented decision by Netscape to make the source code of its browser, Netscape Navigator, freely available to the public in 1998.</p>
<p>The actual term ‘open source’ was coined at a strategy meeting of the Free Software movement in 1998, attended by influential roleplayers such as Todd Anderson, Chris Peterson (of the Foresight Institute), John Hall and Larry Augustin (both of Linux International), Sam Ockman (of the Silicon Valley Linux User&#8217;s Group), Michael Tiemann, and Eric Raymond. The meeting was called to come up with a strategy to get the corporate world to pay attention to the benefits of open source and the potentially superior products created through the multiple inputs of an open development process.</p>
<p>The newly named concept was then broadcast to the wider community and publicised through the news portals of its adherent organisations such as the Linux community.</p>
<p>Two of the attendees of the meeting, Eric Raymond and Bruce Perens became the presidents of the Open Source Initiative (OSI) which was officially formed towards the end of February 1998.</p>
<p>A month or so later, in April 1998, a summit was called to explore the possibilities opened up by the Netscape release and the buzz developing around the new label &#8220;open source&#8221;. This was attended by all teh big names in the Free Software community such as the founding members of Linux, sendmail, Perl, Python, Apache, and several other key projects, and representatives from allies including the IETF and Internet Software Consortium. The term ‘open source’ was universally adopted as well as the associated ideas around the concept being formed by the OSI.</p>
<p>Wikipedia states that: “<em>Starting in the early 2000s, a number of companies began to publish a portion of their source code to claim they were open source, while keeping key parts closed. This led to the development of the now widely used terms free open source software and commercial open source software to distinguish between truly open and hybrid forms of open source.</em>”</p>
<p>According to the OSI, it was “<em>conceived as a general educational and advocacy organization ..[ which would].. focus more specifically on explaining and protecting the &#8220;open source&#8221; label. The main instrument they adopted for this purpose was the Open Source Definition</em>.”</p>
<p>The goal of the original OSI Board was to build a sustainable institution to represent the open-source community and exercise stewardship of the Open Source Definition. It was official recognised as a Nonprofit organisation in 2003.</p>
<p>The organisation itself maintains a fairly low profile and offers “<em>background to reporters, policy suggestions to politicians, and business cases to executives</em>.” In 2005, it became an international organization in 2005 with the accession of directors from Europe, South America, Japan, and India.</p>
<p>Since the concept’s introduction, it has now spread to other areas and is appliend in many different spheres, including:</p>
<p>Computer software</p>
<ul>
<li>Programming languages, e.g.</li>
<li>Operating Systems, e.g. GNU Project, Linux, OpenSolaris and Symbian</li>
<li>Server software, e.g. Apache, Tomcat web server, MediaWiki, Joomla, Drupal and WordPress.</li>
<li>Client software, e.g. Mozilla Firefox, Mozilla Thunderbird, OpenOffice.org, 7-Zip and many, many more.</li>
</ul>
<p>Electronics (from Wikipedia)</p>
<p>Open-source hardware is hardware whose initial specification, usually in a software format, are published and made available to the public, e.g.:</p>
<ul>
<li>Openmoko: a family of open source mobile phones, including the hardware specification and the operating system.</li>
<li>OpenRISC: an open source microprocessor family, with architecture specification licensed under GNU GPL and implementation under LGPL.</li>
<li>Sun Microsystems&#8217;s OpenSPARC T1 Multicore processor. Sun has released it under GPL.[22]</li>
</ul>
<p>&nbsp;</p>
<p>Beverages</p>
<p>OpenCola — a cola soft drink, similar to Coca-Cola and Pepsi, whose recipe is open source and developed by volunteers.</p>
<p>Vores Øl beer — a beer created by students at the IT-University in Copenhagen together with Superflex, a Copenhagen-based artist collective, to illustrate how open source concepts might be applied outside the digital world.</p>
<p>&nbsp;</p>
<p>Digital content</p>
<p>Such as that offered by the Wikimedia Foundation — Sites such as Wikipedia and Wiktionary have embraced the open-content GFDL and Creative Commons content licenses. These licenses were designed to adhere to principles similar to various open-source software development licenses.</p>
<p>Other</p>
<p>The Open Source principles are also being applied in principle in some instances within the following disciplines:</p>
<ul>
<li>Medicine (pharmaceuticals)</li>
<li>Science (The Science Commons, The Open Source Science Project)</li>
<li>Robotics</li>
<li>Digital communication protocols and data storage formats.</li>
<li>Open design (design of anything from furniture to architecture)</li>
<li>Teaching</li>
<li>Business information (methodologies, advice, guidance, practices)</li>
</ul>
<p>&nbsp;</p>
<p>References</p>
<p><a href="http://www.cdrinfo.com/Sections/Reviews/Specific.aspx?ArticleId=14241">http://www.cdrinfo.com/Sections/Reviews/Specific.aspx?ArticleId=14241</a><br />
<a href="http://www.opensource.org/history">http://www.opensource.org/history</a><br />
<a href="http://en.wikipedia.org/wiki/Open_source">http://en.wikipedia.org/wiki/Open_source</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuromedia.co.za/a-history-of-the-open-source-movement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A history of the Internet</title>
		<link>http://www.neuromedia.co.za/a-history-of-the-internet/</link>
		<comments>http://www.neuromedia.co.za/a-history-of-the-internet/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 11:24:58 +0000</pubDate>
		<dc:creator>Neuromedia</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[copywriting]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[history of the internet]]></category>
		<category><![CDATA[internet]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=119</guid>
		<description><![CDATA[In 1957, the US Department of Defence established the Advanced Research Projects Agency (ARPA), later renamed the TheDefense Advanced Research Projects Agency (or DARPA) in 1972. In 1962 Paul Baran, of the RAND Corporation (a government agency) produced a report on the potential for establishing a network which would enable communications between decentralised locations in [...]]]></description>
			<content:encoded><![CDATA[<p>In 1957, the US Department of Defence established the Advanced Research Projects Agency (ARPA), later renamed the TheDefense Advanced Research Projects Agency (or DARPA) in 1972.</p>
<p>In 1962 Paul Baran, of the RAND Corporation (a government agency) produced a report on the potential for establishing a network which would enable communications between decentralised locations in the event of a nuclear attack. His proposal detailed the use of ‘packet switching’ or sending data as discreet units or labelled packets from one computer to another.</p>
<p>In 1965, Lawrence Roberts of MIT connected a Massachusetts computer with a California computer in 1965 over dial-up telephone lines, demonstrating the feasibility of wide area networking.</p>
<p>In its earliest form and what became the technical core of the internet was called ARPANET, and its first official link was created between the University of Californiaand the Stanford Research Institute on October 29, 1969 – by December, 2 more universities had been added to this network. It was subsequently used by computer experts, engineers and librarians to exchange information.</p>
<p>In 1972, email was invented by Bolt Beranek and Ray Tomlinson by adapting an internal messaging system for use with ARPNET and within a year, the bulk of traffic on the system was email. The first email client (MSG) was developed in 1975.</p>
<p>In 1973, the first international connection was set up with the University College of London and in 1976, the Queen sent her first email.</p>
<p>In 1979, the first internet newsgroups (USENET) appeared courtesy of software which enabled the transmission and posting of news information and online discussion forums.</p>
<p>Data transfer protocols (TCP/IP) were described and introduced in the early 70’s, adopted by the Defence Department in 1980 and became universally adopted in 1983.</p>
<p>In 1982, The word “Internet” was used for the first time.</p>
<p>In 1984, the Domain Name System was created and the first Domain Name Servers (DNS) were introduced – this allowed for the translation of IP addresses into user-friendly names. Network addresses were identified by extensions such as .com, .org, .gov.</p>
<p>In 1989, CERN invented a global hypertext system called the World Wide Web, making it easier to publish information on the internet. ENQUIRE was launched which was a hypertext programme, employing specially programmed text or imagelinks (hyperlinks) to connect one document to another. This was publically released in 1991.</p>
<p>In 1990, the first commercial dial-up ISP came into being and ARPNET ceased to exist.</p>
<p>In 1991, the first ever web page ‘The Project’ (<a href="http://www.w3.org/History/19921103-hypertext/hypertext/WWW/TheProject.html">http://www.w3.org/History/19921103-hypertext/hypertext/WWW/TheProject.html</a>) was created – it explained what the web and email were. In this year, the first ever webcam (monitoring a coffee maker at Cambridge University) was also developed.</p>
<p>In 1993, the first graphical web browser, Mosaic, was released – it used HTML tags and had image capabilities and was the first tool for navigating the World Wide Web. Its creator Marc Andreesenwent on to develop the Netscape web browser in 1994.</p>
<p>The internet was first commercially used in 1992 when a company called Delphi offered an email connection and internet access to its subscribers – in 1995 all limitations on commercial use disappeared and AOL, Prodigy and Compuserve all came online.</p>
<p>1994: Yahoo was released (formerly known as Jerry and David&#8217;s Guide to the World Wide Web)</p>
<p>1995: Amazon.com and eBay were launched.</p>
<p>1996: Browser competition begins with Microsoft’s Internet explorer competing with Netscape.Hotmail, the first web based email service (webmail) was launched.</p>
<p>1998: Google and its page ranking system were launched.</p>
<p>1999: Napster and internet based file sharing were launched.</p>
<p>2001: Wikidpedia was launched.</p>
<p>2003: VoIP in the form of Skype was released to the public. Also, MySpace and social networking were born.</p>
<p>2004: Web 2.0 began, with interactivity and user-driven applications coming to the fore. Facebook was released to college students.</p>
<p>2005: Youtube launched.</p>
<p>2006: Twitter launched.</p>
<p>2007: Mobile web hit prominence with the release of the i-phone.</p>
<p>&nbsp;</p>
<p>The internet comprises the following components:</p>
<p><strong>The World Wide Web- </strong>An internet-based system allowing the retrieval of information in the form of web pages, documents and data from servers using browser software. W3C describes the Wev as “an information space in which the items of interest, referred to as resources, are identified by global identifiers called Uniform Resource Identifiers (URI).&#8221;</p>
<p><strong>Usenet –</strong>A worldwide discussion system or ‘bulletin board’ connecting people through newsgroups. Each group functions as an electronic message board where users can post information and opinions and reply to posts by others – groups are usually special interest or topic replated.</p>
<p><strong>Electronic mail – E-mail:</strong>a protocol for exchanging digital messages where the message composed by the user is regenerated at the recipient’s terminal. Users have an address consisting of a unique account identifier followed by the name of their service provider, denigrated using the @ sign.</p>
<p><strong>FTP – </strong>File transfer Protocol: A protocol which allows the transfer (moving or copying) of files between a local system or server and any server that can be accessed by means of a network such as the internet.</p>
<p><strong>EDI</strong> – Electronic Data Interchange &#8211; Allows for electronic transfer of data between companies over the Internet</p>
<p><strong>IRC </strong>– Internet Relay Chat &#8211; Allows people connected over the Internet to participate in discussions</p>
<p><strong>Telnet</strong> &#8211; A protocol that enables a user on one machine to log onto another networked machine and run software on that remote computer as if it were on the user&#8217;s local computer</p>
<p>&nbsp;</p>
<p>References:<br />
<a title="http://depts.alverno.edu/cil/mod1/webtutorial/internetcomponents.html" href="http://depts.alverno.edu/cil/mod1/webtutorial/internetcomponents.html">http://depts.alverno.edu/cil/mod1/webtutorial/internetcomponents.html</a><br />
<a title="http://www.factmonster.com/ipka/A0193167.html" href="http://www.factmonster.com/ipka/A0193167.html">http://www.factmonster.com/ipka/A0193167.html</a><br />
<a title="http://sixrevisions.com/resources/the-history-of-the-internet-in-a-nutshell/" href="http://sixrevisions.com/resources/the-history-of-the-internet-in-a-nutshell/">http://sixrevisions.com/resources/the-history-of-the-internet-in-a-nutshell/</a><br />
<a title="http://www.netvalley.com/archives/mirrors/davemarsh-timeline-1.htm" href="http://www.netvalley.com/archives/mirrors/davemarsh-timeline-1.htm">http://www.netvalley.com/archives/mirrors/davemarsh-timeline-1.htm</a><br />
<a title="http://www.walthowe.com/navnet/history.html" href="http://www.walthowe.com/navnet/history.html">http://www.walthowe.com/navnet/history.html</a><br />
<a href="http://www.davesite.com/webstation/net-history1.shtml">http://www.davesite.com/webstation/net-history1.shtml</a><br />
<a href="http://en.wikipedia.org/wiki/History_of_the_Internet">http://en.wikipedia.org/wiki/History_of_the_Internet</a><br />
<a title="http://www.webopedia.com/quick_ref/timeline.asp" href="http://www.webopedia.com/quick_ref/timeline.asp">http://www.webopedia.com/quick_ref/timeline.asp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuromedia.co.za/a-history-of-the-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

