<?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>Developer Iterations</title>
	<atom:link href="http://www.madchaos.com.au/developer-iterations/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.madchaos.com.au/developer-iterations</link>
	<description>Web Developer Articles and Tutorials</description>
	<lastBuildDate>Mon, 03 Oct 2011 11:06:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Can One Single Payment Gateway Pay Multiple Recipients</title>
		<link>http://www.madchaos.com.au/developer-iterations/it-industry-insider/can-one-single-payment-gateway-pay-multiple-recipients/</link>
		<comments>http://www.madchaos.com.au/developer-iterations/it-industry-insider/can-one-single-payment-gateway-pay-multiple-recipients/#comments</comments>
		<pubDate>Sun, 02 Oct 2011 02:46:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IT Industry Insider]]></category>
		<category><![CDATA[adaptive payments]]></category>
		<category><![CDATA[affiliates]]></category>
		<category><![CDATA[commission]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[merchants]]></category>
		<category><![CDATA[multiple recipients]]></category>
		<category><![CDATA[payment gateway]]></category>
		<category><![CDATA[payments]]></category>
		<category><![CDATA[recipients]]></category>
		<category><![CDATA[split payments]]></category>
		<category><![CDATA[transactions]]></category>

		<guid isPermaLink="false">http://www.madchaos.com.au/includes/web-development-blog/?p=318</guid>
		<description><![CDATA[// Recently I came across an enquiry from a client that needed a commission-based e-commerce website. Being a wholesaler who on-sold products of which the stock belonged to retailers, their ecommerce website required a &#34;commissioning&#34; system so that payments could be divided between affiliates. The breakdown of the process was as follows: Buyer makes payment [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic -->  <div id="adblock" style="float: right;">

      <!--google ad -->
      <script type="text/javascript">// <![CDATA[
            google_ad_client = "pub-2561686207554932"; 		/* 250x250, bigbanner all pages */ 		google_ad_slot = "0951483072"; 		google_ad_width = 250; 		google_ad_height = 250;
    // ]]&gt;</script>
      <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
            </script>
  </div>
  <p>Recently I came across an enquiry from a client that needed a commission-based e-commerce website. Being a wholesaler who on-sold products of which the stock belonged to retailers, their  ecommerce website required a  &quot;commissioning&quot; system so that payments could be divided between affiliates.</p>
  <p>The breakdown of the process was as follows:</p>
  <ul>
    <li>Buyer makes  payment for a product item on website</li>
    <li>Payments are processed by a third-party payment processor</li>
    <li>Processed payments are to be divided  so that
      <ul>
        <li> a percentage of the money goes to the website business owner as a commission</li>
        <li>the  other percentage (retail less wholesale) goes to the affiliate who owns the product</li>
      </ul>
    </li>
  </ul>
  <p>The breakdown of the technical specifications included:</p>
  <ul><li>A method for  splitting and distributing payment of at least one item to the accounts of  multiple recipients</li>
    <li>Automated  payments to multiple recipients (so as to avoid administrative tasks)</li>
    <li>Remittance  is paid to several different bank/merchant accounts</li>
  </ul>
  <h3 class="underline"><strong>Research Analysis:</strong></h3>
    <span class="pulled-right">The functionality to split a  payment between two recipients automatically is not yet available from any of  the available payment modules</span>    
  <p>Research was undertaken to outline the technical feasibility of whether one single payment gateway could pay multiple recipients. The research across several forums,  ecommerce providers and payment processors revealed that there are no out-of-the-box  ecommerce solutions for split payments to multiple recipients.</p>
    <p>      While some online websites such  as eBay, iTunes, PayPal, oDesk, Getty Images, Commission Junction etc have the  ability to sell products/services, handle the whole payments process,  and manage commissions, these companies use a variety of advanced proprietary ecommerce and financial methods; for example:</p>
  <ul>
    <li>Fixed  Commissions (% of sales commission is fixed across all transactions)</li>
    <li>Agreements  with banks and payment processors</li>
    <li>Internal  Banking (money from all transactions is held in escrow on an ecommerce server)</li>
    <li>Internal  Database (transaction and credit history retained on company database)</li>
    <li>ERP / Accounting  systems (use internal&nbsp;accounting to give each customer / supplier a  balance &#8211; excess is then&nbsp;paid out at the end of the month)</li>
    <li>Withdraw  Money (affiliates/vendors have accounts within the system and opt to withdraw  money on a voluntary basis &#8211; usually through a form &#8211; rather than an automated  system in which affiliates are paid)</li>
  </ul>
  <p>Traditionally, the e-commerce interaction between buyer and seller is done online. While the interaction between payment processors and individual banks who handle bank accounts of customers who buy online, provides a gateway from the online world to the real world where those accounts are held. In other words, a financial institution like a bank holds all their customer data in an internal database,  which is separate from the Internet.  </p>
  <p>An online ecommerce transaction only makes requests via a payment gateway to pass on information to &#8211; and seek confirmation from &#8211; the banks. A financial institution does not provide any online ecommerce transaction the privileges to split payments because the request (which is online) and the initial transaction (which is offline) would require the cooperation between the buyer&#8217;s, sellers&#8217;s, and affiliate&#8217;s financial institutions to take the initial transaction and divide this into multiple transactions. Individual financial institutions do not have the privilege to divide an account holder&#8217;s funds &#8211; at the behest of a merchant &#8211; and send them to multiple recipients. </p>
  <p>Websites such as eBay and PayPal have overcome this by becoming an online banking facility and centralizing all transactions online.<strong></strong></p>
  <h3 class="underline">Partial Solutions:</h3>
  

  <p>The only partial support for  payments from an individual transaction to multiple recipients are listed  below:</p>
  <p><strong><a href="https://www.x.com/community/ppx/adaptive_payments" target="_blank">PayPal Adaptive  Payments API</a><br />
    </strong><br />
    The Adaptive Payments API is a  suite of payment services that allow merchants and developers to select the  payment scenario most suitable to their needs. Merchants and developers can  create applications that manage payments, payment preapprovals, and refunds.  Merchants and developers can also send money peer-to-peer, split payments in both parallel and chained models. <br />
    With Adaptive payments you  have:</p>
  <ul>
    <li>A Purchaser  or Buyer &#8211; the party who is buying the product</li>
    <li>A Receiver &#8211;  a party receiving money from the purchase</li>
    <li>An API  Caller/handler &#8211; a party which instigated the transaction and determines where  funds are sent, the API caller may be a receiver but can&#8217;t be the purchaser.</li>
  </ul>
  <p><strong>Parallel&nbsp; Payments</strong></p>
  <p>    A parallel payment is a payment from a sender that is  split directly among 2-6 receivers. <br />
    Technically, a parallel payment is a set of multiple payments  made in a single pay request.<br />
    Parallel payments are useful in cases when a buyer  intends to make a single payment for items 
    from multiple sellers. Examples include the following  scenarios:</p>
  <ul>
    <li>a single  payment for multiple items from different merchants, such as a combination of  items in your inventory and items that partners drop ship for you. </li>
    <li>purchases of  items related to an event, such as a trip that requires airfare, car rental,  and a hotel booking.</li>
  </ul>
  <p>In these cases, the sender knows the receivers and the  amount paid to each one. </p>
  <p><strong>Chained Payments</strong></p>
  <p>    You can have at most one primary receiver and 1-5  secondary receivers.<br /> 
    Chained payments are 
    useful in cases when the primary receiver acts as an  agent for other receivers. <br />
    The sender deals 
    only with the primary receiver and does not know about  the secondary receivers, including 
    how a payment is split among receivers. </p>
  <p><strong>Pros and Cons:</strong></p>
  <ul>
    <li>Each website  needs to be &quot;approved&quot; to enable use of the PayPal API</li>
    <li>With chained  payments all receivers need to have a PayPal account</li>
    <li>No interface  is provided to modify pay scales (programmatic changes)</li>
    <li>No overall  integration with an ecommerce system</li>
    <li>PayPal  withholds its own commissions and fees on each transaction</li>
  </ul>
  <h3 class="underline"><strong>Risks and Liability: </strong></h3>
  <p>The risks and liabilities imposed on the receiver who  handles the money of buyers and affiliates/vendors are listed here:</p>
  <ul>
    <li>Whose liability is&nbsp;it to ensure affiliates/vendors  get what they pay for?<br />
      <em>If the website business owner handles the money then the handler is the seller and bears liability for things that might go wrong with online ecommerce transactions.</em></li>
    <li>Who decides when refunds should be issued?</li>
    <li>Where is the retail and commission price  negotiated (on the website by handler or determined by individual affiliates/vendors)?</li>
  </ul>
  <p><strong>Involved Parties</strong></p>
  <p>Furthermore, if the process fails, any of these involved  parties can hold the seller liable:</p>
  <ul>
    <li>Buyer (i.e.  refund)</li>
    <li>Payment  Processor (i.e. transactions cost a % in fees)</li>
    <li>Bank/Credit  Card companies (i.e. cancellation/freeze of merchant account upon complaints)</li>
    <li>Affiliates/Vendors  (i.e. risk of litigation)</li>
  </ul>
  <p>These liabilities may also  fall on the website design firm for failure to provide failsafe measures should  there be any exploits to sensitive customer data exploited by hackers.</p>
  <p>Further risks to this type of business model to be  considered are listed below:</p>
  <p><strong>Requirements</strong></p>
  <ul>
    <li>Commercial  Law (for compliance with commercial law practices)</li>
    <ul>
      <li>Office of  Fair Trading Acts</li>
      <li>Consumer&nbsp;Protection  from Unfair Trading Regulations 2008 </li>
      <li>Business  Protection&nbsp;from Misleading Marketing Regulations 2008</li>
    </ul>
    <li>Onsite  Customer Database (credit card details)</li>
    <li>Need to know  all merchant&#8217;s bank and personal details to enable transactions</li>
    <li>Need approval  of all merchants whose bank details are to be used</li>
    <li>Privacy  Policy and Commissions Policy (written and provided to involved parties)</li>
  </ul>
  <h3 class="underline"><strong>Summary</strong></h3>
  <p>It was discovered that the functionality required to split a  payment between two recipients automatically is not yet available from any of  the available payment modules.&nbsp; This  feature has not been adopted either by payment processors or addressed in any  of the ecommerce platforms researched online.</p>
  <ul>
    <li>By accepting payments on behalf  of other people, there is a huge onus of responsibility to ensure that  the correct amounts are disbursed to the right people in a timely fashion. </li>
    <li>You, the receiver, have a  contract with the Payment Gateway to this effect that includes the steps that  they can take to recover the money you were paid if the customer says you  failed to deliver.&nbsp;Your suppliers are  not party to that agreement and so the payment provider would have no basis to  recover money from them.</li>
    <li>Invoices and receipts for all  transactions will need to be kept and be able to be provided to the other parties who receive  remittance.</li>
  </ul>
  <p>The only alternative method is to take payments via an ecommerce solution and then forward  those payments manually on a weekly, fortnightly, or monthly basis.</p><div class="shr-publisher-318"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.madchaos.com.au/developer-iterations/it-industry-insider/can-one-single-payment-gateway-pay-multiple-recipients/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Search vs Social Media &#8211; Battle of the Content Marketers</title>
		<link>http://www.madchaos.com.au/developer-iterations/social-media-marketing/battle-of-the-content-marketers/</link>
		<comments>http://www.madchaos.com.au/developer-iterations/social-media-marketing/battle-of-the-content-marketers/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 18:44:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Social Media]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[content marketers]]></category>
		<category><![CDATA[google search engine]]></category>
		<category><![CDATA[media marketing]]></category>
		<category><![CDATA[online marketing]]></category>
		<category><![CDATA[search engine optimization]]></category>
		<category><![CDATA[share]]></category>
		<category><![CDATA[share buttons]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[social media marketing]]></category>
		<category><![CDATA[traffic]]></category>

		<guid isPermaLink="false">http://www.madchaos.com.au/includes/web-development-blog/?p=281</guid>
		<description><![CDATA[// Social Media is a growing phenomenon and social media marketing services have sprouted up in numbers to capitalize on market factors. The Raw Statistics Facebook alone has over 750 million active users with the potential for this figure to rise to 1 billion if allowed into China. The indexed web searchable by Google, Bing [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic -->
<div id="adblock" style="float: right;"><!--google ad -->
	<script type="text/javascript">// <![CDATA[
            google_ad_client = "pub-2561686207554932"; 		/* 250x250, bigbanner all pages */ 		google_ad_slot = "0951483072"; 		google_ad_width = 250; 		google_ad_height = 250;
    // ]]&gt;</script>
    <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
            </script></div>

<p>Social Media is a  growing phenomenon and social media marketing services have sprouted up in  numbers to capitalize on market factors. </p>
<p><strong>The Raw Statistics</strong></p>
<ul>
  <li>Facebook alone has over <a href="http://www.facebook.com/press/info.php?statistics" target="_blank">750 million active users</a> with the potential for this figure to rise to 1 billion if allowed into China.</li>
  <li>The indexed web searchable by Google, Bing and Yahoo! has about <a href="http://www.worldwidewebsize.com/" target="_blank">20 billion web pages.</a></li>
  <li>Of the <a href="http://www.whois.sc/internet-statistics/" target="_blank">131 million domains  currently registered,</a> one indexed domain name can own anywhere between one web page to millions of web pages (as is the case with Facebook).</li>
  <li>A majority of people online do not own a website, whereas up to 80% of people with access to the Internet have a profile on a social media platform.</li>
</ul>
<p>In the battle of the content marketers, traffic driven from referring social  media sites and social share buttons &#8211; across mediums like websites, blogs, and  social media communities &#8211; is now comparative to search engines in its  importance and reach. And in terms of implementation, social media marketing is  easier. </p>
<p><a href="http://www.madchaos.com.au/includes/web-development-blog/wp-content/uploads/2011/08/google-social-analytics.png"><img class="alignleft size-full wp-image-287" title="google-social-analytics" src="http://www.madchaos.com.au/includes/web-development-blog/wp-content/uploads/2011/08/google-social-analytics.png" alt="" width="500" height="222" /></a></p>
<h2 class="clear">Social Media Marketing vs Search Engine Optimization</h2>
<p>In terms of promotion,  online marketing these days comes in two flavors. Whether you own a blog,  Facebook page, website, landing page or any other marketable content,  each online marketing outlet has some requirements from you, mostly being your  time, effort, and expertise. Let&#8217;s have a look at the trends and methods of how each content marketer drives traffic.</p>
<h3><strong>Search Engines</strong></h3>
<p>In order to rank well  and be found on Google search there are a few choice choices. </p>
<ul>
  <li>Google Ads = Paid Traffic </li>
  <li>Search Engine Optimization (SEO) = Organic  Traffic </li>
  </ul>
<p><strong>Paid Promotions</strong></p>
<p><abbr title="Pay Per Click">PPC</abbr> Advertising like  Google Ads allows you to appear on the top of Google search engine results and  within their advertising network. This of course involves <a href="https://adwords.google.com/select/AfpoFinder?countryCode=US" target="_blank">a cost to you</a> and can be quite expensive if several <a href="https://adwords.google.com/select/KeywordToolExternal" target="_blank">keyword combinations</a> are targeted by  individual Google AdWords campaigns. Using the services of an SEO expert to  ensure the cost-effectiveness of these campaigns adds to the expense.&nbsp; The upside is that you will receive targeted  traffic based on keywords you choose because people who click on your ad will  mostly have a purpose in mind. </p>
<p><strong>Promotion by Search Engine Optimization </strong></p>
<p>  Search Engine  Optimization is the other side of the coin. Hire a reputable SEO expert and  they will slowly improve your search engine rank over a few weeks and months.  This is an immeasurable tool to drive organic traffic to your website but  again, it involves a certified IT professional, an active investment of time,  and a cost in the thousands to rank well, as well as the added costs to  maintain your rank. The upside is that well-researched keywords yield anywhere  between hundreds of thousands and millions of global monthly searches per day,  which if you rank well, you will receive a big slice of the organic traffic. </p>
<p><strong>Search Engine&#8217;s Overview</strong></p>

<span class="pulled-right">search engine marketing is limited by its lack of portability</span>
<p>  The limitations of  search engine marketing however are in its lack of portability.&nbsp; You can only really market websites which you  own and have permission to change the source code for SEO purposes.&nbsp; You may lease a page on <a href="http://www.facebook.com/" target="_blank">Facebook</a> or list your business  in a business directory like <a href="http://www.truelocal.com.au/" target="_blank">TrueLocal</a> but the source code and  its mark-up is controlled by the companies which commercialized them.&nbsp; And none of these host sites provide more  than a user-interface in which to add front-end content and media&hellip; so it is  difficult to optimize for search engines.&nbsp;  </p>
<p>Search engine optimization for this very reason therefore is an inferior content marketer compared to social  media marketing. </p>
<h3><strong>Social Media</strong></h3>
<p>Social Media is a  growing phenomenon and has become a real driver of traffic in online marketing.  In order to market your site and be found in the online world there are a few choice  choices. </p>
<ul>
  <li>Social Media Websites (i.e. Facebook and  Twitter) </li>
  <li>Share Buttons
    <ul>
      <li>Tweet Button </li>
      <li>Facebook Like Button </li>
      <li>Google +1 Button </li>
      <li>LinkedIn Share Button </li>
    </ul>
  </li>
  <li>Social Media Acquisition Services </li>
</ul>
<p>The social paradigm has  started to take over the search engine paradigm; the once ubiquitous portal of  Internet traffic.</p>
<p>  The positives for  social media marketing are quite advantageous, bringing to the ordinary person  cost-efficient marketing, easily implemented by anybody who has a social media  footprint and accounts with social utilities such as Facebook, Twitter, Google,  LinkedIn and others. &nbsp;&nbsp;</p>
<p><strong>  Promotion with Social Media Websites</strong></p>

<span class="pulled-right">Social promotion – as opposed to search engine promotion – leverages the millions of people within social community websites to spread a message</span>
<p>Social promotion &ndash; as  opposed to search engine promotion &ndash; leverages the millions of people within  social community websites to spread a message, and breaks the old paradigm  where content had to rank very well in order to be noticed.&nbsp; </p>
<p>You can for example post an update on Twitter  to promote a blog and drive social  traffic there, which in turn hosts social badges to help visitors connect  to all your other social media profiles. Other people could potentially spread  the same message, or alternatively, social media marketing services can be  employed to help with content marketing and distribution.</p>


<p>
<span style="float:right;padding:0 12px;">
<a href='http://twitter.com/share' rel='nofollow' class='twitter-share-button' expr:data-url='data:post.url' expr:data-text='data:post.title' data-count='vertical' data-via='mad_chaos'  data-lang='en'></a>
<script type="text/javascript" src="http://platform.twitter.com/widgets.js">
</script>
</span>
Tweeting this article with the Tweet button to the right demonstrates the power and portability of social media that transcends traditional forms of driven traffic. Leveraged by social utilities, we choose which content has value to us to pass this value on to others, as opposed to a webmaster who pushes a website into Google&#8217;s search engine to ultimately be chosen based on its rank and index. Here, the interaction is between us and the content rather than a keyword and directory.</p>



<p><strong>Promotion with Share Buttons</strong></p>
<p>The importance of  social media marketing is in the ability for anybody to share links to quality  content across a social platform. To do this there are widgets that share and  widgets that display share counts. Even Google has joined in with Google +1  buttons embedded in its search engine results for more socially-driven  results.&nbsp; </p>
<p><a href="http://www.madchaos.com.au/includes/web-development-blog/wp-content/uploads/2011/08/social-media-share-widget.png"><img class="alignleft size-full wp-image-289" title="social-media-share-widget" src="http://www.madchaos.com.au/includes/web-development-blog/wp-content/uploads/2011/08/social-media-share-widget.png" alt="Social Media Share Widget" width="268" height="210" /></a></p>
<p class="clear"><a href="http://www.madchaos.com.au/includes/web-development-blog/wp-content/uploads/2011/08/social-media-share-count-widget.png"><img class="alignleft size-full wp-image-288" title="social-media-share-count-widget" src="http://www.madchaos.com.au/includes/web-development-blog/wp-content/uploads/2011/08/social-media-share-count-widget.png" alt="Social Media Share Count Widget" width="497" height="26" /></a></p>
<p class="clear">Traditionally social  media was limited to bookmarking but has since evolved to include counter  displays beside the social media share buttons and boasts a multitude of other <a href="http://themetricsystem.rjmetrics.com/2009/07/21/how-to-get-twitter-followers-the-definitive-guide" target="_blank">content marketing and monetization methods</a>.&nbsp;  And while Google seems to dominate the search engine market, social utilities  have the capacity to harbor the growth and interests of communities which love  to share. </p>
<p><strong>Promotion with Social Media Acquisition Services</strong></p>
<p>  Like search engine  marketing, social media also offers professional services to increase the  success of your marketing campaigns.&nbsp; Acquisition  services are designed to increase your follower-base via numerous organic and  black hat methods, all of which provide critical social proof.&nbsp; Other services offer to increase the number  of times content is liked, viewed or shared, which increases your sphere of  influence.&nbsp; There are also service  providers who will design social media profiles on your behalf as well as others  who will promote your content to their share of the community.</p>
<p><strong>Social Media&#8217;s Overview</strong></p>
<p>  The limitations of  social media marketing are that it emphasizes on quantity versus quality and  factors of social proof.&nbsp; It works more  fluidly as opposed to search engine optimization because a YouTube video for  example can go viral in a day, while Google search will hardly ever notice its  existence unless it has been optimized for Google search.&nbsp; Social media marketing provides a leveller  playing field and therefore more quaint services and less matured service  providers as a consequence.</p>
<h2>Tips for Content Marketers</h2>
<p>Whichever content marketer method you use, there are a few technical requirements to keep in mind. When marketing with social media you may notice that the share count may seem to reset to zero, which will leave you scratching your head. The reason this happens is because on some webservers there is more than one URL for a resource. For example your site may be indexed as&nbsp;<em>http://site.com</em>&nbsp;or <em>http://www.site.com </em>and people who share your content have a tendency to use one over the other. </p>
<span class="pulled-right">share buttons used by some social networks to display counts is tied to the URL of the page, so when a new (non-canonical) URL is detected the count starts from zero</span>
<p>To make this more complicated, the share buttons used by some social networks to display counts is tied to the URL of the page, so when a new (non-canonical) URL is detected the count starts from zero. So <em>http://site.com </em>could display 2 shares while <em>http://www.site.com</em> shows 200. </p>
<p>It&#8217;s interesting to note that some social networks consolidate properties of the URLs in the cluster to the representative URL (so that viewing <em>http://site.com </em>will show a consolidated count of 202 shares from both http://site.com and <em>http://www.site.com</em>) while other share buttons of popular social networks treat counts for two URLs as different. </p>
<p>The next time you come across a popular website with a share and count display widget, type in a variation of the domain name to see the compliance between the social networks for URL consolidation.</p>
<p>Google also treats <em>http://www.site.com </em>and <em>http://site.com </em>as two different sites, which also causes a few problems. Google recommends adding every version of your site (for example, both <em>http://www.site.com </em>and<em> http://site.com</em>) via Google Webmastrer Tools to be indexed. However, those problems are more cosmetic with no real effect on whether search engines find your website&#8217;s content. </p>
<p>Social media marketing on the other hand, and share buttons in particular, are more vulnerable to these technicalities. You really are beholden to the technology behind the share buttons and their power to consolidate URLs into one representative URL. And that affects your social media marketing campaigns. We recommend you <a href="http://httpd.apache.org/docs/2.0/misc/rewriteguide.html" target="_blank">rewrite all your non-canonical URLs</a> to a representative URL to solve typical URL-based problems.</p>
<p> <a href="http://httpd.apache.org/docs/2.0/misc/rewriteguide.html"></a> </p>
<div class="shr-publisher-281"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.madchaos.com.au/developer-iterations/social-media-marketing/battle-of-the-content-marketers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP Form Validation: How To Use var_dump($_POST) To See What $_POST Contains</title>
		<link>http://www.madchaos.com.au/developer-iterations/php/php-form-validation-how-to-use-var_dump_post-to-see-what-_post-contains/</link>
		<comments>http://www.madchaos.com.au/developer-iterations/php/php-form-validation-how-to-use-var_dump_post-to-see-what-_post-contains/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 13:00:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.madchaos.com.au/includes/web-development-blog/?p=204</guid>
		<description><![CDATA[// Chances are you have had to use the PHP $_POST function to collect form values passed to a script via the HTTP POST method whenever you have endeavored to build a new HTML web form. The question most programmers ask when passing values from a HTML form to PHP is, &#34;How do I know [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div id="adblock" style="float: right;"><!--google ad -->
	<script type="text/javascript">// <![CDATA[
            google_ad_client = "pub-2561686207554932"; 		/* 250x250, bigbanner all pages */ 		google_ad_slot = "0951483072"; 		google_ad_width = 250; 		google_ad_height = 250;
    // ]]&gt;</script>
    <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
            </script></div>
<div>
 
  <p>Chances are you have had to use the PHP $_POST function to collect form values passed to a script via the HTTP POST method whenever you have endeavored to build a new HTML web form.</p>
  <p>The question most programmers ask when passing values from a HTML form to PHP is, &quot;How do I know whether the contents of the form have been posted correctly and how can I test whether PHP has collected those values?&quot;</p>
  <h2> Posts Across a HTTP Network </h2>
  <p>The below example demonstrates a simple HTML web form and the PHP Processor which will automatically collect the values of a form via the in-built $_POST Function.</p>
  <form style="text-align:left;" id="form" name="form" method="post" action="">
 
  
   <div class="message"><br />
  <legend class="quoteLegend">HTML Web Form</legend>
<div class="quoteCode">

      <label style="padding-left:20px;font-family:Arial,Helvetica,sans-serif;">Name
      <input type="text" name="name" id="name" value="" />
      </label>
      <input type="submit" name="submit" id="submit" value="submit" />

  <ol>
    <li class="li1">&lt;form id=&quot;form&quot; name=&quot;form&quot; method=&quot;<span class="posthilit">post</span>&quot; action=&quot;<span class="posthilit">process.php</span>&quot;&gt;</li>
    <li class="li2">&lt;label&gt;Name</li>
    <li class="li1">&lt;input type=&quot;text&quot; name=&quot;<span class="posthilit">name</span>&quot; id=&quot;name&quot; value=&quot;&quot; /&gt;</li>
    <li class="li2">&lt;/label&gt;</li>
<li class="li1">&lt;input type=&quot;submit&quot; name=&quot;submit&quot; id=&quot;submit&quot; value=&quot;submit&quot; /&gt;</li>  
  <li class="li2">&lt;/form&gt;</li>
  </ol>
</div>

  </div>
  <div class="message"><br />
      <legend class="quoteLegend">PHP Processor</legend>
       <div class="quoteCode">
           <ol>
             <li class="li1">&lt;?php</li>
             <li class="li2">$name = $_POST['<span class="posthilit">name</span>'];</li>
             <li class="li1">?&gt;</li>
           </ol>
     </div>
     <p style="margin: 0 20px 5px 20px;font-size:85%;">The HTML web form &#8220;name&#8221; and &#8220;value&#8221; properties of each form input are automatically passed to PHP $_POST and converted to key and array values respectively.</p>
   </div>
   
  </form>
   <p>Browsers now come with their own native web development tools for JavaScript. Firefox has <a href="http://getfirebug.com/">Firebug</a>, Google Chrome has <a href="http://www.google.com/chrome/intl/en/webmasters-faq.html">Web Inspector</a>, IE has <a href="http://msdn.microsoft.com/en-us/library/gg589507(v=vs.85).aspx">Developer Tools</a>, Opera has <a href="http://www.opera.com/dragonfly/">Dragonfly</a>, and Safari has <a href="http://developer.apple.com/technologies/safari/developer-tools.html">Develop menu</a>, so you are in no short supply of tools when client-side JavaScript form validation is a concern.</p>
   <p>The lack of developer tools available within PHP are the initial problems encountered when you seek to post form values from client-side JavaScript to server-side PHP. This obviously makes it much harder to view the HTTP POST data as it is transmitted as a series of name/value pairs from a form and sent to the server converted to key/value pairs for PHP to process. Solutions are therefore more programmatic and could add a few good hours to website development tasks.</p>
  <p>Because of this shortfall&#8230; I&#8217;ve listed  some of the techniques and web development tools to use to better manange form validation in PHP.</p>
  <h2>PHP Form Validation Techniques</h2>
  <p><strong>PHP echo() function</strong></p>
  <p>The most obvious technique programmers use is to drop in a couple of echo() statements to output values once they have been collected by PHP and stored in the $_POST array. This technique is good to test one or two values but will become more cumbersome with larger HTML forms and cause your code to bloat.</p>
  <div class="message"><br />
   <div class="quoteCode">
       <ol>
         <li class="li1">&lt;?php</li>
         <li class="li2">echo $_POST['<span class="posthilit">submit</span>'];</li>
         <li class="li1">?&gt;</li>
       </ol>
   </div>
 </div>
 <div class="message"><br />
     <legend class="quoteLegend">Output</legend>
   <div class="quoteCode">
       <ol>
         <li class="li1">submit</li>
        </ol>
   </div>
 </div>

 <p><strong>PHP </strong><span style="color:black;"><strong>var_dump()</strong></span><strong> function</strong></p>
 <p>A more comprehensive technique would be the var_dump() function to display structured information collected by PHP and stored in the $_POST array. This technique would still require both the HTML and PHP files to be uploaded to a server before the debugging actions can be performed.</p>
  <div class="message"><br />
      <div class="quoteCode">
        <ol>
          <li class="li1">&lt;?php</li>
          <li class="li2">var_dump($_POST);</li>
          <li class="li1">// assuming &quot;Mad Chaos&quot; was entered into the NAME field in the HTML form</li>
          <li class="li2">?&gt;</li>
        </ol>
      </div>
  </div>
  <div class="message"><br />
      <legend class="quoteLegend">Output</legend>
    <div class="quoteCode">
        <ol>
          <li class="li1">array(2) { [&quot;name&quot;]=&gt; string(9) &quot;Mad Chaos&quot; [&quot;submit&quot;]=&gt; string(6) &quot;submit&quot; } </li>
        </ol>
    </div>
  </div>
  <p>&nbsp;</p>
  <p><strong>Browser Developer Tools</strong></p>
  <p>Another viable option to display how encoded form data passes across a HTTP network is to use browser developer tools to lookup the request and see which POST-Parameters are sent. This is much cleaner than the var_dump() function because the contents of $_POST can be validated through the browser.</p>
  <p><img src="http://www.madchaos.com.au/includes/web-development-blog/wp-content/uploads/2011/07/firefox-firebug-var_dump.png" alt="Firefox Firebug var_dump output" width="651" height="411" /></p>
  <p style="margin: 0 20px 5px 20px;font-size:85%;">In Firefox Firebug enable the Net tab and expand the URL link related to the PHP file that has been posted to (process.php in this case). You can view the successfully posted parameters of the source which display as name/value pairs in Firefox Firebug.</p>
  <p><img src="http://www.madchaos.com.au/includes/web-development-blog/wp-content/uploads/2011/07/google-chrome-var_dump.png" alt="Google Chrome var_dump output" width="670" height="277" /></p>
  <p style="margin: 0 20px 5px 20px;font-size:85%;">In Google Chrome&#8217;s Element Inspector enable the Network tab. This will show how the browser and server handled form data transmitted across the network via the HTTP POST action, as well as the status and the form data in name/value pairs.</p>
  <p><strong>XAMPP</strong></p>
  <p>If you do not have the luxury of a server to perform network tests then <a href="http://www.apachefriends.org/en/xampp.html">XAMPP</a> for Linux, Solaris and Windows is your portable solution. XAMPP is a collection of free software for installing and using the Apache Web server which includes   MySQL, PHP, Perl an FTP server and phpMyAdmin.  </p>
  <ul>
    <li>Apache </li>
    <li>MySQL </li>
    <li>PHP </li>
    <li>phpMyAdmin </li>
    <li>FileZilla FTP Server </li>
    <li>Tomcat </li>
    </ul>
  <p>Combining techniques like var_dump() with browser developer tools enabled while XAMPP runs a portable server will streamline the whole process and allow a much deeper analysis of the HTTP POST process. You will save a lot of development time as well.</p>
  <p>&nbsp;</p>
  <p><br />
  </p>
  </div><div class="shr-publisher-204"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.madchaos.com.au/developer-iterations/php/php-form-validation-how-to-use-var_dump_post-to-see-what-_post-contains/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Keep the State When the Browser Back Button is Pressed</title>
		<link>http://www.madchaos.com.au/developer-iterations/javascript/how-to-keep-the-state-when-the-browser-back-button-is-pressed/</link>
		<comments>http://www.madchaos.com.au/developer-iterations/javascript/how-to-keep-the-state-when-the-browser-back-button-is-pressed/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 09:24:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[browser back button]]></category>
		<category><![CDATA[browser state]]></category>
		<category><![CDATA[disable back button]]></category>
		<category><![CDATA[location.replace()]]></category>
		<category><![CDATA[meta]]></category>
		<category><![CDATA[meta expires]]></category>
		<category><![CDATA[meta pragma]]></category>
		<category><![CDATA[window.onload]]></category>

		<guid isPermaLink="false">http://www.madchaos.com.au/includes/web-development-blog/?p=190</guid>
		<description><![CDATA[// There are various scenarios where the back button on a browser becomes an obstacle and usability problem to how a web page is intended to function. Browser navigation systems have been developed to store browser history and to cache files that make up a website; such as HTML, CSS, JavaScript and images.  The problem [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div id="adblock" style="float: right;"><!--google ad -->
	<script type="text/javascript">// <![CDATA[
            google_ad_client = "pub-2561686207554932"; 		/* 250x250, bigbanner all pages */ 		google_ad_slot = "0951483072"; 		google_ad_width = 250; 		google_ad_height = 250;
    // ]]&gt;</script>
    <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
            </script></div>


<p>There are various scenarios where the back button on a browser  becomes an obstacle and usability problem to how a web page is intended to  function.</p>
<p>  Browser navigation systems have been developed to store  browser history and to cache files that make up a website; such as HTML, CSS,  JavaScript and images.  The problem with  this approach is that when the content on the server changes the user has to click  the browser&#8217;s refresh button to serve data from the server rather than the  cache on the client computer.</p>
<p>  The browser has also been developed to store the state of  the previous web page in memory, so when an action has occurred on a website  such as a user submits a completed form and then goes back using the back  button, the state of all the fields in the form will remain the same as before.  The back button&#8217;s ability to retain state  also causes problems for JavaScript controls.   In a scenario where JavaScript is used to ensured a checkbox is checked  each time the web page loads, this event will not happen when the browser back  button is pressed, and could cause all kinds of unintended consequences.</p>
<h2>Methods to Keep the State </h2>
<p>  The objective we should aim for is to find methods in which to force the  browser to requery the web server to get a fresh instance of the page and  override its back button&#8217;s behavior to serve the page from its browser cache.</p>
<h2>Client-Side JavaScript Methods</h2>
<p class="larger"><strong>location.replace() Method</strong></p>
<p>Loads a new document into the reference window and replaces  the browser&#8217;s history listing entry of the current document with the entry of  the new document. This will remove the page from the history and replace it with  the entry of the newly loaded document, preventing the Back  button from ever returning to the page.</p>
<p class="larger"><strong>window.onload </strong></p>
<p>The onload event occurs immediately after a page or an image  is loaded.  The browser cache will still  be used by a browser&#8217;s back button but the onload event when combined with a JavaScript  statement can work to reset the default state of any element (and override the  browser&#8217;s back button state in the process) once the web page is loaded.  This method however has cross-browser  compatibility problems.</p>
<h2>Meta Methods</h2>
<p class="larger"><strong>Meta Pragma No Cache</strong></p>
<p><code>&lt;meta http-equiv=&quot;pragma&quot;  content=&quot;no-cache&quot; /&gt;</code></p>
<p>  The Meta PRAGMA:NO-CACHE tag is used to prevent visitors  from seeing a cached version of a specific page. The Meta PRAGMA:NO-CACHE tag  forces the browser to pull information from the server each time the page is  viewed. </p>
<p class="larger"><strong>Meta Expires</strong><strong><br />
  </strong></p>
<p><code>&lt;meta http-equiv=&quot;expires&quot; content=&quot;-1&quot; /&gt;</code>  </p>
<p>  The Meta Expires tag is used to declare the date and time after which  the web document should be considered expired.   Setting its value to -1 will force the browser to perform a modification  check on the server.</p>
<p class="larger"><strong>Meta Cache Controls</strong></p>
<p><code>&lt;meta http-equiv=&quot;cache-control&quot; content=&quot;no-cache&quot; /&gt;</code></p>
<p>  The CACHE-CONTROL:NO-CACHE tag indicates cached information  should not be used and instead requests should be forwarded to the server. 
A request to a server not known to be HTTP/1.1 compliant  should include both PRAGMA:NO-CACHE and CACHE-CONTROL:NO-CACHE when a no-cache  request is sent. </p>
<h2>Which Methods to Use for Browser State</h2>
<p>A combination of these methods can be used with varying  degrees of success in cases where it is necessary to override the browser state  to load from the server.  There are  obvious shortfalls to each method, and to date, no know method exists to  Disable the Back Button on Browsers.  Let  me know whether you have come across any methods other than the ones expressed  here to overcome the back button on a browser.</p><div class="shr-publisher-190"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.madchaos.com.au/developer-iterations/javascript/how-to-keep-the-state-when-the-browser-back-button-is-pressed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript Phone Number Regular Expression Validation</title>
		<link>http://www.madchaos.com.au/developer-iterations/javascript/regular-expression-validation-phone-numbers/</link>
		<comments>http://www.madchaos.com.au/developer-iterations/javascript/regular-expression-validation-phone-numbers/#comments</comments>
		<pubDate>Sun, 13 Feb 2011 04:06:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[phone number]]></category>
		<category><![CDATA[regular expression]]></category>
		<category><![CDATA[validation]]></category>
		<category><![CDATA[validator regexp]]></category>

		<guid isPermaLink="false">http://www.madchaos.com.au/includes/web-development-blog/?p=148</guid>
		<description><![CDATA[ensure that your form's regular expression validation captures all possible variations of a telephone number’s local and international conventions, country codes, area codes, and dialing formats. ]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div id="adblock" style="float: right;"><!--google ad -->
	<script type="text/javascript">// <![CDATA[
            google_ad_client = "pub-2561686207554932"; 		/* 250x250, bigbanner all pages */ 		google_ad_slot = "0951483072"; 		google_ad_width = 250; 		google_ad_height = 250;
    // ]]&gt;</script>
    <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
            </script></div>
<p>A phone number is an important piece of information that a visitor to your website will provide via an online form. It is just as important that any regular expression validation captures all possible variations of a telephone number&#8217;s local and international conventions, country codes, area codes, and dialing formats. The alternative to a good JavaScript regular expression for a telephone number is that some visitors will be unable to complete your form because of the restrictions a regular expression can impose.
</p>
<h2>A good regular expression</h2>
<p>&nbsp;</p>
<div class="message">
<div class="quoteCode">
<ol>
	<li class="li1"> var re = /(?!:\A|\s)(?!(\d{1,1}\s+\D)|((\d{1,1}\s+){1,1}))(((\+\s)|(\+\d{1,5})|(\+\d{1,4}\s)|(\+\s\d{1,5})|(\(\+\d{1,5}\)))\s*)?((\d{1,2})|(\(\d{1,3}\)))\/?(([   -.]?)\d{1,22}){1,5}((\s*(#|x|(ext))\.?\s*)\d{1,3})?(?!:(\Z|\w|\b\s))/gm);</li>
</ol>
</div>
</div>
<p>The Regular Expression above will match mobile, landline and international numbers, international call codes,   country codes,  province codes, area codes, optional parenthesis around area codes, optional extension numbers, dot-delimited and space-delimited numbers.</p>
<blockquote>
  <p>  5555555555<br />
    55-5555-5555<br />
    55 5555.5555<br />
    55 5555 5555<br />
    (55)5555 5555<br />
    (55)-5555-5555<br />
    (55).5555.5555<br />
    (55) 5555 5555<br />
    +55 555 555 555<br />
    0011 55 555 55555555</p>
</blockquote>
<h4><strong>RegExp:</strong></h4>

<p class="quoteCode" > /(?!:\A|\s)(?!(\d{1,1}\s+\D)|((\d{1,1}\s+){1,1}))(((\+\s)|(\+\d{1,5})|(\+\d{1,4}\s)|(\+\s\d{1,5})|(\(\+\d{1,5}\)))\s*)?((\d{1,2})|(\(\d{1,3}\)))\/?(([ -.]?)\d{1,22}){1,5}((\s*(#|x|(ext))\.?\s*)\d{1,3})?(?!:(\Z|\w|\b\s))/gm</p>

<h4><strong>Pattern:</strong></h4>

<p class="quoteCode" >(?!:\A|\s)(?!(\d{1,1}\s+\D)|((\d{1,1}\s+){1,1}))(((\+\s)|(\+\d{1,5})|(\+\d{1,4}\s)|(\+\s\d{1,5})|(\(\+\d{1,5}\)))\s*)?((\d{1,2})|(\(\d{1,3}\)))\/?(([ -.]?)\d{1,22}){1,5}((\s*(#|x|(ext))\.?\s*)\d{1,3})?(?!:(\Z|\w|\b\s))</p>
<h4>20 capturing groups:</h4>

<p class="quoteCode"> group 1: (\d{1,1}\s+\D)<br />
group 2: ((\d{1,1}\s+){1,1})<br />
group 3: (\d{1,1}\s+)<br />
group 4: (((\+\s)|(\+\d{1,5})|(\+\d{1,4}\s)|(\+\s\d{1,5})|(\(\+\d{1,5}\)))\s*)<br />
group 5: ((\+\s)|(\+\d{1,5})|(\+\d{1,4}\s)|(\+\s\d{1,5})|(\(\+\d{1,5}\)))<br />
group 6: (\+\s)<br />
group 7: (\+\d{1,5})<br />
group 8: (\+\d{1,4}\s)<br />
group 9: (\+\s\d{1,5})<br />
group 10: (\(\+\d{1,5}\))<br />
group 11: ((\d{1,2})|(\(\d{1,3}\)))<br />
group 12: (\d{1,2})<br />
group 13: (\(\d{1,3}\))<br />
group 14: (([ -.]?)\d{1,22})<br />
group 15: ([ -.]?)<br />
group 16: ((\s*(#|x|(ext))\.?\s*)\d{1,3})<br />
group 17: (\s*(#|x|(ext))\.?\s*)<br />
group 18: (#|x|(ext))<br />
group 19: (ext)<br />
group 20: (\Z|\w|\b\s)<br />
</p><div class="shr-publisher-148"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.madchaos.com.au/developer-iterations/javascript/regular-expression-validation-phone-numbers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The difference between a Website Developer and Website Designer</title>
		<link>http://www.madchaos.com.au/developer-iterations/it-industry-insider/the-difference-between-a-website-developer-and-website-designer/</link>
		<comments>http://www.madchaos.com.au/developer-iterations/it-industry-insider/the-difference-between-a-website-developer-and-website-designer/#comments</comments>
		<pubDate>Tue, 19 Oct 2010 07:35:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IT Industry Insider]]></category>
		<category><![CDATA[industry comparison]]></category>
		<category><![CDATA[website designer]]></category>
		<category><![CDATA[website developer]]></category>

		<guid isPermaLink="false">http://www.madchaos.com.au/includes/web-development-blog/?p=113</guid>
		<description><![CDATA[// The difference between a website designer and a website developer is one of those philosophical arguments fought on a subliminal scale where the service provider picks a side and defends their decision; kind of like when you purchase a domain name and build your business around that decision. I am not exactly sure where [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div id="adblock" style="float: right;"><!--google ad -->
	<script type="text/javascript">// <![CDATA[
            google_ad_client = "pub-2561686207554932"; 		/* 250x250, bigbanner all pages */ 		google_ad_slot = "0951483072"; 		google_ad_width = 250; 		google_ad_height = 250;
    // ]]&gt;</script>
    <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
            </script></div>
<p>The difference between a website designer and a website developer is one of those philosophical  arguments fought on a subliminal scale where the service provider picks a side  and defends their decision; kind of like when you purchase a domain name and build your business  around that decision.</p>
<p>  I am not exactly sure where the embryonic  idea gathered sustained momentum enough to devote an article to but  nevertheless, the question of what differentiates a website developer from a  website designer has often mulled around in my mind and needs an answer.</p>
<h2>Web Designers </h2>
<p>The difference between Website Design and  Website Development is that Website Design deals only with <acronym title="HyperText Markup Language">HTML</acronym> and <acronym title="Cascading Stylesheets">CSS</acronym> builds.  &nbsp;For example, <acronym title="Photoshop Document">PSD</acronym> to <acronym title="HyperText Markup Language">HTML</acronym> conversions should be classified as website  design because it only requires a service provider to deal exclusively with  <acronym title="HyperText Markup Language">HTML</acronym> mark-up and <acronym title="Cascading Stylesheets">CSS</acronym>.</p>
<h2>Web Developers</h2>
<p>Website Development is when modules are  introduced into the process, so an ecommerce module for example would require  third-party integration. Other modules which invoke Website Development are  JavaScript, <acronym title="Hypertext Preprocessor">PHP</acronym> (with scripts), <acronym title="Content Management System">CMS</acronym> and other frameworks which need to be  developed separately to the design of a website.</p>
<h2>Web Copiers</h2>
<p>A web copier is a service provider who uses  underhanded methods to obtain a copy of a website and uses reverse engineering methods to isolate components of the copied contraband for use in their own  projects, with slight modifications.  For  example, if you look around various websites you will see similar trends, like forms  with nice pop-up helpful hint bubbles, or nicely designed social media buttons.  A web copier could use their Internet browser to save a copy, disassemble all  the non-related parts and then reuse the application or design to suit their  client&#8217;s purposes. The aim here is to cut corners.</p>
<h2>Web Hacks</h2>
<p>In many cases people who own a Web Development  application and who also own and author their website are legitimate informal website  designers with no formal qualifications.   On the other hand, those who own a copy of Dreamweaver and create table-layout websites for  others are classified as web hacks. They can often degenerate good website design with substandard practices.</p>
<p>The question of what constitutes a <strong>web designer</strong> versus a <strong>web developer</strong> is a mysterious subject  matter indeed. Drop a comment and have a say on the matter.</p><div class="shr-publisher-113"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.madchaos.com.au/developer-iterations/it-industry-insider/the-difference-between-a-website-developer-and-website-designer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brand Visibility – Social Media Marketing Strategies</title>
		<link>http://www.madchaos.com.au/developer-iterations/seo/brand-visibility-social-media-marketing-strategies/</link>
		<comments>http://www.madchaos.com.au/developer-iterations/seo/brand-visibility-social-media-marketing-strategies/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 13:14:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[branding]]></category>
		<category><![CDATA[social media]]></category>

		<guid isPermaLink="false">http://www.madchaos.com.au/includes/web-development-blog/?p=104</guid>
		<description><![CDATA[// The initial online marketing strategy of any business online should be brand visibility. Here is a quick exercise. Type your brand or business name into Google search to see whether it ranked number one. If it did, well done! If your brand is ranked multiple times in the same search criteria, very well done! [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div id="adblock" style="float: right;"><!--google ad -->
	<script type="text/javascript">// <![CDATA[
            google_ad_client = "pub-2561686207554932"; 		/* 250x250, bigbanner all pages */ 		google_ad_slot = "0951483072"; 		google_ad_width = 250; 		google_ad_height = 250;
    // ]]&gt;</script>
    <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
            </script></div>
<p>The initial online marketing strategy of any business online should be brand visibility. Here is a quick exercise. Type your brand or business name into Google search to see whether it ranked number one. If it did, well done! If your brand is ranked multiple times in the same search criteria, very well done!  </p>
<p>Brand visibility online is crucial, even for websites which depend on word of mouth, business cards, brochures, flyers and other traditional marketing techniques. This is why social media is an integral online marketing strategy for brand visibility. </p>
<h3>Social Media and Google Crawlers</h3>
<p>Social media has become so popular that the net effect of all this user activity has increased the frequency at which Google crawls a social media website like <a href="http://www.facebook.com/" target="_blank">Facebook</a>, <a href="http://www.myspace.com/" target="_blank">MySpace</a>, <a href="http://twitter.com/" target="_blank">Twitter</a>, <a href="http://www.linkedin.com/" target="_blank">LinkedIn</a> etc.  The crawl speeds are so phenomenal for LinkedIn for example that it could take a few hours for Google to crawl, index and rank your brand in the top ten of a Google search query. Mine did! </p>
<h3>Promote your Brand</h3>
<p>If you expose your brand well then your business is well positioned to receive the benefits of brand visibility.  So be sure to include a social media component in your online marketing strategy.  Engage your website in some active promotion.  Register your business details with social media sites as well as free business directories like <a href="http://www.truelocal.com.au/">TrueLocal</a>.  You can find them everywhere. </p>
<h3>Places to Market your Brand</h3>
<ul>
	<li>Social Media</li>
	<li>Business Directory</li>
	<li>Online Marketplaces (submit portfolio)</li>
</ul>
<h3>Brand Recognition</h3>
<p>In my personal experience, the brand name remains the connector between the real world and online brand visibility. For example, a potential customer who sees your brand or business name advertised anywhere offline is likelier to retain and type in your brand name into a Google search engine rather than a domain name address, or your name.</p>
<p>So be sure to use social media to promote brand visibility. The exposure in Google searches received will be worth the time and effort to do so.</p><div class="shr-publisher-104"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.madchaos.com.au/developer-iterations/seo/brand-visibility-social-media-marketing-strategies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top WordPress Plug-Ins &#8211; Broken Link Checker</title>
		<link>http://www.madchaos.com.au/developer-iterations/rated-plug-in/broken-link-checker/</link>
		<comments>http://www.madchaos.com.au/developer-iterations/rated-plug-in/broken-link-checker/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 16:13:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Top Wordpress Plug-Ins]]></category>

		<guid isPermaLink="false">http://www.madchaos.com.au/includes/web-development-blog/html/broken-link-checker/</guid>
		<description><![CDATA[Broken Link Checker for WordPress by Janis Elsts is an effective tool to check your blog for broken links and missing images. I had installed the Broken Link Checker plug-in for several months and almost forgotten it existed. Initially the interface seemed basic, so I had no idea what features lay under the bonnet and [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Broken Link Checker for WordPress by Janis Elsts is an effective tool to check your blog for broken links and missing images.</p>
<p>I had installed the Broken Link Checker plug-in for several months and almost forgotten it existed.  Initially the interface seemed basic, so I had no idea what features lay under the bonnet and abandoned the WordPress plug-in. </p>
<div id="adblock" style="float: right;"><!--google ad -->
<script type="text/javascript">// <![CDATA[
   		google_ad_client = "pub-2561686207554932"; 		/* 250x250, bigbanner all pages */ 		google_ad_slot = "0951483072"; 		google_ad_width = 250; 		google_ad_height = 250;
// ]]&gt;</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
		</script></div>
<p>Then one day I received an email notification.
</p>
<blockquote>Broken Links Email Notification<br />
Broken links detected‏<br />
Broken Link Checker has detected 1 new broken link on your site.<br />
Here&#8217;s a list of the new broken links:<br />
Link text : Fair Work website<br />
Link URL : http://www.fairwork.gov.au/Fact-sheets-tools/Pages/FWO-fact-sheet-Mini…<br />
Source : Know your Value as an IT Professional<br />
You can see all broken links here: http://www.madchaos.com.au/tools.php?page=view-broken-links</blockquote>

<p>Initially I was too preoccupied with work to notice, which is why the second and third email reminder was helpful.  I eventually logged into the WordPress console to investigate the matter.
</p>
<h2>Broken Link Checker Key Features</h2>
<p>All I remembered of the Broken Link Checker from memory was the basic interface and the abhorrence of learning curves for new technology.  I assumed the Broken Link Checker only detected broken links and that I would have to manually edit the pages in which the links resided&#8230; a tedious process to contemplate.</p>
<p> Then I stumbled upon the simple brilliance of the Broken Link Checker interface.</p>
<p><img class="size-medium wp-image-85 alignnone" title="link-checker-show-details" src="http://www.madchaos.com.au/includes/web-development-blog/wp-content/uploads/2010/10/link-checker-show-details-300x141.jpg" alt="broken link checker show details" width="300" height="141" /></p>
<p class="clear"><strong>Accessibility</strong> is a key feature in the Broken Links Checker interface.  Each broken or redirected link is displayed in tabular form with options and visual information on the source of the broken link (the web page), the link text, and the destination URL.</p>

<h2>The URL Section on the Interface</h2>
<p>The URL section on the interface has four powerful options
</p>
<ul>
	<li>Visit URL</li>
	<li>URL Details</li>
	<li>Unlink</li>
	<li>Edit URL</li>
</ul>
<p>When you click on the Details link you will be provided with a log of HTTP status codes and other useful information about the broken link in question.  This is a good feature for developers like me.  You can show/hide the URL details with a click of the button.</p>
<p><img class="size-full wp-image-87 alignnone" title="link-checker-details" src="http://www.madchaos.com.au/includes/web-development-blog/wp-content/uploads/2010/10/link-checker-details1.jpg" alt="" width="428" height="585" /></p>
<p class="clear">In my bug-check process I check the URL details and click on the link to view the URL&#8217;s web page to view differences between the URL on my website and the URL of linked web page in the browser address bar before I move onto a possible solution.</p>

<h2>Fix Broken Links Easily</h2>
<p>If you have managed to locate the new web page destination of the broken link then to fix a broken link simply follow the steps below.
</p>
<ol>
	<li>click on <strong>Edit URL</strong></li>
	<li>type in or paste the new URL into the input box provided</li>
	<li>click on <strong>Save URL</strong></li>
</ol>
<img src="http://www.madchaos.com.au/includes/web-development-blog/wp-content/uploads/2010/10/link-checker-edit-url-300x148.jpg" alt="Broken Link Checker edit URL" width="300" height="148" class="size-medium wp-image-88 alignleft" title="link-checker-edit-url" />
<p class="clear">The accessibility with which you can modify the broken link within the Broken Link Checker interface cannot be stressed enough.  The alternative would be to edit all the broken links in the source page, which is tedious work in WordPress.</p>

<h2>Broken Link Checker Key Features</h2>
<p>Here are some of the features of the Broken Link Checker plug-in for WordPress
</p>
<ul>
	<li>Email notifications of broken links with assistive links</li>
	<li>Schedule how often Broken Link Checker checks for broken links</li>
	<li>Apply a special class to broken links to make them visible to the admin and website visitors</li>
	<li>Broken Links control panel inside WordPress
<ul>
	<li>View all detected links</li>
	<li>View broken links</li>
	<li>View redirected links</li>
	<li>Visit URL</li>
	<li>URL Details</li>
	<li>URL modification options</li>
	<li>URL accessibility options</li>
</ul>
</li>
</ul>
<p>The features on Broken Link Checker come to you. It may take some months in dormancy before they do, but they are worthwhile when they do.

  <a href="http://w-shadow.com/blog/2007/08/05/broken-link-checker-for-wordpress/">Download the Broken Link Checker WordPress plug-in</a>

</p><div class="shr-publisher-89"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.madchaos.com.au/developer-iterations/rated-plug-in/broken-link-checker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Tips &#8211; Resolve Width Problems between IE, FF and other browsers</title>
		<link>http://www.madchaos.com.au/developer-iterations/css/css-tips-resolve-width-problems-between-ie-ff-and-other-browsers/</link>
		<comments>http://www.madchaos.com.au/developer-iterations/css/css-tips-resolve-width-problems-between-ie-ff-and-other-browsers/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 06:30:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.madchaos.com.au/includes/web-development-blog/css/css-tips-resolve-width-problems-between-ie-ff-and-other-browsers/</guid>
		<description><![CDATA[// One of the major browser-specific headaches developers often encounter is the different ways in which Internet Explorer and Firefox interpret the CSS Box Model. IE measures the width of an object from border to border, whereas Mozilla measures the width in terms of the content. For example, IE renders a 100 pixel wide DIV [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div id="adblock" style="float: right;"><!--google ad -->
	<script type="text/javascript">// <![CDATA[
            google_ad_client = "pub-2561686207554932"; 		/* 250x250, bigbanner all pages */ 		google_ad_slot = "0951483072"; 		google_ad_width = 250; 		google_ad_height = 250;
    // ]]&gt;</script>
    <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
            </script></div>
				 
 	<p>One of the major browser-specific headaches developers often encounter is the different ways in which Internet Explorer and Firefox interpret the <a title="CSS Box Model" href="http://www.w3.org/TR/CSS2/box.html" target="_blank"><acronym title="Cascading Stylesheets">CSS</acronym> Box Model</a>.
<p><acronym title="Internet Explorer">IE</acronym> measures the width  of an object from border to border, whereas Mozilla measures the width in terms of the content.</p>
<p>For example, <acronym title="Internet Explorer">IE</acronym> renders a 100 pixel wide DIV padded with 10 pixels as an object with a width of 120 pixels because it includes the padding within the object, whereas Firefox will render a 100 pixel wide DIV padded with 10 pixels with a width of 100 pixels and force the padding into the box model.</p>
	
					<h3><strong>CSS BOX MODEL SOLUTION</strong></h3>

<p>The simplest valid way of getting Mozilla and <acronym title="Internet Explorer">IE</acronym>  to give the same width, even with large  padding and border, is to use the  <code>!important</code> declaraion after a command<strong>.</strong> This  <acronym title="Cascading Stylesheets">CSS</acronym> command will take precedence regardless of what appears after it. This is true for all browsers  except <acronym title="Internet Explorer">IE</acronym>.</p>
<div class="message">

<div class="quoteCode">

<ol>

	<li class="li1">border:5px;</li>

	<li class="li2">padding:10px;</li>

	<li class="li1"><span class="posthilit">width</span>:470px !<span class="posthilit">important</span>; /*<span class="posthilit">moz</span><span class="posthilit">width</span>*/</li>

	<li class="li2"><span class="posthilit">width</span>:500px; /*<span class="posthilit">IE</span> <span class="posthilit">width</span>*/</li>

</ol>

</div>
<p>Just make sure you calculate the mozilla width  properly and assign the !important declaration in <acronym title="Cascading Stylesheets">CSS</acronym>.</p>
</div><div class="shr-publisher-77"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.madchaos.com.au/developer-iterations/css/css-tips-resolve-width-problems-between-ie-ff-and-other-browsers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Know your Value as an IT Professional</title>
		<link>http://www.madchaos.com.au/developer-iterations/it-industry-insider/know-your-value-as-an-it-professional/</link>
		<comments>http://www.madchaos.com.au/developer-iterations/it-industry-insider/know-your-value-as-an-it-professional/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 01:07:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IT Industry Insider]]></category>

		<guid isPermaLink="false">http://www.madchaos.com.au/includes/web-development-blog/it-industry-insider/know-your-value-as-an-it-professional/</guid>
		<description><![CDATA[The journey of an IT graduate to professional service provider has its fair share of pitfalls. It forces its pupils to run in circles because the directions on how to be a success in the information technology field is vague. I have learned from my experiences and hope to pass this onto others who are [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>The journey of an IT graduate to professional service provider has its fair share of pitfalls.  It forces its pupils to run in circles because the directions on how to be a success in the information technology field is vague.  I have learned from my experiences and hope to pass this onto others who are determined to complete their journey from IT graduate to professional service provider but lack the knowledge or resources to do so.

</p>



<div class="adblock" style="float: right;"><!--google ad -->

	<script type="text/javascript"> // <![CDATA[

            google_ad_client = "pub-2561686207554932"; 		/* 250x250, bigbanner all pages */ 		google_ad_slot = "0951483072"; 		google_ad_width = 250; 		google_ad_height = 250;

    // ]]&gt; </script>

<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">

            </script></div>



<h3><strong>KNOW YOUR VALUE</strong></h3>           

<p>I absorbed two lessons early on in my website design career.

</p>

<ol>

  <li>Time, effort and expertise has a value.</li>

	<li>All countries have a minimum wage.</li>

</ol>

<p>I&#8217;ve heard stories of IT Graduates who take on unpaid website work, internships with IT companies, or do remote work as freelancers through online marketplaces such as oDesk; all for the experience or for work credit to bulk up their blank portfolios.



  <strong>Know your value.</strong>

</p>

<h3><strong>DO NOT EXPLOIT YOURSELF</strong></h3>

<p>The bottom line is that <span class="pull-right">your time, effort and expertise is valuable</span>.  How valuable?  Well, in Australia, the minimum wage is decided by an ombudsman.  The <a href="http://www.fairwork.gov.au/resources/fact-sheets/conditions-of-employment/pages/minimum-wages-fact-sheet.aspx" target="_blank">Fair Work website</a> has fact sheets on the minimum rate of pay per hour any worker should receive for their effort.  DO NOT take on any work under the minimum wage in your country if you are unsure.

  

  Also, remember your expertise is valuable.  The minimum wage usually applies to unskilled workers, so appreciate that your expertise, however nascent, has added value.</p>

<h3><strong>KNOW YOUR CLIENTS</strong></h3>

<p>Many IT Graduates initially become independent contractors. The clients you will usually attract will probably take advantage of your lack of business experience.  So, when you go into negotiations with new clients, always keep in mind the two factors that clients and service providers alike use to devalue work contracts.

</p>

<ul>

  <li>lack of education</li>

	<li>opportunism</li>

</ul>

<p>A simple psychological truth is that if you charge a client for your services then the whole demeanour of the business relationship will be on equal terms.  If you offer your services for free, or for a weak trade-off such as attribution and a link to your website in the footer of their website, then most probably your projects will encounter scope and time creep through unrealistic expectations developed by your clients.</p>

<h3>CLIENT EXAMPLES</h3>

<p>In one example, a couple of my colleagues ventured off to unpaid websites for friends of friends in the view this would improve their portfolio and help them to gain experience.  If you do this, ensure you are resourceful enough to <span class="pull-right">whip up a minimalist contract and promise as little as possible</span>.  Because in many cases, these friends of friends are clueless on what demands go into these IT projects.  So not only will you be deprived of the basic dignity of paid work but you will have to educate them on website needs such as copy, content and ideas, and you will always have to chase those up.  <strong>DO NOT pick clients unless those clients have a business plan in the form of a website brief or a written proposal. </strong>Your time will be wasted otherwise.</p>

<p> In another example, a freshly graduated colleague of mine advertised in a local directory and landed a call.  The website proprietor needed a new local webmaster and had previously contracted someone from an online marketplace similar to oDesk.  The problem my colleague encountered is that she was uneducated on how inferior the pay rates on these online marketplaces are, which the website proprietor exploited.  This is an example of a client who was more educated than the service provider, and who became rather opportunistic.  Avoid these types of people. <strong>DO NOT barter your services for a rate lower than you are happy with, or lower than is accepted in your industry. </strong>Seek a competitive rate.</p>

<p> In a final example, a colleague of mine who started to move up the food chain accepted a project as an article writer.  Because he was relatively inexperienced he accepted the terms without a proper evaluation of the time and effort it would take to complete the tasks.  The relationship with the client boded well but what he assumed would take a couple of hours took several days.  I explained to him later on that he should factor in a basic measure, such as x dollars for x words. </p>

<h3>EDUCATE YOURSELF</h3>

<p>Initially an IT Graduate will have no real idea on the actual scope of projects on the scale of say, a website design from scratch.  They guess.  And these guesses could turn out to be very costly on the real value of work being done.  In order to equip yourself, consider Work Breakdown Schedules (WBS) to write down all the various features of a project and itemize them into tasks and subtasks.  </p>

<p>Also ask around and research your field beforehand with the intention to write up a services and fees structure, or perform some dry runs to better estimate the time a task should take, because <span class="pull-right">bad estimates could severely devalue work contracts</span>.  The point here is to calculate your hourly rates.  </p>

<p>Also beware of clients who press and pressure for an immediate estimate. This coercion could be an attempt to lock in costs. Without the proper resources you&#8217;re tempted to throw numbers around, which could scare away clients if your prices are too steep, or you could underestimate and end up earning a dollar an hour. </p>

<h3><strong>REMEMBER</strong></h3>

<p><em>You provide a service just like a doctor, a lawyer, a carpenter, a bricklayer, a telemarketer or a nurse.  Therefore you are entitled to be paid in accordance with the industry standard and should avoid situations to the contrary.</em>  </p>

<p>It may be true that awareness of the IT industry still has a long way to go to catch up with established trades like the ones mentioned above, so be prepared to encounter people who are ill-informed and assume a website can be done in a day and for no more than a handful of dollars.  The truth is that all work takes time, effort and expertise. So arm yourself with the facts above whenever you seek to make your path from IT graduate to professional service provider.</p> <div class="shr-publisher-70"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.madchaos.com.au/developer-iterations/it-industry-insider/know-your-value-as-an-it-professional/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

