<?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>Web development resources, Web development help</title>
	<atom:link href="https://www.macronimous.com/resources/articles/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Macronimous is an offshore web development company from India, we welcome you for offshore outsourcing your website design, Mobile application development, Internet marketing , Web Graphic Design, Responsive website development</description>
	<lastBuildDate>Fri, 03 Jul 2026 12:30:39 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Integrating PrestaShop with Third-Party APIs: A complete guide.</title>
		<link>https://www.macronimous.com/resources/articles/learn-prestashop-api-integration/</link>
		
		<dc:creator><![CDATA[Benny Alexander]]></dc:creator>
		<pubDate>Sat, 15 Apr 2023 06:09:01 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com/?post_type=resources&#038;p=17131</guid>

					<description><![CDATA[<p>Learn here everything about Third-party API integration for the PrestaShop-based Ecommerce stores: This article explains what you need to know to help you get the<a href="https://www.macronimous.com/resources/articles/learn-prestashop-api-integration/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/learn-prestashop-api-integration/">Integrating PrestaShop with Third-Party APIs: A complete guide.</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Learn here everything about Third-party API integration for the PrestaShop-based Ecommerce stores: This article explains what you need to know to help you get the right tools and techniques.</p>
<p><a href="https://www.macronimous.com/services/ecommerce-development/prestashop-development-india/">PrestaShop</a> is a popular open-source e-commerce platform that allows businesses to build and manage their online stores. One of the key features of PrestaShop is its ability to integrate with third-party APIs, which can provide additional functionality and capabilities to your online store. In this blog, we will discuss some tips and techniques for integrating PrestaShop with third-party APIs, as well as some of the challenges that developers may face.</p>
<h3>What are Third-Party APIs?</h3>
<p>Third-party APIs, or Application Programming Interfaces, are interfaces that allow different software systems to communicate with each other. In the context of e-commerce platforms like PrestaShop, third-party APIs can be used to connect your online store with a variety of external services, such as payment gateways, shipping providers, and marketing automation tools. Since <a href="https://www.macronimous.com/services/ecommerce-development/prestashop-development-india/">PrestaShop</a> code doesn’t come fully loaded with all the bells and whistles that every business requires, Business owners and developers will require to identify the features that need, find suitable APIs provided by Third-party developers and integrate them.</p>
<h3>What kind of APIs you (or your Website client) may require:</h3>
<p>Here are some examples of third-party APIs that many PrestaShop websites may require:</p>
<ul>
<li>Payment gateways: Payment gateways allow businesses to accept payments online. Some popular payment gateways that integrate with PrestaShop include PayPal, Stripe, and Authorize.Net.</li>
<li>Shipping providers: Shipping providers allow businesses to manage the shipping and delivery of products. Some popular shipping providers that integrate with PrestaShop include FedEx, UPS, and USPS.</li>
<li>Email marketing services: Email marketing services allow businesses to create and send email campaigns to customers. Some popular email marketing services that integrate with PrestaShop include Mailchimp, Constant Contact, and Campaign Monitor.</li>
<li>Social media platforms: Social media platforms can be used to promote products and engage with customers. Some popular social media platforms that integrate with PrestaShop include Facebook, Instagram, and Twitter.</li>
<li>Customer relationship management (CRM) systems: CRM systems allow businesses to manage customer interactions and data. Some popular CRM systems that integrate with PrestaShop include Salesforce, <a href="https://www.macronimous.com/services/inbound-marketing/hubspot-marketing-automation-services/">HubSpot</a>, and Zoho CRM.</li>
<li>Accounting software: Accounting software can be used to manage finances and track sales. Some popular accounting software that integrates with PrestaShop includes QuickBooks, Xero, and FreshBooks.</li>
<li>Inventory management systems: Inventory management systems allow businesses to track and manage product inventory. Some popular inventory management systems that integrate with PrestaShop include TradeGecko, Unleashed, and Skubana.</li>
</ul>
<p>Remember that the specific third-party APIs you need will depend on your business&#8217;s needs and goals. By integrating with the right APIs, you can enhance the functionality and capabilities of your PrestaShop website and improve the overall customer experience.</p>
<h3>Tips and Techniques for Integrating PrestaShop with Third-Party APIs</h3>
<ul>
<li>Research the API: Before integrating any third-party API with your PrestaShop store, it’s important to research the API thoroughly. Check the API documentation for any limitations, dependencies, or special requirements, and make sure that the API is compatible with PrestaShop.</li>
<li>Choose a Reliable Provider: When selecting a third-party API provider, choose a provider that is reliable and has a good reputation in the industry. Check reviews and testimonials, and make sure that the provider offers robust support and documentation.</li>
<li>Use an Integration Plugin: Many third-party API providers offer integration plugins that can make the integration process much easier. These plugins often provide pre-built integrations with PrestaShop, as well as tools for managing and customizing the integration.</li>
<li>Test the Integration: Before going live with any third-party API integration, it’s important to thoroughly test the integration in a development environment. Make sure that all data is being transferred correctly, and that the integration is not causing any conflicts or errors with other components of your PrestaShop store.</li>
</ul>
<h3>Challenges of Integrating PrestaShop with Third-Party APIs</h3>
<ul>
<li>Compatibility: One of the biggest challenges of integrating PrestaShop with third-party APIs is compatibility. Different APIs may have different requirements, dependencies, or limitations, and it can be difficult to ensure that the API will work seamlessly with your PrestaShop store.</li>
<li>Security: Integrating third-party APIs with your PrestaShop store can also pose security risks. It&#8217;s important to make sure that the API is secure and that sensitive data is protected.</li>
<li>Maintenance: Finally, integrating third-party APIs with PrestaShop requires ongoing maintenance and monitoring. APIs may change over time, and it&#8217;s important to keep up-to-date with any changes or updates to ensure that your integration continues to work smoothly.</li>
</ul>
<h3>Best Practices for Integrating PrestaShop with Third-Party APIs</h3>
<ul>
<li><em>Use Secure Connections</em>: When integrating with a third-party API, make sure to use secure connections such as HTTPS to ensure that sensitive data is encrypted and protected.</li>
<li><em>Implement Error Handling:</em> Implement proper error handling in your integration code to ensure that any errors or exceptions are caught and handled correctly.</li>
<li><em>Monitor API Usage:</em> Monitor the usage of the third-party API to ensure that it is not being overused or abused, which could result in additional costs or penalties.</li>
<li><em>Regularly Review and Update:</em> Regularly review and update your integration code to ensure that it continues to work correctly with any changes or updates to the third-party API.</li>
</ul>
<p>Integrating PrestaShop with third-party APIs can provide numerous benefits for your online store, including additional functionality and capabilities. However, to ensure successful integration, it&#8217;s crucial to carefully research and select the right third-party APIs and take necessary steps to maintain the integration&#8217;s security, reliability, and functionality. By following the tips and techniques outlined in this blog, you can successfully integrate your PrestaShop store with third-party APIs, providing a better experience for your customers. Remember to always test your integration thoroughly, monitor API usage, and stay up-to-date with any changes or updates to the API. With the right approach and care, integrating PrestaShop with third-party APIs can be a powerful tool to expand and enhance your online business.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/learn-prestashop-api-integration/">Integrating PrestaShop with Third-Party APIs: A complete guide.</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Increase Website Ranking by fixing Traffic Leaks</title>
		<link>https://www.macronimous.com/resources/articles/increase-website-ranking-by-fixing-traffic-leaks/</link>
		
		<dc:creator><![CDATA[Benny Alexander]]></dc:creator>
		<pubDate>Sat, 19 Jan 2019 04:30:37 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com/?post_type=resources&#038;p=15668</guid>

					<description><![CDATA[<p>Surprised to see that the traffic seems to be not rising beyond a certain point? Traffic leak could be the reason. This article explains how<a href="https://www.macronimous.com/resources/articles/increase-website-ranking-by-fixing-traffic-leaks/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/increase-website-ranking-by-fixing-traffic-leaks/">Increase Website Ranking by fixing Traffic Leaks</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Surprised to see that the traffic seems to be not rising beyond a certain point? Traffic leak could be the reason. This article explains how to fix it.</p>
<h2>Website Ranking Stuck &#8211; A Real Case:</h2>
<p>One of the best dental clinics in Coimbatore, India, is an esteemed client of ours. The dental services offered by them are of high quality and cutting edge in dentistry. When they approached for our <a href="https://www.macronimous.com/services/inbound-marketing/seo-for-wordpress-website">WordPress SEO services</a> they mentioned their main webpage. The main goal was to <em><strong>increase website ranking</strong></em>. The additional goals were to have</p>
<ol type="a">
<li>Higher traffic</li>
<li>Better conversions</li>
</ol>
<h2>Thorough Analysis:</h2>
<p>We did a thorough audit of the website and submitted the <a href="https://www.macronimous.com/services/inbound-marketing/fixed-cost-seo-plans">proposal with the pricing details</a>. Happy with our service pricing, we started working on the site. After a couple of months, our SEO team was surprised to see that the traffic seem to be not rising beyond a certain point.</p>
<p><img fetchpriority="high" decoding="async" class="aligncenter wp-image-15697 size-full" src="https://www.macronimous.com/wp-content/uploads/Increase-Website-Ranking-by-fixing-Traffic-Leaks.jpg" alt="Traffic" width="720" height="400" srcset="https://www.macronimous.com/wp-content/uploads/Increase-Website-Ranking-by-fixing-Traffic-Leaks.jpg 720w, https://www.macronimous.com/wp-content/uploads/Increase-Website-Ranking-by-fixing-Traffic-Leaks-580x322.jpg 580w" sizes="(max-width: 720px) 100vw, 720px" /></p>
<p>Then we did a deeper analysis of this and discovered that they had a <a href="https://www.google.com/business/">Google My Business</a> account, which by now, due to <a href="https://www.macronimous.com/services/inbound-marketing/outsource-local-seo">our local SEO efforts</a> was showing in the above-the-fold area in the maps.</p>
<p><img decoding="async" class="aligncenter wp-image-15716 size-full" src="https://www.macronimous.com/wp-content/uploads/google-map-location-vs-dental-and-implant-centre.jpg" alt="Google My Business Results" width="642" height="350" srcset="https://www.macronimous.com/wp-content/uploads/google-map-location-vs-dental-and-implant-centre.jpg 642w, https://www.macronimous.com/wp-content/uploads/google-map-location-vs-dental-and-implant-centre-580x316.jpg 580w" sizes="(max-width: 642px) 100vw, 642px" /></p>
<p>This surprised us even more, as we should have seen an increase in the traffic. However, as shown below, the traffic still remained the same as per our monthly SEO Reports!</p>
<h2><img decoding="async" class="aligncenter wp-image-15714 size-full" src="https://www.macronimous.com/wp-content/uploads/people-visit-on-website.jpg" alt="Traffic Comparison" width="615" height="313" srcset="https://www.macronimous.com/wp-content/uploads/people-visit-on-website.jpg 615w, https://www.macronimous.com/wp-content/uploads/people-visit-on-website-580x295.jpg 580w" sizes="(max-width: 615px) 100vw, 615px" /></h2>
<h2>Problem Identified:</h2>
<p>Then it became obvious that there should definitely be a <strong>traffic leak!</strong></p>
<p>We decided to talk with the client and, on further investigation, we discovered that they had once upon a time set up a GMB account and even forgot the email id and the password for the same. With a little help from us, we helped them log into the GMB account.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15712 size-full" src="https://www.macronimous.com/wp-content/uploads/business-details-of-dental-and-implant-centre.jpg" alt="Google My Business VS Dental" width="458" height="377" /></p>
<p>Further analysis showed us that the “Website” that was enlisted in the GMB account was pointing to <a href="https://www.google.com/business/how-it-works/website/">Google&#8217;s free My business website builder</a> and not the homepage.</p>
<p>Guess what, it was not just 10 or 20 views, but 1,760 views &amp; 536 actions just in the last 28 days!</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15708 size-full" src="https://www.macronimous.com/wp-content/uploads/performance-in-webpage-visit-vs-dental-care.jpg" alt="Performance Google My Business" width="481" height="272" /></p>
<p>No wonder! We were missing the traffic all this time. The worst part was that our Local SEO efforts were not showing the results, even though wonders were happening!</p>
<h2>The Results:</h2>
<p>This encouraged us and we started monitoring the monthly Rankings. In a matter of 3 days, the Rankings started improving for the 3 keywords that were very relevant to the client.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15706 size-full" src="https://www.macronimous.com/wp-content/uploads/keywords-histroy-now-and-earlier-vs-dental.jpg" alt="Results" width="595" height="367" srcset="https://www.macronimous.com/wp-content/uploads/keywords-histroy-now-and-earlier-vs-dental.jpg 595w, https://www.macronimous.com/wp-content/uploads/keywords-histroy-now-and-earlier-vs-dental-470x290.jpg 470w, https://www.macronimous.com/wp-content/uploads/keywords-histroy-now-and-earlier-vs-dental-580x358.jpg 580w" sizes="auto, (max-width: 595px) 100vw, 595px" /><br />
Go ahead and check for such traffic leaks on your website. Not sure? <a href="https://www.macronimous.com/contact-us">Contact us right away</a>. We are more than happy to be of assistance to you.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/increase-website-ranking-by-fixing-traffic-leaks/">Increase Website Ranking by fixing Traffic Leaks</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Find the right offshore outsourcing partner in India</title>
		<link>https://www.macronimous.com/resources/articles/finding-the-right-offshore-outsourcing-development-partner-in-india/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Thu, 25 Oct 2018 07:49:48 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com/?post_type=resources&#038;p=15477</guid>

					<description><![CDATA[<p>We assume you already have good knowledge about outsourcing.  Even you might have planned to choose an offshore development partner and outsource some of your<a href="https://www.macronimous.com/resources/articles/finding-the-right-offshore-outsourcing-development-partner-in-india/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/finding-the-right-offshore-outsourcing-development-partner-in-india/">Find the right offshore outsourcing partner in India</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>We assume you already have good knowledge about outsourcing.  Even you might have planned to choose an offshore development partner and outsource some of your web development and related work, which will not affect your core competencies.</p>
<p>We are Macronimous, helped our customers to land at our services for years. By simplifying their search for a partner process, we increased our visibility. This article is based on that experience.</p>
<p>You must be aware that India could be the right place, where you can send our work to a web development company. You may certainly be interested in giving it a try. If this is the case you need to do much research on finding your vendor (the developer/designer/SEO professional etc) or partner (to whom you decide to outsource for a long time) and this article can help you to initiate the process.</p>
<h3>Developing Initial contacts:</h3>
<p>The initial contact is an important point, as a good start of a business relation, which is essential for the entire partnership. Visiting a web development company that is thousands of miles away may not be cost-effective, as one of the primary reasons why you outsource is, to reduce the cost of development.</p>
<p>So you need to discuss project and contract details through Emails only. However, as it depends entirely on the customer’s wish, it can be done via communication channels as well if direct contact is possible for some reason. The most important thing about the initial contact is to define the responsibilities for both you and the Vendor. This kind of approach will help you and the initial trust is needed to move towards the next step.</p>
<h3>Raising Initial Questions:</h3>
<p>You can send a set of questions to the development team and ask them to answer. The following is some of the essential questions for which you would need the answers.</p>
<ol>
<li>What is the Industry expertise level?</li>
<li>Technical expertise?</li>
<li> Samples for Consultant quality.</li>
<li>What is the Methodology?</li>
<li>Do they have Knowledge management?</li>
<li>How do they do Knowledge transfer?</li>
<li>Necessary Cultural integration.</li>
<li>What is the Availability</li>
<li>What is the pricing?</li>
<li>Reference projects or case studies.</li>
<li>Local and offshore talents and their ratio.</li>
<li>Percentage of business from new application development vs. maintenance/ support outsourcing</li>
<li>What is the developer’s process maturity?</li>
<li>What type of quality assessments/ certifications are done?</li>
<li>Do they have Soft skills training and what&#8217;s is the team&#8217;s individual<br />
skill sets?</li>
</ol>
<h3>Preparing RFQ&#8217;s and Agreements:</h3>
<p>Define and write your requirements. Expect a rough (or &#8220;ballpark&#8221;) estimate from the developer. You can match your budget and you can use the Quote from the developer to find how they understand the requirement. Also if you find similar or related projects that can add some value in finalizing your partner.</p>
<p>Here is how to connect with the sales team with a detailed <a href="https://www.macronimous.com/blog/writing-request-for-quotes/" target="_blank" rel="noopener">RFQ</a>.</p>
<h3>Selecting the right Technology</h3>
<p>Technology is a key player in any outsourcing relationship, so ensuring the caliber needed for any project and the reliability, flexibility, and scalability that you need. Try to find your potential offshore developer with their client references and make a site visit to at least one current client if possible. It’s important to take the time to talk to the people who are using the technology now.</p>
<h3>Initiating the First Trial:</h3>
<p>When you find some people and built the initial relationship you can try with a sample or pilot project: this can be a small, non-critical task meant for testing the experience level of our programmers. Invariably,<br />
the sample project needed to be complex enough to give the customer a clear idea of the performance level of our programmers. Many web developers may not show full efforts if the pilot project is a mock-up one, or an unpaid job. But you can always discuss with them, as the cost of development should be low, and the <a href="https://www.macronimous.com/services/web-development">offshore development</a> company needs to develop this project below the cost allotted. You can give them a budget too. In this way, you can evaluate an offshore developer&#8217;s ability. skills, and trustworthy ness by spending less cost.</p>
<h3>Understanding the Initial procedures:</h3>
<p>The first thing is establishing the communication channels (Email, Phone, Zoom/Meet calls, or others) in order to keep the customer informed regularly. After receiving the project specifications, both parties must approve the time schedule, and a dedicated project manager will be assigned to be permanently in contact with the customer. The project manager will be in charge of the project during the development stage until final delivery, she/he will clear up the problems (if any) and she/he will make sure that the project will meet the deadline successfully. If the project requires a more complex approach, it’s recommended to divide it into phases and milestones, so that you can monitor each step and make changes, if necessary.</p>
<h3>Keeping up the Project stages:</h3>
<p>This is the point where real work begins: the project manager has to be there to handle the coordination between the programming teams, sends daily reports, clear the problems, and make sure that everything is going on just smoothly, according to schedules. During the final stages of the team should have proper testing and <a href="https://www.macronimous.com/resources/articles/successful-web-application-development">QA</a> procedures? You can ask this question,</p>
<ol>
<li>Does offshore web development or mobile development company have a Quality policy?</li>
<li>Is Testing, an integral part of the development and also a separate stage at the last stage of the project?</li>
<li>Do they have a bug Fixing system? Do they have a tracking system, which will always have the track of bugs and fixes?</li>
</ol>
<h3>Attaining the final delivery:</h3>
<p>At this point, the final version of the product is delivered to the client. The developer will deliver all source codes, well documented in English. The project is considered finished,  only after the customer approves the product quality.</p>
<p>The above-mentioned can help you to find your offshore development partner. Along with these steps you should also need to prepare for the risks involved in outsourcing your web development work.</p>
<p>There are certain issues you may face during the finding stages of your offshore development partner, But this is now almost ignorable in this improved IT era, where a country like India already overcame and doing a major play in offshore development.</p>
<ul>
<li>Cultural differences/clash.</li>
<li>Language barriers: Now European languages are a barrier in Asia. However, English is widely spoken and written.</li>
<li>Location/Distance of the vendor.</li>
<li>Time zone differences (can be a plus or minus).</li>
<li>Political instability.</li>
<li>Telecommunications infrastructure.</li>
<li>General country infrastructure.</li>
<li>Management challenges.</li>
</ul>
<h3>Ensuring Trust:</h3>
<p>Finding the ways to improve mutual Trust is the top among any initiatives and a key ingredient to choose your offshore development partner. This does not need much explanation.</p>
<p>Choosing your <a href="https://www.macronimous.com/services/offshore-outsourcing">offshore outsourcing</a> partner means performing due diligence, and articulating a vision of how they can best contribute to the success of your business. Once you’ve chosen your partner, trust, establishing clear and realistic expectations and effective channels of communication, as well as integrating your outsourcer into your organizational structure will help to ensure that you get the highest return on your investment.</p>
<p>Read this article on <a href="https://www.macronimous.com/outsourcing-work-to-india/">risk</a> understanding. <a href="https://www.macronimous.com/contact-us">Write us</a> if you have any questions on this topic.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/finding-the-right-offshore-outsourcing-development-partner-in-india/">Find the right offshore outsourcing partner in India</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Teach Yourself Modern SEO</title>
		<link>https://www.macronimous.com/resources/articles/teach-yourself-modern-seo/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 12 May 2018 08:54:32 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com/?post_type=resources&#038;p=15098</guid>

					<description><![CDATA[<p>This is an extension of my previous Article written way back in 1998. SEO is still the same, which is promoting your search visibility, but<a href="https://www.macronimous.com/resources/articles/teach-yourself-modern-seo/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/teach-yourself-modern-seo/">Teach Yourself Modern SEO</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="font-size: small;">This is an extension of my previous Article written way back in 1998. SEO is still the same, which is promoting your search visibility, but the way SEO works does changes in years.</span></p>
<h3>What is Search Engine Optimization (SEO)?</h3>
<p>SEO is almost a  two decade old online marketing technique.  Business no longer ignore SEO to improve their website’s rankings to find new customers. The advantage of SEO is to tag visitors who have searched for relevant requirements. The basic premise behind improving ranking is this: almost 95% of users who enter a query in google (or any other search engine) refer to the first or second page of the search results page to get a response to the search query. If your business website is located on page 10 or 15 of the search engine (or SERP) results page, then you will lose your online business to your competitors.</p>
<p>Therefore, the corporate goal is to reach the first or second page of the SERP, so that more and more customers can discover them before finding their competitors. This is what drives the profitability of an online company. SEO is a marketing field that helps you to achieve this challenging target. At Macronimous, we strongly believe that SEO should not only be search engine friendly but also people friendly. Hence our SEO strategies focuses that your goals should be on same lines with your customers’ goals. This is what takes us to our next part – knowing how online users interact with Google.</p>
<h3>Know what your customers are looking for</h3>
<h4>Visitors type in their query on a search engine for one of the 3 reasons:</h4>
<ul>
<li><strong>&#8216;Do&#8217; </strong>– I want to take an action – buy a pair of shoes or subscribe to a magazine</li>
<li><strong>&#8216;Know&#8217;</strong> – I want information about something – top 5 cars of 2015 or best restaurant to have continental food</li>
<li><strong>&#8216;Go&#8217;</strong> – I want to visit another site – visit FaceBook or Audi’s official website In return, the search engine make sure that the visitors get relevant information when they type in their query.</li>
</ul>
<p>In return, the search engine make sure that the visitors reach relevant information when they type in their query. SEO is what ensures that your business stays relevant, attract traffic to your site, and convert visitors to sales. It’s all about what your business deals in and then optimizing your website to ensure that it brings in visitors who want the same product or service that you deal in. This is done by using the right kind of keywords in your content and various HTML elements that helps in the optimization process.</p>
<h3>How SEO works</h3>
<p>In order to understand how the optimization process works, we need to understand how the search engine works to return relevant results. Search Engines employ search robots that crawl the web upon the user hitting the ‘Search’ button after typing in the search query. They follow links and index the content in their own databases based on pre-programed algorithms. This is done after they “read” what is provided in the text part of the content.</p>
<p>They rely on relevance and importance of content to give a higher rank. This relevance and importance is in turn determined by tracking what users do on your site, what they discover and how they share it. Thus a solid foundation for a good SEO rests on relevant and meaningful content and this in turn is crafted using relevant and meaningful keywords.</p>
<h3>Keyword Research – The backbone of rock solid SEO</h3>
<p>The key objective of SEO is not to increase the free (organic) traffic. It is rather to connect the right buyer with the right seller, with the seller being the client seeking the SEO services. This way SEO helps people who are looking for you to actually discover you by using the right set of keywords. However, how do you determine what the right kind of keyword is?</p>
<p>This is precisely where keyword research comes in. By researching the right kind of keyword you not only get to know which phrases or set of words can be targeted for best results. In turn you also get to know your own targeted customers well. So it’s not only about getting increased traffic, but it’s about getting the apt kind of traffic. Getting to know the keywords also provides you valuable intel on what type or variant of a product is selling better than others. For instance if you are selling apparel, would “polo neck t-shirt” or “round neck t-shirt” fetch you more traffic? That is the decision you have to make, and this is not an easy one to make. You need to constantly hypothesize, test it and refine it in case it doesn’t work – keep doing this till you hit the bull’s eye.</p>
<h3>How to find the right keyword?</h3>
<p>As said earlier, a bit of research is essential to uncover which keywords will work best for your business. The below three types of keywords work best:</p>
<ul>
<li>Those that have a high search volume (people are searching using these words)</li>
<li>Those that have lower competition (lower number of results means your chances of appearing on top of SERPs improve)</li>
<li>Those that have its weight in gold because of relevant and meaningful content</li>
</ul>
<h4>In today’s times, it is still important to exact match keywords. However, with latest Google algorithm updates, it is now equally essential to –</h4>
<ul>
<li>Fulfill search intent</li>
<li>Track bounce rates</li>
<li>Monitor time spent on a site by user</li>
</ul>
<p>Together these highlight the degree of user satisfaction from the website thanks to relevant and meaningful content.</p>
<p>Some tools that help you with keyword research include <a href="https://adwords.google.com/KeywordPlanner" target="_blank" rel="noopener noreferrer">Google’s Keyword Planner</a> tool, <a href="http://www.google.com/trends/" target="_blank" rel="noopener noreferrer">Google Trends</a> tool or <a href="http://advertise.bingads.microsoft.com/en-us/bing-ads-intelligence" target="_blank" rel="noopener noreferrer">Microsoft Bing Ads </a>tool. If you have an account in Google Keyword Planner, you can easily get customized keywords that get high traffic based on your website. These suggestions are based on actual Google searches data. Now that we are going into the realm of the degree of broadness or narrowness of your keywords, let look at one related yet interesting concept – the long tail keyword.</p>
<h3>Long tail keyword revisited</h3>
<p><img loading="lazy" decoding="async" class="size-full wp-image-15099 alignright" src="https://www.macronimous.com/wp-content/uploads/Picture1.jpg" alt="Teach Yourself Modern SEO" width="420" height="266" /></p>
<p>me keyword Long tail is basically the shape of a graph that represents the precise portion – a lot of low volus work collectively to send you high number of traffic. Ideally what happens in search world is this – popular search terms consist of just 30% of total searches. On the other hand, niche/individual/distinct searches are what comprise of the long tail of the search i.e. thousands of millions of unique searches that may not be popular but together have a higher weightage than the popular keywords.</p>
<p>To take our previous example, “t-shirt” will be a popular search query (high on popularity (may be millions of searches worldwide), but very low on conversion).</p>
<p>However “blue crew neck t-shirt” or “orange polo t-shirt” are more unique search strings that together form the long tail keywords (low on popularity (maybe 100’s of searches worldwide), but high on conversion).</p>
<p>Now imagine if you are a startup and ant to target on ‘Clothes’. Well, it does seem lucrative, but it also means that you are pitted against staggeringly high number of competitors (some of which may include giants in the business) and will require years of efforts to achieve high rankings. So your website will hardly stand any realistic chance of breaking through to the top of SERPs. One must hence make a judicious decision between the demand for the keywords, versus the efforts needed to achieve high rankings with them.</p>
<h3>Content Development</h3>
<p>When you have achieved the right set of keywords through keyword research, the next step would be to get going with content creation using these appropriately. As we mentioned earlier, search engines have bots that crawl web pages and decide rankings based on keywords used and relevance of content. Thus your keyword research and use of correct keywords can impact their decision whether to rank your website higher or no. This will be especially needed if your website doesn’t have much of text but more of images, videos or Flash animation (which cannot be deciphered directly by the search bots).</p>
<p>Again, as we said before, the content needs to be search bot friendly, but it should be meaningful, engrossing and applicable for people too. This will help to ensure that</p>
<ul>
<li>People discover you online (thank you search bots!)</li>
<li>People actually purchase/subscribe/respond to you (thank you people!)</li>
</ul>
<h4>Point#2 can be accomplished by a few subtle alterations to text as below:</h4>
<ul>
<li><strong>Titles</strong> – Keep Content title catchy; these are your elevator pitch to ensure that visitors actually go on to read the body of the content</li>
<li><strong>Keywords</strong> – Use keywords that will help readers in their problems. Of course they have to be relevant to your business too</li>
<li><strong>External Links</strong> – If the content links to third party links that have similar or complementary information, it helps – both the readers as well as the link providers who will in turn link to you.</li>
<li><strong>Quality content</strong> – With the recent Hummingbird and Pigeon update, the emphasis is back on meaningful content that gives value to readers. Imagine users in UK searching for local pizza and getting results of pizza in US or nachos in UK! Such irrelevant information adds zero value to customers and hence is penalized by Google algorithms that prefer local search and relevant content.</li>
<li><strong>Non-plagiarized Content</strong>– This is the first commandment of content producers and not without solid reason. Any plagiarized content is penalized heavily by Google and it takes months of committed efforts to recover afterwards from it.</li>
</ul>
<h3>Website code optimization</h3>
<p>Search bots also decide on rankings by the way certain elements within website coding is crafted. Here are eight ways in which tags can be optimized to drive higher SERP rankings.</p>
<ul>
<li><strong>Title Tags</strong> – Use those words that readers expect you to query in search box. For e.g.<i>&lt;title&gt; Web development and mobile app development India &lt;/title&gt;</i>is a good way to showcase what a web development company does. If a client wants low cost web development, he/ she will also type ‘India’ (the outsourcing advantage), so having that too works.</li>
<li><strong>Meta Tags</strong> – While this doesn’t affect the ranking signal much, it affects visitor perception of site as it describes your business to them.<i>&lt;meta name=&#8221;description&#8221; content=&#8221;Creative and visually appealing web design at nominal pricing. We have proficiencies in new age responsive and mobile ready website design that helps you bring in web traffic and conversion&#8221; /&gt;</i>This content describes what the business does, its USP and the benefits it brings to clients – key signals that arouses user interest and bring closer to sales conversion.</li>
<li><strong>Headings</strong> – These come in a distinct order with H1 being the main heading, H2 being sub-heading and H3 being the sub-sub-heading, and so on till H6. Similar to a table of content, it outlines what theme or point is being covered after the heading tag. Keep your main essential keywords within H1 tag (only one H1 should be present in webpage, others can be multiple occurrences) and make it relevant to your line of business.</li>
<li><strong>Sitemap</strong> – Having a sitemap eases the crawling process of search engine bots and helps them view your site in a positive light. It gives direction and tells them what all they can find in the entire website. You can create XML sitemaps using <a href="https://www.xml-sitemaps.com/" target="_blank" rel="noopener noreferrer">this tool</a>, and then submit them to <a href="https://www.google.com/webmasters/" target="_blank" rel="noopener noreferrer">Google</a> or <a href="http://www.bing.com/toolbox/webmaster" target="_blank" rel="noopener noreferrer">Bing</a> to facilitate the crawling and indexing process.</li>
<li><strong>Domain name</strong> – If your business is in selling mineral water, having a domain name ‘www.mineralwater.com’ helps in higher ranking. However with billions of websites and domain names around, it can be a challenge to get this easily, hence come up with variations like ‘coolwater.biz’, ‘bottledwater.newjersey.com’</li>
<li><strong>URL structure</strong> – This is an oft ignored part of SEO. Having a complex URL will mean that the crawling and indexing of the webpage will not happen properly, which in turn will impact the ranking. Make use of these quick tips and you will not go wrong with your URLs –
<ul>
<li>Do not include special characters in your URL name (@, #, $, *, =, etc.)</li>
<li>Try to keep URL as short as possible</li>
<li>Use hyphens instead of underscores</li>
<li>Try to keep only numbers and letters in URL</li>
</ul>
</li>
<li><strong>Site structure </strong>– Internally linking carries good weight with Search Engines provided you do it in a proper way – a. Carry link to other webpages within your content rather than on frames or footer b. Do a ‘no-follow’ to outgoing links that are generic or not relevant to your line of business</li>
<li><strong>Alt tags</strong> – Images need to be optimized using an appropriate description to allow search bots to crawl and index. Use the img src and alt tags to describe image as shown in example below for ‘orange shirt’ (obviously, make sure that image ‘alt’ text and what it depicts both are relevant)<a href="http://xyz.com/images/orshrt.jpg" target="_blank" rel="noopener noreferrer"><i>&lt;img src=”http://xyz.com/images/orshrt.jpg” alt=“orange shirt”/&gt;</i></a></li>
</ul>
<div class="clear"></div>
<h3>Website links optimization</h3>
<p>Links is perhaps the biggest ranking influencer for SEO. Imagine links as the roads that help search bots in their crawling and indexing process. With the aid of links analysis, search bots determine the quality and relevance of webpages being connected through the links. Additionally they also help the bots to assess the trust, authority and spam factor of the webpage and as a result move the ranking appropriately.</p>
<p>Because of the weightage attached to link analysis, a strategic method of linking to the right external sites helps to only improve SEO but also drives substantial web traffic. Thus link building becomes one of the most critical success metric for any SEO manager.</p>
<h4>Here are some ways in which link building can get you the desired results</h4>
<ul>
<li><strong>Social media</strong> – With the huge proliferation of social media platforms such as StumbleUpon or Digg, getting linked to these sites help improve your website’s visibility as well as linked better</li>
<li></li>
<li><strong>Directories</strong> – Submitting your site to directories too help gain better reach for your website. Access this list to know some of the best directories to submit your site to.</li>
<li><strong>Forums</strong> – Create a signature with your website URL, and use it to link the forum to your website (provided they are not’t using ‘no-follow’)</li>
</ul>
<h4>Some quick pointers improve the efficacy of link are</h4>
<ul>
<li>Links put on footer or frame are less effective than links on content</li>
<li></li>
<li>Links from related sites (same line of business or complementary business) are better</li>
<li>Pay special attention to anchor links – a key SEO strategy</li>
</ul>
<h3>To sign off</h3>
<p>We at Macronimous believe that implementing these points will help your website optimization process to a great extent. While this is not “the” only list, but this is ‘a’ list that can fast track your SEO process and drive the results you and your client envisaged together. Write in with your comments to let us know if this list was useful and if any other vital pointer can be added in to this list.</p>
<div class="clear"></div>
<h3>How can we help you?</h3>
<p>&#8220;For large and small companies optimizing their web pages to provide top listing in search engines such as, Google, represents a task to be outsourced to professionals. &#8221; &#8211; says <a href="http://sbinformation.about.com/library/weekly/aa122802a.htm" target="_blank" rel="noopener noreferrer">Darrell Zahorsky of About.com</a>. We have over 4 years of experience in search engine optimization and look at <a href="https://www.macronimous.com/services">our services</a> which you might be interested in.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/teach-yourself-modern-seo/">Teach Yourself Modern SEO</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Web Servers Demystifyed</title>
		<link>https://www.macronimous.com/resources/articles/web-servers-demystifyed/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 12 May 2018 08:35:15 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com/?post_type=resources&#038;p=15090</guid>

					<description><![CDATA[<p>What is a web server? Do you know how a web page is appearing in your browser when you open it in a browser? Do<a href="https://www.macronimous.com/resources/articles/web-servers-demystifyed/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/web-servers-demystifyed/">Web Servers Demystifyed</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>What is a web server?</h3>
<p>Do you know how a web page is appearing in your browser when you open it in a browser? Do you know from where the images or audio has been appearing in any web page? They are all from some web servers. A Web server is a piece of computer software that can respond to a browser&#8217;s request for a page, and deliver the page to the Web browser through the Internet. When you call a web page by its address, the URL, for example, https://www.macronimous.com/, then what happens exactly between your computer and the web server where the site is hosted? Let us discuss everything you want to know about a web server in this article.</p>
<h3>The Browser &#8211; web server communication</h3>
<ul>
<li>If you call the URL(Uniform Resource Locator) https://www.macronimous.com/ in your browser, the browser will split-up and understand the three parts,
<ul class="sub">
<li>The HTTP (Hyper Text Transfer Protocol),</li>
<li>The server name where the site is hosted and</li>
<li>The web page under the site, index.php.</li>
</ul>
</li>
<li>The browser will communicate with a name server to translate the server name &#8220;www.macronimous.com&#8221; into an IP (Internet Protocol) Address, which it uses to connect to the server machine.</li>
<li>Then the browser will form a connection to the server at that IP address on port 80.</li>
<li>By following the HTTP protocol, the browser sent a GET request to the server, asking for the file &#8220;https://www.macronimous.com/index.php&#8221;.</li>
<li>Since the browser can understand only HTML Tags, the web server will interpret the server-side scripting and will send the files in HTML format to the Browser. For example, An Apache web server can interpret PHP scripting and will send the browser as an HTML file.</li>
<li>Then the browser will interpret the HTML tags into formatted web pages, as you see in the browser.</li>
</ul>
<p>&nbsp;</p>
<h3>Static and Dynamic pages</h3>
<p>Web Server helps people to create both static and dynamic pages. All HTML pages(with or without client-side scripts) are static, means, the HTML files will be sent to the browser without any intervention of the web server. But when you write some server-side script that can make the site dynamic, here the presence of web server helps us to achieve the dynamic page. For example, if you write a GuestBook in ASP then a web server, here IIS, is needed to interpret it. The Web server is actually processing information and generating a page based on the specifics of the query.</p>
<h3>What else a web server can do?</h3>
<p>A web server can provide security to your pages to some level. A web server with SSL (Secure Socket Layer) can give you more protected pages, where you can do secured file transaction like credit card processing. As we previously said web servers can run your server-side scripting. Here is the list of some web servers and what server-side scripts they can run.</p>
<div class="table_bg"><span class="small_red">Internet Information server 5.0</span>&#8211; ASP, ASP.NET, CGI, Python, PHP<br />
<span class="small_red">Apache</span> &#8211; PHP, CGI/Perl, Python<br />
<span class="small_red">Tomcat</span> &#8211; CGI/Perl, JSP,Servlets, JavaBeans<br />
<span class="small_red">iPlanet</span> &#8211; JSP, Servlets, Enterprise JavaBeans<br />
<span class="small_red">Chilisoft</span> &#8211; ASP<br />
<span class="small_red">Go web server</span> &#8211; LotusScript</div>
<p>The following is the complete web comparison chart, tells about the platforms which they run and their cost.</p>
<h3>Web Server Comparison Chart</h3>
<p>&nbsp;</p>
<table class="mobile_none" border="0" width="100%" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<table id="table_bg1" border="0" width="100%" cellspacing="0" cellpadding="5">
<tbody>
<tr valign="middle">
<th class="table_border" align="center" width="25%"><b>web server</b></th>
<th class="table_border" align="center" width="4%"><b>Version</b></th>
<th class="table_border" align="center" width="50%"><b>Operating System</b></th>
<th class="table_border1" align="center" width="21%"><b>Price(Approx.)/Remarks</b></th>
</tr>
<tr valign="middle">
<td class="table_border" align="left"><a href="http://www.acme.com/software/thttpd/" target="_blank" rel="noopener"> ACME thttpd </a></td>
<td class="table_border" align="left"></td>
<td class="table_border" align="left">FreeBSD, SunOS 4, Solaris 2, BSD/OS, Linux, OSF</td>
<td class="table_border1" align="center">Free</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left"><a href="http://www.amiga.com/" target="_blank" rel="noopener"> Amiga Web Server </a></td>
<td class="table_border" align="left"></td>
<td class="table_border" align="left">Amiga</td>
<td class="table_border1" align="center">Free</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left"><a href="http://www.apache.org/" target="_blank" rel="noopener"> Apache </a></td>
<td class="table_border" align="center">1.3.17</td>
<td class="table_border" align="left">NetBSD, Digital UNIX, AIX, OS/2, Windows 3.x, SCO, HPUX, Novell NetWare, Macintosh, Be OS, Windows NT, Linux, VMS, AS/400, Windows 95, FreeBSD, IRIX, Solaris</td>
<td class="table_border1" align="center">Free</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left"><a href="http://www.w3.org/Daemon/Status.html" target="_blank" rel="noopener"> CERNHttpd </a></td>
<td class="table_border" align="left"></td>
<td class="table_border" align="left"></td>
<td class="table_border1" align="left"></td>
</tr>
<tr valign="middle">
<td class="table_border" align="left">Commerce Server/400</td>
<td class="table_border" align="center">1.0D</td>
<td class="table_border" align="left">AS/400</td>
<td class="table_border1" align="center">$4995 (suggested retail)</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left">EMWAC HTTP Server</td>
<td class="table_border" align="center">0.991</td>
<td class="table_border" align="left">Windows NT</td>
<td class="table_border1" align="center">Free</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left">GoAhead web server</td>
<td class="table_border" align="center">2.1</td>
<td class="table_border" align="left">HPUX, Embedded, Windows NT, Linux, Windows CE, QNX, Windows 95, Windows 98, IRIX</td>
<td class="table_border1" align="center">Free, embedded web server</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left"><a href="http://hawkeye.net/" target="_blank" rel="noopener"> Hawkeye </a></td>
<td class="table_border" align="center">1.3.5</td>
<td class="table_border" align="left">Linux</td>
<td class="table_border" align="center">Private/educational use &#8211; free</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left"><a href="https://msdn.microsoft.com/en-us/library/ms181052(v=vs.80).aspx" target="_blank" rel="noopener"> Internet Information Services</a></td>
<td class="table_border" align="center">11.0</td>
<td class="table_border" align="left">Windows Server/ MS Windows</td>
<td class="table_border1" align="center">Free with Windows</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left"><a href="http://www.w3.org/Jigsaw/" target="_blank" rel="noopener"> Jigsaw </a></td>
<td class="table_border" align="center">2.1.2</td>
<td class="table_border" align="left">Win95, WinNT and Solaris 2.x. OS/2, MacOS, BeOS, Linux, AS-400 and AIX with JDK1.2 and above</td>
<td class="table_border1" align="center">Free, W3 license</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left">Lotus Domino Go web server</td>
<td class="table_border" align="center">4.6.1</td>
<td class="table_border" align="left">Digital UNIX, AIX, OS/2, HPUX, Windows NT, Windows 95, IRIX, Solaris</td>
<td class="table_border1" align="center">$495; free demo</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left">Netscape Enterprise (AOL) web server 6.0</td>
<td class="table_border" align="left"></td>
<td class="table_border" align="left">Solaris 2.6, 7, 8 &amp;Windows NT 4 SP6a,<br />
2000 Server SP1 or later</td>
<td class="table_border1" align="center">N/A</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left">RapidControl for Web(tm)</td>
<td class="table_border" align="center">3.01</td>
<td class="table_border" align="left">NetBSD, Digital UNIX, BSDI, Windows 3.x, SCO, HPUX, Windows NT, Linux, MS-DOS, Windows 95, FreeBSD, IRIX, Solaris</td>
<td class="table_border1" align="center">Write to <a href="mailto:sales@rapidlogic.com">sales@rapidlogic.com</a></td>
</tr>
<tr valign="middle">
<td class="table_border" align="left"><a href="http://savant.sourceforge.net/" target="_blank" rel="noopener"> Savant </a></td>
<td class="table_border" align="center">2.1</td>
<td class="table_border" align="left">Windows NT, Windows 95, Windows 98</td>
<td class="table_border1" align="center">Free</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left">Spinnaker</td>
<td class="table_border" align="center">3.0</td>
<td class="table_border" align="left">Windows NT, Windows 95</td>
<td class="table_border1" align="center">$249</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left"><a href="http://www.spyglass.com/" target="_blank" rel="nofollow noopener"> Spyglass MicroServer </a></td>
<td class="table_border" align="center">2.0</td>
<td class="table_border" align="left">Embedded, Windows NT, Linux, Solaris</td>
<td class="table_border1" align="center">contact Spyglass</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left"><a href="http://stronghold.redhat.com/" target="_blank" rel="noopener"> Stronghold Secure Web Server </a></td>
<td class="table_border" align="center">3.0</td>
<td class="table_border" align="left">NetBSD, Digital UNIX, BSDI, AIX, SCO, HPUX, Linux, FreeBSD, IRIX, Solaris</td>
<td class="table_border1" align="center">Contact c2.net</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left"><a href="https://docs.oracle.com/cd/E19857-01/819-0130-10/agintro.html" target="_blank" rel="noopener">Sun ONE web Server</a></td>
<td class="table_border" align="left"></td>
<td class="table_border" align="left">Sun Solaris[tm] 8, 7, and 2.6,Microsoft Windows NT 4.0 SP6a, Microsoft Windows 2000 SP1 or later, Red Hat Linux, Hewlett-Packard HP-UX, Compaq Tru64 UNIX 5.0a</td>
<td class="table_border1" align="center">$1495</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left"><a href="http://wwws.sun.com/software/chilisoft/home_chilisoft.html" target="_blank" rel="noopener"> Sun Chili!Soft ASP Server </a></td>
<td class="table_border" align="left"></td>
<td class="table_border" align="left">Sun Solaris[tm] 8, 7, and 2.6 (SPARC® platform),Microsoft Windows NT and 2000,AIX 4.3.3,HP-UX 11.0</td>
<td class="table_border1" align="center">Plug-In/ $495</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left"><a href="http://www.freedownloadscenter.com/Network_and_Internet/Web_Servers/Viking_Web_Server.html" target="_blank" rel="noopener"> Viking </a></td>
<td class="table_border" align="center">1.06</td>
<td class="table_border" align="left">Windows NT, Windows 95, Windows 98</td>
<td class="table_border1" align="center">$100 for 90-day trial</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left">WebBase</td>
<td class="table_border" align="center">4.5</td>
<td class="table_border" align="left">NT 4, 95, 98, 2000</td>
<td class="table_border1" align="center">$995-$1795</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left">WebSTAR 5.0</td>
<td class="table_border" align="center">5.0</td>
<td class="table_border" align="left">MacOS X</td>
<td class="table_border1" align="center">$399</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left">WebSite Pro 3.1.13.0</td>
<td class="table_border" align="center">2.5.8</td>
<td class="table_border" align="left">Windows NT, Windows 95, Windows 98</td>
<td class="table_border1" align="center">$299 &#8211; $1999</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left"><a href="http://www.tenon.com/products/webten/" target="_blank" rel="noopener"> WebTen </a></td>
<td class="table_border" align="center">2.1</td>
<td class="table_border" align="left">Macintosh</td>
<td class="table_border1" align="center">$495</td>
</tr>
<tr valign="middle">
<td class="table_border" align="left"><a href="http://www.xitami.com/" target="_blank" rel="noopener">Xitami</a> 2.4d9</td>
<td class="table_border" align="center"></td>
<td class="table_border" align="left">NetBSD, Digital UNIX, BSDI, AIX, OS/2, Windows 3.x, SCO, HPUX, Windows NT, Linux, VMS, QNX, Windows 95, FreeBSD, IRIX, Solaris</td>
<td class="table_border1" align="center">free/ $250</td>
</tr>
<tr valign="middle">
<td class="table_border_last" align="left"><a href="https://en.wikipedia.org/wiki/Zeus_Web_Server" target="_blank" rel="nofollow noopener"> Zeus Web Server </a></td>
<td class="table_border_last" align="center">4.0</td>
<td class="table_border_last" align="left">NetBSD, Digital UNIX, BSDI, AIX, SCO, HPUX, Linux, FreeBSD, IRIX, Solaris</td>
<td align="center">Shutdown</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><strong class="red2">Note:</strong> The above table is prepared with the prices, specified in the corresponding websites on December 2002.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/web-servers-demystifyed/">Web Servers Demystifyed</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Using IM for Project communication</title>
		<link>https://www.macronimous.com/resources/articles/using-im-for-project-communication/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 12 May 2018 08:30:01 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com/?post_type=resources&#038;p=15088</guid>

					<description><![CDATA[<p>Outsourcing of work is becoming kind of a necessity now for every other company, as the project requirements and expectations keep getting more and more<a href="https://www.macronimous.com/resources/articles/using-im-for-project-communication/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/using-im-for-project-communication/">Using IM for Project communication</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Outsourcing of work is becoming kind of a necessity now for every other company, as the project requirements and expectations keep getting more and more demanding. As important projects are being outsourced to offshore development centers, quick communication has become quite a necessity.</p>
<p>Technology has made the world a small place to live in. As technology gets better, communication methodologies also are getting better every moment. In this scenario, Instant Messengers or IMs are becoming popular as a formal means of communication.</p>
<p class="content_box">Right from a quick clarification between project team members about the project, solving of issues in projects, nullifying time zone differences, effecting Multi-tasking to even initiation of important new business deals and getting project approvals, doing it all through instant messaging has become the order of the day.</p>
<h3>Why IM when we have emails</h3>
<p>IM is quicker and gives the effect of talking directly, though not as expensive as the telephone lines! Where emails take more time to reach the intended email address, IM, as the name suggests, is instant and information can be shared at the click of a mouse! This makes IM quite a star, when it comes to instant transfer of information, be it formal or informal, when compared to emails.</p>
<p>Few Main reasons that IMs are employed in organizations for Project Management include:</p>
<ul>
<li><a href="#1">Communication for outsourced Projects.</a></li>
<li><a href="#2">Binding team members together.</a></li>
<li><a href="#3">Time zone advantage.</a></li>
<li><a href="#4">Simultaneous messaging and calls.</a></li>
<li><a href="#5">A new era of KM!</a></li>
<li><a href="#6">Get Time for reference.</a></li>
</ul>
<p>We can see how are they useful in these aspects of project management, from the explanations below:</p>
<h4 id="1">1.Communication for outsourced Projects</h4>
<p>In any project, perfect communication medium is very important to develop trustworthiness and understanding between the client and the organization. It might not be necessarily feasible to communicate through the telephone always. Especially, if the project has been outsourced to an offshore company, then it is not always practical to call up and communicate important issues and discussions.</p>
<p>This is where IMs come handy. Not only would one get immediate response from other member, but even highly useful yet complex actions like public conferences can also be held through instant messengers. In order to make projects more understandable and to deliver the best to the clients, the cost effective yet powerful medium to discuss issues and take immediate yet precise and decisive decisions is to utilize IMs.</p>
<h4 id="2">2.Binding team members together</h4>
<p>Big companies might have many branch offices all over the globe. IMs prove to be a powerful means of binding the team members together, even though they are sitting miles away from each other. Many IMs come free nowadays, and even if they were spent upon, then that investment would still prove to be useful enough, looking at the cost saved on phone bills and blunders done in projects, due to misunderstanding or failure in understanding of the project requirements.</p>
<h4 id="3">3.Time zone advantage</h4>
<p>If communication of projects has to be done between two teams living in places with different time zones, then IMs prove to be highly advantageous, as it would help you contact your team mate at any time possible, through IMs, with prior information.</p>
<h4 id="4">4.Simultaneous messaging and calls</h4>
<p>With Skype facilities available, simultaneous messaging and talking over the phone is also possible. This utilizes your time effectively, along with immediate transfer of information between the team members.</p>
<h4 id="5">5.A new era of KM!</h4>
<p>Knowledge Management (KM) is a very important aspect in any organization. A company might have many good sources of information scattered around. IMs prove to be a source of knowledge management, providing immediate sharing of information and knowledge between team members and clients.</p>
<h4 id="6">6.Get Time for reference</h4>
<p>If a person comes to you personally for a query clarification or a discussion, then you are bound to reply to them then and there, without having much time to refer or check out more details about the same. At the same time, if you are asked the same query or discussion through instant messages, you have time to check out details before answering or discussing about any matter.</p>
<p>Overall, the whole article can be summed up as the below mentioned pros and cons of IM:</p>
<h3>Advantages</h3>
<ul>
<li>Quick and easy access.</li>
<li>Cost effective when compared to phone calls.</li>
<li>Highly effective for long distance communication.</li>
<li>Information can be shared immediately.</li>
<li>No need to wait for responses.</li>
<li>Time zone advantages.</li>
<li>Can refer and prepare beforehand, and then reply to queries.</li>
<li>Online conferences are possible, involving many people in the discussion.</li>
<li>Immediate file transfer possible.</li>
<li>Multi-tasking possible.</li>
<li>You know if the person to be contacted is available or not, thereby saving time in trying to find out if the concerned person is in or not.</li>
<li>Occurrence of Spam reduced to a greater extent.</li>
</ul>
<p>And much more!</p>
<h3>Disadvantages</h3>
<div>
<ul>
<li>Cross-messenger communication not possible always.</li>
<li>Particular word count limit for messages typed.</li>
<li>Have to make the other person understand the issue, by typing out the complete content, unlike phone calls that are easy to communicate.</li>
<li>Language problems might pose a threat as well. Not all might be conversant in typing out a language that the other user understands In a nutshell, it is quite evident that the advantages outweigh the disadvantages. For effective project management, IMs always prove to be useful, be it solving of project issues or having a high-end discussion with many officials involved, Instant Messaging is here to stay as the preferred choice of communication for professionals and business clients staying miles apart from each other.</li>
</ul>
</div>
<p>The post <a href="https://www.macronimous.com/resources/articles/using-im-for-project-communication/">Using IM for Project communication</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Managing Scope Creep in Web Projects</title>
		<link>https://www.macronimous.com/resources/articles/managing-scope-creep-in-web-projects/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 12 May 2018 07:13:46 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com/?post_type=resources&#038;p=15074</guid>

					<description><![CDATA[<p>Managing Scope Creep in Web Projects Scope creep (also called &#8220;requirement creep&#8221;) in project management refers to uncontrolled changes in a project&#8217;s scope. This can occur<a href="https://www.macronimous.com/resources/articles/managing-scope-creep-in-web-projects/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/managing-scope-creep-in-web-projects/">Managing Scope Creep in Web Projects</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><strong>Managing Scope Creep in Web Projects</strong></h2>
<p>Scope creep (also called &#8220;requirement creep&#8221;) in project management refers to uncontrolled changes in a project&#8217;s scope. This can occur when the scope of a project is not properly defined, documented, and controlled.</p>
<p>This white paper explains four scenarios where scope creep can occur in a <em>web development</em> project and discusses ten ways to address them.</p>
<p>In a professional environment, projects are defined by a clearly defined scope, proper planning, and activities that contribute to successful completion. While successful completion is the desired outcome of any well-defined plan, unexpected events and less-than-ideal results can occur.</p>
<p>What are these unexpected events? They might be elements not originally included in our objectives, things we never considered or planned for, yet which our teams, their efforts and resources are drawn into. Such unforeseen deviations can lead to missed deadlines, excessive, unbillable tasks, budget overruns, and potentially even the loss of valuable clients.</p>
<p>Scope creep, if not managed effectively, can become disastrous. Variations in the project&#8217;s scope can negatively impact its successful delivery.<img loading="lazy" decoding="async" class="size-full wp-image-15075 alignright" src="https://www.macronimous.com/wp-content/uploads/managing_scope_creep_in_web_project_development.gif" alt="Managing Scope Creep in Web Projects" width="194" height="192" /></p>
<p>However, deviations from the scope are likely and can occur due to unplanned changes arising during project development. Changing market trends, inadequate documentation, and unplanned activities can contribute to scope creep and necessitate modifications to existing applications or influence the addition of new features.</p>
<p>&nbsp;</p>
<p style="text-align: right;">(© Scott Adams, Dilbert)</p>
<p>If scope creep is seemingly inevitable, how can project management teams accommodate these unintended changes without losing focus? While easier said than done, scope creep management involves navigating beyond the initially planned objectives, accommodating, and managing the inevitable changes that arise. This article aims to shed light on managing scope creep effectively.</p>
<p>Effective scope creep management begins with identifying its source. Therefore, pinpoint the cause before attempting to manage it.</p>
<p>With three key parties involved—the client, the <em>web development agency</em>, and the developer—let us examine how, when, and from whom scope creep originates. Consider the following situations:</p>
<h3><strong>Instance 1:</strong></h3>
<p>Assume the client is clear about their requirements, and clearly states them to the <em>web development agency</em>, who, in turn, communicates them to the developer. With the scope communicated throughout this process, the end product is likely to meet its intended purpose, provided all resources are in place for successful product creation. This is an ideal scenario. The scope is well-defined and unlikely to deviate.</p>
<h3><strong>Instance 2:</strong></h3>
<p>This discussion aims to understand the likelihood of scope creep under different circumstances. Consider this: The client is unsure of their requirements and seeks support from the <em>web development agency</em>. The <em>web development agency</em>, to the best of its ability, shapes the client&#8217;s requirements, defines them based on their understanding, and communicates this to the developer. The developer creates the product accordingly. The end product is likely to satisfy the client. The <em>web development agency&#8217;s</em> knowledge and experience help them understand the client&#8217;s vague requirements.</p>
<h3><strong>Instance 3:</strong></h3>
<p>The client, unsure of their requirements, seeks the <em>web development agency&#8217;s</em> support. The <em>web development </em><span style="box-sizing: border-box; margin: 0px; padding: 0px;"><em>agency </em>attempts</span> to define the client’s requirements and communicates this to the developer who then creates the product accordingly. Suppose an inadequate requirements analysis is performed, and this flawed project scope is passed on by the <em>web development agency</em> to the developer. The resulting product may match the developer’s understanding of the scope but is unlikely to meet the client&#8217;s actual needs. The client, due to a lack of sufficient in-house resources or a skilled requirements analyst, may fail to communicate their requirements with the correct specifications and details. Likewise, overemphasizing certain components or approaching the requirements with preconceived notions can lead the <em>web development agency</em> to misinterpret the client&#8217;s needs. Both of these issues compound the problem.</p>
<h3><strong>Instance 4:</strong></h3>
<p>This situation differs slightly. Here, the client is certain of their requirements and communicates them clearly to the <em>web development agency</em>. However, the <em>web development agency</em> interprets the requirements, modifies them, and passes this altered version to the developer. This action from the <em>web development agency</em> might add value to the product. However, if it does not, it will be seen as an &#8220;improper application of intelligence&#8221; or a judgmental error on the <em>web development agency&#8217;s</em> part. The <em>web development agency</em> may believe they are adding value without realizing they are contributing to a future problem. If this modified scope is adopted, the resulting product may align with the <em>web development agency’s</em> interpretation, but likely not the client&#8217;s original vision.</p>
<h3><strong>Instance 5</strong><strong>:</strong></h3>
<p>In this likely scenario, the client is aware of their requirements and clearly states them to the <em>web development agency</em>. The <em>web development agency</em>, in turn, communicates this to the developer. However, unlike the earlier situations where the <em>web development agency</em> misunderstood the requirements, here, the developer creates a product that simply doesn&#8217;t match the scope presented. This scenario represents a developmental failure on the developer&#8217;s side.</p>
<h3><strong>Instance 6</strong><strong>:</strong></h3>
<p>The <em>web development agency</em> may continually add minor components to the requirements, eventually leading to a significant increase in working hours, often without the client’s awareness. Reluctant to decline the client, the development team may continue accepting modifications to the scope. In some cases, these revisions and added hours go unaccounted for. Cutting corners in the requirements analysis stage can lead to significant complications later for everyone involved: the client, the <em>web development agency</em>, and the developer.</p>
<p>A related issue is when the client provides a scope based on their perception without conducting a thorough requirements analysis. The final product may not meet the client&#8217;s actual needs, becoming apparent only upon completion. You might wonder how this relates to scope creep. The client may then ask the development team to recreate the product with a revised scope, hesitant to admit that the product was based on their initial, inadequate input. This creates further unplanned work.</p>
<p>Let&#8217;s now explore how we can effectively manage scope creep.</p>
<h3><strong>10 Steps to Effective Scope Creep Management:</strong></h3>
<ol>
<li><strong>REQUIREMENT ANALYSIS:</strong> Begin with a thorough requirement analysis. Consider all essential components. Understand your short-term and long-term needs and assess how the product can effectively and efficiently address them. Consider the product&#8217;s scalability, tool compatibility, and other relevant factors. If you lack sufficient in-house resources, hire a professional requirements analyst. They can help you understand what you ultimately need to achieve your goals.</li>
<li><strong>DEFINING THE SCOPE OF THE PROJECT:</strong> This follows your requirement analysis. Clearly define your scope with all necessary specifications and details. The report from your requirements analyst will be helpful in preparing the project scope.</li>
<li><strong>BUILDING TRUST:</strong> Choose a <em>web development agency</em> by evaluating their ability to understand your requirements accurately, deliver quality work, and adhere to deadlines. If you are already working with a <em>web development agency</em>, cultivate a relationship built on trust to collaboratively tackle scope creep.</li>
<li><strong>REMAIN FLEXIBLE:</strong> Clearly stating all specifications and validating them before the project begins minimizes scope creep. However, when precise specifications are not possible, flexibility is crucial. Understand that some scope creep is inevitable and that minor additions to the scope will increase billable hours.</li>
<li><strong>BE REALISTIC:</strong> Failing to clearly define the scope and refusing to be flexible will create difficult situations where you may feel forced to choose between your client and <em>web development agency</em>. When <em>web development agencies</em> and developers realistically acknowledge scope creep and work together to manage it, they can avoid negative impacts on their long-term relationships.</li>
<li><strong>EDUCATE YOUR CLIENT:</strong> Always educate your clients, particularly if they have limited technical knowledge. Present realistic and practical timelines. If you perform a requirement analysis for them, present and confirm that the derived technical specifications align with their functional/business requirements. Only pass these approved specifications to your developer. Keep your client well-informed. Only surprise them with positive outcomes. Confirm the necessity of any changes, considering their implications, value, and cost.</li>
<li><strong>PROVISION FOR SCOPE CREEP:</strong> It might seem contradictory to discuss minimizing scope creep while simultaneously providing for it. However, providing for <em>favorable</em> scope creep by monitoring market trends and incorporating beneficial enhancements can lead to a more cutting-edge solution. This provision must be assessed regarding time and cost. Major revisions consume time and resources. For example, if you&#8217;re developing a tool to streamline operations and improve manpower utilization, delaying project completion postpones these benefits.</li>
<li><strong>DOCUMENT CHANGES:</strong> Document all proposed changes and obtain written consent from your client before implementing them, especially for significant changes that significantly affect the project&#8217;s objectives.</li>
<li><strong>STRUCTURE THE CHANGE REQUEST PROCESS:</strong> Establish a structured change request process before the project begins to handle necessary changes. For significant strategic changes, discuss with your client, review the roadmap, and collaboratively determine the change&#8217;s necessity.</li>
<li><strong>BE SURE OF WHAT YOU ARE GETTING INTO:</strong> Even with a thorough initial analysis, unforeseen issues can arise. Driven by a quick idea or influenced by external information, you might try to justify a change. Accepting this bias can lead to poor decisions and unplanned outcomes. If the outcome is positive, consider it fortunate. If not, the consequences can be severe. Therefore, carefully consider every situation to avoid jeopardizing significant projects.</li>
</ol>
<p>These ten steps can help you monitor and manage scope creep and leverage any potential benefits.</p>
<p>This white paper was developed by the PMO of Macronimous Web Solutions, which is a web development agency providing complete offshore web development from India, serving across the world. Visit us at <a href="https://www.macronimous.com/">www.macronimous.com</a> or write to us at Email: <a href="mailto:enquiry@macronimous.com">enquiry@macronimous.com</a>. No part of the article can be reproduced in any Media in any part.</p>
<p>(Revised in Dec 2024)</p>
<p>&nbsp;</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/managing-scope-creep-in-web-projects/">Managing Scope Creep in Web Projects</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>J2EE Application Servers on Desktops</title>
		<link>https://www.macronimous.com/resources/articles/j2ee-application-servers-on-desktops/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 12 May 2018 07:07:46 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com/?post_type=resources&#038;p=15072</guid>

					<description><![CDATA[<p>Last week, I was overjoyed to read about IBM&#8217;s plans for Web-based desktop software. The software is part of IBM&#8217;s Lotus Workplace strategy and is<a href="https://www.macronimous.com/resources/articles/j2ee-application-servers-on-desktops/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/j2ee-application-servers-on-desktops/">J2EE Application Servers on Desktops</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Last week, I was overjoyed to read about <a href="http://news.com.com/2100-1012_3-5208998.html" target="_blank" rel="noopener noreferrer">IBM&#8217;s plans for Web-based desktop software</a>. The software is part of <a href="http://www-306.ibm.com/software/lotus/" target="_blank" rel="noopener noreferrer">IBM&#8217;s Lotus</a> Workplace strategy and is designed to be distributed and accessed through a Web server. The news reaffirmed my long-held belief that desktop applications will, in the not-so-distant future, be replaced by application server-based software. Server-based software has traditionally been confined to deployments on large enterprise servers. But, as I discuss below, there are several reasons that make it feasible and often desirable to use server-based software on desktops also.</p>
<h3>Application Servers are feasible on Desktops</h3>
<p>The primary reason for the absence of server-based software on desktops is the resource-intensive nature of server software, also known as middleware. Traditionally, middleware was designed and built to handle large numbers of transactions typical of large organizations with huge IT infrastructures. But, as Information Technology has permeated organizations of all sizes, middleware has evolved to fit into smaller infrastructure. Middleware based on J2EE and.NET is notable in this respect.</p>
<p>The latest breed of J2EE-based application servers like <a href="http://sourceforge.net/projects/jboss" target="_blank" rel="noopener noreferrer">JBoss</a> and <a href="http://incubator.apache.org/geronimo/" target="_blank" rel="noopener noreferrer">Geronimo</a> have highly modularized architectures based on the Java Management Extension (JMX) API that allows them to be deployed with variable sets of modules. Consequently, these servers may be deployed in resource-friendly configurations with a minimal number of modules. For example, modules such as messaging (JMS) and transactions (JTS) may be removed without any adverse effects on the normal functioning of the application server. Such configurations make it possible for these servers to overcome any resource constraints.</p>
<p>Also, most modern application servers make use of some sort of resource caching to further optimize resource usage and performance.</p>
<p>Finally, the processing capacity of desktops has been steadily increasing. Thanks to <a href="http://www.webopedia.com/TERM/M/Moores_Law.html" target="_blank" rel="noopener noreferrer">Moore&#8217;s Law</a>, yesterday&#8217;s servers are today&#8217;s desktops. Modern desktops are now capable of handling the many CPU-intensive operations normally associated with application servers. And, the imminent arrival of 64-bit processors in the desktop market will go a long way in guaranteeing this capability.</p>
<p>Thus, it is my belief that application servers are feasible on desktops, and concerns about their consumption of resources are unnecessary.</p>
<h3>Application Servers are desirable on Desktops</h3>
<p>Application server-based software is desirable for several reasons, which let us discuss below. But, before we go into the discussion, I wish to make a disclaimer. There will always be certain applications like games, music editing, and animation software that are very sensitive to response times and will remain the domain of Desktop software. For such applications, Desktop software is preferable to <a href="http://www.webopedia.com/TERM/m/middleware.html" target="_blank" rel="noopener noreferrer">middleware</a>-based software because they are optimized for the operating system and the hardware hosting the software. For most other applications that are not as sensitive to response time, middleware-based software is desirable.</p>
<p>An important advantage of using middleware-based software on the desktop will be the reduced impact of viruses in the event of an attack. The devastation caused by the current wave of virus attacks and Internet worms is attributed primarily to the monoculture (read Windows) that exists on the desktop. The choices that both commercials, as well as free J2EE application server vendors, provide, will bring diversity to the desktop and rid it of this monoculture.</p>
<p>In addition, middleware-based software is inherently more robust and secure than traditional Desktop software. Middleware vendors have invested millions of dollars in ensuring their middleware is scalable, reliable, and secure for highly sensitive industries like the financial industry. And, software that operates within the secure environment of middleware is likely to be less vulnerable to security attacks than those that operate out of this secure environment.</p>
<p>Another advantage of middleware based-software is the cost advantage it offers to the vendor and, consequently, to the user. Since there is no difference between a middleware platform deployed on a desktop and that deployed on a large Enterprise Server, vendors can move their existing Enterprise applications to the desktop at no extra cost. Vendors can also leverage the huge talent pool of <a href="http://www.webopedia.com/TERM/J/J2EE.html" target="_blank" rel="noopener noreferrer">J2EE</a> developers available in the Enterprise Application industry to build applications for the desktop. These developers do not have to be trained on the myriad Operating System APIs.</p>
<p>Finally, as users spend more time online, they will find Web-based interfaces more natural to use than traditional desktop interfaces. A case in point is the growing popularity of services like <a href="http://www.ofoto.com/" target="_blank" rel="noopener noreferrer">Ofoto</a> and Yahoo! Photos that are replacing the traditional photo albums on the desktop.</p>
<h3>Over The Horizon</h3>
<p>I see IBM’s recently announced plans as foreshadowing where we can expect to see the first breed of middleware-based desktop software emerging – the workplace. Workplace software is expected to benefit the most from the security and cost advantages of middleware-based software.</p>
<h3>About the Author:</h3>
<p><strong>Vijay Mariadassou completed his</strong> Master&#8217;s degree program at San Francisco State University in 2004. During the program, he has had the opportunity to work at Sun Microsystems as an intern and gain experience in developing Web Services for Enterprise Application Integration. He has also been mentored on Six Sigma processes. He was unwilling to be just another of 4000 employees, and turned down an offer from a software giant and took up a position at a startup. Vijay is now an Enterprise Solutions Architect, writing applications on the J2EE platform.</p>
<p><strong>Vijay Mariadassou</strong> can be reached at <a href="mailto:vmariadassou@yahoo.com">vmariadassou@yahoo.com</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/j2ee-application-servers-on-desktops/">J2EE Application Servers on Desktops</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Extreme Programming</title>
		<link>https://www.macronimous.com/resources/articles/extreme-programming/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 12 May 2018 06:21:13 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com/?post_type=resources&#038;p=15066</guid>

					<description><![CDATA[<p>By the time when you are reading this article, you could have started hearing the word Extreme programming. There is a debate going on already<a href="https://www.macronimous.com/resources/articles/extreme-programming/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/extreme-programming/">Extreme Programming</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>By the time when you are reading this article, you could have started hearing the word Extreme programming. There is a debate going on already whether extreme programming is good or not? Here I’d like to cover some of the key features of extreme programming and will give some links at the end; they can feed you enough for further reading.</p>
<h3>What is XP?</h3>
<p>Extreme programming (XP for short) is a software process developed by Kent Beck. Extreme programming has several interesting features; the first one involves less paperwork.</p>
<h3>The XP players</h3>
<p>In XP everyone has important roles. The main players are the XP customer, team, and manager. The XP team plans and builds &#8220;stories&#8221;, a story that gives the idea about how the system should function.</p>
<h3>Macronimous Flash Development Services:</h3>
<h4>The customer</h4>
<p>The customer will describe how any story to be. She/He will be involved in determining the stories, which have more business value and has valuable features that can be developed within the timeline. The number of stories depends on the size and complexity of the project. The customer will involve in the process of acceptance testing which means testing and verifying the final solution if it is up to the need or not. In XP the customer will define the release. Remember an extreme project needs a full-time customer for guiding the project throughout its phases. The customer can be on-site or sometimes they may not be there.</p>
<h4>The programmer</h4>
<p>The XP programmer’s roles are analysis, design, coding, testing, and integration. Moreover, the programmer in the team can estimate the difficulty and finishing time on stories. XP programmers involve in continuous integration, excessive testing, pair programming, collective code ownership, <a href="http://www.refactoring.com/" target="_blank" rel="noopener">refactoring</a>, etc.,</p>
<h4>and The Manager</h4>
<p>The manager is the middleman who makes the process between the customer and the team smoother. The manager has to find out the factors that are making the process slow and by applying his knowledge and experience he has to change the problems. The managers will not involve directly in the phases during the analysis, design, coding, testing, or integration but they will coordinate them for a smooth go. The manager is to fix the conflicts.<br />
In extreme programming, everyone has their rights and they can raise their voice if anything goes against their rights. They can immediately have a standup meeting to fix out any conflicts or troubles if arises.<br />
Extreme programming has many concepts. We&#8217;ll try to cover some of them in our forthcoming articles, like code quality, Acceptance tests, and pair programming. We will publish them in our website Resources section.</p>
<p>There are some controversies over XP too. But it&#8217;s a managers&#8217; decision over XP in any software/<a href="https://www.macronimous.com/services/custom-web-development/">web development company</a> to adopt it or not to. Since extreme programming is good for companies with less manpower or smaller companies, they can use extreme programming methodologies while they are growing themselves.<br />
Martin Fowler is coming with his new methodology on extreme programming. I&#8217;d suggest you give a visit to his site as he talks XP from another perspective.</p>
<p>Enjoy extreme programming!</p>
<h3>To read further!</h3>
<ul>
<li>There are several resources to start. We would suggest you start from a complete study. XP (<a href="http://www.ExtremeProgramming.org/" target="_blank" rel="noopener">Extreme Programming.org</a>)</li>
<li>Cutter article on Extreme programming <a href="http://www.cutter.com/consortium/project/ead0002.aspl" target="_blank" rel="noopener">http://www.cutter.com/ead/ead0002.aspl</a></li>
<li>It strives for simple code—but simplicity is still a complicated thing to find. Martin Fowler discusses XP and UML issues.<a href="http://www.sdmagazine.com/articles/2001/0104/" target="_blank" rel="noopener"> Is design dead?</a></li>
<li>An article by Martin Fowler <a href="http://members.aol.com/humansandt/papers/pairprogrammingcostbene/pairprogrammingcostbene.asp" target="_blank" rel="noopener">Costs &amp; Benefits of Pair Programming</a>.</li>
</ul>
<p>The post <a href="https://www.macronimous.com/resources/articles/extreme-programming/">Extreme Programming</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Effective Time Difference Management With Offshore Team</title>
		<link>https://www.macronimous.com/resources/articles/effective-time-difference-management-with-offshore-team/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 12 May 2018 06:16:03 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com/?post_type=resources&#038;p=15061</guid>

					<description><![CDATA[<p>Time is very important in terms of business and making profit. With outsourcing of tasks of utmost importance, being at its best now by many<a href="https://www.macronimous.com/resources/articles/effective-time-difference-management-with-offshore-team/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/effective-time-difference-management-with-offshore-team/">Effective Time Difference Management With Offshore Team</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="https://www.macronimous.com/time">Time</a> is very important in terms of business and making profit. With outsourcing of tasks of utmost importance, being at its best now by many huge organizations all over the world, time is definitely a very essential factor that cannot be neglected. India is a preferred location for outsourcing of projects, because of many advantages, as discussed in our article “<a href="https://www.macronimous.com/outsourcing-work-to-india">Outsourcing work to India</a>”. With time zone difference being an added advantage for India, it only makes it a preferred choice for various countries to outsource even their crucial projects here.</p>
<h3>Time difference &#8211; The fact</h3>
<p>Countries in different parts of the planet follow <a href="https://www.macronimous.com/time">different time zones</a>. For example, India, one of the preferred choices by outsourcing countries, follows the Indian Standard time. This time zone is different from that followed by the countries in the other parts of the world, as follows:</p>
<ul>
<li>EST (United States): India is about 10.5 Hours ahead of EST.</li>
<li>MT: India is 5.5 hours ahead.</li>
<li>Middle East/East Africa &#8211; India is about 2.5 Hours ahead.</li>
<li>Australia &#8211; India is about 4 Hours behind.</li>
<li>Europe &#8211; India is about 5.5 Hours ahead.</li>
</ul>
<p>With these time differences, it might occur to few that management of the outsource team might become difficult. But there could be another positive side to this issue as well.</p>
<h3>How is time difference proving useful?</h3>
<h4>Quality Customer Service</h4>
<p>India has a time zone that proves beneficial to the outsourcing countries to provide continued and unhampered service to their clients. With quality customer service being the order of the day and increasingly becoming demanding and essential in terms of competition and existence of an organization, each and every company is looking at giving their customers reliable service and sharing a feel of empathy with them. For this, choosing a country like India that has varied time difference proves to be useful.</p>
<h4>24x7x365 Services due to culture differences</h4>
<p>So when time difference arises, organizations can give their clients continued services and support, 24 hours a day, 7 days a week. Also, the holiday patterns differ in different countries, as the culture and heritage vary. This results in providing yearlong support to the customers, thereby going a step forward in giving the customers 365 days of continued service, a year, even when locally, all are getting their share of holidays.</p>
<h4>Onsite and offsite team co-ordination</h4>
<p>Many large organizations have an onsite and offsite team, who work on various projects in a combined manner. The onsite team that works in the parent country, works in the morning hours, on the project requirements received from the client and passes it on the outsourced company in countries like India, to be processed here. By then, it is morning in India, where the team works on the requirements. Once they are done with their share of work, they send it back to the parent country, where it is morning again, and the onsite team works on the remaining work and sends the update to the client. This brings in an excellent co-ordination of work, among the onsite and offsite teams.</p>
<h4>Effective utilization of Time</h4>
<p>From the way the onsite and offsite team co-ordinate and work, depending on the time zone differences, it is very obvious that effective utilization of time is also being done, as work is being done on a given project even at nights, thereby speeding up the process of finishing the task. This results in timely submission of the project, thereby increase in customer satisfaction, reliability and loyalty.</p>
<h4>Increased productivity</h4>
<p>The above explained onsite and offsite team co-ordination also results in increased productivity of work, as the time taken to complete the work is lesser, with more time being left to work on new issues and projects. This leads to an increase in the productivity of the organization.</p>
<h4>Ultimately, cost efficient</h4>
<p>So how is this whole issue of time zone proving useful in terms of cost? Well the answer is very simple and obvious. In countries like India, employees are also ready to work at night. So the same space can be utilized in the daytime as well, for catering to the needs of another team or probably another country that has a different time zone, so that more productivity is also called for, with less cost involved.</p>
<p>If managed effectively, <a href="https://www.macronimous.com/time">time difference</a> can prove highly advantageous to the outsourcing companies. With proper planning and lots of research done, prior to outsourcing a project offshore, it is a proven fact that success is definite!</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/effective-time-difference-management-with-offshore-team/">Effective Time Difference Management With Offshore Team</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Charging Web Development Projects</title>
		<link>https://www.macronimous.com/resources/articles/charging-web-development-projects/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 12 May 2018 05:21:20 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com/?post_type=resources&#038;p=15059</guid>

					<description><![CDATA[<p>Here is a detailed guideline from Gunnar Skeid (Pacifer), explaining how to charge a client for web development projects. Usually, you can charge 2 &#8211;<a href="https://www.macronimous.com/resources/articles/charging-web-development-projects/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/charging-web-development-projects/">Charging Web Development Projects</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Here is a detailed guideline from Gunnar Skeid (Pacifer), explaining how to charge a client for <a href="https://www.macronimous.com/services/web-development/how-we-develop-webapps/">web development</a> projects.</p>
<p><strong>Usually, you can charge 2 &#8211; 3 ways:</strong></p>
<ul>
<li>Time-based</li>
<li>Value-based</li>
<li>Result based</li>
</ul>
<p>Time-based charging is the traditional way. What is critical for time-based charging is to determine the SCOPE of the project. Because the scope drives the cost. Finding out the scope can be a real pain. And when you&#8217;re new you usually not so good at hitting the mark. That comes with experience. You can try this method:</p>
<h3>Estimating the scope</h3>
<p>Break up the projects into parts. Then go through each part and find out how familiar you are with doing each task. Give it a score from 1 &#8211; 3, where 1 is something you know in and out, 2 you generally know something about it and 3 if it&#8217;s pretty unknown to you (but you can still handle doing it if you can&#8217;t handle it you need to outsource that part).</p>
<p>E.g. if one part is doing familiar stuff in Photoshop, which you know very well, you give it a 1. And let&#8217;s say there are some other parts that include some Java Scripting. You know some JavaScript programming, but this is something different from what you&#8217;ve done before. Then you give it a 2 or 3.</p>
<p>Now go through each part again and try to figure out how long time each part would normally take to do. Then apply this formula:</p>
<p>Scope = estimated time * task known factor * estimation known factor.</p>
<p>The estimated time is how long time you think it will take. The &#8220;task known factor&#8221; is your estimated knowledge score of the task (1 &#8211; 3).</p>
<p>The &#8220;estimation known factor&#8221; is how familiar you are with estimating this kind of task. If you&#8217;re totally newbie you can use a factor of 1.5. If you&#8217;re a little more experienced you can use 1.25. If you&#8217;re a pro or have serious historical data of this kind of task you can go down to 1.</p>
<p><strong>Example:<br />
</strong>Create a mockup design for the front page of a website. Let&#8217;s say you know this work pretty well (known factor = 1) and that you have a little experience estimating (newbie factor of 1.25).</p>
<p>12.5 hours = 10 hours * 1 * 1.25</p>
<p>Then put all the tasks together, and you should have the total scope of the project. Adjust for customer communication, project management, and other overhead. Then do a final check if you feel if the scope feels right: &#8220;Should it take x hours to complete a 5-page web site?&#8221; If you feel a little pain, it&#8217;s ok. If you feel a lot of pain you should perhaps go through the estimates again.</p>
<h3>Fixed price vs hour by hour</h3>
<p>So now you&#8217;ve defined the SCOPE. Now you need to decide how to charge your time. You can use fixed-cost projects or time and material. Fixed price is where you tell your customer that it will cost him x with everything included, no matter if it takes you 1 hour to perform it, or 10 days.</p>
<p>A fixed price puts a lot of risk on you. In general, it is recommended only if you know they work very well and little interaction with the customer is necessary. You should also add an overhead factor to the scope to compensate for the risk:</p>
<p>Fixed price = (scope * your hourly price * fixed price overhead factor) + material</p>
<p>Fixed price overhead factor could be e.g. 1.3</p>
<p>You can also mix fixed price and time &amp; material. E.g. you can say that the offer is based on time &amp; material, however, it can&#8217;t creep more than x % above the estimate.</p>
<h3>Figuring out the hourly rate</h3>
<p>You also need to figure out your hourly price. Now this is a little tricky because:</p>
<ol>
<li>There are no right answers.</li>
<li>It depends on many factors.</li>
<li>You can use many different methods to arrive at a price.</li>
</ol>
<p><b>Here are some general answers:</b></p>
<p>&#8220;Your time is worth what someone is willing to pay for it&#8221;</p>
<p>&#8220;The right price is when the perceived cost is so much lower the perceived gain that it makes the decision-maker want to take action and buy.&#8221;</p>
<p>&#8220;The right price is the magic crossroad between the what the customer is willing to pay, what you want to get paid, and how many times you want to get paid&#8221;</p>
<p>Now that doesn&#8217;t help you much, so see below.</p>
<p><b>Here are a few factors:</b></p>
<ul>
<li>Your experience within the field and how effective you are.</li>
<li>Your ability to add business value (are you &#8220;just&#8221; a technical guy, or do you know how to give small pieces of advice throughout the whole process that is valuable for the customer&#8217;s business).</li>
<li>The competition in the marketplace you compete (can be international online or just in your city).</li>
<li>What you want to earn.</li>
<li>The balance between price and demand for your services. E.g. if you have higher demand than what you can deliver, you can lower the demand to a balanced level by charging more.</li>
<li>The demand and supply in the marketplace you compete.</li>
<li>The &#8220;normal&#8221; price for this kind of service in your marketplace and market segment.</li>
<li>Your differentiation strategy and what you compete on: Price, service, and/or quality. If you want to compete on price, your prices must be low. If you want to compete on quality your prices must not be too low.</li>
</ul>
<p>&nbsp;</p>
<h3>One method to figure out the hourly price:</h3>
<ul>
<li>Find out the yearly wage for this kind of work in your area or the yearly wage you feel you&#8217;re worth.</li>
<li>Add the direct cost a company would have to hire this person. E.g. in Norway we have vacation pay (ca. 12%), insurance (NOK 1000,-/year), employment tax (ca. 14,1%) and pension (2 &#8211; 3%). You could include other stuff here as well, like bonuses (broadband line, free mobile use, etc) and added insurance, etc.</li>
<li>What you have now is the cost it would be to hire a person full-time for one year. There is another cost as well, like computers and stuff, but that should be covered by your margin.</li>
<li>Decide what kind of margin you would like to have on top of the direct cost. The margin should cover: a) your administrative and marketing overhead b) your profits. In a normal company the break down can look something like this: Yearly price = 45% labor cost + 30% margin + 25% sales/marketing cost<br />
However, freelancers usually do not have their own salespeople. And usually, they get work with word of mouth, which is cheap. So often they can cut their sales/marketing cost to almost 0.</li>
<li>Find out the number of effective work hours in a year (do not include vacation and other holidays). Where I live it&#8217;s around 1800 hours/year. Now lower this number to approximately 80%, e.g. 1800 * 0,8 = 1440. Why? Because your time usually never will be 100% billable. You will get sick. The customer will not want to pay for everything you do. etc. A billable factor of 80% is ok.</li>
<li>Divide &#8220;yearly price&#8221; above with the number of billable hours in the year. Wopha! Then you got the hourly rate to charge, included all your costs and profit.</li>
</ul>
<h3>Value-based pricing</h3>
<p>VALUE-BASED charging is a little different. Then you try to estimate how much the work you do is worth for the customer. This kind of pricing works best if you manage to differentiate yourself from all your competition, in the mind of the customer. I.e. if the customer thinks that you are the only one that can provide such value to him.</p>
<p>The first figure out the added value your work will provide the customer with. E.g. let&#8217;s say you create a website that will make him 12 extra customers each year with sales of USD 5000.- each. This is USD 60000.- extra each year, that YOU bring into the customer&#8217;s company.</p>
<p>So what can you charge? You can&#8217;t charge USD 60000, because then the customer will lose money. However, you could try 10% &#8211; 15% of that. If you see above the sales/marketing overhead was perhaps 25% for a company. However, you&#8217;re talking estimated value, which there is a risk that you will not hit the mark. So 10 &#8211; 15% is probably fairer. In this case, it is USD 6000 &#8211; 9000.-.</p>
<h3>Result based pricing</h3>
<p>The final form of pricing is RESULT BASED. This resembles value-based pricing, however, instead of being based on estimated value, it&#8217;s based on actual results. Then you need to agree on a fair percentage of the results accomplished. A variant of this is also equity and joint venture deals, where you get part ownership of the customer&#8217;s venture.</p>
<p>All right, I hope that I didn&#8217;t make it too complicated to understand. Please ask to feel free to ask if you have any questions.</p>
<p><strong>Disclaimer:</strong> The article is published with permission from the author and no part of the article can be copied in any format. All the thoughts are the Author&#8217;s own views.</p>
<p>See our pricing models for <a href="https://www.macronimous.com/pricing-models/">web development</a>.</p>
<p>Check our <a href="https://www.macronimous.com/services/inbound-marketing/fixed-cost-seo-plans/">SEO packages.</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/charging-web-development-projects/">Charging Web Development Projects</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Mobile App Development Life Cycle</title>
		<link>https://www.macronimous.com/resources/articles/mobile-app-development-life-cycle/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Thu, 09 Nov 2017 09:01:12 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com/?post_type=resources&#038;p=4323</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/Mobile-development-lifecycle-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div>
<p>The development life cycle is what makes a product reviewed and improved. (We have discussed Web Development Life Cycle Extensively in this Article). Any product<a href="https://www.macronimous.com/resources/articles/mobile-app-development-life-cycle/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/mobile-app-development-life-cycle/">Mobile App Development Life Cycle</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/Mobile-development-lifecycle-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div><p>The development life cycle is what makes a product reviewed and improved. (We have discussed Web Development Life Cycle Extensively in this <a href="https://www.macronimous.com/resources/articles/web-development-life-cycle/">Article</a>). Any product development requires a series of iterations. These iterations are functional breakpoints that help to check a product&#8217;s quality and ensure its directions. In Mobile App development, developers can simply adapt the old school software development, but with some adjustments. By adding one or more additional checks such as third-party integrations, the App development process can be simplified, resulting in quality apps in time.</p>
<p>This article deal suggests a simple Mobile App development life cycle or Mobile app development process. Based on the project requirements, you can add certain phases to make it perfect for your client&#8217;s needs, by fitting them with the product delivery cycle.</p>
<h3><strong>Phase 1: Requirement analysis</strong></h3>
<p>As in any project, before we embark, on developing a mobile app, the initial step is to do a complete and thorough requirement analysis. Below is a set of actionable steps. This is a very critical step that a slight degree of change/error can cost you many more dollars or even worse &#8211; you will end up creating a useless app!</p>
<p>There are two models of doing a requirement analysis. The first and the most common one is when a mobile app needs to be built into an already existing system or process or even update an already existing one. The other one is someone with a novel idea approaches you to birth the idea with the help of your expertise.</p>
<p>For a Predefined App</p>
<ul>
<li>Define the Purpose of the App with maximum clarity</li>
<li>List the Functionality required</li>
<li>Identify the User, hardware, and software requirements</li>
<li>Decide the required Platform in which the app will be built</li>
<li>Assess the technical feasibility</li>
</ul>
<p>For an idea-based App</p>
<ul>
<li>Decide the Purpose of the App</li>
<li>Collect App ideas</li>
<li>Do Market Research</li>
<li>Analyze competition</li>
<li>Study the business feasibility</li>
<li>List the Functionality required</li>
<li>Identify the User, hardware, and software requirements</li>
<li>Decide the required Platform in which the app will be built</li>
<li>Assess the technical feasibility</li>
</ul>
<h3><strong>Phase 2: Estimate and Approval</strong></h3>
<p>Once the functional requirements are ready, you need to come up with an estimate. In simple terms, we calculate the no: of hours required and the cost involved in development.</p>
<p>Estimate = No: of Hours Required X Cost per hour (includes the cost of Requirements analysis till Successful Deployment)</p>
<p>The below list will help you to work out an estimate.</p>
<ul>
<li>Find out the modules &#8211; Examples of modules would be login/logout, Dashboard, User profiles, security etc.</li>
<li>Costing for design &#8211; The design may be managed by using a theme or you may want to do a custom design by dedicated designers.</li>
<li>Costing for development &#8211; The hours that the developers require to release the app. You can choose to either include or exclude the testing hours. However, looking at a high level, it is best to include the testing hours too.</li>
<li>The Estimate = Requirements Analysis + Design + Development</li>
</ul>
<p>Once you are done with this, if you are doing this for your client, make sure to get approval. If it is being felt that the cost is high, remember that this is an end-to-end price.</p>
<h3><strong>Phase 3: Conceptualization</strong></h3>
<p>Having got approval on the time and cost, the temptation is to jump into the actual development process. Trust us when we say this. Do not. Instead, quickly build a prototype using a wireframe approach.</p>
<ul>
<li>Application prototype</li>
<li>App flow wireframes</li>
</ul>
<h3><strong>Phase 4: Mock-up Approval from client</strong></h3>
<p>With a ready-to-show prototype, you are miles ahead in confirming the correctness of the requirements. In most cases, the gap between the expected and the actual app pushes the app to an unusable one. Hence have a client meeting with the prototype and get the approval of the expected app.</p>
<ul>
<li>Confirm the mock-up approval from the client</li>
</ul>
<h3><strong>Phase 5: Development</strong></h3>
<p>From the Requirement Analysis phase, now is the time to move on to the Development Phase. The bunch of things that you need to keep in mind, apart from the actual coding is listed below.</p>
<h4><strong>Developer Account</strong></h4>
<p>Depending on whether you are developing an Android or iOS app, create the developer accounts including the creation of development and distribution profiles.</p>
<ul>
<li>Setup Developer account in apple and Google</li>
<li>Creating development and distribution profiles</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-4329 size-full" src="https://www.macronimous.com/wp-content/uploads/app_den_process.png" alt="Setup Apple developer account" width="1350" height="637" srcset="https://www.macronimous.com/wp-content/uploads/app_den_process.png 1350w, https://www.macronimous.com/wp-content/uploads/app_den_process-768x362.png 768w, https://www.macronimous.com/wp-content/uploads/app_den_process-580x274.png 580w" sizes="auto, (max-width: 1350px) 100vw, 1350px" /></p>
<h4><strong>Development Methodology</strong></h4>
<p>Now is the time to choose the development methodology. We have found <a href="https://www.macronimous.com/agile-web-development/">Agile</a> to be a win-win for both the developer and the client.</p>
<ul>
<li>Choose the development methodology</li>
<li>Agile Methodology is mostly preferred in mobile application development for the best result</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-4327 size-full" src="https://www.macronimous.com/wp-content/uploads/agile_dev_process.png" alt="Agile mobile development process" width="446" height="450" srcset="https://www.macronimous.com/wp-content/uploads/agile_dev_process.png 446w, https://www.macronimous.com/wp-content/uploads/agile_dev_process-150x150.png 150w" sizes="auto, (max-width: 446px) 100vw, 446px" /></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-4332 size-full" src="https://www.macronimous.com/wp-content/uploads/sprint_process.jpg" alt="Mobile App Development - SPRINT process" width="528" height="398" /></p>
<h3><strong>Phase 6: UI/Graphic design</strong></h3>
<p>There are scores of tools to work on the UI/graphic design. A couple of them we have mentioned. There are much more. Depending on your requirement, you can choose.</p>
<ul>
<li>Adobe Photoshop, Figma etc.</li>
<li>Adobe Illustrator</li>
<li>Themes and UI Kits</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-4333 size-full" src="https://www.macronimous.com/wp-content/uploads/pshop_pro.png" alt="Adobe Photoshop for App UI Design" width="797" height="524" srcset="https://www.macronimous.com/wp-content/uploads/pshop_pro.png 797w, https://www.macronimous.com/wp-content/uploads/pshop_pro-768x505.png 768w, https://www.macronimous.com/wp-content/uploads/pshop_pro-580x381.png 580w" sizes="auto, (max-width: 797px) 100vw, 797px" /></p>
<h4><strong>Universal or Cross-platform App</strong></h4>
<p>It is ideal that, irrespective of the functionality, the app needs to work on devices and operating systems. However, some of them would be specific that their app needs to be iOS-based only or Android-based only, which still would mean that it should work seamlessly across the devices with different screen sizes.</p>
<ul>
<li>Support for smartphone and tablet devices (Android)</li>
<li>Support for iPhone, Apple Watch, and iPad devices (iOS)</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-4334 size-full" src="https://www.macronimous.com/wp-content/uploads/app_mob.png" alt="Universal App" width="435" height="831" /><img loading="lazy" decoding="async" class="aligncenter wp-image-4335 size-full" src="https://www.macronimous.com/wp-content/uploads/app_tab.png" alt="Tablet design" width="642" height="831" srcset="https://www.macronimous.com/wp-content/uploads/app_tab.png 642w, https://www.macronimous.com/wp-content/uploads/app_tab-580x751.png 580w" sizes="auto, (max-width: 642px) 100vw, 642px" /></p>
<h4><strong>Push Notifications</strong></h4>
<p>For any decent app, with some good functionality, it is almost imperative to have push notifications. If yours is such a case, then here a couple of them.</p>
<ul>
<li>Apple Push Notification Service(APNS) (<a href="https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/APNSOverview.html#//apple_ref/doc/uid/TP40008194-CH8-SW1">know more&#8230;</a>)</li>
<li>Firebase Cloud Message(FCM, GCM) (<a href="https://firebase.google.com/docs/cloud-messaging/">know more…</a>)</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-4338 size-full" src="https://www.macronimous.com/wp-content/uploads/site_page.png" alt="Apple Push notifications - APN" width="735" height="519" srcset="https://www.macronimous.com/wp-content/uploads/site_page.png 735w, https://www.macronimous.com/wp-content/uploads/site_page-580x410.png 580w" sizes="auto, (max-width: 735px) 100vw, 735px" /> <img loading="lazy" decoding="async" class="aligncenter wp-image-4339 size-full" src="https://www.macronimous.com/wp-content/uploads/site_full_page.png" alt="Firebase" width="1134" height="564" srcset="https://www.macronimous.com/wp-content/uploads/site_full_page.png 1134w, https://www.macronimous.com/wp-content/uploads/site_full_page-768x382.png 768w, https://www.macronimous.com/wp-content/uploads/site_full_page-580x288.png 580w" sizes="auto, (max-width: 1134px) 100vw, 1134px" /></p>
<p>&nbsp;</p>
<h3><strong>Phase 7: Backend web and Web service Integration</strong></h3>
<p>By this time you would have come across the concept of web service integration and its usefulness. If not, below are a couple of them that you need to definitely look into for use with your app.</p>
<ul>
<li>Using a native framework or Third Party libraries (AFNetworking) for web service integration</li>
<li>REST or SOAP Web services integration.</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-4340 size-full" src="https://www.macronimous.com/wp-content/uploads/list_view.png" alt="REST and SOAP web services" width="269" height="456" /></p>
<h4><strong>Third-party API’s</strong></h4>
<p>It is a sure shot that any app would be required to be integrated with a third party using its API. Here again, you have a list of them that you may use frequently. In case you are hearing it for the first time, read more on this <a href="https://en.wikipedia.org/wiki/Application_programming_interface">here</a></p>
<ul>
<li>Social Media Integration</li>
<li>Payment Gateways</li>
<li>Google Map API (iOS)</li>
<li>Bar Code Scanner</li>
</ul>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-4342 size-full" src="https://www.macronimous.com/wp-content/uploads/gmap.png" alt="Google Maps" width="225" height="225" srcset="https://www.macronimous.com/wp-content/uploads/gmap.png 225w, https://www.macronimous.com/wp-content/uploads/gmap-150x150.png 150w" sizes="auto, (max-width: 225px) 100vw, 225px" /> <img loading="lazy" decoding="async" class="alignnone wp-image-4343 size-full" src="https://www.macronimous.com/wp-content/uploads/g_map_card.png" alt="Mobile app Payment Gateways" width="375" height="134" /></p>
<h4><strong>App </strong><strong>S</strong><strong>tore Guidelines (iOS)</strong></h4>
<p>With all the hard work, what is the use if your app is getting rejected? Yes, even though your app may serve the required functionality, to sport it in the App Store, you need to follow guidelines. Be sure to read through <a href="https://developer.apple.com/app-store/guidelines/">here</a></p>
<ul>
<li>Follow Guidelines provided by Apple for development</li>
<li>Avoid app rejection by following the Guidelines</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-4344 size-full" src="https://www.macronimous.com/wp-content/uploads/apple_account.png" alt="App store review guidelines from Apple" width="1362" height="635" srcset="https://www.macronimous.com/wp-content/uploads/apple_account.png 1362w, https://www.macronimous.com/wp-content/uploads/apple_account-768x358.png 768w, https://www.macronimous.com/wp-content/uploads/apple_account-580x270.png 580w" sizes="auto, (max-width: 1362px) 100vw, 1362px" /></p>
<h3><strong>Phase 8: Database creation</strong></h3>
<p>For database development, we have listed a few. Click on them to know more.</p>
<ul>
<li><a href="https://www.sqlite.org/">Sqlite</a>, <a href="https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/index.html">CoreData(iOS), </a><a href="https://www.macronimous.com/resources/articles/integrating-firebase-analytics-with-your-mobile-app/">Firebase</a></li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-4346 size-full" src="https://www.macronimous.com/wp-content/uploads/sql_lite_pro.png" alt="Mobile Database development" width="1366" height="673" srcset="https://www.macronimous.com/wp-content/uploads/sql_lite_pro.png 1366w, https://www.macronimous.com/wp-content/uploads/sql_lite_pro-768x378.png 768w, https://www.macronimous.com/wp-content/uploads/sql_lite_pro-580x286.png 580w" sizes="auto, (max-width: 1366px) 100vw, 1366px" /></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-4345 size-full" src="https://www.macronimous.com/wp-content/uploads/sQl_lite_pro_editor.png" alt="SQLite" width="862" height="657" srcset="https://www.macronimous.com/wp-content/uploads/sQl_lite_pro_editor.png 862w, https://www.macronimous.com/wp-content/uploads/sQl_lite_pro_editor-768x585.png 768w, https://www.macronimous.com/wp-content/uploads/sQl_lite_pro_editor-580x442.png 580w" sizes="auto, (max-width: 862px) 100vw, 862px" /></p>
<h4><strong>Web service Creation</strong></h4>
<ul>
<li>REST Web service</li>
<li>SOAP Web service</li>
</ul>
<h3><strong>Phase 9: Testing</strong></h3>
<p>Post-development, however perfect you think that your app is, never show an app to your client without testing. Keep this as a ritual, if need be. You will reap its benefit. We have listed the different types of testing that need to be done and cleared before you pat yourself on your back.</p>
<p>If you are using the Agile methodology, then this phase is included in each and every release, though not all types of testing will be used.</p>
<ul>
<li>UI Testing</li>
<li>Usability Testing</li>
<li>Module testing</li>
<li>Operational Testing</li>
<li>Security audit and testing</li>
<li>Memory testing</li>
<li>Client Acceptance</li>
</ul>
<h3><strong>Deployment</strong></h3>
<h4><strong>Distribution</strong></h4>
<p>To showcase your app you will be choosing the below-listed forms of distribution.</p>
<ul>
<li>Ad-Hoc Deployment, Apple App Store, and In-House Deployment(iOS)</li>
<li>Keystore, alias (Android)</li>
</ul>
<h4><strong>Store Submission</strong></h4>
<p>Another area that you need to know about is store submission and the following review. For iOS, you can know more <a href="https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/SubmittingTheApp.html#//apple_ref/doc/uid/TP40011225-CH33">here</a>. For Android apps start <a href="https://play.google.com/apps/publish/signup/">here</a>.</p>
<ul>
<li>iOS App Store submission</li>
<li>iOS App Store Build Review</li>
<li>Android Play Store Submission</li>
<li>Managing Certificates</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-4350 size-full" src="https://www.macronimous.com/wp-content/uploads/maintanance.png" alt="Google Play console" width="1343" height="573" srcset="https://www.macronimous.com/wp-content/uploads/maintanance.png 1343w, https://www.macronimous.com/wp-content/uploads/maintanance-768x328.png 768w, https://www.macronimous.com/wp-content/uploads/maintanance-580x247.png 580w" sizes="auto, (max-width: 1343px) 100vw, 1343px" /></p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-4349 size-full" src="https://www.macronimous.com/wp-content/uploads/managing.png" alt="Apple Development Program" width="1093" height="464" srcset="https://www.macronimous.com/wp-content/uploads/managing.png 1093w, https://www.macronimous.com/wp-content/uploads/managing-768x326.png 768w, https://www.macronimous.com/wp-content/uploads/managing-580x246.png 580w" sizes="auto, (max-width: 1093px) 100vw, 1093px" /></p>
<h3><strong>App Maintenance</strong></h3>
<h4><strong>SVN</strong></h4>
<p>It is important to plan for future updates and minor changes in the app. The proven and best way to manage these is by using a version control system. Below we have mentioned one such, though <a href="https://en.wikipedia.org/wiki/List_of_version_control_software">there are many</a>.</p>
<ul>
<li>Manage app source through <a href="https://subversion.apache.org/">Subversion</a>(version control system)</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-4351 size-full" src="https://www.macronimous.com/wp-content/uploads/check_out.png" alt="SVN" width="730" height="455" srcset="https://www.macronimous.com/wp-content/uploads/check_out.png 730w, https://www.macronimous.com/wp-content/uploads/check_out-580x362.png 580w" sizes="auto, (max-width: 730px) 100vw, 730px" /></p>
<h4><strong>Periodic App </strong><strong>Maintenance</strong></h4>
<p>The mark of a quality app developer comes with the fact that the responsibility of maintenance is also being taken care of. Below is a list.</p>
<ul>
<li>Check user feedback (at stores) and ratings</li>
<li>Reply users</li>
<li>Check for user suggestions</li>
<li>Check for the new OS version</li>
<li>A test app for new screen sizes</li>
<li>Upgrade features</li>
<li>Security updates</li>
<li>Sales monitoring (paid apps)</li>
</ul>
<h3><strong>Marketing</strong></h3>
<p>When we develop a new idea-based app, at some point, there would arise the need for marketing the app. There is a way to do that also. App marketing is a fully matured industry in itself. For the best results, it is good to approach a dedicated SEO firm that will cover these for you in the long term.</p>
<ul>
<li>App Store Optimization</li>
<li>SEO / Social Media / Directory Submissions</li>
</ul>
<p><em>We trust you had a good overview and enough points to plan and prepare to develop and deploy mobile apps. Do get in touch with us if you have any roadblocks or you want to know more. We are an expert Mobile app development Company, <a href="https://www.macronimous.com/services/mobile-development/">read more</a> about our services.</em></p>
<p>&nbsp;</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/mobile-app-development-life-cycle/">Mobile App Development Life Cycle</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Writing clean, secure and easy to maintain PHP code</title>
		<link>https://www.macronimous.com/resources/articles/writing-clean-secure-easy-maintain-php-code/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Mon, 24 Apr 2017 05:46:52 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=2794</guid>

					<description><![CDATA[<p>Any code when written in a clean, easy to understand and formatted way is readily accepted and acclaimed by one and all. It is essential<a href="https://www.macronimous.com/resources/articles/writing-clean-secure-easy-maintain-php-code/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/writing-clean-secure-easy-maintain-php-code/">Writing clean, secure and easy to maintain PHP code</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Any code when written in a clean, easy to understand and formatted way is readily accepted and acclaimed by one and all. It is essential that the codes we write should be able to be understood by all, because the same programmers need not necessarily work on the same set of codes always. For easy identification and understanding of the codes for any programmer who works on it later, it is essential that the codes are structured, clean, secured and easily maintainable.</p>
<p>Explained below are few of the best practices that are followed to maintain clean and easy to understand PHP codes. They are not in any order of importance, so all are the practices mentioned are essential and carry equal importance:</p>
<h3>1.Commenting on every important action that is performed is very essential.</h3>
<p>This not only helps in easy identification of the need of that particular code, but also gives a neat look to the codes as well.</p>
<pre> 
// Function for login checking
if(!$user_login){
header("Location:https://www.macronimous.com/");
die();
} 
</pre>
<p>&nbsp;</p>
<h3>2.Avoid unwanted usage of conditional statements:</h3>
<p>This not only increases the execution time but also makes the coding long and complex.<br />
For example,</p>
<pre>&lt;?php
If (condition1==true){
code which satisfies the above condition
} else {
perform   die(); or exit();
}
?&gt;
</pre>
<p>The same set of codes can be written as:</p>
<pre>&lt;?

if(!condition){
// display warning message.
die("Invalid statement");
}
?&gt;
</pre>
<p>This reduces the execution time and also makes the codes easily maintainable.</p>
<p>The same can also be written as</p>
<pre> 
&lt;?php
$response_text = ( $action == "edit" ) ?  "the action equals edit" : "the action does not equal edit";
echo $response_text;
?&gt;
</pre>
<p>Here ternary operators have been used, instead of using conditional statements, to simplify the coding further.</p>
<h3>3.Code indentation, in order to highlight statement beginnings and endings.</h3>
<pre>&lt;?php
If(mysql_num_rows($res)&gt;0) {
while($a=mysql_fetch_object($res)){
echo $a-&gt;first_name;
}//ending of while loop
}//ending of if condition
?&gt;
</pre>
<p>&nbsp;</p>
<h3>4.Avoid unwanted html tags in the PHP code:</h3>
<p>In the example given below, the PHP compiler goes through each and every line of the code and executes the function, which is time consuming.</p>
<p><strong>For example:</strong></p>
<pre>&lt;?php
echo "&lt;table&gt;";
echo “&lt;tr&gt;”;
echo “&lt;td&gt;”;
echo “Hai welcome to php”;
echo “&lt;/td&gt;”;
echo &lt;/tr&gt;”;
echo “&lt;/table&gt;”;
?&gt;
</pre>
<p>&nbsp;</p>
<p>Instead of the above we can simply say,</p>
<pre>&lt;html&gt;
&lt;body&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;?php echo "Hai welcome to php"; ?&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>&nbsp;</p>
<p>Here the PHP compiler would execute the particular server code only, here in the example, &lt;td&gt;&lt;?php echo &#8220;Hai welcome to php&#8221;; ?&gt;&lt;/td&gt;, instead of creating html tags, as the html codes are alien to PHP. This facilitates in cutting down unnecessary checking time of the PHP compiler, thereby saving code execution time.</p>
<h3>5.Clear Code with in assigning values to Mysql Arguments:</h3>
<p><strong>For example</strong></p>
<pre>$sql="select first_name,last_name,email_address from tbl_user where user_id=".$user_id." and member_type='".$member_type."'";

mysql_query($sql);

</pre>
<p>In the above example, you can see that the PHP values are included in the query condition. Also there are lots of concatenations done to the variables within the query.</p>
<p><strong>Instead,</strong></p>
<pre>$sql="select first_name,last_name,email_address from tbl_user where user_id="%d" and member_type='"%s"'";

mysql_query(sprintf($sql,$user_id,$member_type));

</pre>
<p>By using this query, the values are automatically assigned to the appropriate positions, thereby saving the execution time and as well as the programmers can easily find the related values to the arguments passed.</p>
<h3>6.Using Arrays:</h3>
<p>It is always better to use arrays in PHP, as they are quite easy to manage and easily understandable as well.</p>
<pre>&lt;?php
$products=array("Dove","Apple","Nokia");
?&gt;
</pre>
<p>Using Split array is also a very good way of coding in PHP. However, there are ways to use a split array:<br />
Rather than:</p>
<pre> 
&lt;?
for($iC=0;$iC&lt;count($products);$iC++){
echo $products[$iC].”&lt;br&gt;”;
}
?&gt;
</pre>
<p>Instead, the codes can be written as follows:</p>
<pre> &lt;?
foreach($products as $product_value){
echo $product_value;
}
?&gt;
</pre>
<p>foreach is specifically for arrays. When it is used, they reduce the coding length and also the functioning time.</p>
<h3>7.Consistent naming:</h3>
<p>It is always advisable to name classes, objects and others consistently. This helps in easy identification for other programmers who might work later on the project. Also names of files in local directories should also be easy to understand.</p>
<h3>8.Using Objects [class]</h3>
<p>Though they seem to be quite complicated to the newcomers, Objects are very useful as it reduces code repetition and also facilitates easier changes to the codes. In that when a class is used, it makes it more flexible to work with.</p>
<p><strong>A simple class functionality is explained below:</strong></p>
<pre>&lt;?

Class shopping_cart{

var $cart_items;

function add_product_item($cart_number,$quantity){
$this-&gt;items[$cart_number]+=$quantity;
}

}

// Call the class function
$cart=new shopping_cart();
$cart-&gt;add_product_item("123",10);

?&gt;
</pre>
<h3>9.Appropriate use of Looping codes:</h3>
<p>There are many looping codes available in PHP. It is very important to choose the right looping code for the right purpose, so that execution time can be saved upon and the work also would get over sooner.</p>
<p>For example, instead of:</p>
<pre>$res=mysql_query("select * from tbl_products");
for($iC=0;$iC&lt; mysql_num_rows($res);$iC++){
echo mysql_result($res,$iC);
}
</pre>
<p>The same can be coded this way, in order to reduce the execution time:</p>
<pre>$res=mysql_query("select * from tbl_products");
while($obj=mysql_fetch_object($res)){
echo $obj-&gt;column_name1;
}
</pre>
<h3>10.Using of case switches:</h3>
<p>It is definitely advantageous to use Case switches instead of If conditions. This is because switch statements are equivalent to using a series of IF statements on the same expression.</p>
<p>Example of using a series of If statements:</p>
<pre>if($checking_value1==$value){
echo "result1";
}elseif($checking_value2==$value){
echo "result2";
}elseif($checking_value3==$value){
echo "result3";
}else{
echo "result 4";
}
</pre>
<p>The same thing can be expressed in a simpler way using the switch case, which greatly reduces the operational time:</p>
<pre>switch($checking_value){
case Value1:
echo "result1";
break;

case Value2:
echo "result2";
break;

case Value3:
echo "result3";
break;

default:
echo "result4";
break;

}
</pre>
<h3>11.Using single codes instead of double quotes:</h3>
<p>Though these two serve various purposes, using single quotes help in faster execution of the loops than when using double quotes.</p>
<p>For example, a simple example of printing 1500 lines of information, can be done in two ways as:</p>
<pre>//Using double quotes
print “SerialNo : $serialno. WorkDone : $workdone. Location: $location”;

The same can be written with single quotes:

//Using single quotes
print ‘SerialNo :’.$serialno.’. WorkDone : ‘.$workdone’. Location‘.$location’.';
</pre>
<p>Here, the second line of codes works much faster than the first one, where the strings have to be analyzed completely, all the 1500 times. In the second line of codes, no actual string analyzing takes place. Just combination of the strings happens in order to make the printing possible.</p>
<p>Few of these tips might sound quite familiar, but they have been included here in order to refresh the best practices that can be followed to get clean, secured at the same time easy to maintain PHP codes.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/writing-clean-secure-easy-maintain-php-code/">Writing clean, secure and easy to maintain PHP code</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Search nearby locations based on zip code</title>
		<link>https://www.macronimous.com/resources/articles/search-nearby-locations-based-zip-code/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Mon, 24 Apr 2017 05:32:09 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=2793</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/search-zip-code-php-1-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/search-zip-code-php-1-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/search-zip-code-php-1-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/search-zip-code-php-1.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div>
<p>Gone are the days when people have to get on to their shoes and explore their locality to know what is where nearby. With the<a href="https://www.macronimous.com/resources/articles/search-nearby-locations-based-zip-code/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/search-nearby-locations-based-zip-code/">Search nearby locations based on zip code</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/search-zip-code-php-1-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/search-zip-code-php-1-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/search-zip-code-php-1-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/search-zip-code-php-1.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div><p>Gone are the days when people have to get on to their shoes and explore their locality to know what is where nearby. With the advent of GPS, exploring a locality is just one click away.</p>
<p>Today, it&#8217;s a basic necessity for any business to let their customers know where they can get its products or services nearby their locality. It&#8217;s the friendly way for the business to say &#8216;we are here nearby to serve you&#8217;.</p>
<p>So, it&#8217;s a no wonder to see links like &#8216;Store Finder&#8217;, &#8216;Locate your store&#8217; on any corporate website that run business across a nation or around the globe. How this is being implemented? To know this, read further.</p>
<p>Let us take an example of locating nearby ATM of a popular bank that runs business across a country. The following schema defines the table structure of ATM locations.</p>
<h3>Table Name: TBL_ATM_LOCATIONS</h3>
<div>
<table>
<thead>
<tr>
<th>S.No</th>
<th>Field Name</th>
<th>Field Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>ATM_ID</td>
<td>Integer</td>
</tr>
<tr>
<td>2</td>
<td>ATM_ADDRESS</td>
<td>Varchar</td>
</tr>
<tr>
<td>3</td>
<td>ATM_CITY</td>
<td>Varchar</td>
</tr>
<tr>
<td>4</td>
<td>ATM_STATE</td>
<td>Varchar</td>
</tr>
<tr>
<td>5</td>
<td>ATM_ZIPCODE</td>
<td>Varchar</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>This schema is enough, if the ATM needs to be located by exact zip code. This can be the case, only if the bank has ATMs in each zip code of the country and then users could get the location of the ATM in their zip code. If the Bank doesn&#8217;t have ATMs in each zip code, then this table won&#8217;t provide information for the users who don&#8217;t have the Bank&#8217;s ATM in their zip code. Here, we need to add some more information to the table schema to make it show the nearest ATMs for those users.</p>
<p>Next come the question &#8211; how do we know the nearest zip code? Here comes the mathematics for our help. Since our earth is a near spherical in shape, it is possible to calculate the approximate distance between two points on the earth. For this, the coordinates of each point are required. So, we need latitude and longitude detail for each zip code. Now we add two new fields to the table &#8220;TBL_ATM_LOCATIONS&#8221;.</p>
<div class="table_bg padding_none">
<table>
<thead>
<tr>
<th>S.No</th>
<th>Field Name</th>
<th>Field Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>ATM_ID</td>
<td>Integer</td>
</tr>
<tr>
<td>2</td>
<td>ATM_ADDRESS</td>
<td>Varchar</td>
</tr>
<tr>
<td>3</td>
<td>ATM_CITY</td>
<td>Varchar</td>
</tr>
<tr>
<td>4</td>
<td>ATM_STATE</td>
<td>Varchar</td>
</tr>
<tr>
<td>5</td>
<td>ATM_ZIPCODE</td>
<td>Varchar</td>
</tr>
<tr>
<td>6</td>
<td class="table_border">LATITUDE</td>
<td class="table_border1">Numeric</td>
</tr>
<tr>
<td class="table_border_last">7</td>
<td class="table_border_last">LONGITUDE</td>
<td>Numeric</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>Now we added latitude and longitude on the table schema, but where do we get the actual data for these for each zip code? There are many third party zip code databases available on the internet that provide the latitude, longitude details for zip codes of any specific country. Most of them are commercially licensed. A few free databases are also available. One such free zip code database can be found at http://www.free-zipcodes.com/</p>
<p>The zip code table would typically look like the following,</p>
<h3>Table Name: TBL_ZIP_CODE</h3>
<div class="table_bg padding_none">
<table>
<thead>
<tr>
<th class="table_border">S.No</th>
<th class="table_border">Field Name</th>
<th class="table_border">Field Type</th>
</tr>
</thead>
<tbody>
<tr>
<td class="table_border">1</td>
<td class="table_border">ZIP_CODE</td>
<td class="table_border1">Varchar</td>
</tr>
<tr>
<td class="table_border">2</td>
<td class="table_border">LATITUDE</td>
<td class="table_border1">Numeric</td>
</tr>
<tr>
<td class="table_border_last">3</td>
<td class="table_border_last">LONGITUDE</td>
<td>Numeric</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>The third party databases might have some other extra fields. The above are the necessary fields for our purpose. Whenever a new ATM record is added to the TBL_ATM_LOCATIONS table, get its latitude and longitude details from the TBL_ZIP_CODE table and store in TBL_ATM_LOCATIONS table.</p>
<p>Now, we have all required details to search the nearby ATMs. Let us try to find a nearby ATM that is within a radius of 5 KM for a zip code XXXXX. First, get the latitude and longitude for the zip code XXXXX from theTBL_ZIP_CODE table.</p>
<pre>SELECT LATITUDE, LONGITUDE FROM TBL_ZIP_CODE WHERE ZIP_CODE='XXXXX'</pre>
<p>Let us call its latitude and longitude as SRC_LAT and SRC_LONG respectively.</p>
<p>Now, we create a MYSQL Query that will get us the nearest ATMs within 5 KM radius,</p>
<pre>SELECT *, (6371* ACOS( COS( RADIANS(SRC_LAT) ) * COS( RADIANS( LATITUDE ) ) * COS( RADIANS( SRC_LONG ) - RADIANS(LONGITUDE) ) + SIN( RADIANS(SRC_LAT) ) * SIN( RADIANS( LATITUDE ) ) ) ) AS DISTANCE FROM TBL_ATM_LOCATIONS HAVING DISTANCE&lt;=5
</pre>
<p>In this query, we have used the following mathematical formula to calculate the distance,</p>
<p>Distance in KM = 6371 * acos( cos(radians(lat1)) * cos(radians(lat2)) * cos(radians(long1) &#8211; radians(long2)) + sin(radians(lat1)) * sin(radians(lat2)) )</p>
<p>This MYSQL query will get the list of ATMs that are within 5 KM radius from the zip code XXXXX. Further, these ATM locations can be shown on google map using google maps API and it would be a good user experience.</p>
<p>A PHP script with a sample database to accomplish the above the example has been given <a href="https://www.macronimous.com/wp-content/uploads/atm_finder.zip">atm_finder</a>. Kindly note that the zip code table in the sample database has only less records on US zipcodes and so the example won&#8217;t work for all US zipcodes. Below are the screenshots for this example script.</p>
<h3>Screenshot showing the list of ATM locations for a given zipcode</h3>
<h3>Screenshot showing the ATM Locations in google map for a given zipcode.</h3>
<p>The post <a href="https://www.macronimous.com/resources/articles/search-nearby-locations-based-zip-code/">Search nearby locations based on zip code</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The need for PHP code refactoring</title>
		<link>https://www.macronimous.com/resources/articles/need-php-code-refactoring/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Mon, 24 Apr 2017 05:07:18 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=2788</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/php-code-Refactoring-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/php-code-Refactoring-470x290.jpg 470w, https://www.macronimous.com/wp-content/uploads/php-code-Refactoring-768x474.jpg 768w, https://www.macronimous.com/wp-content/uploads/php-code-Refactoring.jpg 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div>
<p>Refactoring is changing of complex and complicated programming codes into simple and confusion-less ones, thereby restructuring the complete set of codes into easily readable formats,<a href="https://www.macronimous.com/resources/articles/need-php-code-refactoring/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/need-php-code-refactoring/">The need for PHP code refactoring</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/php-code-Refactoring-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/php-code-Refactoring-470x290.jpg 470w, https://www.macronimous.com/wp-content/uploads/php-code-Refactoring-768x474.jpg 768w, https://www.macronimous.com/wp-content/uploads/php-code-Refactoring.jpg 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div><p>Refactoring is changing of complex and complicated programming codes into simple and confusion-less ones, thereby restructuring the complete set of codes into easily readable formats, without any change in the output or functionality. Refactoring does not include fixing of glitches or including of new functionalities or practices to the existing set of codes. It only assists in reducing the complex form of coding into easily understandable and less time consuming forms that is universally accepted by all.</p>
<h3>General PHP Coding</h3>
<p>Programming using PHP becomes very effective and powerful, when code-refactoring techniques are included while coding. It is possible that for a same task to be performed, various methods can be utilized in order to attain the final result. But the best among all the methods, with simple coding style, easy execution and less time consumption, is achieved through refactoring. This brings the code to a format that is acceptable and understandable by any programmer, from any part of the globe.</p>
<h3>What is the need for refactoring?</h3>
<p>A question that might arise before refactoring is “What is the need to fix a code if it is working fine and is not broken?” PHP codes get enhanced and more potential by code refactoring. When taken on a universal basis, code refactoring of PHP codes makes it more acceptable all over, by all the programmers and also makes it viable and readable. If an old product has a set of old codes, and the programmers who worked on the products’ codes no longer work with the company, then the code becomes incomprehensible. In order to make it understandable, refactoring of the PHP codes have to be done.</p>
<p>Basically, refactoring of PHP codes are done for:</p>
<ul>
<li>Making PHP codes more potential.</li>
<li>Betters the code design and the overall PHP coding structure.</li>
<li>Modifiable by any PHP programmer, even though they have not worked on the project beforehand.</li>
<li>Clear and understandable coding procedure.</li>
<li>Globally accepted by all PHP programmers.</li>
<li>Hassle-free maintenance.</li>
<li>New features can be included in a jiffy, as the whole layout of the coding is very clear.</li>
<li>Bugs and program glitches can be detected and sorted out in a flexible manner, as the coding is simple and clear.</li>
<li>Puts an end to improper coding problems like using up of more codes to do the same thing and duplication.</li>
</ul>
<h3>Creating a universal and generalized version of PHP coding</h3>
<p>In order to make the coding part flexible enough to understand and to be executed easily, it is necessary that a universally acceptable form of PHP coding be followed.<br />
An <strong>example </strong>of PHP coding without refactoring would be this</p>
<pre>&lt;?
function convert($a)
{</pre>
<div class="sub">if($a==0) $t = &#8220;Zero&#8221;; elseif($a==1) $t = &#8220;One&#8221;; elseif($a==2) $t = &#8220;Two&#8221;; elseif($a==3) $t = &#8220;Three&#8221;; elseif($a==4) $t = &#8220;Four&#8221;; elseif($a==5) $t = &#8220;Five&#8221;; elseif($a==6) $t = &#8220;Six&#8221;; elseif($a==7) $t = &#8220;Seven&#8221;; elseif($a==8) $t = &#8220;Eight&#8221;; elseif($a==9) $t = &#8220;Nine&#8221;; echo $t;</div>
<p>} ?&gt;</p>
<p>The same can be written in this way, after refactoring methodology is used. This reduces unnecessary loops:</p>
<pre>&lt;?
function Digit2Text($digit)
{</pre>
<div class="sub">
<p>switch($digit) {</p>
<div class="sub">case 0: echo &#8220;Zero&#8221;;break; case 1: echo &#8220;One&#8221;;break; case 2: echo &#8220;Two&#8221;;break; case 3: echo &#8220;Three&#8221;;break; case 4: echo &#8220;Four&#8221;;break; case 5: echo &#8220;Five&#8221;;break; case 6: echo &#8220;Six&#8221;;break; case 7: echo &#8220;Seven&#8221;;break; case 8: echo &#8220;Eight&#8221;;break; case 9: echo &#8220;Nine&#8221;;break;</div>
<p>} } ?&gt;</p>
</div>
<h3>Few of the many ways of refactoring includes the following basic steps:</h3>
<ul>
<li>While using third party code, it is always advised to first perform a code analysis and try a sample step, before implementing the codes.</li>
<li>Code Indentation: So that any user can easily understand the hierarchy of the codes.</li>
<li>Include comments for each functionality, in order to clearly explain what the particular code is all about.</li>
<li>Code simplicity like avoiding generation of unnecessary loops to fetch a single value.</li>
<li>Create a common class, with self explained names, for functions like function create_new_user_account() // So no need to add a separate comment line as well.</li>
<li>While fetching records from the database, its best to avoid select * and instead add particular field names like &#8220;select username&#8221;, &#8220;select password&#8221;.</li>
<li>While fetching records from the database, its best to avoid select * and instead add particular field names like “select username”, “select password”.</li>
<li>When using the “while” loop and “do while”, it is always better to use the “while” loop, in terms of time taken and unnecessary loops performed to get a task done.Example:
<pre>while (list($key,$value) )=each($array)
</pre>
<p>can be written as</p>
<pre>foreach($array as $key=&gt;$value).</pre>
</li>
<li>When using the “while” and “foreach” codes, “foreach” is more faster in terms of execution speed.</li>
<li>It is very helpful to use &#8220;Extract&#8221; keyword for parse the array-based outputs using Ajax. For example there would be no need to get connected to the database every time.</li>
</ul>
<p>An <strong>example</strong> of how a set of PHP codes look prior to using refactoring methods include:</p>
<pre> &lt;?
function news()
{
$strqry = "select * from news";
$rs = mysql_query($strqry);
if(mysql_num_rows($rs)&gt;0)
{
while($row=mysql_fetch_object($rs))
{
echo $row-&gt;news_title."&lt;br&gt;Posted on ".$row-&gt;news_posted_date."&lt;br&gt;&lt;br&gt;";
}
}
}
?&gt;
</pre>
<p>This same set of codes can be written in the below mentioned way, without too many unnecessary loops and time consumption:</p>
<pre>&lt;?
function DisplayNews()
{
$rsNews = mysql_query("select news_title,news_posted_date from news");
if(mysql_num_rows($rsNews)&gt;0)
{
while($rowNews=mysql_fetch_object($rsNews))
{
echo $rowNews-&gt;news_title."&lt;br&gt;Posted on ".$rowNews-&gt;news_posted_date."&lt;br&gt;&lt;br&gt;";
}
}
mysql_free_result($rsNews);

}
?&gt;

</pre>
<h3>Conclusion</h3>
<p>PHP code refactoring is like an immune system to a living organism that constantly neatens the codes and curbs the emergence of bad or improper coding procedure. This paves way for effective coding procedures, thereby making PHP coding comfortable to be understood by all programmers, around the world; a form of coding that is practicable, pure and yet simple to understand.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/need-php-code-refactoring/">The need for PHP code refactoring</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Useful Firefox Extentions For Web Developers</title>
		<link>https://www.macronimous.com/resources/articles/ten-useful-firefox-extentions-web-developers/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Mon, 24 Apr 2017 04:50:24 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=2787</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/firefox_extentions-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/firefox_extentions-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/firefox_extentions-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/firefox_extentions.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div>
<p>Every day there are numerous new extensions being implemented by Firefox. Despite the fact some of them will be useful for web development and some<a href="https://www.macronimous.com/resources/articles/ten-useful-firefox-extentions-web-developers/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/ten-useful-firefox-extentions-web-developers/">Useful Firefox Extentions For Web Developers</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/firefox_extentions-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/firefox_extentions-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/firefox_extentions-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/firefox_extentions.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div><p>Every day there are numerous new extensions being implemented by Firefox. Despite the fact some of them will be useful for web development and some not, we try to install extensions for web development purpose. But finally, we might not need them. Firefox extensions for web developers, which can be of great help or might end up with less help to them. On analyzing a few hundreds of extensions, we have chosen best ten on the daily usage basis, which might be most useful Firefox extensions to the web developers. We have been struck by many FireFox extensions, but these are the ones we use daily.</p>
<p>Here’s a list of 10 useful FireFox extensions that all web developers should know about</p>
<h3>Web Developer</h3>
<p>This Firefox extension allows the user to disable, view, and edit cookies, CSS, HTML, forms, and images; validate pages; and much more. The tool adds a menu and a toolbar, with a great collection of web developer tools to the browsers.</p>
<p><a href="http://www.chrispederick.com/work/webdeveloper/" target="_blank" rel="noopener noreferrer">http://www.chrispederick.com/work/webdeveloper/</a></p>
<h3>DOM Inspector</h3>
<p>This Firefox extension analyzes and edits live DOM for any web page or XUL applications. This extension is very useful for testing and debugging CSS.</p>
<p><a href="http://scott-macgregor.org/" target="_blank" rel="noopener noreferrer">http://scott-macgregor.org/</a></p>
<h3>XML Developer Toolbar</h3>
<p>This Firefox extension toolbar allows XML developer’s use for all browser and has many features like Schema Generation, DTD Generation, Schema Validation, XML -&gt; Schema Validation, Style Manipulation, XSL Transformations on-the-fly, DOM Inspector incorporated views, Document statistics for future Semantic Web purposes.</p>
<p><a href="http://www.scottroot.com/" target="_blank" rel="noopener noreferrer">http://www.scottroot.com/</a></p>
<h3>Firebug</h3>
<p>This Firefox extension tool monitors JavaScript, CSS, HTML, and Ajax, and they are in one including a debugger, an error console, command line. Features includes JavaScript debugger for stepping through code one line at a time, Status bar icon shows you when there is an error in a web page, a console that shows errors from JavaScript and CSS, Log messages from JavaScript in your web page to the console (bye bye &#8220;alert debugging&#8221;), An JavaScript command line (no more &#8220;javascript:&#8221; in the URL bar), Spy on XMLHttpRequest traffic, Inspect HTML source, computed style, events, layout and the DOM.</p>
<p><a href="https://getfirebug.com" target="_blank" rel="noopener noreferrer">https://www.getfirebug.com/</a></p>
<h3>Stylish</h3>
<p>This Firefox tool extension allows easy management of user style. This toolbar can be used for fixing ugly sites.</p>
<p><a href="http://userstyles.org/" target="_blank" rel="nofollow noopener noreferrer">http://userstyles.org/</a></p>
<h3>Server Switcher</h3>
<p>This Firefox extension is a navigational help tool for web developers and allows switching between sites on your development and live servers; it helps you to see the difference immediately.</p>
<p>When you are on http://localhost/test.html (your development server) and click the Server Switcher icon you will instantly be redirected to http://www.yoursite.com/ test.html (your live server). (&#8220;localhost&#8221; and &#8220;www.yoursite.com&#8221; are of course configurable).Features includes  create multiple development/live-server-pairs, Open local/remote server in a new tab with middle click or CTRL+leftclick, Support for ports (e.g. localhost:81), support for subdirectories (e.g. localhost/sitename), support for HTTPS (e.g. https://www.yoursite.com), support for local files (e.g. file:///D:/www), works in Firefox and Flock.</p>
<p><a href="http://hermann.czedik.net/projekte/switcher/" target="_blank" rel="noopener noreferrer">http://hermann.czedik.net/projekte/switcher/</a></p>
<h3>Tamper Data</h3>
<p>These Firefox extensions to view and modify HTTP/HTTPS headers and post parameters and can be used to trace and time http response/request.</p>
<p><a href="http://tamperdata.mozdev.org/installation.html" target="_blank" rel="noopener noreferrer">http://tamperdata.mozdev.org/installation.html</a></p>
<h3>Total Validator</h3>
<p>This tool can be used to perform multiple validations like HTML validation, accessibility validation, check for broken links, perform spell check (5 languages) and take screen shots in one go rather than using separate tools. This tool can do security test for web applications by modifying POST parameters. This tool works on the external, internal, or local web for different browsers on different platforms like Windows, Linux, OS/X and more.</p>
<p><a href="http://www.totalvalidator.com/tool/extension.html" target="_blank" rel="noopener noreferrer">http://www.totalvalidator.com/tool/extension.html</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/ten-useful-firefox-extentions-web-developers/">Useful Firefox Extentions For Web Developers</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Command Line Scripting in PHP</title>
		<link>https://www.macronimous.com/resources/articles/command-line-scripting-php/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Mon, 24 Apr 2017 04:27:29 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=2785</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/command_line_new1-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/command_line_new1-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/command_line_new1-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/command_line_new1.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div>
<p>PHP is a great language to develop web applications rapidly and economically. Many of us know this. But what many of us were unaware of<a href="https://www.macronimous.com/resources/articles/command-line-scripting-php/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/command-line-scripting-php/">Command Line Scripting in PHP</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/command_line_new1-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/command_line_new1-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/command_line_new1-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/command_line_new1.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div><p>PHP is a great language to develop web applications rapidly and economically. Many of us know this. But what many of us were unaware of is that PHP can also be run as a command-line script like C, C++, and Java, etc. Questions may arise why do we need to run PHP on the command line? After all, we just need to create websites with PHP, HTML, Graphics, and JavaScript.</p>
<h3>Why PHP Command Line Scripting needed?</h3>
<p>Apart from building web applications and websites, there are many other tasks that need to be run in the background in the webserver. Most of these kinds of tasks may take a few minutes to many hours to complete.</p>
<p>For example, sending a bulk newsletter email to all the subscribers in a mailing list. Can’t we do this in normal PHP through web scripting? Yes, we can do this through normal web scripting. However, this would work well only when there are a few hundreds of subscribers. What if there were a few thousands of subscribers? Usually, any web script would have only a few minutes to execute. This time period is known as maximum execution time. After which, the web server will terminate the web script abnormally.</p>
<p>By default, this maximum execution time would be set as 5 minutes and it may vary depending upon the server settings. In this case, our web script would be able to send only a few hundreds of emails within the given time limit. So is it not possible to develop a bulk email sending application in PHP? Yes, here comes the PHP Command Line Scripting.</p>
<p>Unlike web scripts, Command line scripts don’t have any maximum execution time limit and they can run as long as they can unless the server shuts down. Using command-line scripting, we can accomplish many time-consuming tasks like taking backup of entire websites and databases, transferring files to another server through FTP, and many more.</p>
<h3>A Simple Command Line Script</h3>
<p>How to write a command-line script in PHP? Will it be as easy as creating a web script? Yes, we can create a command-line PHP script as we do for web script, but with few little tweaks. We won’t be using any kind of HTML tags in command-line scripting, as the output is not going to be rendered in a web browser, but displayed in the DOS prompt / Shell prompt. Don’t ever try to use the &lt;BR&gt; tag for inserting a new line in the command line scripting ;). Instead, use \n to output the new line. Let us start with a small command-line script to output “Hello World”.</p>
<pre>&lt;?php
print "Hello World!";
?&gt;
</pre>
<p>Filename: helloworld.php</p>
<p>You can execute this script by typing the following in your command prompt or shell prompt:<br />
php helloworld.php</p>
<h3>Input / Output Streams</h3>
<p>Instead of using print or echo for output, we can use the standard output stream defined in the CLI version of PHP. Following are the three IO streams in PHP with which we can interact the same way as we do with a file.</p>
<pre>php://stdin (read)
php://stdout (write)
php://stderr (write)
</pre>
<p>These streams are defined as constants namely STDIN, STDOUT AND STDERR from PHP 4.3.0+ CLI version.</p>
<p>Now we rewrite the helloworld.php to use STDOUT.</p>
<pre>&lt;?php
fwrite(STDOUT, "Hello World!");
?&gt;
</pre>
<p>So these streams are treated as files and we can use normal file functions like fopen(), fread(), fwrite() to interact with these streams.<br />
To get input from the end users, we can use STDIN with fgets(), fread(), fscanf() or fgetc().</p>
<p>For example, we would write a small script that gets the name of the user and output “Welcome &lt;username&gt;”.</p>
<pre>&lt;?php
fwrite(STDOUT, “Please enter your name\n”);
$name = fgets(STDIN);
fwrite(STDOUT, "Welcome $name");
?&gt;
</pre>
<p>The third stream STDERR is used to separate the error message from the normal output.<br />
For example, the following script opens a file and read its contents and close the file. An error handler is also defined to write the errors to the STDERR stream.</p>
<pre>&lt;?php
set_error_handler("ErrorHandler");

function ErrorHandler($errno, $errstr, $errfile, $errline)
{
fwrite(STDERR,"$errstr in $errfile on $errline\n");
}

$fp = fopen("demo.txt","r");
$str = fread($fp,filesize("demo.txt"));
fclose($fp);
fwrite(STDOUT, "Task completed successfully!");
?&gt;
</pre>
<p>If the file “demo.txt” doesn’t exist, the following error messages will be displayed.</p>
<pre>fopen(demo.txt): failed to open stream: No such file or directory in D:\demo\tmp\error.php on 10
filesize(): stat failed for demo.txt in D:\demo\tmp\error.php on 11
fread(): supplied argument is not a valid stream resource in D:\demo\tmp\error.php on 11
fclose(): supplied argument is not a valid stream resource in D:\demo\tmp\error.php on 12
Task completed successfully!</pre>
<p>To avoid displaying errors to the end-user, we can pipe the output from the script as follows,</p>
<pre>php error.php 2&gt; error.log</pre>
<p>Now, the user would see only the following message,</p>
<pre>Task completed successfully!</pre>
<p>The errors would be logged into a file named “error.log” in the directory where the script was executed. The number 2 is the command-line handle used to identify STDERR. Note that 1 handle for STDOUT. Using the &gt; symbol from the command line, we can direct output to a particular location.</p>
<h3>Finish Up</h3>
<p>Now we have an idea of the basics of PHP Command Line Scripting. Though this article is a small introduction to PHP Command Line Scripting, hope it would have created a tiny spark for those who were unaware of Command-Line Scripting in PHP. Wishing these tiny sparks to be ignited to become a flame.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/command-line-scripting-php/">Command Line Scripting in PHP</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Writing Regular Expression With php</title>
		<link>https://www.macronimous.com/resources/articles/writing-regular-expression-php/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 22 Apr 2017 12:36:35 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=2783</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/Regular-expressions-new-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/Regular-expressions-new-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/Regular-expressions-new-768x476.png 768w, https://www.macronimous.com/wp-content/uploads/Regular-expressions-new.png 1210w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div>
<p>Regular Expression, commonly known as RegEx is considered to be one of the most complex concepts. However, this is not really true. Unless you have<a href="https://www.macronimous.com/resources/articles/writing-regular-expression-php/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/writing-regular-expression-php/">Writing Regular Expression With php</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/Regular-expressions-new-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/Regular-expressions-new-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/Regular-expressions-new-768x476.png 768w, https://www.macronimous.com/wp-content/uploads/Regular-expressions-new.png 1210w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div><p>Regular Expression, commonly known as RegEx is considered to be one of the most complex concepts. However, this is not really true. Unless you have worked with regular expressions before, when you look at a regular expression containing a sequence of special characters like /, $, ^, \, ?, *, etc., in combination with alphanumeric characters, you might think it a mess. RegEx is a kind of language and if you have learnt its symbols and understood their meaning, you would find it as the most useful tool in hand to solve many complex problems related to text searches.</p>
<p>Just consider how you would make a search for files on your computer. You most likely use the ? and * characters to help find the files you&#8217;re looking for. The ? character matches a single character in a file name, while the * matches zero or more characters. A pattern such as &#8216;file?.txt&#8217; would find the following files:</p>
<ul>
<li>file1.txt</li>
<li>filer.txt</li>
<li>files.txt</li>
</ul>
<p>Using the * character instead of the ? character expands the number of files found. &#8216;file*.txt&#8217; matches all of the following:</p>
<ul>
<li>file1.txt</li>
<li>file2.txt</li>
<li>file12.txt</li>
<li>filer.txt</li>
<li>filedce.txt</li>
</ul>
<p>While this method of searching for files can certainly be useful, it is also very limited. The limited ability of the ? and * wildcard characters give you an idea of what regular expressions can do, but regular expressions are much more powerful and flexible.</p>
<h3>Let Us Start on RegEx</h3>
<p>A regular expression is a pattern of text that consists of ordinary characters (for example, letters a through z) and special characters, known as <em>metacharacters.</em> The pattern describes one or more strings to match when searching a body of text. The regular expression serves as a template for matching a character pattern to the string being searched.</p>
<p>The following table contains the list of some metacharacters and their behavior in the context of regular expressions:</p>
<table class="table_bg" border="0" width="100%" cellspacing="0" cellpadding="5">
<thead>
<tr class="small_orange">
<th class="table_border" align="center" width="19%">Character</th>
<th class="table_border1" align="center" width="80%">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="table_border">\</td>
<td class="table_border1">Marks the next character as either a special character, a literal, a backreference, or an octal escape. For example, &#8216;n&#8217; matches the character &#8220;n&#8221;. &#8216;\n&#8217; matches a newline character. The sequence &#8216;\\&#8217; matches &#8220;\&#8221; and &#8220;\(&#8221; matches &#8220;(&#8220;.</td>
</tr>
<tr>
<td class="table_border">^</td>
<td class="table_border1">Matches the position at the beginning of the input string.</td>
</tr>
<tr>
<td class="table_border">$</td>
<td class="table_border1">Matches the position at the end of the input string.</td>
</tr>
<tr>
<td class="table_border">*</td>
<td class="table_border1">Matches the preceding subexpression zero or more times.</td>
</tr>
<tr>
<td class="table_border">+</td>
<td class="table_border1">Matches the preceding subexpression one or more times.</td>
</tr>
<tr>
<td class="table_border">?</td>
<td class="table_border1">Matches the preceding subexpression zero or one time.</td>
</tr>
<tr>
<td class="table_border">{<em>n</em>}</td>
<td class="table_border1">Matches exactly <em>n</em> times, where <em>n</em> is a nonnegative integer.</td>
</tr>
<tr>
<td class="table_border">{<em>n</em>,}</td>
<td class="table_border1">Matches at least <em>n</em> times, <em>n</em> is a nonnegative integer.</td>
</tr>
<tr>
<td class="table_border">{<em>n</em>,<em>m</em>}</td>
<td class="table_border1">Matches at least <em>n</em> and at most <em>m</em> times, where <em>m</em> and <em>n</em> are nonnegative integers and <em>n</em> &lt;= <em>m</em>.</td>
</tr>
<tr>
<td class="table_border">?</td>
<td class="table_border1">When this character immediately follows any of the other quantifiers (*, +, ?, {<em>n</em>}, {<em>n</em>,}, {<em>n</em>,<em>m</em>}), the matching pattern is non-greedy. A non-greedy pattern matches as little of the searched string as possible, whereas the default greedy pattern matches as much of the searched string as possible.</td>
</tr>
<tr>
<td class="table_border">.</td>
<td class="table_border1">Matches any single character except &#8220;\n&#8221;.</td>
</tr>
<tr>
<td class="table_border"><em>x</em>|<em>y</em></td>
<td class="table_border1">Matches either <em>x</em> or <em>y</em>.</td>
</tr>
<tr>
<td class="table_border">[<em>xyz</em>]</td>
<td class="table_border1">A character set. Matches any one of the enclosed characters.</td>
</tr>
<tr>
<td class="table_border">[^<em>xyz</em>]</td>
<td class="table_border1">A negative character set. Matches any character not enclosed.</td>
</tr>
<tr>
<td class="table_border">[<em>a-z</em>]</td>
<td class="table_border1">A range of characters. Matches any character in the specified range.</td>
</tr>
<tr>
<td class="table_border">[^<em>a-z</em>]</td>
<td class="table_border1">A negative range characters. Matches any character not in the specified range.</td>
</tr>
<tr>
<td class="table_border">\b</td>
<td class="table_border1">Matches a word boundary, that is, the position between a word and a space.</td>
</tr>
<tr>
<td class="table_border">\B</td>
<td class="table_border1">Matches a nonword boundary. &#8216;er\B&#8217; matches the &#8216;er&#8217; in &#8220;verb&#8221; but not the &#8216;er&#8217; in &#8220;never&#8221;.</td>
</tr>
<tr>
<td class="table_border">\d</td>
<td class="table_border1">Matches a digit character.</td>
</tr>
<tr>
<td class="table_border">\D</td>
<td class="table_border1">Matches a nondigit character.</td>
</tr>
<tr>
<td class="table_border">\f</td>
<td class="table_border1">Matches a form-feed character.</td>
</tr>
<tr>
<td class="table_border">\n</td>
<td class="table_border1">Matches a newline character.</td>
</tr>
<tr>
<td class="table_border">\r</td>
<td class="table_border1">Matches a carriage return character.</td>
</tr>
<tr>
<td class="table_border">\s</td>
<td class="table_border1">Matches any whitespace character including space, tab, form-feed, etc.</td>
</tr>
<tr>
<td class="table_border">\S</td>
<td class="table_border1">Matches any non-whitespace character.</td>
</tr>
<tr>
<td class="table_border">\t</td>
<td class="table_border1">Matches a tab character.</td>
</tr>
<tr>
<td class="table_border">\v</td>
<td class="table_border1">Matches a vertical tab character.</td>
</tr>
<tr>
<td class="table_border">\w</td>
<td class="table_border1">Matches any word character including underscore.</td>
</tr>
<tr>
<td class="table_border">\W</td>
<td class="table_border1">Matches any nonword character.</td>
</tr>
<tr>
<td class="table_border_last">\u<em>n</em></td>
<td>Matches <em>n</em>, where <em>n</em> is a Unicode character expressed as four hexadecimal digits. For example, \u00A9 matches the copyright symbol (©).</td>
</tr>
</tbody>
</table>
<div class="clear"></div>
<p>&nbsp;</p>
<h3>RegEx functions in PHP</h3>
<p>PHP has functions to work on complex string manipulation using RegEx.  The following are the RegEx functions provided in PHP.</p>
<table class="table_bg" border="0" width="100%" cellspacing="0" cellpadding="5">
<thead>
<tr>
<th class="table_border" align="center"><b>Function</b></th>
<th class="table_border1" align="center" width="423"><b>Description</b></th>
</tr>
</thead>
<tbody>
<tr>
<td class="table_border">ereg</td>
<td class="table_border1">This function matches the text pattern in a string using a RegEx pattern.</td>
</tr>
<tr>
<td class="table_border">eregi</td>
<td class="table_border1">This function is similar to ereg(), but ignore the case sensitivity.</td>
</tr>
<tr>
<td class="table_border">ereg_replace</td>
<td class="table_border1">This function matches the text pattern in a string using a RegEx Pattern and replaces it with the given text.</td>
</tr>
<tr>
<td class="table_border">eregi_replace</td>
<td class="table_border1">This is similar to ereg_replace(), but ignores the case sensitivity.</td>
</tr>
<tr>
<td class="table_border">split</td>
<td class="table_border1">This function split string into array using RegEx.</td>
</tr>
<tr>
<td class="table_border">Spliti</td>
<td class="table_border1">This is similar to Split(), but ignores the case sensitivity.</td>
</tr>
<tr>
<td class="table_border_last">sql_regcase</td>
<td>This function create a RegEx from the given string to make a case insensitive match.</td>
</tr>
</tbody>
</table>
<div class="clear"></div>
<p>&nbsp;</p>
<h3>Finding US Zip Code</h3>
<p>Now let us see a simple example to match a US 5 digit zip code from a string</p>
<pre>&lt;?
$zip_pattern = "[0-9]{5}";
$str = "Mission Viejo, CA 92692";
ereg($zip_pattern,$str,$regs);
echo $regs[0];
?&gt;
</pre>
<p>&nbsp;</p>
<p>This script would output as follows</p>
<pre>92692</pre>
<p>The above example can also be rewritten using Perl-compatible regular expression syntax with preg_match() function.</p>
<pre>&lt;?
$zip_pattern = "/\d{5}/";
$str = "Mission Viejo, CA 92692";
preg_match($zip_pattern,$str,$regs);
echo $regs[0];
?&gt;
</pre>
<p>&nbsp;</p>
<p>Note the change in the RegEx pattern in both examples. preg_match() is considered as  faster alternative for ereg().</p>
<h3>RegEx for US Phone Numbers</h3>
<p>Now let us try to create a RegEx pattern to match a US telephone number.  US telephone numbers are 10 digit numbers usually written with three parts like xxx xxx xxxx.  These three parts are normally used with – hyphen, () braces, and blank spaces. The most common patterns can be seen as follows:</p>
<pre>XXX XXX XXXX
(XXX) XXX XXXX
XXX-XXX-XXXX
(XXX) XXX-XXXX 
</pre>
<p>In some cases, US ISD code would be added in the first, like +1 XXX XXX XXXX.</p>
<p>Let us create a Perl-Compatible RegEx pattern to match the above patterns. First we would need to match the single digit ISD code (let us not restrict it to 1). But this may or may not available in the phone numbers, hence we would write it as follows:</p>
<pre>$Phone_Pattern = “/(\d)?/”;
</pre>
<p>Here \d is equivalent to 0-9 and the succeeding ‘?’ indicates that the digit may appear one time or doesn’t appear at all.</p>
<p>Now what would appear next in the sequence? The possibilities are a blank space or a hyphen. So we would add the pattern “(\s|-)?” with the above RegEx. This pattern indicates that either a blank space or a hyphen may or may not appear. So our RegEx becomes:</p>
<pre>$Phone_Pattern = “/(\d)?(\s|-)?/”;</pre>
<p>The next sequence would be either XXX or (XXX). To match this sequence, we need to first match the braces with the pattern “(\()?”. As we use braces to enclose the patterns in RegEx, braces are metacharacters and to match these metacharacters explicitly, we need to use the escape character “\” preceding the metacharacters. Hence we use “\(“ in our RegEx pattern.  Now we need to match the three digits and a closing braces. So this can be written as “(\d){3}(\))?”. Now our RegEx is added with these patterns,</p>
<pre>$Phone_Pattern = “/(\d)?(\s|-)?(\()?(\d){3}(\))?/”;</pre>
<p>&nbsp;</p>
<p>After the first part XXX, there should be either a blank space or a hyphen. So we add “(\s|-){1}” to the phone pattern.</p>
<pre>$Phone_Pattern = “/(\d)?(\s|-)?(\()?(\d){3}(\))?(\s|-){1}/”;</pre>
<p>Further construction of RegEx would be much more simpler, as we need to match either XXX-XXXX or XXX XXXX. This could be written as “(\d){3}(\s|-){1}(\d){4}”. Adding this part of pattern to our RegEx,</p>
<pre>$Phone_Pattern = “/(\d)?(\s|-)?(\()?(\d){3}(\))?(\s|-){1}(\d){3}(\s|-){1}(\d){4}/”;</pre>
<p>Yippee!!! We have created a RegEx to match US phone numbers.</p>
<p>Now we need to use this RegEx to perform some task, so that we can understand the significance of RegEx better. Now let us try to script a code to fetch the phone numbers from Google contact us page. So first we need to fetch the html content from Google’s contact us page.</p>
<pre>$str = implode("",file("http://www.google.com/intl/en/contact/index.html"));</pre>
<p>&nbsp;</p>
<p>Then we need to search for the phone number pattern with the help of our “Just Created” RegEx. If we use the preg_match(), we can fetch only one match. So to get more than one match we would use preg_match_all().</p>
<pre>preg_match_all($Phone_Pattern,$str,$phone);</pre>
<p>&nbsp;</p>
<p>Now putting all these pieces into a single script,</p>
<pre>&lt;?
$str = implode("",file("http://www.google.com/intl/en/contact/index.html"));
$Phone_Pattern = "/(\d)?(\s|-)?(\()?(\d){3}(\))?(\s|-){1}(\d){3}(\s|-){1}(\d){4}/";
preg_match_all($Phone_Pattern,$str,$phone);
for($i=0;$i&lt;count($phone[0]);$i++)
{
echo $phone[0][$i]."&lt;br&gt;";
}
?&gt;
</pre>
<p>This script will display the following output,</p>
<pre>(650) 253-0000
(650) 253-0001</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3>Wrap Up</h3>
<p>Hope you had a good session with RegEx and now you would have some understanding on tackling problems related to text pattern findings using RegEx.  To become a specialist in RegEx, you need to continuously practice it and need to identify complex problems and give a try to solve them. Happy Practicing With RegEx.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/writing-regular-expression-php/">Writing Regular Expression With php</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Creating Dynamic PDF files using HTML and PHP</title>
		<link>https://www.macronimous.com/resources/articles/creating-dynamic-pdf-files-using-html-php/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 22 Apr 2017 12:13:24 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=2781</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/pdf_conversion_html-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/pdf_conversion_html-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/pdf_conversion_html-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/pdf_conversion_html.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div>
<p>There always arises a need for converting content from one file format to another. Some need to convert text into HTML, and some need to<a href="https://www.macronimous.com/resources/articles/creating-dynamic-pdf-files-using-html-php/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/creating-dynamic-pdf-files-using-html-php/">Creating Dynamic PDF files using HTML and PHP</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/pdf_conversion_html-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/pdf_conversion_html-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/pdf_conversion_html-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/pdf_conversion_html.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div><p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3190" src="https://www.macronimous.com/wp-content/uploads/Creating-Dynamic-PDF-with-php.png" alt="Dynamic PDF files using HTML and PHP" width="1200" height="740" srcset="https://www.macronimous.com/wp-content/uploads/Creating-Dynamic-PDF-with-php.png 1200w, https://www.macronimous.com/wp-content/uploads/Creating-Dynamic-PDF-with-php-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/Creating-Dynamic-PDF-with-php-768x474.png 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /></p>
<p>There always arises a need for converting content from one file format to another. Some need to convert text into HTML, and some need to convert HTML content into an image or a document. The main reason is that the target format is best suited for the medium where the content will be consumed &mdash; an email, a printed hard copy, or a web browser.</p>
<p>Plain text is best suited for transactional emails, since the chance of content getting mangled in transit is much lower than with HTML-formatted emails. A PDF or Word document is the right choice for a printed hard copy, and HTML is obviously best for showing content in browsers. PDF is the right choice for documents such as bills or invoices that need to be downloaded. When you build a backend application &mdash; a CRM, an invoicing system, a WooCommerce store that emails order receipts &mdash; you need documents created dynamically, on the fly, and delivered as PDF: either as email attachments or as downloads.</p>
<p>Here, we are going to look at converting HTML 2 PDF using PHP. This article is not going to explain the internal logic of how an HTML file becomes a PDF file &mdash; that is a rendering-engine subject of its own. Instead, we cover the free, open-source PHP libraries that do the conversion for you, which ones are still worth using, and which ones you should retire.</p>
<p style="border-left: 4px solid #faab46; padding: 14px 18px; background: #fcf6ec; margin: 24px 0;"><strong>A note on this article&#8217;s age:</strong> we first published this guide well over a decade ago, and it has ranked for PHP-to-PDF searches ever since. The PHP ecosystem has moved on, so we have thoroughly revised it &mdash; keeping what still works, and being honest about what doesn&#8217;t. If you followed the old version of this tutorial, read the HTML2FPDF section below before touching production code.</p>
<h3>Which PHP PDF Library Should You Use in 2026?</h3>
<p>The short answer: use <strong>Dompdf</strong> to convert HTML to PDF in PHP &mdash; it is Composer-installable, actively maintained (v3.1.x as of 2026), and handles CSS 2.1 plus enough CSS3 for invoices, receipts, and reports. Use <strong>FPDF</strong> when you are drawing a PDF programmatically without HTML and want zero dependencies. Use <strong>mPDF</strong> when you need strong UTF-8 and non-Latin script support &mdash; it is the maintained descendant of the old HTML2FPDF library this article originally taught. And when the PDF must look pixel-identical to a CSS-heavy page, skip PHP rendering engines entirely and drive headless Chrome.</p>
<p>In our client work &mdash; mostly WooCommerce, PrestaShop, and custom PHP applications for US and UK businesses &mdash; Dompdf covers roughly eight out of ten PDF requirements. The rest of this article walks through each option with working code.</p>
<h3>FPDF: The PDF Generator</h3>
<p>The first and the main base for PDF generation in PHP is the FPDF library. FPDF is a pure PHP class to generate PDF files on the fly, with no external dependencies and no extensions beyond zlib and GD. It has been around for over two decades, and &mdash; unusually for a library that old &mdash; it is still maintained: version 1.86 supports PHP 8, and the official Composer package is <code>setasign/fpdf</code>.</p>
<pre>composer require setasign/fpdf</pre>
<p>Let us start the PDF generation with a simple Hello World:</p>
<pre>&lt;?php
require __DIR__ . '/vendor/autoload.php';

$pdf = new FPDF();
$pdf-&gt;AddPage();
$pdf-&gt;SetFont('Arial', 'B', 16);
$pdf-&gt;Cell(40, 10, 'Hello World!');
$pdf-&gt;Output();
</pre>
<p>We create an FPDF object using the default constructor <code>FPDF()</code>. This constructor accepts three values: page orientation (portrait or landscape), the measure unit, and the page size (A4, A5, Letter, and so on). By default, pages are A4 portrait and the measuring unit is the millimeter. It could have been specified explicitly with:</p>
<pre>$pdf = new FPDF('P', 'mm', 'A4');</pre>
<p>It is possible to use landscape (<code>L</code>), other page formats (such as Letter and Legal), and other measure units (<code>pt</code>, <code>cm</code>, <code>in</code>).</p>
<p>Then we add a page to the PDF document with <code>AddPage()</code>. The origin is at the upper-left corner, and the current position is placed 1 cm from the borders by default; the margins can be changed with <code>SetMargins()</code> &mdash; call it <em>before</em> <code>AddPage()</code> if you want it to apply from the first page.</p>
<p>To print text, we first select a font with <code>SetFont()</code>. We use the <code>Cell()</code> function to output text. A cell is a rectangular area, possibly framed, which contains some text. It is output at the current position. We specify its dimensions, its text (centered or aligned), whether borders should be drawn, and where the current position moves afterwards (to the right, below, or to the beginning of the next line). To add a frame:</p>
<pre>$pdf-&gt;Cell(40, 10, 'Hello World!', 1);</pre>
<p>Finally, the document is closed and sent to the browser with <code>Output()</code>. One thing that trips developers up: the parameter order of <code>Output()</code> changed years ago. Since FPDF 1.8, the signature is <code>Output($dest, $name)</code> &mdash; destination first, filename second. Older tutorials (including the original version of this one) show the name-first order; FPDF detects the legacy order and swaps the values, so old code keeps working, but write new code destination-first. The destinations are: <code>I</code> to display inline in the browser (the default), <code>D</code> to force a download, <code>F</code> to save to a local file, and <code>S</code> to return the PDF document as a string &mdash; the one you want when attaching the PDF to an email with PHPMailer or Symfony Mailer.</p>
<pre>$pdf-&gt;Output('F', 'invoice.pdf');        // save to file
$pdfString = $pdf-&gt;Output('S');          // return as string, e.g. for email attachment
</pre>
<p>There are many more functions in FPDF than we can cover here. To learn FPDF, browse <a href="http://www.fpdf.org" target="_blank" rel="noopener noreferrer">fpdf.org</a>.</p>
<p>FPDF&#8217;s limitation is the flip side of its strength: you position everything yourself. For a fixed-layout document like a certificate or a label, that precision is exactly what you want. For a document whose layout should come from HTML and CSS, you want a converter &mdash; which brings us to the library this article was originally built around.</p>
<h3>HTML2FPDF: The Original Converter &mdash; Now Abandoned</h3>
<p>HTML2FPDF is a PHP class library that uses the FPDF class library to convert HTML files to PDF files. When we first wrote this article, it was the practical way to do HTML-to-PDF conversion in PHP, and its usage looked like this:</p>
<pre>&lt;?php
// LEGACY CODE — do not use in production. Shown for historical reference.
require('html2fpdf.php');
$pdf = new HTML2FPDF();
$pdf-&gt;AddPage();
$strContent = file_get_contents('sample.html');
$pdf-&gt;WriteHTML($strContent);
$pdf-&gt;Output('sample.pdf');
</pre>
<p>Here is the honest part: <strong>HTML2FPDF has been abandoned for many years.</strong> The <a href="http://html2fpdf.sourceforge.net" target="_blank" rel="noopener noreferrer">SourceForge project</a> still exists as an archive, but the library predates PHP namespaces, Composer, and modern CSS, and it only ever worked reliably with XHTML 1.0. If you inherit a legacy application that still runs it &mdash; we occasionally do, in codebases handed over to us for maintenance &mdash; treat replacing it as technical debt to be paid, not a system to extend.</p>
<p>The good news is that HTML2FPDF did not simply die; it evolved. <strong>mPDF is its direct descendant</strong> &mdash; the mPDF project itself describes the library as based on FPDF and HTML2FPDF, with substantial enhancements: UTF-8 throughout, CSS support far beyond the original, headers and footers, and proper Composer packaging. If you are migrating old HTML2FPDF code, mPDF is the most natural landing place because the core concept &mdash; <code>WriteHTML()</code> in, PDF out &mdash; carried over:</p>
<pre>composer require mpdf/mpdf</pre>
<pre>&lt;?php
require __DIR__ . '/vendor/autoload.php';

$mpdf = new \Mpdf\Mpdf(['mode' =&gt; 'utf-8', 'format' =&gt; 'A4']);
$mpdf-&gt;WriteHTML(file_get_contents('sample.html'));
$mpdf-&gt;Output('sample.pdf', \Mpdf\Output\Destination::FILE);
</pre>
<p>mPDF&#8217;s particular strength is language support. For documents in Tamil, Arabic, Hindi, Chinese, or any script beyond Latin, it is the most dependable of the pure-PHP converters &mdash; something we can vouch for from running Tamil-language sites ourselves. Documentation is at <a href="https://mpdf.github.io/" target="_blank" rel="noopener noreferrer">mpdf.github.io</a>. One caveat: mPDF is GPL-licensed, which is fine for internal applications and most client work, but check the license terms if you redistribute software that bundles it.</p>
<h3>Dompdf: The Current Default for HTML to PDF in PHP</h3>
<p>For new projects, Dompdf is where we start. It is an HTML layout and rendering engine written in PHP &mdash; mostly CSS 2.1 compliant, with a useful subset of CSS3 including <code>@page</code> rules for print margins. It reads external stylesheets, inline <code>&lt;style&gt;</code> tags, and style attributes, which means your designer can style the invoice template like any other HTML page.</p>
<pre>composer require dompdf/dompdf</pre>
<pre>&lt;?php
require __DIR__ . '/vendor/autoload.php';

use Dompdf\Dompdf;
use Dompdf\Options;

$options = new Options();
$options-&gt;set('isRemoteEnabled', false);  // local assets only — safer default
$options-&gt;set('chroot', __DIR__);         // restrict file access to this folder

$dompdf = new Dompdf($options);
$dompdf-&gt;loadHtml(file_get_contents('sample.html'));
$dompdf-&gt;setPaper('A4', 'portrait');
$dompdf-&gt;render();

$dompdf-&gt;stream('invoice.pdf', ['Attachment' =&gt; true]);   // force download
// or: file_put_contents('invoice.pdf', $dompdf-&gt;output()); // save to disk
</pre>
<p>Two production notes from experience. First, leave <code>isRemoteEnabled</code> off and reference images by local path unless you genuinely need remote assets &mdash; several Dompdf security advisories over the years have involved remote resource loading. Second, Dompdf is not tolerant of sloppy markup, and a table row cannot break across pages; keep invoice line items as one row each and validate your template&#8217;s HTML. The project lives at <a href="https://github.com/dompdf/dompdf" target="_blank" rel="noopener noreferrer">github.com/dompdf/dompdf</a>.</p>
<h3>TCPDF and Headless Chrome: The Edge Cases</h3>
<p>Two more options round out the landscape. <strong>TCPDF</strong> sits between FPDF and the HTML converters: programmatic drawing like FPDF, plus a <code>writeHTML()</code> method, plus features the others lack &mdash; digital signatures, PDF/A archival compliance, barcodes, and encryption. If a client requirement says &#8220;digitally signed&#8221; or &#8220;PDF/A&#8221;, TCPDF is usually the answer. It is heavier and its API shows its age, so we reach for it only when those features are required.</p>
<p>And when the requirement is &#8220;the PDF must look exactly like this web page&#8221; &mdash; flexbox, grid, web fonts, charts rendered by JavaScript &mdash; no pure-PHP engine will get you there. The honest answer is to render with a real browser: <a href="https://github.com/spatie/browsershot" target="_blank" rel="noopener noreferrer">Spatie&#8217;s Browsershot</a> drives headless Chrome from PHP and produces exactly what Chrome&#8217;s own &#8220;Print to PDF&#8221; would. The trade-off is infrastructure: you need Node and Chrome on the server, which rules it out on typical shared hosting. One related warning: <strong>wkhtmltopdf</strong>, the old command-line favorite for this job, is archived and unmaintained &mdash; do not build anything new on it.</p>
<h3>Comparison: PHP PDF Libraries at a Glance</h3>
<table style="width: 100%; border-collapse: collapse;">
<thead>
<tr>
<th style="background: #222222; color: #ffffff; padding: 10px; text-align: left; border: 1px solid #222222;">Library</th>
<th style="background: #222222; color: #ffffff; padding: 10px; text-align: left; border: 1px solid #222222;">Best for</th>
<th style="background: #222222; color: #ffffff; padding: 10px; text-align: left; border: 1px solid #222222;">HTML/CSS support</th>
<th style="background: #222222; color: #ffffff; padding: 10px; text-align: left; border: 1px solid #222222;">Status in 2026</th>
</tr>
</thead>
<tbody>
<tr>
<td style="padding: 10px; border: 1px solid #d0d0d0;"><strong>FPDF</strong></td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">Programmatic PDFs: labels, certificates, fixed layouts</td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">None &mdash; you draw everything</td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">Maintained (v1.86, via <code>setasign/fpdf</code>)</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #d0d0d0;"><strong>HTML2FPDF</strong></td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">Nothing new &mdash; legacy maintenance only</td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">XHTML 1.0 era</td>
<td style="padding: 10px; border: 1px solid #d0d0d0;"><strong>Abandoned</strong> &mdash; migrate to mPDF</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #d0d0d0;"><strong>Dompdf</strong></td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">Invoices, receipts, reports from HTML templates</td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">CSS 2.1 + partial CSS3</td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">Actively maintained (v3.1.x) &mdash; our default</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #d0d0d0;"><strong>mPDF</strong></td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">UTF-8 and non-Latin scripts, headers/footers</td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">Good CSS subset</td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">Actively maintained (GPL license)</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #d0d0d0;"><strong>TCPDF</strong></td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">Digital signatures, PDF/A, barcodes</td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">Basic HTML subset</td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">Maintained</td>
</tr>
<tr>
<td style="padding: 10px; border: 1px solid #d0d0d0;"><strong>Browsershot / headless Chrome</strong></td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">Pixel-perfect rendering of modern CSS/JS pages</td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">Full (it <em>is</em> Chrome)</td>
<td style="padding: 10px; border: 1px solid #d0d0d0;">Maintained; needs Node + Chrome on server</td>
</tr>
</tbody>
</table>
<h3>Troubleshooting the Two Errors Everyone Hits</h3>
<p><strong>1. &#8220;Some data has already been output, can&#8217;t send PDF file&#8221;</strong></p>
<p>FPDF, TCPDF, and mPDF all throw a variant of this, and the cause is always the same: something reached the browser before the PDF&#8217;s HTTP headers could be sent. The usual suspects, in the order we find them in client code:</p>
<ul>
<li>Whitespace or a blank line before <code>&lt;?php</code> or after a closing <code>?&gt;</code> in any included file &mdash; this is why modern PHP style omits the closing tag entirely.</li>
<li>A UTF-8 BOM at the start of a file. Editors sometimes add it invisibly; save as &#8220;UTF-8 without BOM&#8221;.</li>
<li>An <code>echo</code>, <code>print_r()</code>, or PHP warning emitted earlier in the request.</li>
</ul>
<p>The quick diagnostic is to wrap the request in output buffering &mdash; <code>ob_start()</code> at the top, then <code>ob_end_clean()</code> immediately before calling <code>Output()</code> &mdash; which discards whatever stray output was queued. That gets you shipping again, but treat it as a bandage: find the file that leaks output, because the same leak will corrupt JSON responses and redirects too.</p>
<p><strong>2. Output() confusion: parameter order and the &#8216;S&#8217; destination</strong></p>
<p>If your PDF downloads with the wrong filename, or saves when it should stream, you have the <code>Output()</code> parameters reversed. Since FPDF 1.8, it is <code>Output($dest, $name)</code> &mdash; destination first. And when you need the PDF as a value in your code rather than sent anywhere &mdash; to attach to an email, push to S3, or store in a database &mdash; use the <code>S</code> destination, which returns the document as a string:</p>
<pre>$pdfString = $pdf-&gt;Output('S');
// TCPDF equivalent: $pdf-&gt;Output('doc.pdf', 'S');
// Dompdf equivalent: $dompdf-&gt;output();
</pre>
<h3>Download the Working Sample</h3>
<p>We have rebuilt the companion download for this article from scratch, tested on PHP 8.3. It contains a sample HTML invoice with a logo, ready-to-run scripts for FPDF, Dompdf, and mPDF, a <code>composer.json</code>, the generated PDFs so you can see the expected result, and a README with setup steps. <a href="https://www.macronimous.com/wp-content/uploads/html2pdf_sample.zip">Download the sample package here</a>, or <a href="https://www.macronimous.com/wp-content/uploads/html2pdf_sample.pdf">view the generated PDF</a> first.</p>
<hr />
<p><em>This article was originally published in the early years of Macronimous and has been thoroughly revised in July 2026 &mdash; the code samples were rewritten for PHP 8, tested before publishing, and the library recommendations reflect what we actually deploy for clients today.</em></p>
<p>If you are building PDF generation into a <a href="https://www.macronimous.com/services/outsource-php-development/">custom PHP web application</a> &mdash; invoicing, reporting, or document workflows &mdash; our PHP team has been doing exactly this since 2002. We welcome you to <a href="https://www.macronimous.com/contact/">contact us</a>.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/creating-dynamic-pdf-files-using-html-php/">Creating Dynamic PDF files using HTML and PHP</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Secure Password Programming</title>
		<link>https://www.macronimous.com/resources/articles/secure-password-programming/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 22 Apr 2017 11:40:53 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=2779</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/Secure-Password-Programming-1-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/Secure-Password-Programming-1-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/Secure-Password-Programming-1-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/Secure-Password-Programming-1.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div>
<p>Introduction Passwords &#8211; Handle them with care! They lock sensitive data behind them, which if broken into, could result in serious issues. Many people use<a href="https://www.macronimous.com/resources/articles/secure-password-programming/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/secure-password-programming/">Secure Password Programming</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/Secure-Password-Programming-1-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/Secure-Password-Programming-1-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/Secure-Password-Programming-1-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/Secure-Password-Programming-1.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div><h3>Introduction</h3>
<p>Passwords &#8211; Handle them with care! They lock sensitive data behind them, which if broken into, could result in serious issues. Many people use the same password for different sites, which increases the vulnerability of data being misused. Applications with poor security implementations use ineffective password handling and storage mechanisms, which makes matters worse.</p>
<p>As a developer of applications that require some form of user authentication, you probably have to write code for storing/retrieving a user’s password from a data store and verifying it. This article takes you through the different ways how passwords are hacked, lists down the objectives of a secure password system, and finally explores how an effective password handling mechanism can be implemented with.NET.</p>
<h3>Overview</h3>
<p>In order to design a good password handling solution, we first need to understand how password security is breached. Passwords are usually exposed by one of these mechanisms:</p>
<div>
<ul>
<li>Brute-force attacks</li>
<li>Dictionary-attacks</li>
<li>Security breaches at the data store server</li>
</ul>
</div>
<p>Let’s examine each of these scenarios in detail.</p>
<p>The first two procedures revolve around the idea of guessing passwords by using programs developed specially for that. Brute-force attacks work like this: the target application or the server path is keyed into the brute-force program. The length of the password (if known), and other settings like whether it includes symbols, cases etc. are input. When launched, the program identifies all possible character combinations with the settings selected, and for each word thus generated, it will invoke the application/server link and test whether this password is the right one or not. A simple check whether the response from the server contains a string ‘password failed’ or so will identify the outcome. The more the number of characters and the character range is, the longer the operation will take to complete. In order to decrease the amount of time required most brute-force programs implement multi-threading for executing simultaneous tests.</p>
<p>In many cases, people don’t use strong passwords that involve multiple character casing, numbers, and symbols combined together. Most of the time, passwords are combinations of meaningful words. Dictionary attacks are based on this common vulnerability. Instead of testing all character combinations like in brute-force attacks, dictionary attacks try out common words and their combinations. To facilitate this, huge lists of possible passwords are compiled to what is known as a word-list or a dictionary. With the aid of this, dictionary-attack programs try out each entry in the list to make a break through. Obviously, if the correct password happens to be a weak password, the time taken to figure out the password will be significantly lower when using dictionary attacks instead of brute-force attacks.</p>
<p>Passwords are physically stored in different systems &#8211; they may be stored in a database, a simple text file, in the application configuration files etc. In many implementations, the extent of password security depends on how secure the data storage system is. For example, if the data store happens to be a SQL Server database at a web hosting company, the level of password security will depend on how secure the database server at their location is. If the security is not effective enough, it is possible that people who have access to the database can steal passwords.</p>
<h3>Basic Security with Hashing</h3>
<p>Having explored the different means by which password security is compromised, we could define the following set of objectives, which any good password handling design should satisfy:</p>
<div>
<ul>
<li>Make sure that brute-force or dictionary attacks will fail in real-life scenarios.</li>
<li>Make sure that password security does not depend on the security of the data store, i.e. even if security at the data store fails, it should present no risk for the passwords stored.</li>
</ul>
</div>
<p>One solution to fulfill the second objective is, not to store passwords in the data store at all. Instead of storing the passwords as such in their original form; we would store values that are generated from the actual password. The new value sourced from the original password should be in a format with no meaningful data, and should also ensure that all password-related operations could be carried out in the same way as before.</p>
<p>Using cryptography to encrypt the password is the best solution for this requirement. Cryptography will let you transform a piece of meaningful text into non-meaningful data. There are basically three different kinds of cryptography methods:</p>
<div>
<ul>
<li>Symmetric</li>
<li>Asymmetric</li>
<li>Hashing</li>
</ul>
</div>
<p>Symmetric and Asymmetric algorithms both use keys to encrypt and decrypt data. The added overhead of storing the keys securely and the possibility of the passwords being decrypted to their original form makes both these algorithms rather inefficient for our design. Hashing, on the other hand, does not use keys and hashed values cannot be decrypted, and thus turns out to be a good candidate for our design.</p>
<p>Hash algorithms are one-way algorithms, which encrypts data irreversibly. This means that once a piece of text is hashed, the original text can never be retrieved from the hash value. Hashing also ensures that two sets of data with just minor differences will produce hash values that differ from one another significantly. Hence, it would be impossible to infer from any two hash values whether the original text of those hashes was similar or not. Note that with hashing, the same data will always generate the same hash.</p>
<p>In .NET, the most common hashing algorithms used are:</p>
<div>
<ul>
<li>SHA1 (Secure Hashing Algorithm 1) and,</li>
<li>MD5 (Message Digest 5).</li>
</ul>
</div>
<div>All hash algorithms derive from the <em class="orange_titles">System.Security.Cryptography.HashAlgorithm class.<br />
System.Security.Cryptography.MD5</em> is one such class that derives from HashAlgorithm. The MD5 class represents the abstract base class from which all MD5 hash algorithm implementations must inherit from. System.Security.Cryptography.MD5CryptoServiceProvider is a class that derives from MD5 and provides the facility to create hashes. In a similar fashion, System.Security.Cryptography.SHA1 and System.Security.Cryptography.SHA1CryptoServiceProvider types are defined for generating hashes using the SHA1 algorithm.To create a hash of a string for storing in a data store, you make use of either the CryptoServiceProvider classes in the <em class="orange_titles">System.Security.Cryptography</em> namespace, or the <em class="orange_titles">FormsAuthentication.HashPasswordForStoringInConfigFile</em> method. Let’s have a look at how to create a hash for a piece of text using the <span class="orange_titles">MD5 algorithm.</span></div>
<p>The first step in generating a hash is to initialize a cryptographic service provider. In our case, we would initialize an instance of <span class="orange_titles">MD5CryptoServiceProvider.</span></p>
<pre>MD5CryptoServiceProvider myMD5 = new
MD5CryptoServiceProvider();
</pre>
<p>The <em class="orange_titles">ComputeHash</em> method accepts only an array of bytes or a stream. To convert our string into an array of bytes, we make use of the UnicodeEncoding.UTF8.GetBytes method.</p>
<pre><b>string</b> textToHash = "password";
<b>byte[]</b> byteRepresentation =
UnicodeEncoding.UTF8.GetBytes(textToHash);
</pre>
<p>We generate the hash by passing the <em class="orange_titles">ComputeHash</em> method the array of bytes which represents our string to be encrypted.</p>
<pre><b>byte[]</b> hashedTextInBytes =
myMD5.ComputeHash(byteRepresentation);
</pre>
<p>The <em>ComputeHash</em> method returns the encrypted data as an array of bytes, which we need to convert back into a string. We perform this by using the ToBase64String method of the Convert class.</p>
<pre>&lt;b"&gt;string hashedText = Convert.ToBase64String(hashedTextInBytes);
</pre>
<p>The complete code will take the form as follows.</p>
<p>&nbsp;</p>
<pre><b>public void</b> HashText()
{

<b class="orange_titles">string</b> textToHash = "password";
<b class="orange_titles">byte[]</b> byteRepresentation = UnicodeEncoding.UTF8.GetBytes( textToHash);
<b class="orange_titles">byte[]</b> hashedTextInBytes = null;
MD5CryptoServiceProvider myMD5 = new MD5CryptoServiceProvider();
hashedTextInBytes = myMD5.ComputeHash(byteRepresentation);
<b class="orange_titles">string</b> hashedText = Convert.ToBase64String(hashedTextInBytes);
// will display X03MO1qnZdYdgyfeuILPmQ== MessageBox.Show(hashedText);

}
</pre>
<p>&nbsp;</p>
<p>In contrast, the <em>FormsAuthentication.HashPasswordForStoringInConfigFile</em> method creates a hash value in a single step. We just need to pass the string to be hashed and the name of the hash algorithm to be used which can be either of MD5 or SHA1. For example:</p>
<pre>FormsAuthentication.HashPasswordForStoringInConfigFile("password", "MD5");</pre>
<h3>Additional Security with Salting</h3>
<p>Hashing passwords and storing the hash value in the data store instead of the actual password will ensure that in the event of the web server/data store security being compromised, the user passwords are not at any risk. But sadly, this system will not satisfy our first objective, which is to prevent brute-force or dictionary attacks. Hashing will only ensure that people will not be able to deduce what the actual passwords are from their encrypted values; but it does not prevent people from guessing passwords and testing it with brute-force or dictionary attacks. Moreover, if someone gets access to the users table where the hashed passwords are stored, he/she might be able to find identical hashes – in other words, identical passwords &#8211; in multiple user rows. Such scenarios could increase the possibilities of an attack being successful.</p>
<p>To counter this situation, we make use of a concept known as salting. Salting is a method in which, just before generating the hash of a text, we attach a piece of random string – known as a salt &#8211; into the original text. Since the salt is generated by random, it makes sure that even if two original texts are the same, the salt always being different, will result in the subsequent hashes to be different. In such an implementation, we will have to store the salt along with the hashed value of the salted password because, while verification we will have to apply the same salt to the user input and then generate the hash. Preferably, the salt should not be stored in the same table as that of the user password so as to increase security.</p>
<p>There are different ways to create a random piece of data that can be used for salting –the most common ones are:</p>
<div>
<ul>
<li>Creating a random GUID by using the Guid type.</li>
<li>Creating a random string of digits by using the RNGCryptoServiceProvider class.</li>
</ul>
</div>
<p>To create a new random GUID, we invoke the NewGuid method on the Guid type. Once generated, we simply append the salt to the string to be encrypted.</p>
<pre>string saltAsString = Guid.NewGuid().ToString();</pre>
<p>For creating a random string of digits by using the RNGCryptoServiceProvider class, we first initialize a provider and a byte array and then invoke the GetBytes method on our provider instance.</p>
<pre><b>byte[]</b> saltInBytes = new byte[8];
RNGCryptoServiceProvider saltGenerator = new RNGCryptoServiceProvider();
saltGenerator.GetBytes(saltInBytes);
string saltAsString = Convert.ToBase64String(saltInBytes);
</pre>
<p>The following code is a modified version of the previous snippet to demonstrate salting.</p>
<pre><b>public void</b> HashText()
{

<b class="orange_titles">string</b> textToHash = "password";
<b class="orange_titles">string</b> saltAsString = Guid.NewGuid().ToString();
<b class="orange_titles">byte[]</b> byteRepresentation = UnicodeEncoding.UTF8.GetBytes( textToHash + saltAsString);

byte[] hashedTextInBytes = null;
MD5CryptoServiceProvider myMD5 = new MD5CryptoServiceProvider();
hashedTextInBytes = myMD5.ComputeHash(byteRepresentation);
string hashedText = Convert.ToBase64String(hashedTextInBytes);
// will display X03MO1qnZdYdgyfeuILPmQ==

MessageBox.Show(hashedText); }

</pre>
<h3>Conclusion</h3>
<p>Let us revisit and summarize the steps that our new password storage system will involve. We will do so by considering the scenario of a web site where a new user requires to register and user authentication is performed when a user tries to log in.</p>
<p>When a new user registers on our site, our design will execute the following steps:</p>
<p>The new user signs up in our application and selects a user id and a password.</p>
<ul>
<li>We create a salt by generating a random piece of data.</li>
<li>We ‘apply’ the salt to the password.</li>
<li>We generate the hash for the salted password.</li>
<li>We store the user id, the hash and the salt in the data store</li>
</ul>
<p>Now, when a user tries to log in, the following steps will be executed:</p>
<ul>
<li>The user enters the user id and the password.</li>
<li>Our application fetches the hash and the salt of the user id from the data store.</li>
<li>We apply the salt to the password the user has entered, and then create it’s hash.</li>
<li>We verify whether this hash is the same as the hash we fetched from the data store.</li>
<li>If they are the same, the user is authenticated.</li>
</ul>
<p>Cheers!</p>
<p>About the Author:</p>
<p>The Author of this Article Rakesh Rajan passed away in 2006. He was a student of Benny Alexander, (one of the directors of Macronimous). Rakesh was an MVP in C# and MCSD in .NET. He co-authored more than a book for Microsoft/A Press. We at Macronimous miss him a lot. (Updated August 2017)</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/secure-password-programming/">Secure Password Programming</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Successful Web Application Development</title>
		<link>https://www.macronimous.com/resources/articles/successful-web-application-development/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 22 Apr 2017 11:34:50 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=2778</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/Successful-Web-Application-Development-1-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/Successful-Web-Application-Development-1-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/Successful-Web-Application-Development-1-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/Successful-Web-Application-Development-1.png 1202w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div>
<p>This article provides formal guidelines for small web application and website development companies seeking success in their development activities. It&#8217;s written in a clear and<a href="https://www.macronimous.com/resources/articles/successful-web-application-development/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/successful-web-application-development/">Successful Web Application Development</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/Successful-Web-Application-Development-1-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/Successful-Web-Application-Development-1-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/Successful-Web-Application-Development-1-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/Successful-Web-Application-Development-1.png 1202w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div><p><strong>This article provides formal guidelines for small web application and website development companies seeking success in their development activities. It&#8217;s written in a clear and concise format. For suggestions or clarifications, please contact the author at <a href="mailto:enquiry@macronimous.com">enquiry@macronimous.com</a>.</strong></p>
<h3><strong>The Development of Desktop Software for Single Users or Small Groups is Waning</strong></h3>
<p>The development of software for personal computers for single users or small groups is becoming less prevalent. In today&#8217;s interconnected world, web-based applications offer significant advantages. These applications can be accessed from anywhere with an internet connection, not just from a user&#8217;s office PC. This flexibility allows users to access their applications even while on vacation.</p>
<h3><strong>Web Applications: Key to Success</strong></h3>
<p>Many web application development projects struggle to meet user needs or stay within budget. However, this article will explore some key success factors that can ensure projects are delivered to a high standard and achieve significant success.</p>
<h3><strong>Defining the Scope</strong></h3>
<p>Before commencing development on a web application project, the development team must thoroughly understand and document the application&#8217;s scope. This includes identifying the target users, assessing their internet access at home, and clearly outlining the advantages users will gain from a web-based application.</p>
<h3><strong>Analyzing Existing Applications</strong></h3>
<p>Before beginning application design, review as many comparable applications as possible, noting their features and drawbacks. This analysis can provide valuable insights into best practices and potential pitfalls, helping your application outperform competitors. Furthermore, it can inspire ideas for additional features. For example, If a competitor&#8217;s application offers basic reporting features, you could provide more advanced analytics dashboards with customizable reports, data visualization tools, and the ability to export data in various formats. This would appeal to users who need in-depth data analysis.</p>
<h3><strong>Realistic Planning is Essential</strong></h3>
<p>Accurate estimation (not guesswork) of development time and providing developers with a realistic plan is crucial for project success. Always estimate development time in man-hours, not in man-days or man-months. To achieve accurate hourly estimations, thoroughly document the application&#8217;s micro-components and all associated complexities. This approach fosters a stress-free work environment for your team and reduces the likelihood of bugs in the application.</p>
<h3><strong>Verifying Module Completion</strong></h3>
<p>Before finalizing each module, a verification process should ensure that all agreed-upon features from the planning meetings and commitments made to the customer are implemented. For example, if the application requires load balancing, the necessary load-balancing mechanisms must be in place.</p>
<h3><strong>Avoiding Unnecessary Schedule Changes</strong></h3>
<p>Unless there is a compelling reason, avoid accelerating the development schedule. Altering the schedule for marketing purposes can introduce numerous bugs, potentially incurring costs exceeding the initial estimates. Pressuring programmers to complete modules ahead of schedule is unlikely to contribute to a successful application. As a project manager, adhere to the original estimated timeline and development plan, rather than succumbing to perceived urgency.</p>
<h3><strong>Managing Configurations</strong></h3>
<p>In web and software application development, changes are inevitable. Therefore, effective control over these changes is essential. Configuration management encompasses a set of activities designed to manage change by identifying work products susceptible to change, establishing relationships between them, defining mechanisms for managing different versions, controlling implemented changes, and auditing and reporting on completed changes. If your team works with shared source code, establishing a robust configuration management system (such as <a href="https://git-scm.com/" target="_blank" rel="noopener">Git</a> or <a href="https://subversion.apache.org/" target="_blank" rel="noopener">Subversion</a>) is crucial for maintaining control over modifications.</p>
<h3><strong>Formal Milestone Reviews</strong></h3>
<p>Conduct milestone reviews to assess the progress of your web application development. A milestone review is a formal evaluation of a project&#8217;s management and technical progress. These reviews provide accurate insights into the project&#8217;s current status.</p>
<h3><strong>Regular Team Meetings</strong></h3>
<p>Even if you don&#8217;t adhere to <a href="https://www.macronimous.com/resources/articles/extreme-programming/">Extreme programming</a> standards, implementing daily <a href="http://www.extremeprogramming.org/rules/standupmeeting.html">standup meetings</a> can be beneficial. These short meetings allow the team to quickly share updates and address immediate concerns. They facilitate efficient communication and improve team coordination by ensuring everyone understands each other&#8217;s current tasks.</p>
<h3><strong>Prioritizing Testing</strong></h3>
<p>Thorough testing is paramount for delivering a high-quality web application. Allocate at least 25% of the development time to this crucial phase. Utilize appropriate testing methodologies and tools to ensure comprehensive coverage. This investment in testing minimizes bugs, improves user satisfaction, and ultimately contributes to a more successful product.</p>
<h3><strong>Achieving Quality</strong></h3>
<p>Quality control extends beyond testing. Establish a quality control procedure list tailored to your company&#8217;s current resources and setup. All team members should be familiar with the company&#8217;s established standards and procedures. Regularly review and refine these processes. For small companies, establishing standards and quality control measures early on is advantageous, as it&#8217;s easier to implement and improve them at that stage. Without a strong emphasis on quality within the team, delivering high-quality web applications is challenging.</p>
<h3>References:</h3>
<ul>
<li>C. Jones, &#8220;Patterns of Large Software Systems: Failure and Success,&#8221; IEEE Software, Vol. 12, No. 2, Mar. 1995, pp. 86–87.</li>
<li>Books such as Tom Gilb’s Principles of Software Engineering Management (Addison Wesley).</li>
<li>Standup meeting at Extreme Programming &#8211; <a href="http://www.extremeprogramming.org/" target="_blank" rel="noopener noreferrer">http://www.extremeprogramming.org/rules/standupmeeting.html</a></li>
<li>Internal Quality Assurance Guidelines from the State of Texas: Department of Information Resources.</li>
<li>Software Engineering &#8211; A Practitioners&#8217; Approach by Roger Pressman.</li>
<li><strong>About the author</strong>: Benny Alexander is a web developer, having more than 25 years of web development and web marketing experience, worked for various web development companies. He is basically a Visual Basic, ASP, MS SQL server programmer, and also a freelance writer, writing technical articles and other content for Fortune 500 company intranets and extranets. (Updated on Dec 2024).</li>
</ul>
<p>The post <a href="https://www.macronimous.com/resources/articles/successful-web-application-development/">Successful Web Application Development</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Creating Visual basic COMponents for ASP</title>
		<link>https://www.macronimous.com/resources/articles/creating-visual-basic-components-asp/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 22 Apr 2017 07:11:50 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=2772</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/devoloping_vb_asp-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/devoloping_vb_asp-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/devoloping_vb_asp-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/devoloping_vb_asp.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div>
<p>There are two kinds of programming. Programming with reusable code and non reusable code. To achieve reusable code you can write functions and procedures. In<a href="https://www.macronimous.com/resources/articles/creating-visual-basic-components-asp/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/creating-visual-basic-components-asp/">Creating Visual basic COMponents for ASP</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/devoloping_vb_asp-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/devoloping_vb_asp-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/devoloping_vb_asp-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/devoloping_vb_asp.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div><p>There are two kinds of programming. Programming with reusable code and non reusable code. To achieve reusable code you can write functions and procedures. In ASP scripts you can write functions and procedures and call them as often you want. But the main drawback with ASP script is you cannot hide your code from the buyer. This is applicable when you are writing some commercial applications and sell it. Your buyer can tweak the code and even resell it as it is his own. When you want to avoid this, here comes the concept of VB COM.</p>
<h3>ActiveX DLLs:</h3>
<p>ActiveX DLLs are components where you can hide your code, call it in your ASP and distribute with your application. In this article we shall discuss how to write functions in ActiveX Dlls and then call those same functions from ASP Scripts. We can write Dlls with C++, VC++, Delphi and Visual Basic. Here we can discuss How to with VB?</p>
<h3>DLL&#8217;s with VB</h3>
<p>We shall begin creating the DLL in Visual Basic. As an example we will create a simple calculator that can do addition, division, subtraction and multiplication with two numbers together. When we create the project we are asked to choose the type of program we are creating.</p>
<p>Here we should select ActiveX DLL.</p>
<p><img loading="lazy" decoding="async" class="wp-image-2773 size-full alignleft" src="https://www.macronimous.com/wp-content/uploads/com_scr1.jpg" alt="Creating Visual basic COMponents for ASP" width="288" height="274" /></p>
<h5>Initial Settings</h5>
<p>1. Let us change the project name first. Go to the menu, choose Project and then Project1 Properties. Under the Project Name box enter the name you want to call this object we are creating. I have changed as Simple Calculator as the Project name.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2774 alignleft" src="https://www.macronimous.com/wp-content/uploads/com_scr2.jpg" alt="Creating Visual basic COMponents for ASP" width="288" height="261" /></p>
<p>2. Leave the Threading model as &#8220;Apartment Threaded&#8221;<br />
3. Adding the reference Library.<br />
Now let us add the reference Library. Open the Project -&gt; Preferences, then select Active server Pages Object Library from the List of References appearing.<br />
4. Change the names of the Class1 module. In the properties box, normally on the right hand side of the screen, change the (name) to something pertinent. We shall name this &#8220;AddNumbers&#8221;. We have now set up the foundation for the DLL.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-2775" src="https://www.macronimous.com/wp-content/uploads/com_scr3-197x290.jpg" alt="Creating Visual basic COMponents for ASP" width="197" height="290" /><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2776" src="https://www.macronimous.com/wp-content/uploads/com_scr5.jpg" alt="Creating Visual basic COMponents for ASP" width="150" height="220" /></p>
<p>Likewise let us create the other classes with the names &#8220;MulNumbers, SubNumbers and DivNumbers&#8221;.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2777" src="https://www.macronimous.com/wp-content/uploads/com_scr6.jpg" alt="Creating Visual basic COMponents for ASP" width="202" height="176" /></p>
<h3>Coding</h3>
<p>Now let us to code the SimpleCalculator DLL. The first thing that we need to do is declaring the variables. We will place the following lines into our AddNumbers class:</p>
<pre>Public Number1 As Variant
Public Number2 As Variant
</pre>
<p>We will now create the function that adds these two variables. We will call this function Add. The function Add will get the two variables which will be added and then passed back as the addition result.</p>
<pre>Function Add(Number1, Number2)
Add = Number1 + Number2
End Function</pre>
<p>Likewise let us create the functions Subtract, Multiple and Divide and the corresponding code lines. You know how to do that.</p>
<h3>Compiling the code</h3>
<p>Compiling the code will produce the DLL. From the File menu choose &#8220;Make SimpleCalculator.dll&#8221;, this will produce the SimpleCalculator.dll. Save the DLL in a directory, which you have chosen. If you have already saved the project or compiled the DLL it will save it by default in that directory.</p>
<p>Now we have created the created our first ActiveX DLL. Now we need to set up our web page to send and receive the information to the DLL and display the results.</p>
<h3>Registering the DLL</h3>
<p>We will need to be running this on an IIS Server version 4.0 or later version. Means we need the platforms Windows NT 4.0, 2000, or XP First, copy the SimpleCalculator.dll to the server where the website will reside. Next, open a MS-DOS command line window on the server. When the command line window appears change the directory where you saved the dll. In my server I have saved the file under D:/dllDemo. Move to that directory now, then type the following</p>
<div class="clear"></div>
<p>D:/dllDemo/regsvr32 SimpleCalculator.dll</p>
<p>This will register the DLL for use of the server. What happens is, the dll will be registered in your system Registry and your ASP script, which is running on the same server, can call that. If you are courageous enough to open and check your registry you will be able to find it.</p>
<h3>Creating the webpage</h3>
<p>Open your HTML editor and type the following lines.</p>
<pre> &lt;HTML
&lt;TITLE&gt;Simple Calculator Test&lt;/TITLE&gt;
&lt;BODY&gt;
&lt;%
Dim AddResult,SubResult,MulResult,DivResult
Dim AddNum,SubNum,MulNum,DivNum</pre>
<p>Set AddNum=Server.CreateObject(&#8220;SimpleCalculator.Addnumbers&#8221;)</p>
<p>This line of code will create the object, which will allow us to interact with our dll &#8220;SimpleCalculator&#8221;. It references the class object &#8220;AddNumbers&#8221;.</p>
<pre>Result=AddNum.Add(140774,51174)</pre>
<p>Our variable, final answer will be equal to the results of the function &#8220;additionfunction&#8221; in the class &#8220;AddNumbers&#8221; in the dll &#8220;SimpleCalcuator&#8221;. We are passing the numbers 140774 and 51174 to be added.</p>
<p>Like wise we can add the other lines of code,</p>
<pre> Set SubNum = Server.CreateObject("SimpleCalculator.SubNumbers")
Set MulNum = Server.CreateObject("SimpleCalculator.MulNumbers")
Set DivNum = Server.CreateObject("SimpleCalculator.DivNumbers")</pre>
<p>SubResult = SubNum.Add(140774,51174) MulResult = DivNum.Add(140774,51174) DivResult = MulNum.Add(140774,51174) Response.write AddResult &amp; &#8220;&lt;br&gt;&#8221; Response.write SubResult &amp; &#8220;&lt;br&gt;&#8221; Response.write MulResult &amp; &#8220;&lt;br&gt;&#8221; Response.write DivResult %&gt; &lt;BODY&gt; &lt;HTML&gt;</p>
<p>Now you can under stand the syntax of calling a dlls as</p>
<pre>Set objName = Server.CreateObject("ProjectName.ClassModuleName" )</pre>
<p>Call the function name by passing the necessary variables.</p>
<p>OK. You have done it, Congrats. Now you may think why you need a dll and hence the object in your coding life? Let us see as a conclusion.</p>
<ul>
<li>You can reuse your code, as you have created your code as an Object.</li>
<li>Its fast in execution, as its already compiled.</li>
<li>You can hide your code, when you create code as a commercial product.</li>
<li>You can always use it in your other programs and applications in later developments.</li>
<li>Finally, It&#8217;s challenging and interesting. Huh?</li>
</ul>
<p>The post <a href="https://www.macronimous.com/resources/articles/creating-visual-basic-components-asp/">Creating Visual basic COMponents for ASP</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Getting Your Web Presence</title>
		<link>https://www.macronimous.com/resources/articles/getting-web-presence/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Tue, 14 Mar 2017 09:48:27 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=2325</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/Web-Presence-1-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/Web-Presence-1-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/Web-Presence-1-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/Web-Presence-1.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div>
<p>This article helps small business owners who are trying to promote their business through web to reach the global market in a cost effective way<a href="https://www.macronimous.com/resources/articles/getting-web-presence/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/getting-web-presence/">Getting Your Web Presence</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/Web-Presence-1-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/Web-Presence-1-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/Web-Presence-1-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/Web-Presence-1.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div><p>This article helps small business owners who are trying to promote their business through web to reach the global market in a cost effective way and companies which need some formal guidelines in their internet promotion activities toward success, written in a simple format.</p>
<p>For suggestions and clarifications contact the author at <a href="mailto:enquiry@macronimous.com">enquiry@macronimous.com</a></p>
<h3>Advertising with your own web site</h3>
<p>If you are serious about web marketing the first think you can do in the web is an advertisement, which would be really cost effective. If you want to put your advertisements then banner advertisement is a good choice. But from the banner advertisement now you need to give a hyper link to your web site where you tell about your business. Developing and operating a Web site can cost less than you think and the possibilities are very high. From a complete market research to product selling, from customer services to business promotions and purchases, having your own Web site establishes a dynamic presence for your organization. Moreover you can tell the detailed visual description about your products and services with full text, images, video and animations.</p>
<h3>Finding targeted Audience</h3>
<p>There are millions of Internet users, searching on the web for something. Among them you need to find your potential visitors. So the site should be very focused on your customers and not all the casual surfers. If you are focusing only on customers from Europe means you need to put maximum information about your operations on Europe. If you are selling Hydraulic drilling machines means you can give many resources regarding drilling machines. This resources can help you to target your audiences through search engines.</p>
<h3>Functionality of a web page</h3>
<p>HTML (Hyper Text Markup Language) is used to construct the web pages and control the web browser. HTML is a set of Tags that can define a document to display. We can display text, graphics, video etc., in a web page through HTML tags. Along with HTML we can use JavaScripts, CGI, ASP and other programming techniques to build interactivity in a web page.(Forms, Guest Books etc.,).</p>
<p>A Web page can contain Hyper Links (Clickable links to other HTML pages).We can navigate from one page to another or from one web site to another. A web site is a collection of web pages Linked between them and with other web sites.</p>
<h3>Content of a web site</h3>
<p>Any Details about your business, products and services should target the international audience. As there is no space and location limitation for web pages, you can thrive varieties of customers with your focused content. You can give technical support and customer service. You can add Interactive forms, guest books, purchase inquiries and Web-based Emails. Moreover you can collect information from the users and save it in a database for future retrieval. To build good text you can approach professional technical writers who can help you in building your site content.</p>
<h3>Building or Outsourcing</h3>
<p>You can design a simple web site with some graphics easily. But if you want to build interactive and professional web sites you need to know some internet technologies and tools. If you have good design ideas and time then you can learn some tools like Adobe photoshop and Macromedia Fireworks and Flash you can come up with a professional design. Moreover if you have knowledge in developing databases with MS-Access or MS SQL server you can design your own back-end databases to collect data from your web site. If you are strong in programming, with PHP, ASP, CGI or Java technologies you can build dynamic and complex web sites with back-end database functionality.(E.g.. Site with content management functionality).<br />
Otherwise, if you need professional web site that is going to help you to build your company&#8217;s Image globally then you need to approach a Professional web developer and outsource it. A professional developer understands how to design a Web site that will most effectively present you, your business or organization, and your products and services. A professionally designed and implemented Web site is worth what you pay for it if you are serious about attracting business with your Web site.</p>
<h3>The prices</h3>
<p>Before considering your web page you need to remember one thing, you are getting your global presence and global market with your web site. But fortunately you can achieve this with a very low pricing&#8217;s. You can go for a package deal or a customized development. You can compare various prices from the professional developers sites and you can pick one as per your wish. Since location is not a consideration in web development you can outsource to developers from other countries and outsource the work to them. Countries like India, Philippines, Israel etc., can do a cost effective job.</p>
<h3>The first step</h3>
<p>The first thing to do is to give some thought in advance to what you want your Web site to accomplish then generate some ideas by looking into your competitors web sites. The point of this exercise is to realistically assess and prioritize the goals of placing your organization online. Here are a few questions you may want to answer yourself:</p>
<p><span class="orange_titles">Is it your intention to: </span></p>
<ul class="sub">
<li>Provide comprehensive information about your product or service?</li>
<li>Directly sell products from your site?</li>
<li>Reach new markets or clientele?</li>
<li>Provide online &#8220;customer support&#8221; 24 hours a day, 7days a week?</li>
<li>Do market research by gathering visitor feedback?</li>
<li>Give employees internal information?</li>
<li>Post job opportunities?</li>
<li>All of the above?</li>
</ul>
<p>Once you have an idea of what you want, then you can hire a developer to make your dream into reality.</p>
<h3>Web site maintenance</h3>
<p>You may either outsource the job to someone and they will make changes for you on an as needed basis, or you may make those changes yourself if you have the necessary equipment and expertise. Professional web service firms are able to install web-based administration features that will allow you to make changes to certain areas of your site from your browser. Some typical areas include news releases, articles, FAQ’s, and more. Read our <a href="https://www.macronimous.com/services/web-development/outsource-website-maintenance">maintenance services</a> and learn how we do maintenance.</p>
<h3>Improving things</h3>
<p>If you need help in improving your web presence we can give you our hands, We specialize in makeovers &#8212; taking an existing Web site and transforming it into a productive, attractive and profitable business tool. We can also provide a professional Web site evaluation and make suggestions for improvement. Contact us at <a href="mailto:enquiry@macronimous.com">enquiry@macronimous.com</a> for further information and price quote.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/getting-web-presence/">Getting Your Web Presence</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Search Engine Optimization Websites Using Flash</title>
		<link>https://www.macronimous.com/resources/articles/search-engine-optimization-websites-using-flash/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Tue, 14 Mar 2017 09:43:35 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=2323</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/SEO-for-flash-websites-1-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/SEO-for-flash-websites-1-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/SEO-for-flash-websites-1-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/SEO-for-flash-websites-1.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div>
<p>Overview Flash enabled sites can have stunning look, but it may not help to achieve the top position in the search engine. Flash movies have<a href="https://www.macronimous.com/resources/articles/search-engine-optimization-websites-using-flash/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/search-engine-optimization-websites-using-flash/">Search Engine Optimization Websites Using Flash</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/SEO-for-flash-websites-1-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/SEO-for-flash-websites-1-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/SEO-for-flash-websites-1-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/SEO-for-flash-websites-1.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div><h3>Overview</h3>
<p>Flash enabled sites can have stunning look, but it may not help to achieve the top position in the search engine. Flash movies have their own links and pages, which the search engine spiders are not able to crawl. The spider identifies only a single page that contains the movies and indexes the content of that single page. This reduces the internal link building in the site i.e. the movie being linked to another scene within itself.</p>
<p>Possibilities for Optimizing a Flash site:</p>
<ul style="clear: none;">
<li>Ensure the proper optimization of the page that contains the Flash movie.</li>
<li>Non flash version of your website can be kept along your Flash version.</li>
</ul>
<p>Most users maintain a special ‘plug in’ installed to view flash movies. When the flash movies are large, and you do not have a broadband, then the downloading time is really huge. An alternative like the HTML version can be used, which supports search engine optimization and also helps the visitors to have a clear view of your site who have technology limitations. You could overcome these problems in Flash Pages with the help of the some special Search Engine optimization Techniques.</p>
<p><embed src="../media/flash_dev_ad.swf" type="application/x-shockwave-flash" width="300" height="250"></embed></p>
<h3>Flash Web Site Vs. HTML Web Site:</h3>
<p>A website can have two versions: Flash Version and the Non Flash Version (HTML version). Home page can have the links for these versions and the visitors can select the version of their preference. Make sure that the home page is not a splash page. Endure that your home page has keyword rich content to have it indexed by the search engine. A site map link can also be added in order to help the search engine to crawl through all the pages.</p>
<p>Making use of the web analytics software to keep in track of the visitor preferences, you can decide upon which version to have in your website. But remember to submit only the HTML version to the search engine.</p>
<h3>Some Search Engines Index Flash Content:</h3>
<p>Flash can be either preferred or rejected. But things have changed now. Flash has gained importance with the help of the latest Macromedia products and the search engine technologies. It is possible to have flash in your website without affecting your search engine promotion.</p>
<h3>SDK May Open All Flash To Search Engines:</h3>
<p>Macromedia’s Flash Search Engine SDK is a boon for the Flash. Being designed specifically focusing on the search engine application teams; it decompresses the flash files, parse the content and also assists in indexing of these into the search engine database.</p>
<p>The content is treated as a normal HTML content. SDK technology helps in promoting all Flash sites also to the search engines just like you promote the static HTML pages. FAST search engine has already incorporated this SDK technology. Even though all the search engines incorporate this technology, promoting the Flash still becomes a problem as the search engines uses the same algorithm for indexing the HTML version and Flash version. Normally the developers do not expect the flash version to be indexed, so not much care is given in optimizing these flash files for the targeted keywords and other elements.</p>
<p>With the experience of Optimizing HTML versions, it is easy to create flash that has the similar principles. Once this is done, with the help of flash-friendly search engines, Optimizing these flash files becomes an easy task.</p>
<h3>Flash Web Sites &#8211; Optimize through link building:</h3>
<p>For a search engine the flash appears to be as a single page i.e. just the home page. To have the flash in the search engine results, a proper link building strategy can give wonderful results.</p>
<h3>Flash Web Site With Multiple Web Pages:</h3>
<p>Optimizing a flash site with a few non-competitive keywords seems to be an easy task. But the process gets on very tedious when the flash movie seems to be large.</p>
<p>A flash site may seem to have multiple pages, while they may not. Most of the flash site consists of a single page with a single movie. And many site seem to have a number of entry points, while generally flash site has only one entry point.</p>
<p>Generally used optimization strategies can be used for Optimizing the flash site. Making use of the right content and titles for Optimizing the flash sites can have good results. When you do not have content for your pages, then it is essential to make use of the appropriate Meta tags. If the flash site has a huge set of targeted keywords, splitting it into separate pages would minimize your optimization efforts and is also preferred.</p>
<h3>Flash-friendly Search Engines:</h3>
<p>Fast Technologies, which powers AllTheWeb and Lycos had a lot of new additions to their search technology in the year 2002. They announced the ability to access the content in the Flash files.</p>
<p>The result, even though not perfect, but has been successful to index a lot of text thus making it searchable. Search engine Power Pack’s submission tool can be used to submit one or more pages to both AllTheWeb and Lycos Search Engines.</p>
<p>As we know that the google’s ranking is based on the site&#8217;s link popularity score, page content, and structural elements. Google is able to follow the links within the flash sites. When the flash page leads to another page, the spider would not much of content to be used for indexing. It would infact benefit both the web designers and the searchers if the search engines are able to index the flash page content. It also makes the ranking of the pages easy.</p>
<p>Tips: If you really need Flash in your site make them as Flash movies and intros, not Flash sites. You can make the same strong visual impact with a site built in HTML, with Flash movies placed inside of the HTML documents.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/search-engine-optimization-websites-using-flash/">Search Engine Optimization Websites Using Flash</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SEO Life Cycle</title>
		<link>https://www.macronimous.com/resources/articles/seo-life-cycle/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Tue, 14 Mar 2017 09:36:40 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=2322</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/SEO-Life-Cycle-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/SEO-Life-Cycle-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/SEO-Life-Cycle-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/SEO-Life-Cycle.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div>
<p>A Continuous Journey to Digital Growth At Macronimous, we understand that Search Engine Optimization isn&#8217;t a one-time task, but an ongoing process that evolves with<a href="https://www.macronimous.com/resources/articles/seo-life-cycle/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/seo-life-cycle/">SEO Life Cycle</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/SEO-Life-Cycle-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/SEO-Life-Cycle-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/SEO-Life-Cycle-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/SEO-Life-Cycle.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div><h3>A Continuous Journey to Digital Growth</h3>
<p>At Macronimous, we understand that <a href="https://www.macronimous.com/resources/articles/seo-for-beginners/">Search Engine Optimization</a> isn&#8217;t a one-time task, but an ongoing process that evolves with your business and the digital landscape. Our <a href="https://www.macronimous.com/services/seo/">SEO</a> Life Cycle approach ensures continuous improvement and sustainable growth for your online presence. Here are the key phases we follow:</p>
<h3>Phase 1: Foundation &#8211; Understanding Your Digital Ecosystem</h3>
<p>This initial phase is crucial for laying a strong groundwork for your SEO strategy. It involves in-depth analysis and planning tailored to your specific business goals.</p>
<ul class="sub">
<li><strong>Business &amp; Goal Definition:</strong> We start by understanding your core business objectives, target audience, products, and services you aim to market online. This provides clear direction for the entire SEO process.</li>
<li><strong>Market &amp; Competitor Analysis:</strong> Gaining insights into your market landscape and analyzing your competitors&#8217; strengths, weaknesses, keywords, and online strategies is vital for identifying opportunities and staying ahead.</li>
<li><strong>Target Audience Identification:</strong> Defining the specific customers you want to attract helps us tailor your website design and content to resonate with their needs and search behavior.</li>
<li><strong>Keyword Research &amp; Analysis:</strong> This forms the bedrock of your <a href="https://www.macronimous.com/resources/articles/practical-seo-techniques-ebook/">SEO</a> efforts. We conduct thorough research to identify relevant keywords and understand search intent, ensuring we target phrases that drive high-quality traffic and conversions.</li>
</ul>
<h3>Phase 2: Optimization &#8211; Building a Search-Engine-Friendly Website</h3>
<p>With a solid understanding of your business and target audience, we move into optimizing your website for both users and search engines.</p>
<ul class="sub">
<li><strong>Site Analysis &amp; Technical Audit:</strong> We comprehensively analyze your website&#8217;s structure, performance, and technical elements to identify areas for improvement and potential obstacles to search engine visibility.</li>
<li><strong>META Tag Setup:</strong> We strategically optimize your HTML meta tags, including title tags and descriptions, to provide relevant information to search engine spiders and improve click-through rates.</li>
<li><strong>Site Content Optimization:</strong> We ensure your website content is engaging and informative and strategically incorporates target <a href="https://www.macronimous.com/resources/articles/teach-yourself-modern-seo/">keywords</a> naturally to align with user queries and search engine algorithms. We also focus on readability and user experience.</li>
<li><strong>HTML Code Optimization (Optional but Recommended):</strong> Clean and efficient HTML code, often utilizing CSS for styling, can improve page load speed and make your site easier for search engines to crawl and index. Minifying CSS and JavaScript files further enhances performance.</li>
<li><strong>Descriptive Sitemap Creation:</strong> A well-structured sitemap helps the users and the search engines navigate your website effectively, ensuring all key pages are discoverable.</li>
<li><strong>Schema Markup Implementation:</strong> Implementing <a href="https://www.macronimous.com/services/digital-marketing/outsource-seo-services/">schema</a> markup or structured data helps search engines understand the context of your content, potentially leading to rich search results and improved visibility.</li>
<li><strong>Page Speed Optimization:</strong> We focus on improving your website&#8217;s loading speed, a crucial ranking factor, by leveraging tools like Google&#8217;s Lighthouse and PageSpeed Insights.</li>
</ul>
<h3>Phase 3: Promotion &amp; Visibility &#8211; Expanding Your Online Reach</h3>
<p>This phase focuses on increasing your website&#8217;s authority and attracting more relevant traffic through various off-page strategies.</p>
<ul class="sub">
<li><strong>Search Engine Submission (Free Search Engines):</strong> We ensure your website is rightly submitted to relevant search engines, especially Google, for indexing and discovery.</li>
<li><strong>Link Popularity Campaign (Link Building):</strong> Building high-quality inbound links from reputable websites and directories is crucial for increasing your site&#8217;s authority and search engine rankings.</li>
<li><strong>Monitor Search Engine &amp; Directory Submissions:</strong> We continuously monitor the status of submitted links and identify any issues.</li>
<li><strong>Link Quality Assessment:</strong> We prioritize acquiring backlinks from authoritative and relevant sources, as the quality of links significantly impacts your website&#8217;s credibility.</li>
</ul>
<h3>Phase 4: Measurement &amp; Refinement &#8211; Continuous Improvement</h3>
<p>SEO is not a set-it-and-forget-it activity. This ongoing phase involves monitoring performance, analyzing data, and making necessary adjustments to maintain and improve results. We do this daily, weekly, and monthly.</p>
<ul class="sub">
<li><strong>Statistic Analysis &amp; Reporting:</strong> We track key website metrics, such as traffic sources, user behavior, and engagement, to understand what&#8217;s working and identify areas for optimization.</li>
<li><strong>Keyword Position (SERP) Monitoring:</strong> We regularly monitor your website&#8217;s ranking for target keywords in search engine results pages (SERPs) to assess the effectiveness of your SEO efforts.</li>
<li><strong>Conversion Rate Optimization (CRO):</strong> We analyze user behavior and set up conversion goals in tools like Google Analytics to understand how your SEO efforts translate into tangible business results.</li>
<li><strong>Campaign Duration (Ongoing Maintenance):</strong> We provide continuous SEO maintenance services, including keyword monitoring, web statistics analysis, log tracking, and website rank monitoring, to adapt to algorithm changes and maintain your competitive edge.</li>
<li><strong>Re-optimization (Optional):</strong> Based on performance data and evolving search trends, we may recommend re-optimizing specific keywords if required or modifying content to enhance results.</li>
</ul>
<p>By viewing SEO as a continuous life cycle, <a href="https://www.macronimous.com/services/digital-marketing/outsource-seo-services/">Macronimous</a> ensures that your website remains competitive and visible, and continues to drive valuable traffic and conversions over time.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-17824" src="https://www.macronimous.com/wp-content/uploads/The-SEO-Life-Cycle-Macronimous.png" alt="SEO Life Cycle" width="840" height="651" srcset="https://www.macronimous.com/wp-content/uploads/The-SEO-Life-Cycle-Macronimous.png 840w, https://www.macronimous.com/wp-content/uploads/The-SEO-Life-Cycle-Macronimous-768x595.png 768w, https://www.macronimous.com/wp-content/uploads/The-SEO-Life-Cycle-Macronimous-580x450.png 580w" sizes="auto, (max-width: 840px) 100vw, 840px" /></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/seo-life-cycle/">SEO Life Cycle</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Creating image fading effects with Fireworks &#8211; Image masking</title>
		<link>https://www.macronimous.com/resources/articles/creating-image-fading-effects-fireworks-image-masking/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Mon, 13 Mar 2017 07:16:25 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1364</guid>

					<description><![CDATA[<p>This is a simple article which can help you add some fading effects, which we call it as Masking. Normally when you design web pages<a href="https://www.macronimous.com/resources/articles/creating-image-fading-effects-fireworks-image-masking/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/creating-image-fading-effects-fireworks-image-masking/">Creating image fading effects with Fireworks &#8211; Image masking</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>This is a simple article which can help you add some fading effects, which we call it as Masking. Normally when you design web pages you may want to add images with such effects. When you want to add an image in a web page, it would be nice, if it can very well fix with the background color of that page. This will give a professional look to the pages. Just read and practice this, you will get a nice image effect, called image masking<br />
1. Open an image of any size, in my case its, 190 X 142 JPEG image. My web page background is white. Go to Modify > Canvas > Canvas color&#8230;; Change it into white.<br />
This is my image with no effects.<br />
<img loading="lazy" decoding="async" src="https://www.macronimous.com/wp-content/uploads/resources-1.jpg" alt="Creating image fading effects with Fireworks &#8211; Image masking" width="190" height="142" class="alignnone size-full wp-image-1366" /><br />
2. Draw a rectangle with the rectangle tool( img: a)on that image and cover the image with the rectangle. I am using white as my rectangle color,(img:b).<br />
<img loading="lazy" decoding="async" src="https://www.macronimous.com/wp-content/uploads/art3_2.gif" alt="Creating image fading effects with Fireworks &#8211; Image masking" width="124" height="100" class="alignnone size-full wp-image-1368" /><br />
I have created a rectangle and moving it to fix on the image.<br />
<img loading="lazy" decoding="async" src="https://www.macronimous.com/wp-content/uploads/art3_3.gif" alt="Creating image fading effects with Fireworks &#8211; Image masking" width="200" height="138" class="alignnone size-full wp-image-1370" /><br />
Like this,<br />
<img loading="lazy" decoding="async" src="https://www.macronimous.com/wp-content/uploads/art3_4.jpg" alt="Creating image fading effects with Fireworks &#8211; Image masking" width="200" height="150" class="alignnone size-full wp-image-1371" /><br />
3. Select the rectangle and from the properties window > select the Fill Category as Linear. You can do this from the drop down menu.<br />
<img loading="lazy" decoding="async" src="https://www.macronimous.com/wp-content/uploads/art3_6.gif" alt="Creating image fading effects with Fireworks &#8211; Image masking" width="167" height="26" class="alignnone size-full wp-image-1373" /><br />
and you make the preset type as while,black. This is necessary since I want to give the fading effect in the right side of the image.(see the final image img:c)</p>
<p>4. Now I want the fading effect gradual so I pull the line which is on the rectangle like in the following image.<br />
<img loading="lazy" decoding="async" src="https://www.macronimous.com/wp-content/uploads/art3_8.gif" alt="Creating image fading effects with Fireworks &#8211; Image masking" width="200" height="80" class="alignnone size-full wp-image-1374" /><br />
5. Now press ctrl + A, select all and navigate from the Fireworks top menu to, Modify > Mask> Group as mask.<br />
<img loading="lazy" decoding="async" src="https://www.macronimous.com/wp-content/uploads/art3_9.gif" alt="Creating image fading effects with Fireworks &#8211; Image masking" width="200" height="129" class="alignnone size-full wp-image-1375" /><br />
6. Now you get this effect,<br />
<img loading="lazy" decoding="async" src="https://www.macronimous.com/wp-content/uploads/resources-1.jpg" alt="Creating image fading effects with Fireworks &#8211; Image masking" width="190" height="142" class="alignnone size-full wp-image-1366" /><br />
7. More effects can be given by adjusting the fading level, in the properties window.<br />
<img loading="lazy" decoding="async" src="https://www.macronimous.com/wp-content/uploads/art3_11.gif" alt="Creating image fading effects with Fireworks &#8211; Image masking" width="235" height="71" class="alignnone size-full wp-image-1377" /><br />
In Dreamweaver I have used this image and added it in a table. Here is is this to give you an idea.<br />
<img loading="lazy" decoding="async" src="https://www.macronimous.com/wp-content/uploads/art3_12.gif" alt="Creating image fading effects with Fireworks &#8211; Image masking" width="300" height="89" class="alignnone size-full wp-image-1379" /><br />
If you play around a little more time on this topic you will be able to create amazing masking effects with Fireworks MX.<br />
Write to me at <a href="mailto:enquiry@macronimous.com">enquiry@macronimous.com</a> if you have some better ones. I can add them here with credits</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/creating-image-fading-effects-fireworks-image-masking/">Creating image fading effects with Fireworks &#8211; Image masking</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Installation Help</title>
		<link>https://www.macronimous.com/resources/articles/installation-help/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 11 Mar 2017 11:51:35 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1313</guid>

					<description><![CDATA[<p>How can we help you? I believe you can easily figure out the problem if you know the error type and the steps you need<a href="https://www.macronimous.com/resources/articles/installation-help/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/installation-help/">Installation Help</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>How can we help you?</h3>
<p>I believe you can easily figure out the problem if you know the error type and the steps you need to take at that right time. But still there are plenty of chances that you get errors even after your tiresome hours of work. You might have started thinking now to go for some fresh air, outside. You can do it and come back. Don&#8217;t worry, most of the script authors provide good support through their forum or by e-mail. As I said, you are lucky if the author himself is ready to install it for you or guide you. I personally feel that a lot of other people are so helpful to offer their help through online discussion forums. You can find some freelancers too, to help you overcome the hurdles. Lots of doorways are there, so never freak out. As a service Macronimous.com is also doing CGI Installation for any kind of websites. Read out for complate details and price quote.<br />
You can contact me at <a href="mailto:enquiry@macronimous.com">enquiry@macronimous.com</a> for any doubts and CGI installation services . I welcome your suggestions and experiences regarding this article and are welcome from the readers.<br />
Good luck!</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/installation-help/">Installation Help</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kinds of CGI Scripts</title>
		<link>https://www.macronimous.com/resources/articles/kinds-cgi-scripts/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 11 Mar 2017 11:34:39 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1310</guid>

					<description><![CDATA[<p>What kind of scripts do I need? If you want to develop a simple personal page, you can just start by installing a Form mailer<a href="https://www.macronimous.com/resources/articles/kinds-cgi-scripts/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/kinds-cgi-scripts/">Kinds of CGI Scripts</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>What kind of scripts do I need? </h3>
<p> If you want to develop a simple personal page, you can just start by installing a Form mailer script because you may be enthusiastic about your visitors&#8217; feedback. Then, later on, add a guest book or text/graphic counter that displays the number of visitors to your site.</p>
<p>If you want to go further you may need a survey to get your visitors opinions and hence should install a Survey or Poll script. And if you want to protect some of your pages for members only, then you can install a password protection script. If you want to sell something online or your business involves eCommerce, then you will be in need of a good shopping cart script, supporting SSL.</p>
<p>I have given a picture of some CGIs which you can find and install in your simple websites according to your wish and need: counter, form, discussion forum, password, web-based free e-mail, shopping cart, chat, download books or scripts, suggest your site to a friend, opinion poll, survey, quiz, database, calendar of events, add a link, free web pages, banner ads, rating, daily quote, site search, search your site and even a search engine.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/kinds-cgi-scripts/">Kinds of CGI Scripts</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Setting up interactivity with CGI in your website &#8211; A Tutorial&#8212;</title>
		<link>https://www.macronimous.com/resources/articles/setting-interactivity-cgi-website-tutorial-3/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 11 Mar 2017 11:31:57 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1308</guid>

					<description><![CDATA[<p>Choosing and evaluating a script! Choosing the suitable scripts for your site is the first and important phase of installing any script. It is time<a href="https://www.macronimous.com/resources/articles/setting-interactivity-cgi-website-tutorial-3/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/setting-interactivity-cgi-website-tutorial-3/">Setting up interactivity with CGI in your website &#8211; A Tutorial&#8212;</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Choosing and evaluating a script!</h3>
<p>Choosing the suitable scripts for your site is the first and important phase of installing any script. It is time consuming to try several scripts by installing and testing them and you may find after hours of struggling, that the script is not working. When I was a beginner, I installed a huge script and configured it and the script started running successfully. But very soon I found that I was unable to enjoy many of its functions because of a Perl version conflict. The script author informed me that it can run only on a server, which has Perl 5.004, or above, but our server had only version 5.003. That was a bad day for me. So you should be really careful to learn your server capabilities like Server Side Include support, Perl version and of course the cgi-bin permissions. (We can learn about this later).<br />
You can decide if a script is good for you by looking at </p>
<ul>
<li> The information available about the script on its website </li>
<li> The demo of the script (most script writers provide one complete demo in their site) </li>
<li> Listed sites that use the script </li>
<li> The system requirements for the script </li>
<li> The support that comes with the script (like FAQ pages, help forums and e-mail support).</li>
</ul>
<p>offshore web development company from Coimbatore, India. Offshore and onsite development.<br />
Choosing and evaluating a script!</p>
<p>Choosing the suitable scripts for your site is the first and important phase of installing any script. It is time consuming to try several scripts by installing and testing them and you may find after hours of struggling, that the script is not working. When I was a beginner, I installed a huge script and configured it and the script started running successfully. But very soon I found that I was unable to enjoy many of its functions because of a Perl version conflict. The script author informed me that it can run only on a server, which has Perl 5.004, or above, but our server had only version 5.003. That was a bad day for me. So you should be really careful to learn your server capabilities like Server Side Include support, Perl version and of course the cgi-bin permissions. (We can learn about this later).<br />
You can decide if a script is good for you by looking at</p>
<p>    The information available about the script on its website<br />
    The demo of the script (most script writers provide one complete demo in their site)<br />
    Listed sites that use the script<br />
    The system requirements for the script<br />
    The support that comes with the script (like FAQ pages, help forums and e-mail support).</p>
<p>If you are lucky you can find a scriptwriter who will install it free for you. Some companies offer the service of installing scripts in your web site for a fee of $25-$100.<br />
If you are satisfied with the information you have discovered about a script, then you are ready to download it. Once downloaded you can use any of the unzip utilities to extract the downloaded file. I use Winzip, as this can unzip most of the files. Move the unzipped files into a separate folder in your local hard drive. Among the unzipped files, you may find some .aspl files. You can evaluate the .aspl file and find whether the script is making use of it as a template. If it is, then I can say you are lucky enough to be able to edit and customize the appearance of it according to the design of your web page</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/setting-interactivity-cgi-website-tutorial-3/">Setting up interactivity with CGI in your website &#8211; A Tutorial&#8212;</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Visitor log analysis &#8211; How much do you know about your site visitors?</title>
		<link>https://www.macronimous.com/resources/articles/visitor-log-analysis-for-effective-seo-campaigns/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Sat, 11 Mar 2017 10:25:32 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1277</guid>

					<description><![CDATA[<p>Having a better understanding of traffic on your site assists in planning future development, and increasing website traffic, and also provides opportunities for increasing revenue<a href="https://www.macronimous.com/resources/articles/visitor-log-analysis-for-effective-seo-campaigns/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/visitor-log-analysis-for-effective-seo-campaigns/">Visitor log analysis &#8211; How much do you know about your site visitors?</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Having a better understanding of traffic on your site assists in planning future development, and increasing website traffic, and also provides opportunities for increasing revenue through targeted advertising.</p>
<h3>How do you know what your Internet visitors are looking at when they hit your site?</h3>
<p>Do you know how long website visitors are there for, how they hit your site, or what country they are from? You might be receiving hundreds or thousands of hits a day, but if the visitors were only on your site for 15 seconds each, that would indicate there&#8217;s a problem.<br />
If you wish to sell Internet advertising space to clients, they will want to know about your visitor demographics &#8211; guessing won&#8217;t cut it and you&#8217;ll lose potential advertising business very quickly. A basic free website hit counter stats just won&#8217;t cut it.</p>
<h3>How does it work?</h3>
<p>You put your code into your WebPages and every time someone visits a WebPages and the code sends valuable information about the visitor back to your log. Stat organizes all this information into charts &amp; lists to make your analysis easier.<br />
<strong>Web site traffic monitoring features</strong></p>
<ul>
<li>Visited Pages</li>
<li>Referrals</li>
<li>Browsers</li>
<li>Operating Systems</li>
<li>Countries</li>
<li>Search Terms</li>
<li>Search Engines</li>
<li>Robots</li>
</ul>
<p>All reports are accompanied by easy analysis graphs.</p>
<h3>Studying web traffic &#8211; methods and statistics</h3>
<p>Gathering information on website traffic is a crucial element in the planning of marketing and further development. When studying your website traffic, it is also important to be able to understand the associated statistics.</p>
<p>A question that webmasters are often asked is &#8220;how many hits does your site get? You then need to ask, &#8220;Do you mean hits, requests, unique visitors, or page views?</p>
<h3>What is a hit or request?</h3>
<p>A hit is the result of a file being requested and served from your website. This can be an HTML document, an image file, an audio track, etc. Web pages that contain a large number of elements will return high hit scores.<br />
<img loading="lazy" decoding="async" class="alignnone size-medium wp-image-1285" src="https://www.macronimous.com/wp-content/uploads/Hits-1-470x169.gif" alt="Visitor log analysis &#8211; How much do you know about your site visitors?" width="470" height="169" /><br />
Hits are of very little consequence when analyzing your visitor demographics. A page view means</p>
<h3>What is a page view?</h3>
<p>Just that<br />
<img loading="lazy" decoding="async" class="alignnone size-medium wp-image-1287" src="https://www.macronimous.com/wp-content/uploads/Pageviews-1-470x162.gif" alt="Visitor log analysis &#8211; How much do you know about your site visitors?" width="470" height="162" /><br />
Once again, it is not a true indication of how many different people are visiting your website, but it is a good way to judge how &#8220;sticky&#8221; (the ability to retain the interest of visitors) your website is and is an important consideration regarding the possibility of attracting high paying advertising.</p>
<h3>What is a unique visitor?</h3>
<p>A unique visitor (combined with page view data) is where stats really count. It is someone with a unique IP address who is entering a Web site for the first time that day (or some other specified period). When you log onto the Internet, you are assigned a unique IP address, or if you are a cable modem user your IP address is usually &#8220;static&#8221;, meaning that it never changes.</p>
<p>Your IP address is an identifier and while you are using it, no one else on the Internet can utilize that particular set of numbers. Your number is counted once, usually for a 2-24 hour period, dependent upon the tracking software.</p>
<h3>What is a referrer?</h3>
<p>A referrer is simply the origins of the visitor to your site, i.e. the last site visited and the page on that website.<br />
<img loading="lazy" decoding="async" class="alignnone size-medium wp-image-1289" src="https://www.macronimous.com/wp-content/uploads/referals-1-470x222.gif" alt="Visitor log analysis &#8211; How much do you know about your site visitors?" width="470" height="222" /><br />
The report ranks referring URLs (external web pages) that brought traffic to your site. For Sessions without an external referral, which occurs when a Visitor goes directly to your site via a bookmark/favorite or by typing in the URL directly, the (no referral) entry is incremented. This allows you to compare the percentage of traffic from external links versus Visitors that already know about your site.</p>
<h3>What is a Search Term?</h3>
<p>Search Terms report lists the actual keywords/phrases people typed into search engines to find your site. Entries are ranked by the number of Sessions each was responsible for. To list all phrases with a particular word, enter the word in the Filter at the top and press Enter. The Total at the bottom of the report will now represent the total number of search phrases that contain that word.</p>
<h3>What is a Search Engines report?</h3>
<p>Search Engines report lists each Search Engine that referred traffic to your site using a keyword search. By clicking on the arrow next to each entry, you can see the actual Search Terms people typed in. Entries are ranked by the number of Sessions each Search Engine was responsible for.</p>
<h3>What is a Robot?</h3>
<p>Robots report lists the Robots and Spiders that visited your site, ranked by Hits (requests). This report does not include Browsers, such as Internet Explorer. By clicking the arrow next to any entry, you can see its specific version information.<br />
<img loading="lazy" decoding="async" class="alignnone size-medium wp-image-1292" src="https://www.macronimous.com/wp-content/uploads/Robots-1-470x180.gif" alt="Visitor log analysis &#8211; How much do you know about your site visitors?" width="470" height="180" /><br />
Here we will discuss some of the free and paid website stat to monitor your website traffic.</p>
<h3>STATCOUNTER</h3>
<p>http://www.statcounter.com/<br />
It’s a free and reliable invisible web tracker that is also highly configurable. It provides real-time detailed web stats. Insert a simple piece of our code on your web page and you will be able to analyze and monitor all the visitors to your website in real-time!</p>
<ul>
<li>Free, Fast, Responsive, Quick loading, and Reliable Service.</li>
<li>Invisible Tracking &#8211; no ads on your website.</li>
<li>Accurate real-time website statistics with detailed visitor tracking and analysis.</li>
</ul>
<h3>ONESTAT</h3>
<p>http://www.onestat.com/<br />
Advanced and powerful web analytics to track in-depth visitor behavior, commerce, leads, and conversions. Excellent web metric solutions for medium to large websites. The essential tool for web marketers and webmasters!</p>
<ul>
<li>Report Builder, Access Management, and E-mail Manager.</li>
<li>Massively scalable and easy to use.</li>
<li>In-depth visitor navigation reports.</li>
<li>Provides segmentation and website traffic analysis trend reports.</li>
</ul>
<h3>ActiveMeter Hit Counter</h3>
<p>http://www.activemeter.com/<br />
This site is a website visitor tracker. Web site counter code provides traffic data and statistics. ActiveMeter is that and much more! Because the real value lies in tracking visitors, not just visits, our unique website analyzer is designed around web visitors.</p>
<ul>
<li>Fast, accurate, and reliable service makes tracking website traffic easy to do.</li>
<li>Easy setup and no server requirement means you&#8217;re up and running in minutes rather than days.</li>
<li>Visible and Invisible web counters keep your website looking the way you want.</li>
</ul>
<h3>CQ Counter</h3>
<p>http://www.activemeter.com/<br />
This site is a website visitor tracker. Web site counter code provides traffic data and statistics. ActiveMeter is that and much more! Because the real value lies in tracking visitors, not just visits, our unique website analyzer is designed around web visitors.</p>
<ul>
<li>Fast, accurate, and reliable service makes tracking website traffic easy to do.</li>
<li>Easy setup and no server requirement means you&#8217;re up and running in minutes rather than days.</li>
<li>Visible and Invisible web counters keep your website looking the way you want.</li>
</ul>
<h3>CQ Counter</h3>
<p>http://www.cqcounter.com/<br />
These statistics reports can enable you to identify areas for website improvement that can directly impact the performance of your site(s) and increase your competitive advantage.</p>
<ul>
<li>Which sites or search engines send your site more visitors?</li>
<li>How many hits have your sites every hour, day, week, month, and year?</li>
<li>What operating system and web browsers do your visitors use?</li>
</ul>
<h3>Add free stat</h3>
<p>http://www.addfreestats.com</p>
<p>Now you can keep track of how many people visit your website when they come, how they found your website, and much, much more&#8230; All website statistics reports are in real-time!</p>
<p>Free! Increase your website traffic!<br />
By including your website in our popular website directory, we will help you to increase your website traffic. Websites are ranked by traffic, rate, or votes. It&#8217;s absolutely free!</p>
<h3>WebSTAT</h3>
<p>http://www.webstat.com<br />
This stat makes Web analytics easy and cost-effective. Our hosted analytics software tracks and stores web statistics for businesses and non-profit organizations of all sizes. You don&#8217;t need thousands of dollars to get a good web traffic analysis package.</p>
<ul>
<li>Easy to install client-side statistics software.</li>
<li>Access to over 40 reports, including executive summaries, traffic patterns, visited pages, search engines, campaign tracking, and visitor details.</li>
<li>Scalable architecture. Track 1 page view or 1 million page views per day.</li>
</ul>
<h3>Google Analytics</h3>
<p>http://www.google.com/analytics (Formerly Urchin)</p>
<p>The stat shows you how people found your site, how they explored it, and how you can enhance the visitor experience. Improve your website return on investment, increase conversions, and make more money on the web.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/visitor-log-analysis-for-effective-seo-campaigns/">Visitor log analysis &#8211; How much do you know about your site visitors?</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Web Services Description Language &#8211; WSDL</title>
		<link>https://www.macronimous.com/resources/articles/oncoming-wave-web-services-4/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Fri, 03 Mar 2017 11:19:00 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1142</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img-2-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div>
<p>WSDL WSDL stands for Web Services Description Language.WSDL is a document written in XML. The document describes a Web service. It specifies the location of<a href="https://www.macronimous.com/resources/articles/oncoming-wave-web-services-4/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/oncoming-wave-web-services-4/">Web Services Description Language &#8211; WSDL</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img-2-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div><h3>WSDL</h3>
<p>WSDL stands for Web Services Description Language.WSDL is a document written in XML. The document describes a Web service. It specifies the location of the service and the operations (or methods) the service exposes. WSDL is a suggestion by Ariba, IBM, and Microsoft for describing services for the <a href="http://www.w3.org/TR/wsdl" target="_blank" rel="noopener noreferrer">W3C</a> XML Activity on XML Protocols.<br />
<a href="http://www.w3.org/TR/wsdl" target="_blank" rel="noopener noreferrer">W3C</a> Publishes Working Drafts for Web Services Description Language (WSDL) 1.2. The World Wide Web Consortium (<a href="http://w3c.org/" target="_blank" rel="noopener noreferrer">W3C</a>) has announced the publication of initial working draft specifications for Web Services Description Language (WSDL) Version 1.2 and Web Services Description Language (WSDL) Version 1.2: Bindings. WSDL is &#8220;an XML format for describing network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information. Work in progress at <a href="http://www.w3.org/TR/wsdl" target="_blank" rel="noopener noreferrer">W3C</a> indicates that WSDL might become a W3C Working Draft before the end of 2002, and an official Recommendation before the end of the year 2003.<br />
<strong>Further Readings:</strong></p>
<ul>
<li><a href="http://www.w3.org/TR/wsdl" target="_blank" rel="noopener noreferrer">W3C Specification draft on WSDL</a></li>
<li>W3School introductory tutorial</li>
<li><a href="http://www.zvon.org/xxl/WSDL1.1/Output/" target="_blank" rel="noopener noreferrer">Zvon</a> Reference on WSDL</li>
<li>Microsoft Specification <a href="https://msdn.microsoft.com/en-us/library/ms951274.aspx" target="_blank" rel="noopener">Page</a></li>
</ul>
<p>WSDL is accepted and supported by IBM, Microsoft, Adobe , nd Ariba.</p>
<h3>How do they work?</h3>
<p>Let us discuss a bit on how web services are working. Web services can be created using any platforms for example, MS .NET or Sun ONE. Now it has to be registered in a UDDI service registry. While registering, the services should have the metadata about the service, that is, the necessary information about the service, explaining how to access and integrate the service. This metadata will be written in XML. This web service can be accessed by other web services who are also already registered in some UDDI registered, using SOAP, WSDL and XML. Here SOAP is used to access the components and WSDL to make the necessary bindings and to describe the service as a set of Ports. The ports help the service for input and output the messages that are for necessary interactions. Lets summarize the operations in a nutshell.<br />
<strong>Creation:</strong></p>
<ul>
<li>Create a web service</li>
<li>Describe the service with WSDL (XML)</li>
<li>Register the service in a UDDI repository/Registry.</li>
</ul>
<p><strong>Accessing and using:</strong></p>
<ul>
<li>A service is located by another service or user, by searching UDDI registries.</li>
<li>Using SOAP the service gets the functions of the located service.</li>
<li>Interactions between the requested service and the requester service started.</li>
</ul>
<h3>Which tools to use?</h3>
<p>If you are a Microsoft developer already into web applications development you can learn .NET development tools. Java developers are in need to move into Sun ONE (Open Network Environment) / J2EE. But regardless of the tools and technology base you use to develop the web services, everyone should study and understand XML and XML based family of technologies.</p>
<h3>Conclusion</h3>
<p>Now you may ask &#8221; Where can we apply web services?&#8221; . A few examples now are like Stock price information gathering, whether reports, Flight reservations etc., As the technology explores many things are possible through web. Right now we have only tools and standards which are still not matured. Its yet to be simplified, and till then we have to work only with the technologies which are yet to improve a lot. But its needless to say that its time to learn and practice some web services development for any compant which is in web related development and its good if its now.</p>
<h3>References and Related Links:</h3>
<ul>
<li><strong> <a href="http://www.wsindex.org/" target="_blank" rel="noopener noreferrer">wsindex.org</a> </strong><br />
Do you have a web service with you? Add here!</li>
<li><a href="http://www-106.ibm.com/developerworks/webservices/" target="_blank" rel="noopener noreferrer"><strong>IBM at web services</strong></a>(R1)<br />
Learn from IBM, Lots of news and articles.</li>
<li><strong><a href="http://searchwebservices.techtarget.com/" target="_blank" rel="noopener noreferrer">Searchwebservices</a></strong><br />
Contains white papers and other online links</li>
<li><a href="https://www.soapui.org/tutorials/web-service-example-projects.html" target="_blank" rel="noopener"><strong>REST and SOAP examples</strong></a><br />
A Sample web service from SoapUI</li>
</ul>
<p>[<a href="https://www.macronimous.com/resources/oncoming-wave-web-services">Page1</a>]    [<a href="https://www.macronimous.com/resources/oncoming-wave-web-services-2">Page 2</a>]    [<a href="https://www.macronimous.com/resources/oncoming-wave-web-services-3">Page 3</a>]    [Page 4]</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/oncoming-wave-web-services-4/">Web Services Description Language &#8211; WSDL</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>UDDI and SOAP &#038; WSDL</title>
		<link>https://www.macronimous.com/resources/articles/oncoming-wave-web-services-3/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Fri, 03 Mar 2017 11:16:19 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1141</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img2-1-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="Offshore Outsourcing company" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div>
<p>UDDI The UDDI (Universal Description, Discovery, and Integration) Project is an 18-month effort to define a set of specifications that will make it easier for<a href="https://www.macronimous.com/resources/articles/oncoming-wave-web-services-3/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/oncoming-wave-web-services-3/">UDDI and SOAP &#038; WSDL</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img2-1-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="Offshore Outsourcing company" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div><h3>UDDI</h3>
<p>The UDDI (Universal Description, Discovery, and Integration) Project is an 18-month effort to define a set of specifications that will make it easier for businesses to accelerate the use of B2B and commerce over the Internet. The UDDI Project is based on existing Internet standards and it is platform independent and implementation neutral.<br />
Over 100 companies &#8212; including business leaders like <a href="http://www.ml.com/" target="_blank" rel="noopener noreferrer">Merrill Lynch</a>, technology leaders like <a href="http://www.ibm.com/" target="_blank" rel="noopener noreferrer">IBM</a> Microsoft and <a href="http://www.sun.com/" target="_blank" rel="noopener noreferrer">Sun Microsystems</a> and innovative B2B companies like <a href="http://www.ariba.com/" target="_blank" rel="noopener noreferrer">Ariba</a>, CommerceOne and <a href="http://www.verticalnet.com/" target="_blank" rel="noopener noreferrer">VerticalNet</a> &#8212; have all signed on to support UDDI. These companies have come together because they agree that no individual technology vendor can control how standards for B2B will evolve. Industry analysts like the Gartner Group, Forrester Research, and Seybold are cautiously optimistic that UDDI will become the core initiative for accelerating B2B adoption.</p>
<p>UDDI is a yellow pages-type directory of all businesses that expose Web services. This directory is called Universal Description, Discovery, and Integration or UDDI. If you are a business, you need to start thinking about how your company is going to get involved in the world of Web Services. IT architects should read through the UDDI specifications and start thinking about which Web Services your company will define and publish in the UDDI Business Registry.<br />
<strong>Further Readings:</strong></p>
<ul>
<li><a href="https://learn.microsoft.com/en-us/previous-versions/windows/desktop/aa966237(v=bts.10)" target="_blank" rel="noopener noreferrer">http://uddi.microsoft.com</a></li>
<li>https://www-3.ibm.com/services/uddi/protect/registry.html</li>
<li>http://uddi.hp.com</li>
<li>Microsoft UDDI SDK For.NET Framework, Windows</li>
<li><a href="http://freshmeat.net/projects/soapuddi/?topic_id=250" target="_blank" rel="noopener noreferrer">SOAP UDDI</a> SOAP UDDI is a reference implementation of the UDDI specification.</li>
</ul>
<p>UDDI is accepted and supported by IBM, Microsoft, Intel, SAP , SUN and Ariba. The version 3.0 of UDDI was released in 2001.</p>
<h3>SOAP</h3>
<p>SOAP is a lightweight and simple XML-based object invocation protocol that is designed to exchange structured and typed information on the Web.<br />
It is a protocol specification for invoking methods on servers, services, components, and objects. SOAP, or <strong>S</strong>imple <strong>O</strong>bject <strong>A</strong>ccess <strong>P</strong>rotocol was originally developed for distributed applications to communicate over HTTP and through corporate firewalls. SOAP defines the use of XML and HTTP to access services, objects and servers in a platform-independent manner.<br />
<strong>Further Readings:</strong></p>
<ul>
<li>SOAP Microsoft</li>
<li>SOAP <a href="http://www.soapdigest.com/" target="_blank" rel="noopener noreferrer">digest online</a></li>
<li>SOAP News online</li>
</ul>
<p>SOAP is accepted and supported by IBM, Microsoft, Intel, SUN, Netscape, AT &amp; T and HP<br />
[<a href="https://www.macronimous.com/resources/oncoming-wave-web-services-4">Next Page</a>]<br />
[<a href="https://www.macronimous.com/resources/oncoming-wave-web-services">Page1</a>]    [<a href="https://www.macronimous.com/resources/oncoming-wave-web-services-2">Page 2</a>]    [Page 3]    [<a href="https://www.macronimous.com/resources/oncoming-wave-web-services-4">Page 4</a>]</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/oncoming-wave-web-services-3/">UDDI and SOAP &#038; WSDL</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Trends in web services</title>
		<link>https://www.macronimous.com/resources/articles/oncoming-wave-web-services-2/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Fri, 03 Mar 2017 11:09:50 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1139</guid>

					<description><![CDATA[<p>Using different standard protocols Web services help businesses to create sophisticated applications that integrate many features and content. Let us briefly discuss the uses of<a href="https://www.macronimous.com/resources/articles/oncoming-wave-web-services-2/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/oncoming-wave-web-services-2/">Trends in web services</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Using different standard protocols Web services help businesses to create sophisticated applications that integrate many features and content. Let us briefly discuss the uses of Web services now.</p>
<p>Web services (applications) can communicate which other without platform hassles. A Web service developed in Java in a sun ONE environment can communicate with the other which is running in a .NET environment. Using the standards, it&#8217;s easy to make them communicate. If applications can be integrated easily in this way, there are high possibilities to minimize the integration cost. Unlike buying and installing COM or Bean components Web services can run in the places where it is since they are XML based.</p>
<p>Without developing new infrastructure companies can access other Web services, and hence the development cost for newer applications are totally reduced. Without changing the legacy code doing e-Business can be made simple.</p>
<p>But there are risks at the other end. Unless the web service is worth to buy and easy to integrate, companies may face a tough time to sell them. As the customers are not paying for the technology, the integration part alone cannot boost the sales. The market for commercial web services should be in needy areas. For example, an online bookselling company can create a stock Web service which can be used its reseller applications.</p>
<h3>The participants?</h3>
<p>Let us now start discussing and understand the standards you need to know before creating a web service. The new connectivity standards SOAP, UDDI &amp; WSDL and the matured standards XML and HTTP, web services can be created, implemented and can interact with other web services dynamically. Let us look at the participants who make web services here one by one briefly. The links can help you to study them in depth.</p>
<h3>XML</h3>
<p>The ideas behind Web services are starts with XML. XML &#8212; the e<strong>X</strong>tensible <strong>M</strong>arkup <strong>L</strong>anguage &#8212; forms the backbone of the Web services to create and implement. XML is a markup language like HTML. XML has been designed to describe data and unlike HTML, XML tags are not predefined in XML. XML is self-describing which uses a Document Type Definition (DTD) to formally describe the data. XML was conceived in 1996 by a team chaired by Jon Bosak. World Wide Web Consortium (W3C) recommended XML for standard, during January 1998. XML has been derived from Structured Generalized Markup Language (SGML) parent and HyperText Markup Language (HTML) is said to be an earlier cousin of XML.<br />
<strong>Further Readings:</strong></p>
<ul class="sub">
<li><a href="https://www.xmlfiles.com/xml/" target="_blank" rel="noopener">https://www.xmlfiles.com/xml/</a></li>
<li><a href="http://www.projectcool.com/developer" target="_blank" rel="noopener noreferrer">http://www.projectcool.com/developer</a></li>
<li><a href="http://www.w3.org/XML" target="_blank" rel="noopener noreferrer">http://www.w3.org/XML</a></li>
<li><a href="http://www.w3.org/Style/XSL" target="_blank" rel="noopener noreferrer">http://www.w3.org/Style/XSL</a></li>
</ul>
<p>XML is a worldwide-agreed standard, and almost all the technical giants are into it.<br />
[<a href="https://www.macronimous.com/resources/oncoming-wave-web-services-3">Next Page</a>]<br />
[<a href="https://www.macronimous.com/resources/oncoming-wave-web-services">Page1</a>]    [Page 2]    [<a href="https://www.macronimous.com/resources/oncoming-wave-web-services-3">Page 3</a>]    [<a href="https://www.macronimous.com/resources/oncoming-wave-web-services-4">Page 4</a>]</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/oncoming-wave-web-services-2/">Trends in web services</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Increasing Link Popularity and Getting worthy inward links</title>
		<link>https://www.macronimous.com/resources/articles/increasing-link-popularity-getting-worthy-inward-links/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Fri, 03 Mar 2017 08:30:13 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1134</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img-2-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div>
<p>Link popularity can be defined as the number of incoming or inbound links that your site has from other sites and directories. The links can<a href="https://www.macronimous.com/resources/articles/increasing-link-popularity-getting-worthy-inward-links/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/increasing-link-popularity-getting-worthy-inward-links/">Increasing Link Popularity and Getting worthy inward links</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img-2-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div><p>Link popularity can be defined as the number of incoming or inbound links that your site has from other sites and directories. The links can be from any Business directory, Web directory, articles, or any other web sites. This can be obtained by adding links to directories, search engines, and other related web sites, and we call as link building. In fact, more the inbound links your site has, the better website link popularity. More the quality incoming or inbound links, the more web site page rank.</p>
<p>The factors that are considered by the search engines while determining the rank of your site or the individual pages are the number of links and the quality of the links that your website contains. One has to remember that the more the incoming links your site have, the greater the traffic to your site exists.</p>
<p>To start with, link popularity for the website, we have to add link first to major search engines like Google, Yahoo, and MSN. Two methods of link building to a website obtain link popularity.</p>
<p><b>Two-way link exchange:</b><br />
This link submission is nothing but exchanging of links, means Reciprocal links. A link will be added to your domain pages and your domain link added to their domain pages.</p>
<p><b>One-way submission:</b><br />
This link submission is nothing but adding links to directories and search engines, no need of reciprocal links.<br />
Having a link to your site is essential, and to have this done your site needs to be attractive and made suitable to have a link. Aiming at making your site beneficial to the audience, try to have a page or a site that helps the directory editor to select your site.</p>
<p>Content always remains to be an asset to your site. Focus on creating a content rich site. It brings in visitors who are looking for information, and these in turn bring in more visitors. Whether your site deals with selling any service or product, having the related articles, newsletters can add value to your site content. Submitting your site to some of the major directories, regional directories and thematic directories should be done carefully.</p>
<p>Look out for some sites that seem to be complementary to your site, and exchange links. This helps in gaining link popularity. Have contact with the link partners and identify the different ways by which your site could get linked to their site. Identify the natural means of having a link to that site from your site. Finally, E mail your ideas to the prospective link partner. A personal note explaining what you have in mind would create a better impact rather than use a form.</p>
<p>Analyze the approach to be used by which your partner would get benefited by you and vice versa. You could also write some article about your site, and provide free access to this article provided you gain a link.</p>
<h3>Determining your web site Link Popularity</h3>
<p>A periodic check on the incoming links to your site can be done effectively.</p>
<h3>What Not To Do?</h3>
<p>Never use the automated programs that send in forms requesting links. Such programs can be used for identifying worthy sites for gaining links. On identifying the links, short personal messages can be sent to them. Remember that not all your messages will be replied and not everyone would like to possess exchange links. So be patient. Never assume that if you do not get a reply then they are not interested. The probability of them approaching you in the future is high. Try not to exchange links with any site you feel like and also try avoiding creating a huge list of exchange links.</p>
<h3>How to increase link popularity?</h3>
<p>Sincere hard work and a smart approach is what is needed in building link popularity. Apart from having done a complete search and sending enough reciprocal link emails, much more can be done to gain link popularity.<br />
If you write articles, you get to use them on your website and you build your website content. You can also submit your articles to other sites, or allow them to reuse with full credentials, (Make sure they link back to your site). With both methods you get a lot in return:</p>
<ul>
<li class="textfont">As told earlier, article writing is one way of enhancing link popularity. It also makes your site content-rich and gives you the option to submit to various sites. This gives you a high return.</li>
<li class="textfont">Remember to keep your site always content-rich. Use keyword-rich text in your pages and start promoting your site. This can also lead to more pages being indexed by the search engines.</li>
<li class="textfont">Websites can link back to your site on identifying related topics on your site.</li>
<li class="textfont">It is possible to also enhance the link by receiving a backlink from the site where you have submitted your article. Do include a link to all guest articles where you had submitted your article.</li>
<li>The sites that had a number of inbound links from the various other sites that deal with similar topics are encouraged by the search engines.</li>
</ul>
<h3>What is a BackLink Analyzer?</h3>
<p>To identify the various pages that link to your site, you can enter your domain name in the search engines like link:yourdomain.com.<br />
This gives the list of pages that are hyperlinked to the yourdomain.com site. The search can be narrowed down still further to a particular URL. You can be more specific in this case.<br />
<b>For Example link:yourdomain.com/services/index.html.</b></p>
<h4>Other Resources:</h4>
<h5>Marketleap Visibility Index</h5>
<p>http://linkpop.marketleap.com<br />
You want to see how you perform in comparison to some of the major competitor sites on the web, just enter your URL along with your competitor’s URLs or the URLs that you want to compare with. Easy to learn and use. It is possible to get a report that that has the link count listings from some of the major search engines.</p>
<h5>Page Rank</h5>
<p>You want to check your site’s link popularity by comparing it with three other URLs, just enter your URL along with the 3 other URLs and you can get the various reports showing your link popularity. You can obtain charts and link count listings. Free and easy to learn. Use it and have the results mailed to you on regular basis.</p>
<h5><a href="http://www.linkpopularity.com/" target="_blank" rel="noopener">Link Popularity</a></h5>
<p>A free and simple service generating the list of various links from the top three search engines. These results shall also be mailed to you on regular basis on demand.</p>
<p>&nbsp;</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/increasing-link-popularity-getting-worthy-inward-links/">Increasing Link Popularity and Getting worthy inward links</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Why SEO results are not guaranteed</title>
		<link>https://www.macronimous.com/resources/articles/seo-results-not-guaranteed/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Fri, 03 Mar 2017 04:53:02 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1114</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img-2-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div>
<p>SEO Myth &#8211; No SEO/SEM Company can guarantee a #1 Top ranking on Google and Other Major Search Engines It is difficult to guarantee any<a href="https://www.macronimous.com/resources/articles/seo-results-not-guaranteed/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/seo-results-not-guaranteed/">Why SEO results are not guaranteed</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img-2-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div><h3>SEO Myth &#8211; No SEO/SEM Company can guarantee a #1 Top ranking on Google and Other Major Search Engines</h3>
<p>It is difficult to guarantee any top position in any of the search engines. To read more details on this concept and what Google has to say about this, click the following link.<br />
<a href="http://www.google.com/webmasters/seo.html" target="_blank" rel="noopener noreferrer">http://www.google.com/webmasters/seo.html</a>. This holds true with all the existing major search engines</p>
<h3>What a Search Engine Expert Marketer can do</h3>
<p>No SEO/SEM person can assure the top position in the Search engines but can tell you the various success stories of the past and how SEO/SEM can help you in the current trend. Organic SEO refers to the editing of web pages or the sites to make them much more search engine friendly by identifying the right keywords, titles, and links and using them in the right proposition. The page with the top rank is the one that will be more interesting to the visitor.<br />
It is just enough to be more focused and have the right message to have high rankings. Then why go in for all tricks? The exact position that a page will possess on a day cannot be guaranteed, but there is always an assurance that your page will be ranked.</p>
<h3>A long-term Search Engine Optimization strategy:</h3>
<p>Natural Search engine optimization is a process carried out for the long term, this cannot be achieved within one day or ten-day or a month. It takes a three to six-month time span to achieve Seo results for a website depending upon the business competition.<br />
The algorithms used by the search engines are never the same. If the rule used today is like, just the right combination of text in the title tag will make or break a site, then all you need to do is to alter the title tag to suit this rule. Now you will see your site being in the top position today.<br />
Now, the rule changes the next day. Say, for example, the search engine uses the content of the META Description tag. All you have to do is fix up the description tag and not the title tag.<br />
The focus of the search engines keeps changing from time to time. The best thing is to optimize the page or the site as a whole by adding value to the site. A very simple approach to obtain the best results that are long-term is what is needed.</p>
<h3>You don’t have access to the database; you can&#8217;t control search engines</h3>
<p>Search engines do not belong to the SEO/SEM persons or Companies. They only assure you that it is possible to achieve the top position, but in no way are they involved to make it happen. Assuring a #1position in AllTheWeb is not possible. Instead, recommendations are available on how to make your site search engine friendly. A constant hold on the medium is essential to obtain the required position. Even the search engine consultants do not control the search engines; they only help you to achieve that top position.<br />
No one ever knows the algorithms used by the search engines. Aiming at giving the best to the search engine users, it makes use of the best algorithms and also keeps changing it to keep it highly secure from the users. This remains an asset for the search engines.</p>
<h3>Why no guarantee for single keyword phrases</h3>
<p>Targeted Keywords can be explained as that word used by the user to search or as the most used keyword in your site to make your site be listed in the search process. Ranking a keyword phrase in a top position has become difficult and it has also become very generic in nature, hence the usage of the keyword phrases has increased. Search using keyword phrases has indeed become a default in the default process.</p>
<p>Competition for single keywords and use phrases is increasing compared to single words. To provide you with an example, when you would like to have a search done for online shopping, try avoiding using the primary as “shopping”. People have started to demand more information – more and more. They tend to be more specific to get what they are exactly looking out for. Identify what is unique in your company and the business you are in and the industry that you serve, and use the appropriate primary keyword phrase. This process will lead you to the top rankings and also help you to be listed in the search result. A greater number of visitors is likely to visit your site and also your online shopping is likely to boom. With the help of Overture and Word tracker results, you can identify the most suitable phrases.</p>
<h3>How your competitors achieve and what they do…</h3>
<p>To gain a competitive edge over your competitors, learn the ways of promoting your site for long-term success.</p>
<ul>
<li>Domain Age.</li>
<li>Domain Keywords.</li>
<li>Aged domains with keywords.</li>
<li>Proper Optimized Keywords phrases.</li>
<li>Search engine-friendly website structure.</li>
<li>Link popularity.</li>
<li>Content optimization.</li>
<li>Tag Composition.</li>
<li>Continuous link building and promotion to major search engines and directories for the long term.</li>
<li>Paid inclusion.</li>
</ul>
<h3>SEO Solutions with Realistic Guarantee</h3>
<p>The following are the advantages of Search Engine Optimization</p>
<ul>
<li>Analysis of your website, your competitors, and your specific business.</li>
<li>Keyword phrase research based on major search engine data.</li>
<li>Competitors analysis on how many competing websites are targeting each of your target keyword search terms.</li>
<li>Find out how many backlinks point to your top ten competitors.</li>
<li>Continuous monthly tracking of backlinks and suggestions on increasing your backlinks.</li>
<li>Website Optimization, including navigational and structural improvement for search engine friendliness.</li>
<li>Submitting Manually to the major search engines and the Open Directory (dmoz.org).</li>
<li>Monthly visitors log analysis, ranking, and traffic reports including search terms.</li>
</ul>
<p>&nbsp;</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/seo-results-not-guaranteed/">Why SEO results are not guaranteed</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Oncoming wave with web services.</title>
		<link>https://www.macronimous.com/resources/articles/oncoming-wave-web-services/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Thu, 02 Mar 2017 14:31:39 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1111</guid>

					<description><![CDATA[<p>If you are a technocrat always looking for new trends in web development, you must have already heard of web services. Here, in this article<a href="https://www.macronimous.com/resources/articles/oncoming-wave-web-services/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/oncoming-wave-web-services/">Oncoming wave with web services.</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>If you are a technocrat always looking for new trends in web development, you must have already heard of web services. Here, in this article we discuss about the standards in web services and the possibilities of web services to become the future of web development. Feel free to contact the author by mail to <a href="mailto:enquiry@macronimous.com">enquiry@macronimous.com</a></p>
<h3>Introduction</h3>
<p>One interesting thing happening in the corporate world after the dot-com fall is, the change in the fundamental ways in which they operate and interact. There were many changes and one revolutionary change is based on a new model called Web Services. Web services help companies of any type to create, use and sell applications between them by adopting certain standards and so, the cost of B2B integration. Of course, Web services will not do any magic by eliminating the integration challenges, But it can open the possibility of new business opportunities, as the companies can, just not only create Web services, but also can sell.<br />
The big Industry players like Microsoft, IBM, Sun, etc., are already extending their support to web services and coming up with new platforms to develop and deploy web services.</p>
<h3>What are web services?</h3>
<p>According to IBM, &#8220;Web services are self contained, self describing, modular applications that can be published, located, and invoked across the web. Web services perform functions, which can be anything from simple requests to complicated business processes&#8221;.<br />
We can say Web services are another form of web applications, with self describing nature. When users request for a web application, it can serve them and can also connect with the other related web applications, and so, the users get all the services they need without knowing that they are served by different applications from different locations.</p>
<h3>From web sites to web services</h3>
<p>Before starting, let me talk a few words about the journey to web services from web sites. In the early days of web, we had only non-interactive web sites, later interactive, and back end driven web sites. Businesses started using web sites to get a global presence. Back end driven web sites gave the concept of web based applications. Then businesses realized web applications with which they built extranets, for private usage and customer support. And when ecommerce came, the web sites became the marketing places for B2C and B2B for selling products and services. In this stage many of the web applications can be utilized by companies without buying it, when the concept of ASPs(Application Service Providers) established. Now the ASP concept is emerging as Web services. Developers community expects that the ASP integration headaches can be minimized if web services standardize certain operations and make them easy to use.<br />
Now you can raise a question &#8221; Ain &#8216;t we do these with the existing technologies already?&#8221;. The answer is yes. The component models are already in use to achieve functions similar to web services. Presently exiting technologies like COM+, DCOM, RMI, CORBA are used to develop reusable components that can be hosted remotely and used in the web applications. But these components are giving tough time to the developers on during integrating them, and the cost of development is also high so far. Hence the world of web services established.</p>
<h3>The Standards are Everything</h3>
<p>Web services are nothing but applications with programmatic interface using certain standards and Internet &#8211; friendly protocols. Web services are developed by people not for the use of other people but for other Web services. Since human intervention is minimized in Web services development, standards are the base and everything, to make them work. We will discuss the standards XML, SOAP, UDDI, WSDL and others in the following text.<br />
In the following pages we will discuss the standards involved in web services development and the web services development in a netshell.</p>
<p>&nbsp;</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/oncoming-wave-web-services/">Oncoming wave with web services.</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Website Return on Investment(ROI) Checklist</title>
		<link>https://www.macronimous.com/resources/articles/website-return-on-investmentroi-checklist/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Thu, 02 Mar 2017 14:13:52 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1110</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img-1-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div>
<p>Do you have a website? Have you ever thought about what returns are you getting out of it after spending hundreds of dollars to develop<a href="https://www.macronimous.com/resources/articles/website-return-on-investmentroi-checklist/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/website-return-on-investmentroi-checklist/">Website Return on Investment(ROI) Checklist</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img-1-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div><p>Do you have a website? Have you ever thought about what returns are you getting out of it after spending hundreds of dollars to develop it. Thanks to Debbie Mayo-Smith, she gives you a check list to ensure your ROI and the tips to improve your website towards success.</p>
<h3>Dynamic Content</h3>
<p>Many large database driven sites don&#8217;t have actual web pages, but rather the page is created on demand from a database. While cost effective, this is dangerous in terms of search engines. The resulting ASP web page normally has a lot of numbers and question marks in it &#8211; something that search engines steer clear of, as they&#8217;re &#8220;afraid&#8221; of being caught in a loop. So be sure that your dynamic content can be created without the use of numbers,? and similar.</p>
<h3>Contact details</h3>
<p>Make it easy, very easy for your viewers. Why not build your contact details into your website template so it&#8217;s always visible.</p>
<h3>Make it simple and uncluttered</h3>
<p>People hate clutter and busy websites. Be sure yours has lots of open &#8220;white&#8221; space and is built along the &#8220;C. R. A. P.&#8221; principle that I talk about in the book/workshops. Contrast, Repetition, Alignment and Proximity.</p>
<h3>Research</h3>
<p>Check out your competition at home and abroad. See what they&#8217;re doing on their websites. Check out their keywords, page titles and descriptions in their source code (while on the web page right click the mouse and select view source. That&#8217;s the html code behind the web page). Type some keywords that you want to use in search engines and see what companies come up first and then look at their source code.</p>
<h3>Write Internationally</h3>
<p>If you want to do business overseas, be sure your language fits their terminology. A perfect example: I was in a keyword brainstorming session with a client, vitamin manufacturers. I kept on saying drugstore and pharmacy in the conversation. They kept saying chemists. Being American, I&#8217;d key the word drugstore in search engines, not chemists. So it&#8217;s essential to think and include international phrases and spellings in your text. Remember in NZ and Australia &#8211; a lot of &#8220;z&#8217;s&#8221;are turned into &#8220;s&#8221; (organisation instead of organization).</p>
<h3>Use CSS &#8211; Cascading Style Sheets</h3>
<p>Style sheets allow you to name and define whole sets of formatting so they can be applied easily and instantly to selections of text. They&#8217;re advantageous because you can globally alter the style of an entire website by changing the style sheet. External ones are for sites and internal ones are for a single web page &#8211; such as an html email newsletter.</p>
<h3>Use Title and Heading Tags</h3>
<p>These tags have much heavier search engine &#8220;weights&#8221; than others so by putting keywords in them, you&#8217;ll have a shot at better ranking.</p>
<h3>Use Tables</h3>
<p>The secret of great web design. You can even slice and dice images and put them in the individual cells of tables.</p>
<h3>You must have a secure server for online payments</h3>
<p>It&#8217;s easy and people look for that little gold padlock on the bottom of their screen to indicate they&#8217;re in a secure server.</p>
<h3>Do I have to say it &#8211; Grab their email addresses up front</h3>
<p>Be sure that one of the very first things someone sees when they come to your site is (an offer for something) in tandem with a request for their email address. Do not let them go without giving you that golden asset.</p>
<h3>Unique -each page</h3>
<p>Try to structure each page as it&#8217;s own unique website, with it&#8217;s own title, description and keywords. This will multiply the number of times your site itself can be picked up by search engines.</p>
<h3>No Orphans</h3>
<p>Make absolutely sure every single page on your website gives the viewer the ability to navigate around the rest of the site (or the majority of it). Do not have orphans &#8211; pages without the ability to get back. Not everyone knows to hit the back key.</p>
<h3>Use layering on your navigation</h3>
<p>People hate clutter so don&#8217;t have a million navigation links on the home page. Instead use layers. This means when someone puts their mouse on a navigation link, a second series of navigation to pages appears.</p>
<h3>Think like a novice</h3>
<p>On one-hand dollars to donuts your web designer might want to do all neat and wonderful things for you &#8211; perhaps to show off their graphic ability or what&#8217;s new and hot on the web. Stop. Step back. And think like a novice. Many of the visitors coming to your site will be new to the Internet, or not have access to speedy downloads, or the latest software. This leads me to my next point,</p>
<h3>Don&#8217;t gratuitously flash</h3>
<p>I&#8217;ve almost written ad nauseum already about putting Flash on a website. Be careful and be judicious. Is it REALLY necessary?</p>
<h3>Don&#8217;t use backgrounds</h3>
<p>It&#8217;s hard enough to read on the Internet without making it harder. Don&#8217;t, I repeat DO NOT USE Backgrounds on your website. Keep readability clear and easy. Backgrounds to me scream amateur (like a neighbours kid), old and outdated. I truly don&#8217;t think I have come across a background yet that has been subtle enough to keep it easy to read.</p>
<h3>Use Alt-Image Tags</h3>
<p>Did you know some people have graphics turned off? Do you know you can also give the (shall I call it) image placeholder on your web page a name too? These tags can help increase your search engine ranking and help to describe what&#8217;s being shown to people who view text only.</p>
<h3>Write in benefits &#8211; not features</h3>
<p>People care about themselves and what you can do for them. So write that way. Write your entire site so it reads what&#8217;s in it for me for the reader, rather than a litany of &#8220;you&#8217;s, you&#8217;s, you&#8217;s&#8221;.</p>
<h3>Colour counts.</h3>
<p>A recent survey found that the color palette on a site was the most important attribute for roughly 41% of women and 34% of men.</p>
<h3>Write for the search engines</h3>
<p>Be sure to include your keywords in your text -and be doubly sure to include them higher up the page than further down. Have text, not pictures and lots of Java Script at the top of the page.</p>
<h3>Forget your corporate structure</h3>
<p>Put yourselves in your client&#8217;s shoes. You might have 5 different divisions to your business, but that doesn&#8217;t mean a thing to your viewers. Start from the perspective of someone not knowing a thing about you and build a site based on common sense, not your management&#8217;s egos or structure. A perfect example is the New Zealand Automobile Association website. Originally the website was set up along the company business lines. Now, it&#8217;s grouped in a common sense way &#8211; based on areas of client interest. So for example the home page has a link everything about Cars. Clicking on it, you go to a broader selection grouped and written in laymen terms. Go take a look!</p>
<p><strong>Article by Debbie Mayo-Smith</strong> &#8211; Internationally renowned database email and internet marketing keynote speaker. Author of the brand new book “<a href="http://www.successis.co.nz/" target="_blank" rel="noopener noreferrer">Superb Tips and Tricks For Managing Your Customer Information. Sign up for Debbie’s</a> newsletter at <a href="http://www.successis.co.nz/" target="_blank" rel="noopener noreferrer">www.successis.co.nz</a></p>
<p># COPYRIGHTED Article by the Author &#8211; Macronimous.com has exclusive permissions to publish this in our site.</p>
<p>&nbsp;</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/website-return-on-investmentroi-checklist/">Website Return on Investment(ROI) Checklist</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Web Development Life Cycle</title>
		<link>https://www.macronimous.com/resources/articles/web-development-life-cycle/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Thu, 02 Mar 2017 13:49:52 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1108</guid>

					<description><![CDATA[<p>Much like traditional software development, the website development life cycle is a structured process broken into distinct phases. This approach helps align all activities toward<a href="https://www.macronimous.com/resources/articles/web-development-life-cycle/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/web-development-life-cycle/">Web Development Life Cycle</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Much like traditional software development, the website development life cycle is a structured process broken into distinct phases. This approach helps align all activities toward the final goal of completing the project. A clear understanding of these stages enables team members to recognize their specific roles, collaborate effectively, and ensure the highest quality outcome.</p>
<p>This article outlines a typical web engineering process. While the exact steps may vary depending on a project&#8217;s specific needs, this guide provides a foundational understanding of how a website is built from concept to launch.</p>
<p><a href="mailto:enquiry@macronimous.com">enquiry@macronimous.com.</a></p>
<p><strong>Note:<strong><em> Throughout this text, the words ‘websites’, ‘Web applications’, ‘Web-based applications’, and ‘Intranet/extranets’ can be used interchangeably.</em></strong></strong></p>
<h3>Introduction</h3>
<p>A systematic development process relies on established frameworks, methodologies, and tools. Adhering to these standards—whether industry-wide or company-specific—is crucial for<strong> keeping a project on schedule and ensuring quality control.</strong> While rooted in the traditional software development life cycle, these methods are flexible and can be customized to fit the unique requirements of any web project.</p>
<p>Let&#8217;s break down the typical steps involved in the process:</p>
<h3>1. Review, Assessment, and Analysis:</h3>
<p>The first phase of any web project is Requirements Analysis. This foundational step involves understanding the client&#8217;s business, goals, and target audience. A critical part of this analysis is assessing the client&#8217;s existing infrastructure—including hardware, software, and data—to determine how the new website or web application will integrate with their current systems.</p>
<p>For example, building an online HR portal would require a thorough review of the company&#8217;s existing employee database to devise an effective data migration strategy.</p>
<p>The goal is to conduct an analysis that is both efficient and comprehensive. The primary outputs of this phase are a detailed cost-benefit analysis and a realistic project plan. To ensure this plan is achievable, the analyst must collaborate closely with designers, developers, and testers to establish practical timelines and resource allocations.</p>
<p><strong><em>Input:</em></strong></p>
<ol>
<li>Kick off an interview with the client, initial Emails and supporting docs by the client, and discussion notes.</li>
<li>Online chat transcripts, recorded telephone conversations, and</li>
<li>Model sites/applications</li>
</ol>
<p><strong><em>Output:</em></strong></p>
<ol>
<li>Work plan,</li>
<li>Estimating cost</li>
<li>Team requirements (No of developers, UI/UX designers, QA, DBA, etc)</li>
<li>Hardware-software requirements</li>
<li>Supporting documents and</li>
<li>Final client approval to go ahead with the project.</li>
</ol>
<p><em><strong>Tools:</strong></em> There are not enough tools available in the market, but we found one good tool to try:<br />
<a href="http://sourceforge.net/projects/reqheap/" target="_blank" rel="noopener noreferrer">Requirement Heap.</a></p>
<h3>2. Specification Building:</h3>
<p>Based on the analysis, a <b>preliminary specification document</b> is drafted to cover every element of the project requirements. For a website, this document would detail the site&#8217;s modules, general layout, navigation structure, and dynamic functionalities. Larger projects may require further consultation to define more complex business and technical requirements.</p>
<p>Once the client reviews and approves this specification, a formal <b>written proposal</b> is prepared. This document officially outlines the project scope, including deliverables, responsibilities, timelines, and costs.</p>
<p><strong><em>Input:</em></strong> Reports from the analysis team.<br />
<em><strong>Output:</strong> </em>Complete requirement specifications to the individuals and the customer/customer&#8217;s representative (Technically, the project stakeholders)<br />
<em><strong>Tools:</strong></em> For specification building, we recommend you try <a href="https://code.google.com/p/django-req/" target="_blank" rel="noopener noreferrer">Django-req</a> and a requirement management tool called <a href="https://www.reqview.com" target="_blank" rel="noopener">ReqView</a>.</p>
<h3>3. Design and development:</h3>
<p>With the signed proposal, deposit, and initial content received, the project moves into the <b>design and prototyping phase</b>. The primary goal here is to create a visual representation of the final product.</p>
<p>Initially, we present the client with several design mockups, which are static images showing the layout, color scheme, and navigation. For projects that require a clear demonstration of functionality, we may develop <b>high-fidelity, interactive prototypes</b> that simulate the user interface (UI) and user experience (UX).</p>
<p>This is a highly collaborative stage involving a crucial <b>feedback and revision cycle</b>. Client suggestions are gathered and incorporated, with updated designs shared online for review. All design changes must be finalized before development begins. Constant communication via email and calls is essential during this phase to build client trust and provide peace of mind.</p>
<p>While the visual design is underway, two other critical tasks happen in parallel:</p>
<ul>
<li>The <b>Quality Assurance (QA) team</b> develops comprehensive test plans.</li>
<li>The <b>database team</b> designs the data structures and prepares any necessary sample data.</li>
</ul>
<p>Final client approval on the design is the key milestone needed to conclude this phase.</p>
<p><strong><em>Input:</em> </strong>Requirement specification.<br />
<strong><em>Output:</em> </strong>Site design with templates, Images, and prototypes.<br />
<em><strong>Tools:</strong></em> There are plenty. The most popular ones are Adobe Photoshop, XD, and Figma.</p>
<p><img loading="lazy" decoding="async" class="size-medium wp-image-1109 aligncenter" src="https://www.macronimous.com/wp-content/uploads/Web-Development-life-cycle-423x290.png" alt="Web Development Life Cycle" width="423" height="290" /></p>
<h3>4. Content writing:</h3>
<p>With the design in place, it&#8217;s time to write the actual content for the site. Professional copywriters create engaging text tailored to the client&#8217;s industry.</p>
<p>The content, which can range from simple text to videos, is carefully integrated into the website&#8217;s design. This is also the stage where all copy is <b>edited and proofread</b> to ensure it is error-free before the site moves into the final development stages.</p>
<p><strong><em>Input:</em> </strong> Designed template.<br />
<strong><em>Output:</em> </strong>Site with formatted content.</p>
<p><strong>Tools: Grammarly</strong></p>
<h3>5. Coding:</h3>
<p>This is the phase where the approved designs are transformed into a live, functional website. The developer&#8217;s primary task is to write clean, efficient code that brings the features to life without compromising the established user interface (UI) and experience (UX). For dynamic sites, this involves programming the back-end logic to work seamlessly with the front-end design templates.</p>
<p>Close collaboration between designers and developers is essential to ensure the final product is perfectly aligned with the vision. This partnership allows for quick resolution of technical challenges and the creation of any new graphical assets (like custom form buttons) that may be needed during the build.</p>
<p>During development, the team adheres to best practices, including:</p>
<ul>
<li><b>Version Control:</b> Using a system like Git to manage the codebase, especially when multiple developers are involved.</li>
<li><b>Documentation:</b> Creating thorough technical documentation (e.g., using tools like JavaDoc) to explain the code&#8217;s structure. This documentation can later be used by technical writers to create end-user help guides and manuals.</li>
</ul>
<p>Note: If what you are building is an ECommerce site, don&#8217;t miss reading a detailed write-up on our <a href="https://www.macronimous.com/services/ecommerce-development/outsource-ecommerce-development-process/">ECommerce development Process</a>.</p>
<p><em><strong>Input:</strong></em> The site with forms and the requirement specification.<br />
<em><strong>Output:</strong> </em>Database-driven functions with the site, Coding documents.<br />
<em><strong>Tools:</strong></em> For coding normally an IDE (Integrated Development Environment) will help you. Adobe Dreamweaver, PhpStrom, Netbeans, etc are popular choices, and we can not really recommend one, so feel free to choose yours. Check out our blog that discusses <a href="http://blog.macronimous.com/4-php-ides-for-serious-php-developers/" target="_blank" rel="noopener noreferrer">4 IDEs for PHP developers.</a></p>
<h3>6. Testing:</h3>
<p>Web applications require intensive testing to address challenges unique to their environment, such as multiple users, varied bandwidths, and different devices. Our QA process uses both manual and automated methods to ensure the application is stable, secure, and reliable.</p>
<p>The testing phase is comprehensive and covers several key areas:</p>
<ul>
<li><b>Performance Testing:</b> We conduct stress, load, and scalability tests to ensure the site performs well under heavy traffic and functions efficiently. This includes analyzing asset loading times.</li>
<li><b>Compatibility Testing:</b> The application is tested across various web browsers, operating systems, and screen resolutions to ensure a consistent user experience.</li>
<li><b>Integration Testing:</b> We verify that all modules and third-party services work together correctly.</li>
</ul>
<p>Specialized tools are used to automate tests and simulate different user scenarios. Finally, after deploying the application to the live server, a <b>final round of post-launch testing</b> is conducted. This includes verifying all links, testing forms, and performing a full check of core functionalities to ensure a flawless public launch.</p>
<p><em><strong>Input:</strong> </em>The site, Requirement specifications, supporting documents, technical specifications, and technical documents.<br />
<em><strong>Output:</strong></em> Completed application/site, testing reports, error logs, frequent interaction with the developers and designers.<br />
<em><strong>Tools:</strong></em> There are aplenty. Just Google it.</p>
<h3>7. SEO and Social Media Optimization:</h3>
<p>Once a website is launched, the focus shifts to promotion. Building online visibility requires a strategic approach, typically involving Search Engine Optimization (SEO) and Social Media Marketing (SMM).</p>
<p>SEO is a continuous process of optimizing a site&#8217;s content and technical structure to improve its ranking in search results. This is not a one-time setup; it requires constant analysis and adaptation because search engine algorithms change frequently. (For a deeper dive, please read our detailed article on Search Engine Optimization.)</p>
<p>In addition to organic efforts, visibility can be boosted through paid advertising campaigns, such as Pay-Per-Click (PPC), to drive immediate and targeted traffic to the site.</p>
<p><strong>Input:</strong> Site with unique and great content, Competitor study, keyword analysis.<br />
<strong>Output:</strong> Site submission after necessary meta tag preparation.<br />
<strong>Tools:</strong> We at Macronimous use a few popular tools, which you can check at the bottom of our <a href="https://www.macronimous.com/services/inbound-marketing/outsource-seo-services">SEO service page</a><br />
Also, to learn more about the SEO life cycle, <a href="https://www.macronimous.com/resources/articles/seo-life-cycle">click here.</a></p>
<h3>8. Maintenance and Updating:</h3>
<p class="p1">Websites will need quite frequent updates to keep them fresh and relevant. In such a case, we need to do the analysis again, and all the other life-cycle steps will be repeated. Bug fixes can be done during the time of maintenance. Once your website is operational, ongoing promotion, technical maintenance, content management &amp; updating, site visit activity reports, staff training, and mentoring are needed regularly, depending on the complexity of your website and the needs within your organization.</p>
<p><strong>Input:</strong> The Website or Web Application, content/functions to be updated, and re-analysis reports.<br />
<strong>Output:</strong> Updated application, supporting documents for other life cycle steps and teams.</p>
<p><em><strong>Tools:</strong></em> For easy website maintenance, CMS is the right choice. Investing in a CMS like <a href="https://www.macronimous.com/services/cms-development/wordpress-development-india">WordPress </a>or <a href="https://www.macronimous.com/services/cms-development/joomla-development-india">Joomla</a> will make your site easy to maintain without much recurring expenditure.</p>
<p>&nbsp;</p>
<p class="p1">The development lifecycle described here is a flexible framework, not a rigid set of rules. The specific steps required will always depend on the project&#8217;s scope, budget, and timeline. For example, an internal intranet site would not need a public promotion phase.</p>
<p class="p1">Ultimately, the key takeaway is that a structured approach is vital. Whether for a large corporation or a small business, adopting a planned web engineering process is the most reliable way to achieve a high-quality final product.</p>
<p>See the flowchart &#8220;<a href="https://www.macronimous.com/wp-content/uploads/Macronim_development_lifecycle.pdf" target="_blank" rel="noopener noreferrer">How we do web development in Macronimous?</a>&#8220;[PDF format]</p>
<p><a href="https://www.macronimous.com/services/web-development/how-we-develop-webapps/">How do we develop web applications</a> at Macronimous?</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/web-development-life-cycle/">Web Development Life Cycle</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Using Stored procedure with mySQL and PHP</title>
		<link>https://www.macronimous.com/resources/articles/using-stored-procedure-mysql-php/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Thu, 02 Mar 2017 12:35:38 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1100</guid>

					<description><![CDATA[<p>Using external scripts for complex data handling is often a tedious process. Stored Procedures provide a superior solution by automating tasks directly within the database<a href="https://www.macronimous.com/resources/articles/using-stored-procedure-mysql-php/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/using-stored-procedure-mysql-php/">Using Stored procedure with mySQL and PHP</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Using external scripts for complex data handling is often a tedious process. Stored Procedures provide a superior solution by automating tasks directly within the database server. Designing flexible Stored Procedures is crucial, as it simplifies error identification and enables them to execute a wide range of tasks efficiently.</p>
<h3>What are Stored Procedures?</h3>
<p>A Stored Procedure is a set of pre-compiled SQL commands saved as a single, reusable unit within the database server. Once created, an application can execute complex tasks by simply calling the stored procedure&#8217;s name, rather than sending multiple lines of SQL code over the network. This approach significantly reduces network traffic and eases the CPU load on the server.</p>
<h3 class=""><b>Key Advantages of Stored Procedures</b></h3>
<ul>
<li><b class="">Improved Performance:</b> Stored procedures are compiled once and stored in executable form, so subsequent calls are executed much faster than sending and compiling the same queries repeatedly.</li>
<li><b class="">Reduced Network Traffic:</b> Instead of sending large blocks of SQL code, an application only needs to send the short command to execute the procedure. This is especially beneficial in high-latency environments.</li>
<li><b class=""><span class="citation-32">Code Reusability and Centralization:</span></b> You can write the procedure once and call it from multiple applications or different parts of the same application. <span class="citation-1 citation-end-1">This centralizes business logic in the database, making it easier to maintain and update.</span></li>
<li><b class=""><span class="citation-30">Enhanced Security:</span></b> You can permit users to execute a stored procedure without giving them direct access to the underlying database tables. This prevents malicious or accidental direct data manipulation.</li>
<li><b class="">Simplified Development:</b> Complex operations can be encapsulated within a single procedure. This makes the application code cleaner, simpler, and easier to manage, as the complex database logic is handled on the server side.</li>
</ul>
<h3>MySQL Stored Procedures</h3>
<p>For a long time, a key feature distinguishing platforms like Oracle and Microsoft SQL Server from MySQL was their robust support for Stored Procedures. That gap has long since closed. Beginning with MySQL 5, Stored Procedures became a standard, fully supported feature, bringing MySQL&#8217;s capabilities in line with other enterprise-level database systems.</p>
<p>The syntax for using Stored Procedures is as follows:</p>
<pre>-- Stored Procedure Template
CREATE PROCEDURE IF NOT EXISTS sp_name (
    [IN|OUT|INOUT] param_name data_type,
    ...
)
[LANGUAGE SQL]
[DETERMINISTIC | NOT DETERMINISTIC]
[CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA]
[SQL SECURITY DEFINER | SQL SECURITY INVOKER]
[COMMENT 'Descriptive comment about the procedure']
BEGIN
    -- Valid SQL statements here
END;

-- Stored Function Template
CREATE FUNCTION IF NOT EXISTS sp_name (
    param_name data_type,
    ...
)
RETURNS return_data_type
[LANGUAGE SQL]
[DETERMINISTIC | NOT DETERMINISTIC]
[CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA]
[SQL SECURITY DEFINER | SQL SECURITY INVOKER]
[COMMENT 'Descriptive comment about the function']
BEGIN
    -- Valid SQL statements here
    RETURN value;
END;
</pre>
<h3><b>Applications of MySQL Stored Procedures</b></h3>
<p>MySQL Stored Procedures are highly versatile and can be effectively applied in a wide range of scenarios, from automating simple tasks to managing complex business logic. They are particularly valuable in the following situations:</p>
<ul>
<li><b>Multi-Platform Environments:</b> When your database is accessed by various applications built in different programming languages (like Python, Java, or PHP), stored procedures provide a centralized and consistent way to interact with data. All applications can call the same procedure, ensuring business rules are enforced uniformly.</li>
<li><b>High-Security Systems:</b> In environments where data security is critical, such as banking or healthcare, stored procedures are essential. They allow you to create a secure API for the database. You can permit users to execute a specific procedure without giving them any direct access to the underlying tables, preventing unauthorized queries or data manipulation.</li>
<li><b>Performance Optimization:</b> Stored procedures significantly boost performance by reducing network traffic. Instead of an application sending large, complex SQL queries across the network, it sends only a short, single command to execute the procedure, minimizing latency and reducing the load on the database server.</li>
</ul>
<p>While early versions of MySQL&#8217;s stored procedures were less mature than those in other systems, they are now a robust, stable, and essential feature for any serious MySQL developer or administrator.</p>
<h3>A simple example for MySQL Stored Procedure</h3>
<p>To calculate the area of a circle with a given radius R, the following commands can be given</p>
<pre>-- Define the function using modern syntax and delimiters
DELIMITER //

CREATE FUNCTION Area(R DOUBLE) 
RETURNS DOUBLE 
DETERMINISTIC
BEGIN
    DECLARE A DOUBLE;
    SET A = R * R * PI();
    RETURN A;
END //

DELIMITER ;
</pre>
<p>And the PHP code using mysquli:</p>
<pre>&lt;?php
// Connect to MySQL using mysqli
$mysqli = new mysqli("hostname", "username", "password", "database");

// Check for connection error
if ($mysqli-&gt;connect_error) {
die("Connection failed: " . $mysqli-&gt;connect_error);
}

// Execute the query calling the stored function
$result = $mysqli-&gt;query("SELECT Area(22) AS area");

if ($result) {
$row = $result-&gt;fetch_assoc();
echo "The area of the circle with radius 22cm is " . $row['area'] . " sq.cm";
} else {
echo "Query failed: " . $mysqli-&gt;error;
}

// Close connection
$mysqli-&gt;close();
?&gt;</pre>
<h3>Other reads:</h3>
<p><a href="https://www.macronimous.com/resources/articles/calling-stored-procedures-from-asp-net-and-vb-net-2/">Stored Procedures with ASP.NET</a></p>
<p><a href="https://www.macronimous.com/resources/articles/z-stored-procedures-asp-vb-programmers/">Stored Procedures with ASP</a>.</p>
<p><a href="https://www.macronimous.com/resources/articles/stored-procedures-tip/">Stored Procedures: Some tips.</a></p>
<p><a href="https://www.macronimous.com/resources/articles/stored-procedure-primer/">Stored Procedures: A primer.</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/using-stored-procedure-mysql-php/">Using Stored procedure with mySQL and PHP</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Using Codeigniter for PHP application development</title>
		<link>https://www.macronimous.com/resources/articles/using-codeigniter-php-application-development/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Thu, 02 Mar 2017 12:16:27 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1098</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img2-1-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="Offshore Outsourcing company" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div>
<p>With many PHP frameworks available nowadays, with many pros and cons on their side, it has become very important to check out complete details of<a href="https://www.macronimous.com/resources/articles/using-codeigniter-php-application-development/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/using-codeigniter-php-application-development/">Using Codeigniter for PHP application development</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img2-1-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="Offshore Outsourcing company" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div><p>With many PHP frameworks available nowadays, with many pros and cons on their side, it has become very important to check out complete details of these frameworks before applying them. There are few MVC PHP frameworks which are popular amoung the PHP developer community, and one is <a href="https://www.codeigniter.com" target="_blank" rel="noopener noreferrer">CodeIgniter</a> which is avaialble for the developers since 2006.</p>
<p>There are many advantages of using PHP frameworks:</p>
<ul>
<li>Applications can be built quickly and easily.</li>
<li>Simple to debug.</li>
<li>Secured.</li>
<li>Easy to install and use.</li>
<li>Good for applications utilizing multiple platforms.</li>
</ul>
<h3>CodeIgniter (CI)</h3>
<p>One of the effective PHP Frameworks is the CodeIgniter. Web applications with advanced features can be readied using the CodeIgniter. Simpler for the beginners, CI follows an MVC (Model View Controller) pattern, thereby enabling in easy learning. Also, due to the usage of conventional PHP coding, the existing codes can be ported using this PHP framework. Also the simplicity with which it works and the speed that it has when compared to the other frameworks, is definitely considerable.</p>
<h3>Striking features of CodeIgniter</h3>
<p>There are many features that are quite distinguishing, in CI. Few of the most important features are explained below:</p>
<ul>
<li><strong>User Guide</strong><br />
One of the most important features of the CodeIgniter is that it has a very impressive user guide. The way the documentation has been done is simply marvelous and highly useful for coders to know more about the working.</li>
<li><strong>Simplicity</strong><br />
CodeIgniter is simple and a major portion of the work gets completed in the controllers and uploading the libraries. Since the workings are clear and open, it is very easy to understand what is happening and therefore, simple to use.</li>
<li><strong>Model Handling</strong><br />
While working with models, CodeIgniter uses a straight way of handling. Standard SQL queries can be mimed using few simple commands. Also creation of model objects, loading it and introducing methods to deal with a customized task is also possible.</li>
<li><strong>Data Validation</strong><br />
Data validation is a major thing while working on models. Here a validation class is used to validate data. First, few rules are defined and assigned to the object to be validated. The data that is sent through the URL is automatically validated by the validation object. Even certain error messages can also be automated the same way, using data validation class.</li>
</ul>
<p>There are many other advantages of using CI:</p>
<ul>
<li>Migration from one server to another is easier and hassle-free. Also installation is easier as well.</li>
<li>CI is very easy to handle and also to customize. In case a new functionality has to be applied, it can be done without affecting the customization.</li>
<li>With MVC based framework, it offers flexibility and easy management.</li>
<li>Active Record Implementation is simply superb and easy to remember.</li>
<li>Configuration and customization of these configuration files are also easy, thus facilitating easy working with various types of developers.</li>
<li>The collection of libraries that it posses is also good enough.</li>
<li>And as previously said, awesome documentation of the user guide, which makes any coder easy to use the whole framework.</li>
</ul>
<p>Given below is a simple example to display user information from database. Using CodeIgniter, the programmer and designer can simultaneously work on the same project, without having to wait for each other to complete their parts. Here the first part “Create a controller named user.php and store it in Controllers folder” is prepared by the programmer, and the second part “Create a view named user.php and store it in views folder” is prepared by the designers simultaneously.</p>
<p># Create a controller named user.php and store it in Controllers folder</p>
<pre>&lt;? class User extends Controller { function User() { parent::Controller(); } function view() { $this-&gt;load-&gt;database(); # This line is not needed if database library is put into autoload
$query = $this-&gt;db-&gt;query("SELECT username, email FROM tbl_users");
if($query-&gt;num_rows() &gt;0) {
foreach($query-&gt;result_array() as $row) {
$users[] = $row;
}
$data['users'] = $users;
}
$this-&gt;load-&gt;view('user', $data);
}
}
?&gt; 
</pre>
<p># Create a view named user.php and store it in views folder</p>
<pre>&lt;table border="0" cellspacing="1" cellpadding="5"&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;User Name&lt;/b&gt;&lt;/td&gt; &lt;td&gt;&lt;b&gt;Email&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;?
if(is_array($users)) {
foreach($users as $key =&gt; $value) {
?&gt;
&lt;tr&gt;
&lt;td&gt;&lt;? echo $value['username']?&gt;&lt;/td&gt;
&lt;td&gt;&lt;? echo $value['email']?&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;?
}
else {
?&gt;
&lt;tr&gt;&lt;td colspan="2"&gt;No users found&lt;/td&gt;&lt;/tr&gt;
&lt;?
}
}
?&gt;</pre>
<p>The output comes as below:</p>
<table >
<tbody>
<tr>
<td ><b>User Name</b></td>
<td ><b>Email Id</b></td>
</tr>
<tr>
<td class="table_border">Daniel</td>
<td class="table_border1"><a href="mailto:daniel@gmail.com">daniel@gmail.com</a></td>
</tr>
<tr>
<td class="table_border_last">James</td>
<td style="border-bottom: none;"><a href="mailto:james@yahoo.com">james@yahoo.com</a></td>
</tr>
</tbody>
</table>
<p>So, if you are looking for a PHP Framework with exceptional performance, compatible with any standard hosting services along with various versions of PHP and with any template language, almost nil configuration hassles, does not ask you to follow rigid coding rules and crystal-clear user guide and documentation; then you are referring to the CodeIgniter PHP Framework.</p>
<p>&nbsp;</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/using-codeigniter-php-application-development/">Using Codeigniter for PHP application development</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Stored Procedures Tips</title>
		<link>https://www.macronimous.com/resources/articles/stored-procedures-tip/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Thu, 02 Mar 2017 09:51:51 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1081</guid>

					<description><![CDATA[<p>Here is some practice tips which you can remember and apply when writing SPs Use SET NOCOUNT ON, this will reduce unnecessary return values as<a href="https://www.macronimous.com/resources/articles/stored-procedures-tip/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/stored-procedures-tip/">Stored Procedures Tips</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Here is some practice tips which you can remember and apply when writing SPs</p>
<ul>
<li>Use SET NOCOUNT ON, this will reduce unnecessary return values as by default stored procedure by default will return single value.</li>
<li>Don’t Prefix Stored Procedure names with “sp_” as it is specifically reserved for Master database. When ever you make a call to the stored procedure when it finds “sp_” it first scans in the MASTER Database before checking them in the other databases.</li>
<li>When you need to execute a dynamically constructed SQL Statement through a varchar / string variable, you should use the sp_executesql instead of the EXECUTE statement.</li>
<li>If you ever want to calculate the Total Time that your procedure actually executes you can do that by the below given method.</li>
</ul>
<pre>DECLARE @starttime datetime
SELECT @starttime = GETDATE()

… Your code here …

SELECT DATEDIFF(ms, @starttime, GETDATE()) AS 'Total Time (ms)'
</pre>
<ul>
<li>If you want to use a result set of a stored procedure in another procedure you can easily do it by the below method.</li>
</ul>
<pre>CREATE PROC usp_subTable as
select * from pubs.authors
Create PROC usp_MainTable as
select * into #NewTable From usp_subTable
</pre>
<ul>
<li>If you are passing more then 4000 characters in a Varchar Datatype, it wont accept and it truncates value. You should pass them in multiple variables.</li>
<li>If you want to clear all of the Cached Execution Plans of the Stored Procedure, you can use “DBCC FREEPROCCACHE”. If you want to clear procedure cache for your database alone you need to use “DBCC FLUSHPROCINDB”. (Microsoft doesn’t recommends these commands for use)</li>
<li>Stored procedures have their best advantage when it operates on compile once and execute many times. So make sure not to use RE COMPILE Option or use it when absolutely needed.</li>
<li>When you stored procedure is using any DDL Statements (eg. Create / Drop Tables etc..,) you should use it before any of the DML Statement (eg. Select, Update, Delete etc..,), this is because after every DDL Statement the Procedure Re Compiles in order to take in to account of the changes made to the objects which may be referred in your DML Statements.</li>
<li>Avoiding Nesting Stored Procedures can boost SQL Server’s internal memory performance.</li>
<li>Its good practice to call stored procedures with the format.</li>
</ul>
<p><i>&lt;&lt;dbname&gt;&gt;.&lt;&lt;username&gt;&gt;.&lt;&lt;storedproceduresname&gt;&gt; as it makes the SQL server’s scanning job easier.</i></p>
<ul>
<li>Output Parameters are best suited while returning single values from a procedure.</li>
<li>While using Dynamic SQL Statements, Please ensure you are taking care of SQL Injection attacks. To get more insight on Dynamic SQL you can verify <a href="http://www.sommarskog.se/dynamic_sql.html" target="_blank" rel="noopener noreferrer">http://www.sommarskog.se/dynamic_sql.html</a></li>
</ul>
<h3>Some Frequently used System / Inbuilt Stored Procedures</h3>
<p><strong>sp_server_info :</strong> Gives complete information about the current SQL Server that you are connected to.<br />
<strong>sp_databases, sp_helpdb </strong>– Lists all the databases, with this two sp_helpdb provides more precise and clear information on the size, status created date etc..,<br />
<strong>sp_attach_db, sp_detach_db</strong> – These stored procedures are usefull when you are porting a database from one server to another server. This is one of the best methods to change the database without any problems. This is just like copying a file from one place to another place. The Operation is to Detach from the Source and Attach to the Destination. After this you may need to use sp_change_users_login to update the logins and users link.<br />
<strong>sp_helpuser</strong> – Lists all the users in the system.<br />
<strong>sp_who, sp_who2</strong> – Gives the list of logged in users and their complete details about the execution status.<br />
<strong>sp_msforeachtable</strong> – This is one of the undocumented procedures, which you can used to find the Total Physical Space Occupied by each tables in the database.<br />
Eg:sp_msforeachtable &#8216;sp_spaceused &#8220;?&#8221;&#8216;<br />
<strong>sp_password</strong> – Used to change password for an SQL Server Login.<br />
<strong>sp_tables</strong> – Lists all the tables and virtual tables (Views) along with the system tables, with information’s including table owner.<br />
<strong>sp_stored_procedures </strong> &#8211; Lists all the stored procedures as like the table list with custom stored procedures in name; 1 format. (Please note it doesn’t mean that you can execute all the procedures that are listed, it depends on the permissions that you have)<br />
<strong>sp_help</strong><em>tablename</em> – Lists all the information pertaining to the given tablename with details about every column, constraints and the file table is located.<br />
<strong>sp_helptext</strong> &#8211; Used to view the contents of a view, stored procedure, user defined functions.<br />
<strong>sp_changeobjectowner</strong> &#8211; <em>Changing Table / Stored Procedure Owner</em><br />
If you ever want to change the owner of the object to another user this procedure will be helpful.<br />
<strong>sp_change_users_login</strong> – This is a very useful procedure when you are porting the database using sp_attach_db and where you need to keep your old logins and users as same.<br />
sp_change_users_login ‘Auto_Fix | Report | Update_One ’, ‘username’, ‘login_name’<br />
The <em>Auto_Fix</em> is the best option in most of the cases where it automatically creates and links the login name to the given username. But it works only if the database user and the login are identical.<br />
The<em> Report</em> option just gives information about the usernames and logins that the database has permission.<br />
The <em>Update_One</em> option is used to specifically update the login of a database user.</p>
<h3>Creating HTML Output from SQL Server</h3>
<p>Creating HTML Output is an option available in SQL Server 6.5 or above. This option helps us to create HTML Outputs for a given query. This option is useful if every want to create periodical reports. I would say this is the starting point for Microsoft to develop reporting services. There are three build in stored procedures available to create such tasks.<br />
sp_makewebtask, sp_runwebtask, sp_dropwebtask each does that job as their name implies. More information on how to create and deploy web tasks can be found here.<br />
<a href="http://msdn2.microsoft.com/en-us/library/ms186284.aspx" target="_blank" rel="noopener noreferrer">http://msdn2.microsoft.com/en-us/library/ms186284.aspx</a><br />
<a href="https://www.macronimous.com/resources/calling-stored-procedures-from-asp-net-and-vb-net-2">Calling stored procedures from VB.NET</a></p>
<p><a> </a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/stored-procedures-tip/">Stored Procedures Tips</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>A to Z of stored procedures for ASP and VB Programmers</title>
		<link>https://www.macronimous.com/resources/articles/z-stored-procedures-asp-vb-programmers/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Thu, 02 Mar 2017 08:04:17 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1079</guid>

					<description><![CDATA[<p>The article is meant for ASP and VB Programmers, who always try to write hard core SQL statements embedded in their coding to communicate with<a href="https://www.macronimous.com/resources/articles/z-stored-procedures-asp-vb-programmers/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/z-stored-procedures-asp-vb-programmers/">A to Z of stored procedures for ASP and VB Programmers</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The article is meant for ASP and VB Programmers, who always try to write hard core SQL statements embedded in their coding to communicate with database. If you read this article, Its time for you to learn and switch over into Stored Procedures. You can find a number of resources on stored procedures, But unlike others in this tutorial I tried to give you the maximum possible information , from the Theory to the debugging of stored procedures. I can always update this if you give your valuable suggestions. Write me to <a href="mailto:enquiry@macronimous.com">enquiry@macronimous.com</a><br />
<em>Requirements: Programming knowledge in ASP or VB, MS SQL server &amp; Database concepts.</em><br />
When I was starting my carrier as a VB programmer, All I knew for connecting a Database with my front-end are, the Data control and RDO. Later When I moved to ASP, I was enjoying writing SQL statements. It was fun when the SQL statements were simple and hard when it comes to complex and nested queries. Writing direct SQL commands inside my VB or ASP program were not been a big issue to me, until I started thinking about performance of my applications. But when time came, I started learning Stored Procedures I was really encouraged to do possible re-factoring of my previous coding with Stored Procedures, and my life with direct SQL commands came to an end. I hope my SP(Stored Procedure) history was not boring. With an assumption that you are good in ASP or VB and SQL let us begin SPs.</p>
<h3>What are Stored Procedures?</h3>
<p>SPs are an advanced feature in SQL server that offers you to create, compile and run SQL statements in the server itself, to isolate your business logic from data logic and to improve the performance of your application.<br />
In short, write SQL queries in a specific format in the SQL server and call them from your application, instead of writing queries inside your program code.</p>
<h3>Why write Stored procedures?</h3>
<p>1.Mainly to increase the performance and the momentum to our programs. When you write a stored procedure, it will be pre-compiled by the SQL server, so that it can increase the speed of executing the queries and hence your application. When you write a stored procedure the database(DB) server automatically generates an execution plan for the procedure. The plan will be updated whenever a change is made in the procedure by the DB server.<br />
2.You can take away all your SQL commands so that the data logic can be isolated from your business logic(ie.,Coding). This kind of encapsulation helps the web server to read and interpret lengthy and complex SQL commands.<br />
3.Then like COM, stored procedures can be reused. For example if you want to do the same query in two different ASP pages or in VB forms, you can reuse the stored procedure which you have written for one page, It saves you time.<br />
4.The application code as well as the stored procedure code are becoming easy to maintain. Updating a stored procedure may not affect the other part of an application or user who uses the same stored procedure.<br />
5.The queries can be customized by using input/output parameters, like functions and procedures which you write in your programming languages.</p>
<h3>What are the types of Stored Procedures?</h3>
<p>There are three types of stored procedures. Microsoft supplies several stored procedures to manipulate and administrate the database. Apart from them can write custom stored procedure to use them in our application level.</p>
<h4>1. System stored procedures:</h4>
<p>System stored procedures are mainly used for administrating, assisting, configuring and monitoring the SQL server.</p>
<h4>2. Extended stored procedures:</h4>
<p>Extended stored procedures are used to access SQL server by using dlls. We can use C or C++ to write extended stored procedures with Dlls. One good example is accessing the operating system commands on SQL server. We can use a stored procedure called <em>xp_cmdshell</em> to to run a DOS command, like the following one.will list the files in the root directory of C drive. xp_cmdshell &#8220;dir c:\&#8221;,</p>
<h4>3. Custom stored procedures:</h4>
<p>These are the stored procedures we write. There are several advantages in writing our own stored procedures. We are able to write complex and nested statements with less effort.<br />
In this article we focus only on custom stored procedures, in the following section.</p>
<h3>Where to write Stored Procedures?</h3>
<p>You can write Stored Procedures in the following possible ways,<br />
<strong>1. Using SQL Server Enterprise manager</strong> &#8211; To create a stored procedure, Open SQL server enterprise manager,</p>
<ul>
<li>Expand a server group; click and expand a server.</li>
<li>Expand Databases; select the database where under which you want to create the procedure.</li>
<li>Right-click Stored Procedures; then click New Stored Procedure.</li>
<li>Type the stored procedure. Press CTRL-TAB to indent the text of a stored procedure.</li>
<li>To check the syntax, click Check Syntax.</li>
<li>To set the permissions, click Permissions.</li>
</ul>
<p><strong>2. Using Query Analyzer</strong> &#8211; Open query analyzer, select the DB, type the procedure and execute it.<br />
<strong>3. From ASP Code</strong> &#8211; Write the procedures, create the connection with the DB using ADO, call the procedures directly from your code.<br />
<strong>4. Using Visual Studio.NET</strong> &#8211; VS.NET users can write their procedures using &#8220;create New Procedure&#8221; like in Enterprise Manager and check the syntax there itself.<br />
<strong>5.Create using Enterprise manager wizard</strong> &#8211; We can also use the wizard to create the procedures. Follow the steps to use the wizard.</p>
<ul>
<li>Expand a server group; then expand the server in which to create the view.</li>
<li>On the Tools menu click Wizards&#8230;</li>
<li>Expand Database.</li>
<li>Double-click Create Stored Procedure Wizard.</li>
<li>Complete the steps in the wizard.</li>
</ul>
<h3>Starting Stored Procedures</h3>
<p>Now let us see an example procedure and peek into it a while for the basic understanding and structure of any stored procedure. I prefer enterprise manager to write stored procedure, and during the time of learning I recommend you to use Enterprise manager.</p>
<pre>CREATE PROCEDURE sp_selauthors AS
BEGIN

SELECT au_fname,au_lname,title,pub_name,pub_year
FROM tblAuthors
WHERE pub_name = 'WROX'

END

GO
</pre>
<p>After tying the procedure you can immediately check the syntax. Here all the SQL commands will be written in the BEGIN&#8230;END block. Here sp_selauthor is the procedures name.</p>
<h3>All about parameters</h3>
<p>We have seen a simple stored procedure that just selects the required values from a table. Now let us see a little more complex stored procedure with parameters. Stored procedures allow input and output(i/o) parameters to have a better control over the i/o values.<br />
Here is an example with an input parameter,</p>
<pre>CREATE PROCEDURE sp_selauthors
@publisher_name varchar(50)
AS
BEGIN

SELECT au_fname,au_lname,title,pub_name,pub_year
FROM tblAuthors
WHERE pub_name = @publisher_name

END

GO
</pre>
<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..[EXAMPLE1]<br />
In the above example, @publisher_name is the input parameter and the values will be sent by your ASP or VB code. We will see, how to send values shortly.<br />
Another example , an Insert statement, with two input parameter can help us to understand better.</p>
<pre>CREATE PROCEDURE sp_InsName
@FirstName varchar(20),
@LastName varchar(30)
AS
BEGIN
INSERT INTO Names(FirstName, LastName)values(@FirstName, @LastName)
END

GO
....................[EXAMPLE2]
</pre>
<p>Here is an example with an output parameter,</p>
<pre>CREATE PROCEDURE sp_sel_no_authors
@count_authors int OUTPUT
AS
BEGIN

SELECT @count_authors = Count(*) FROM
tblAuthors
WHERE tblAuthors.pub_Name = "Wrox"

END

GO
....................[EXAMPLE3]
</pre>
<p>Here,the total no of authors who write for WROX press will be counted and sent through the output parameter. You can see the keyword OUTPUT to differentiate the output parameter from the input parameter.</p>
<h3>Calling Stored procedures from your ASP code</h3>
<p>Now let us call the stored procedure from ASP code. I will take stored procedure EXAMPLE2, to explain.</p>
<pre>&lt;%Dim objConn, sqlInsName, FName, LName FName = "Benny" LName = "Alexander" set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "DSN=macdb;uid=test;pwd=test" sqlInsName = "sp_InsName '" &amp; FName &amp; "', '" &amp; LName &amp; "'" objConn.Execute(sqlInsName) %&gt;</pre>
<p>The line ObjConn.Excecute runs the SP from the ASP code. Hope you understand how simple it is.</p>
<p>In the following ASP code we are going to see how to use command object to execute a stored procedure and also to get a OUTPUT value from the stored procedure.<br />
Here I am using the stored procedure EXAMPLE3 for illustration.</p>
<pre>&lt;% <!--#INCLUDE VIRTUAL="/include/adovbs.inc"-->
Dim objConn, objCmd, objParam
set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DSN=macdb;uid=test;pwd=test"
Set objCmd = Server.CreateObject("ADODB.Command")
objCmd.CommandText = "sp_sel_no_authors"
objCmd.CommandType = adCmdStoredProc
objcmd.ActiveConnection = objConn
Set objParam = objCmd.CreateParameter ("@count_authors",adInteger,adParamOutput,4)
objCmd.Parameters.Append objParam
ObjCmd.Execute

No of Authors write for wrox are: &lt;%= objCmd.Parameters.("@count_authors")%&gt;

</pre>
<p>You may need a little explanation on the above written ASP code. Here I create a command object objCmd, and setting the parameters. The name of the returned variable is &#8220;@count_authors&#8221;, which is also mentioned in the stored procedure. The type of this variable is integer with length 4. When I execute the SP, sp_sel_no_authors, I get the return value, as output which can be displayed in the web page. I hope this two examples are sufficient enough for ASP programmers. Now let us turn to VB.<br />
<strong>A Tip:</strong>You may get an error when you pass date as an input parameter. In that case send the date as a string and convert the string as date inside the SP.<br />
For example if you pass the date as a variable called Orderdate, Then add the following lines of code in your stored procedure,</p>
<pre>DECLARE @Orderdate DATETIME
SELECT @Orderdate=CONVERT(datetime, @Orderdate)</pre>
<p>Here we convert the date string into datatime data type. In this way you can manipulate dates.</p>
<h3>Calling Stored procedures from your VB code</h3>
<p>If a stored procedures that do not return records (or rows) can be executed from Visual Basic with the ExecuteSQL() method as follows. That means we can not use this method with SELECT statements. But if the the SQL statement returns records then we need to use a Dynaset or Snapshot to capture the values. The following returns a set of recordset values using a Data control.</p>
<pre>objDC.Options = dbSQLPassThrough
objDC.Recordsource = "sp_sel_no_authors"
objDC.Refresh</pre>
<p>Another example can give you better understanding with stored procedures that return values and that not return values.</p>
<pre>Dim objDB as Database
Dim lng as Long
Dim objRS as Recordset
Set objDB = DBEngine.Workspaces(0).OpenDatabase("", False, False,"ODBC;_ DSN = macdsn;uid=test;pwd=test:") ' For SPs that don't return rows.
lng = Db.ExecuteSQL("YourSP_Name") ' SP which return rows.
Set ObjRS = Db.OpenRecordset("YourSP_Name", dbOpenSnapshot, _
dbSQLPassThrough)
Column1.text = objRS(0) ' Column one
Column2.text = objRS!ColumnName ' Column two
Column3.text = objRS("ColumnName")' Column three</pre>
<h3>Handling errors in stored procedures</h3>
<p>In this section we will cover the necessary information you need to know about finding and dealing errors in a stored procedure during the time of execution. In fact there are about 3800 SQL server error messages, which are maintained in the master catalog&#8217;s &#8220;sysmessages&#8221; table. Every error message has its own severity level and it ranges from 0 to 25, depending on how bad the error is.<br />
There are two types of errors you can face when you execute a stored procedure in a SQL server. One is Fatal and another one is nonfatal. Fatal errors normally terminates the execution of the SP and terminates the connection between the SQL server and the client application while nonfatal errors do not.<br />
Here is an example for Fatal error, I am trying to execute a SELECT SQL statement in a table which does not exist.</p>
<pre>CREATE PROCEDURE sp_Fatal
SELECT * FROM empDB
PRINT 'Table Does not exist.'
GO</pre>
<p>As this table doesn&#8217;t exist the SQL server raises a Fatal Error and the execution of the procedure terminates. So the PRINT statement will not be executed and we will not get the error message &#8216;Table Does not exist&#8217;. Instead we get the error message raised by the Server.</p>
<p>Server: Msg 208,Level 16,State 1,Procedure sp_Fatal,Line 3 Invalid object name &#8217;empDB&#8217;.</p>
<p>With one example the nonfatal errors can be illustrated. Let us assume that you are trying to Insert NULL value to a filed which is designed a Primary key. This will raise a non fatal error and will allow you to execute the entire procedure.</p>
<p>In three ways you can get the catch the errors in Stored procedures. Using @@ERROR, SP_ADDMESSAGE, and RAISERROR functions within SQL the Server. Let us discuss the one by one.<br />
<strong>@@ Error method:</strong><br />
The @@ERROR system function returns 0 if the last procedure executed successfully; if the statement generated an error, @@ERROR returns the error number. The following example explains with an Insert statement,</p>
<pre>CREATE PROCEDURE sp_addEmployee
@empId varchar(10),@empName varchar(40),@phone char(12),@address varchar(40) = NULL,
@city varchar(20) = NULL,@state char(2) = NULL,@zip char(5) = NULL
AS


INSERT INTO tblEmployee
(fldEmpId, fldEmpName, fldPhone, fldAddress, fldCity, fldState, fldZip) values (@au_id,@au_lname,@au_fname,@phone,@address,@city,@state,@zip,@contract)

IF @@ERROR &lt;&gt; 0

BEGIN
PRINT "An error occurred while adding the new Employee information"
RETURN(99)
END
ELSE

BEGIN
PRINT "The new author information has been loaded"
RETURN(0)
END
GO
</pre>
<p>In this example the IF&#8230;ELSE statements test @@ERROR after an INSERT statement which inserts the employee details in a stored procedure. The value of the @@ERROR variable determines the return code sent to the calling program, indicating the success or failure of the procedure.<br />
Using SP_ADDMESSAGE :</p>
<p>SP_ADDMESSAGE is a system stored procedure used to add a new error message to the sysmessages table. This message could be a custom defined one. The syntax for this stored procedure is,</p>
<pre>sp_addmessage [@msgnum =] msg_id,
[@severity =] severity,
[@msgtext =] 'msg'
[, [@lang =] 'language']
[, [@with_log =] 'with_log']
[, [@replace =] 'replace']</pre>
<p>Here, [@msgnum =] msg_id is the ID of the message; [@severity =] is the severity level of the error (severity is smallint) and value varies from 0-25 as mentioned earlier; [@msgtext =] &#8216;msg&#8217; is the text of the error message; [@lang =] &#8216;language&#8217; is the language for this message, which helps to display the error message in multiple languages. [@with_log =] is whether the message is to be written to the Microsoft® Windows NT® application log when it occurs, the value will be true or false. [@replace =],If specified as the string REPLACE, an existing error message is overwritten with new message text and severity level.<br />
An example which adds a new error message is,</p>
<pre>EXEC sp_addmessage 50001, 16,
N'Give perscentage value betwwn 1 to 10
Please reexecute with a more appropriate value.'
</pre>
<p>The RAISERROR method:<br />
Though you can use print statements, RAISERROR is a more powerful statement than PRINT, for returning messages back to applications. In two ways RAISERROR can return messages.<br />
1. Using sp_addmessage a user-defined error message has been added to master.dbo.sysmessages<br />
2. Using the message string specified in the RAISERROR statement.<br />
The advantages of using RAISERROR over PRINT is it can assign a specific error number, severity, and state. Moreover the error can be logged.<br />
The syntax for RAISERROR method is as follows,</p>
<pre>RAISERROR ({msg_id | msg_str}, severity, state
[, argument1 [, argument2]])
[WITH options]
</pre>
<p>Hope we have discussed sufficiently, to start with stored procedures. To practice more, you can expand your applications with Indexes, Triggers etc.,. Meanwhile, we will cover SPs in another article for <a href="https://www.macronimous.com/resources/calling-stored-procedures-from-asp-net-and-vb-net-2">ASP.NET and VB.NET </a>developers. Write your comments to improve this article to <a href="mailto:enquiry@macronimous.com">enquiry@macronimous.com</a>.</p>
<p>&nbsp;</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/z-stored-procedures-asp-vb-programmers/">A to Z of stored procedures for ASP and VB Programmers</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Stored Procedure a Primer</title>
		<link>https://www.macronimous.com/resources/articles/stored-procedure-primer/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Thu, 02 Mar 2017 07:20:43 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1076</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img2-1-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="Offshore Outsourcing company" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div>
<p>Stored Procedures are special types of functions that can execute under the SQL Server Environment. SPs are said to be building blocks of any web<a href="https://www.macronimous.com/resources/articles/stored-procedure-primer/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/stored-procedure-primer/">Stored Procedure a Primer</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img2-1-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="Offshore Outsourcing company" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div><p>Stored Procedures are special types of functions that can execute under the SQL Server Environment. SPs are said to be building blocks of any web application / distributed / SaaS/client-server applications. There are several basic advantages in using stored procedures.</p>
<ul>
<li>Increases the Modularity.</li>
<li>Can serve as a Middle Tier / Business Logic in Multi-Tier Applications.</li>
<li>Uses the Network Traffic Efficiently.</li>
<li>Since they in Pre Compiled Format the execution is faster (Not Applicable for Procedures with RECOMPILE).</li>
</ul>
<p>SQL Server does have Different Category of Procedures Available.</p>
<table>
<thead>
<tr>
<th>Category</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Active Directory Procedures</td>
<td>Used to register instances of SQL Server and SQL Server databases in Microsoft Windows® 2000 Active Directory&#x2122;.</td>
</tr>
<tr>
<td>Catalog Procedures</td>
<td>Implements ODBC data dictionary functions and isolates ODBC applications from changes to underlying system tables.</td>
</tr>
<tr>
<td>Cursor Procedures</td>
<td>Implements cursor variable functionality.</td>
</tr>
<tr>
<td>Database Maintenance Plan Procedures</td>
<td>Used to set up core maintenance tasks necessary to ensure database performance.</td>
</tr>
<tr>
<td>Distributed Queries Procedures</td>
<td>Used to implement and manage Distributed Queries.</td>
</tr>
<tr>
<td>Full-Text Search Procedures</td>
<td>Used to implement and query full-text indexes.</td>
</tr>
<tr>
<td>Log Shipping Procedures</td>
<td>Used to configure and manage log shipping.</td>
</tr>
<tr>
<td>OLE Automation Procedures</td>
<td>Allows standard OLE automation objects to be used within a standard Transact-SQL batch.</td>
</tr>
<tr>
<td>Replication Procedures</td>
<td>Used to manage replication.</td>
</tr>
<tr>
<td>Security Procedures</td>
<td>Used to manage security.</td>
</tr>
<tr>
<td>SQL Mail Procedures</td>
<td>Used to perform e-mail operations from within SQL Server.</td>
</tr>
<tr>
<td>SQL Profiler Procedures</td>
<td>Used by SQL Profiler to monitor performance and activity.</td>
</tr>
<tr>
<td>SQL Server Agent Procedures</td>
<td>Used by SQL Server Agent to manage scheduled and event-driven activities.</td>
</tr>
<tr>
<td>System Procedures</td>
<td>Used for general maintenance of SQL Server.</td>
</tr>
<tr>
<td>Web Assistant Procedures</td>
<td>Used by the Web Assistant.</td>
</tr>
<tr>
<td>XML Procedures</td>
<td>Used for Extensible Markup Language (XML) text management.</td>
</tr>
<tr>
<td>General Extended Procedures</td>
<td>Provides an interface from SQL Server to external programs for various maintenance activities.</td>
</tr>
</tbody>
</table>
<p>Apart from the above list of procedures, we can write our own Custom Stored Procedures.</p>
<h5>How Stored Procedure Works internally?</h5>
<p>Stored Procedures does have a simple life cycle and it begins with the Create Proc statement, once the set of statements has been successfully passed the syntax checking the name of the procedure is stored in the sysobjects table and the entire procedure commands/statements will be stored in syscomments table.</p>
<p><img loading="lazy" decoding="async" class="size-medium wp-image-1078 aligncenter" src="https://www.macronimous.com/wp-content/uploads/cycle-470x151.gif" alt="Stored Procedure a Primer" width="470" height="151" /><br />
As you can notice from the above diagram while creating the stored procedures, the compiler would just perform Syntax Checking and it doesn’t look for the existence of the objects referred to in your procedure. So you can have total freedom to refer to any Dynamic Objects that may be created at runtime.<br />
The main advantage of using stored procedure is the effective utilization of the server’s resources when compared to issuing serious SQL Commands. Though there are is considerable advantage in using cached execution plans, both SQL Server 2000 and 2005 are designed to catch all the TSQL Batch Statements regardless of whether they are stored procedures or not.<br />
Apart from this, there are other advantages that you can consider while using stored procedures.</p>
<h3>Advanced Options in Stored Procedure Creation</h3>
<p>As we all know the basics of creating stored procedures, here we will be looking few advanced options such as</p>
<ul>
<li><strong>WITH RECOMPILE</strong>:- This option allows us to define a dynamic stored procedure that won’t operate on a pre-compiled plan and when used this procedure is recompiled at the time of execution.</li>
<li><strong>WITH ENCRYPTION</strong>:- This option allows us to encrypt a stored procedure and we can’t view the stored procedure with the sp_helptext command. This type of stored procedure does have some disadvantages as it cant be published for Replication.</li>
</ul>
<h3>Temporary Stored Procedures</h3>
<p>Temporary Stored Procedures are a new set of features added to SQL Server 2000 and they can be created by creating temporary tables using “#” or “##” before the procedure name. All these temporary procedures are stored in tempdb and care must be taken not to put big procedures as temporary procedures. Small Procedures designed using WITH RECOMPILE Option can be replaced by these temporary stored procedures. But if you really need to execute series of dynamic SQL Statements, it is advised to use sp_executesql.</p>
<h3>Optional Parameters in Stored Procedure</h3>
<p>A Stored Procedure can be created with a default value for a parameter which we can also refer as Stored Procedures with optional parameters. Suppose if you need to design a common procedure for insertion, updating, and selection of records, and this procedure can be used to filter records using all the columns, here is a way to do it.</p>
<pre>Create Procedure ProcessAuthors (@OpType char(1), @Auth_ID numeric(3,0) =0, @Author_name varchar(100)=’’, @Author_Location varchar(100)=’’) as

CASE @OpType

WHEN ’I’ Then
Begin
--Write SQL Insert Query

End WHEN ‘U’ Then
Begin
--Write SQL Update Query

End WHEN ’S’ Then
Begin
-- Since we have Optional Parameters, while selecting records we just need to give the OpType Parameter and you can extend the selection by using another CASE statement for making selection based on all the criteria.

End
</pre>
<p><strong>Note:</strong> This kind of procedure will be recompiled for every combination and care should be taken while writing this kind of procedure as it cause performance havocs.<br />
<strong>Next: » </strong><a href="https://www.macronimous.com/resources/calling-stored-procedures-from-asp-net-and-vb-net-2">Calling stored procedures from ASP.NET and VB.NET</a></p>
<p>&nbsp;</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/stored-procedure-primer/">Stored Procedure a Primer</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SEO For eCommerce Site Development</title>
		<link>https://www.macronimous.com/resources/articles/seo-ecommerce-site-development/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Thu, 02 Mar 2017 06:59:39 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1075</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img-2-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div>
<p>SEO friendliness &#8211; An overview Developing or owning an eCommerce site involves more than just producing a final product. Equally essential are SEO for eCommerce<a href="https://www.macronimous.com/resources/articles/seo-ecommerce-site-development/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/seo-ecommerce-site-development/">SEO For eCommerce Site Development</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img-2-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div><h3>SEO friendliness &#8211; An overview</h3>
<p>Developing or owning an eCommerce site involves more than just producing a final product. Equally essential are SEO for eCommerce site development and other online marketing strategies, such as social media promotions. Often, individuals aiming to establish an eCommerce site overlook the importance of incorporating SEO readiness into their initial plans. However, it&#8217;s crucial to understand that preparing for SEO is as vital as developing the eCommerce site&#8217;s functionalities.</p>
<p>Unlike content-driven sites, eCommerce platforms often face unique challenges due to their database-driven nature and frequent product changes. These factors might negatively affect their search result rankings. However, the promising news is that optimizing an eCommerce site can be as straightforward as adding related keywords to a content site. By addressing the key issues that often keep dynamic sites from achieving favorable search results, we can elevate your eCommerce site to better positions on search result pages.</p>
<h3>Creating static pages:</h3>
<p>One approach involves constructing a front-end site that is distinct from the shopping cart. This method allows for the creation of numerous pages, which, assuming they&#8217;re well-structured and optimized, can be easily indexed by search engines. However, this strategy has a significant drawback. The size of your website will be indefinitely confined to that of the front-end site, making the management of such sites a challenge, especially when dealing with a large assortment of products.</p>
<h3>Off-the-self Shopping carts:</h3>
<p>The mentioned limitation introduces us to a second option: opting for a search engine friendly shopping cart system. Identifying such a system is easier said than done, given the variety of factors to consider. These include the indexability of the pages, the customization potential of individual pages, and the ease of product addition and page modification down the line.</p>
<p>The realm of eCommerce is set to witness exponential growth in the coming years, with online sales already heading towards billions. Numerous businesses are capitalizing on this evolving sales channel, with several retailers establishing significant online sales platforms. These have seen substantial success, particularly within the technology and business-to-business sectors.</p>
<p>A standard eCommerce homepage typically features the company logo and specific information at the top, sidebar navigation on the left, more prominent navigation in the center, and highlighted products and sales on the right. To achieve optimal online business targets and ROI, it&#8217;s crucial to develop search engine friendly eCommerce sites.</p>
<p>The header, generally an included file on each page, contains the company logo and top bar navigation. The logo should serve as a link to the homepage, include an alt tag, and possibly have a title attribute in the link tag. The remaining top navigation can consist of neatly formatted text links. There is no significant benefit in using graphic buttons for top navigation links, as many eCommerce sites currently do. Instead, employ simple text links and style them with cascading style sheets for a cleaner look. A useful tip is to dynamically alter the alt text tag for the company logo on each page to mirror the text on the title of the page. This tactic ensures that when conducting a site: www.yourdomain.com search on Google, all pages of the site will display without the frustrating message of omitted results due to perceived duplication. For usability and credibility, prominently display the store&#8217;s phone number on each page. Many sites conveniently include this information in the header file.</p>
<h3>How to develop an ECommerce catalog considering search engine optimization?</h3>
<h4>To Do 1: Dynamic Title &amp; Meta Tags:</h4>
<p>If you&#8217;re on a category page, the page title should include the category name, and likewise, if you&#8217;re on a subcategory page, the title should reflect the subcategory name. Let&#8217;s consider a website that sells compact discs as an example. If you&#8217;re on the audio compact disc page within the compact disc section, it would be beneficial to target the keyword phrase &#8220;audio compact disc&#8221; for that page&#8217;s title. This information can be incorporated into the Meta tags as well.</p>
<p>The Meta description syntax could be structured as &#8220;<em>Discover [sub-category name] at [product store name].</em>&#8221; For the Meta keywords, the following syntax can be used for category and sub-category pages; &#8220;<em>[category name in plural and singular forms, common category name misspellings, sub-category name in plural and singular forms, common sub-category name misspellings].</em>&#8221;</p>
<p>A control panel application on the backend can be instrumental in generating dynamic titles and tags for product category pages. This application could be designed with options for creating new product pages, adding a title, and incorporating Meta tag and alt tag features. This allows each product page to possess a unique title, Meta tag, and alt tag relevant to the product. Implementing this approach enables major search engines to index your page based on category titles and tags.</p>
<h4>To do 2: Logo and Image alt tags:</h4>
<p>The Search Engine (SE) friendly logo can be either text-based or graphic. In most cases, the logo will be a graphic. When it is, dynamically insert the alternative text to read &#8220;<em>[category name from store name]</em>&#8221; using alt tags. The reason behind this is that when checking if the pages are indexed in search engines, they usually pull the topmost content. If the topmost content is the logo and if the logo has the same alternative text on every page, the results will typically be filtered.</p>
<p>Every category and subcategory product page features product images, and these images should have alt tags related to product names. A backend control panel can be established to manage these logos and images. The control panel application can be designed with the functionality to create new product page images with alt tags that correspond to product names. Consequently, each product page image possesses a unique name based on the product. By employing this strategy, your product image alt tag page can be indexed by major search engines according to category and subcategory.</p>
<h4>To do 3: Header tags and dynamic breadcrumb trail:</h4>
<p>The repetition of the category or subcategory name in the header tags (<em>&lt;h1&gt;</em> and <em>&lt;h2&gt;</em>) towards the top of the page is highly recommended. Each category and subcategory product page carries its distinct product name, which should be incorporated into the h1 and h2 tags. The creation of a backend control panel can facilitate the management of these h1 and h2 tags for product pages. The control panel application can be designed to create new product page h1 and h2 tags corresponding to the product name, ensuring each product page&#8217;s h1 and h2 tags are unique and relevant to the product. By following this method, your product names alongside h1 and h2 tags can be indexed by major search engines based on category and subcategory.</p>
<p>Moreover, at the top of the page, it can be beneficial to include a &#8220;breadcrumb trail&#8221;. A breadcrumb trail is a concise, text-based guide that displays the click path taken to arrive at the current page. For instance, if you navigate from the homepage to the compact disc page and then to the audio compact disc page, the breadcrumb would read &#8220;<em>home -&gt; compact disc -&gt; audio compact disc</em>&#8220;. Each segment of the breadcrumb should be a text link to the corresponding page. The &#8220;compact disc&#8221; part of the breadcrumb trail, for example, would link back to that specific page. Not only does this improve user experience, but it&#8217;s also favored by search engines as it integrates keywords with links as internal links.</p>
<p>A dynamic breadcrumb code written in PHP could look as follows:</p>
<pre>Breadcrumb Code:

/* ---------------------------------------------- */
/* ------------ BEGIN PHP SNIPPET ----------------*/
/* ---------------------------------------------- */

// $this_cat_id: the current category id number
// $flarn: just a counter, call it as 0 in your
// function call and forget about it
// $keep_cat_id: the cat id number again - so that
// it can decide whether to make a
// category a link at the top while you're in the
// "product" page

function get_crumbs($this_cat_id, $flarn, $keep_cat_id) {

$link_to_page=$_SERVER['PHP_SELF'];


if (!isset($this_cat_id)) {
// if we are already "home", dont make home a link
$this_cat_id ="0";
echo "Home &gt;&gt; ";
}


// get the info and parent id for whatever category
// we're currently in
$sql = "SELECT id, parent_id, name from categories ";
$sql .="where id = $this_cat_id";
$show_crumb_&lt;font class="highlight"&gt;&lt;font class="highlight"&gt;trail&lt;/font&gt;&lt;/font&gt; = mysql_query($sql);
$num_crumbs = mysql_num_rows($show_crumb_&lt;font class="highlight"&gt;&lt;font class="highlight"&gt;trail&lt;/font&gt;&lt;/font&gt;);
// if we actually have some results....
if ($num_crumbs &gt; 0) {
list($cat_id, $cat_parent, $cat_name) =
mysql_fetch_row($show_crumb_&lt;font class="highlight"&gt;&lt;font class="highlight"&gt;trail&lt;/font&gt;&lt;/font&gt;);
$cat_id_array[$flarn] = $cat_id;
$cat_parent_id_array[$flarn] = $cat_parent;
$cat_name_array[$flarn] = $cat_name;
if ($cat_id_array[$flarn] &gt; 0) {
mysql_free_result($show_crumb_&lt;font class="highlight"&gt;&lt;font class="highlight"&gt;trail&lt;/font&gt;&lt;/font&gt;);
// increment $next by one
$next = $flarn+1;
if ($flarn == 0 ) {
echo "&lt;a href="/"&gt;Home&lt;/a&gt; &gt;&gt; ";
}
// now lets call the function again to loop through
// the other categories
// until we're left with none
get_crumbs($cat_parent_id_array[$flarn], $next, $keep_cat_id);
// Since $keep_cat_id is the id number of original
// category we're in,
// now we check to see whether or not we have to
// make the real category
// name a link or not
// (If we're looking at the main category display,
// we wouldn't have to,
// since we're already *in* the category. This is
// more useful for when you have a product
// display page, that way the link back to the
// category that item or product lives in
// will be created

if ($keep_cat_id==$cat_id_array[$flarn]) {
echo $cat_name_array[$flarn];
} else {
echo "&lt;a href="/"&gt;";
echo "$cat_name_array[$flarn]&lt;/a&gt; &gt;&gt; ";

}
}
}
}
</pre>
<p>You would call the function using something like this:<br />
get_crumbs($_REQUEST[&#8216;cat_id&#8217;], &#8220;0&#8221;, $_REQUEST[&#8216;cat_id&#8217;];<br />
For more detail click the below link</p>
<h4>To do 4: Top, Side, and Footer Navigations:</h4>
<p>Throughout your site, users should easily find consistent site navigation, always located in the same spot on all pages. Uniform navigation not only improves the user experience but also increases the likelihood of purchases, as satisfied visitors are often more inclined to buy. Many eCommerce stores strategically remove side navigation from checkout pages to keep customers focused on the buying process. This sidebar navigation should be HTML-based, serving as a mini site map on every page, which is both user and search-engine friendly.</p>
<p>Footer text links provide an opportunity to incorporate optimized text throughout your site, aiding search engines in better understanding the context of different pages. This optimized text can include your product category and subcategory names.</p>
<h4>To do 5: Left Side Navigation:</h4>
<p>The left-hand side navigation uniquely addresses two prevalent eCommerce challenges.</p>
<p>Firstly, it enhances usability. A well-structured left-hand side navigation bar lends clarity to your website. As long as the navigation remains consistent across all pages, visitors will have no trouble navigating your site.</p>
<p>Secondly, it improves search engine visibility. When a mini site map is present on the left side of each page, it becomes effortless for search engines to crawl and subsequently index your web pages.</p>
<p>Search engine crawlers require a mechanism to discover your pages. Numerous sites today make it challenging for crawlers to find these pages. If your left-hand side navigation is designed in Flash, most search engines will struggle to find the links to Flash files, rendering the pages behind the Flash files unreachable. A text-based sidebar is a solution that not only aids crawlers in navigating your site but also streamlines the shopping process for your customers.</p>
<h4>To do 6: Homepage Content Area</h4>
<p>Having content on the homepage will have an impact on your search engine rankings on the eCommerce sites. It is the content that the search engines look for while determining a page. The content should read well and contain your targeted keywords. Google will normally use the content on the page for your description in the results page when your homepage is being ranked for a specific keyword. Try to have an easy to read and catchy content.<br />
A &#8220;footer&#8221; remains an important final touch to the site. At the bottom of the homepage and on every page throughout the site is the site&#8217;s footer.</p>
<p>Remember search engines have to click on links in order to find your pages. The right-hand side products and specials are there to increase those products&#8217; visibility for search engines and your customer.</p>
<h4>To do 7: Dynamic URLs in Search Engine Address Bar</h4>
<p>Dynamic server-side Web technologies such as Hypertext PreProcessor (.php), Java Server Pages (.jsp), Active Server Pages (.asp), ColdFusion (.cfm), and Perl are used to develop websites with a large number of pages. These technologies provide programmers with the tools to build sites so that adding products or pages does not require extensive HTML work. In reality, all high-volume sites must use one of these technologies in order to maximize efficiency and stay profitable.</p>
<p>However, the issues that are to be addressed in regard to the way search engines crawl a dynamically driven Web site. These issues do not have to do with the pages that are generated, but with the URLs these technologies generate.</p>
<p>In order to have a better understanding of what a search engine looks for, let us take a sample URL and discover it.</p>
<p>A simple standard URL would look something like:</p>
<p><em>http://www.yourdomain.com/yourproduct.html</em></p>
<p>A complex URL would look something like: <em>http://www.Yourdomain.com/catalog.php?formid=4&amp;id=8&amp;bookrate=&amp;bookno=§ion=book</em></p>
<p>The first thing you notice is the .php extension, and you might think that the .php extension is causing the issue. That is not the case. Next, you will notice the question marks, equal signs, and ampersands within the URL. These question marks, equal signs, and ampersands are what are commonly referred to as &#8220;stop characters&#8221; in search engine optimization terminology. They are named stop characters because they signal search engines to stop crawling past a certain point, limiting the number of pages crawled on your site.</p>
<p>The search engine would like to index pages that are unique. Search engines decide to combat this issue by &#8220;pruning off&#8221; the URLs after a specific number of variable strings (i.e. ?. =. &amp;).</p>
<p>For example, the URL <em>http://www.yourdomain.com/client_portfolio_list.php?company=10</em><br />
Might be pruned down to <em>http://www.yourdomain.com/client_portfolio_list.php</em> by the search engine in order to limit the number of repeated content.</p>
<p>For this case, there are numerous methods of finding the same product and with an unlimited number of pages, how do we get the search engine to find each product and each method of finding that product? Search engines want to keep the number of pages that a site contains to a minimum in order to (1) eliminate duplicate search results with the same content and (2) make the crawling of the pages efficient.</p>
<p><strong>The solution for PHP is the program called Mod_Rewrite on the URLs to remove the stop characters from the URLs.</strong></p>
<p>A URL that once looked like</p>
<p><em>http://www.Yourdomain.com/catalog.php?formid=4&amp;id=8&amp;bookrate=&amp;bookno=§ion=book</em><br />
to something like<br />
<em>http://www.Yourdomain.com/catalog_section_book_id_6.html</em><br />
All stop characters could be replaced with underscores and more friendly URL characters and names.</p>
<p>For more information on Mod_Rewrite please visit the Apache module mod_rewrite page at: <a href="http://httpd.apache.org/docs/mod/mod_rewrite.html" target="_blank" rel="noopener noreferrer">http://httpd.apache.org/docs/mod/mod_rewrite.html</a></p>
<p><strong>The solution for ASP.NET support for URL Rewriting</strong><br />
<em>Void HttpContext.RewritePath(string path)</em><br />
Which should be called during the Application_BeginRequest() event in the Global.asax file. This is fine as long as the number of URLs to rewrite is a small, finite, manageable number. However most ASP sites are in some way dynamic, passing parameters in the Query String, so it requires a much more configurable approach.<br />
The storage location for all ASP.NET Configuration information is the web.config file, so we&#8217;d really like to specify the rewrites in there. Additionally, .Net has a fast regular expression processor, giving free and fast search and replacement of URLs.</p>
<p><strong>The solution for ASP support for URL Rewriting</strong><br />
( i) The ISAPI filter rewrites/replaces defined parts of the URL from the browser. It enables URL to scripts (.asp, .cgi, .idc) with parameters that look like static html pages or specifies the exact download filename generated by the script. You can also create a simple proxy server with IIS and any scripting engine (.asp,. aspx, …) using URL replacer.<br />
For more information on ASP URL Rewriting please visit<br />
<a href="http://www.motobit.com/help/url-replacer-rewriter/iis-mod-rewrite.asp" target="_blank" rel="nofollow noopener noreferrer">http://www.motobit.com/help/url-replacer-rewriter/iis-mod-rewrite.asp</a><br />
(ii) You built an eCommerce Web site that is entirely dynamic, but you don&#8217;t show up in the major search engines&#8217; results,<br />
Take a look at the following URL from a Web store:<br />
<em>http://www.yourwebstore.com/products.asp?pid=1000</em><br />
The above URL is ignored by search engines if found in a referring page. However, the URL generated by PortalPageFilter isn&#8217;t:<br />
<em>http://www.yourwebstore.com/PPF/pid/1000/products.asp</em><br />
All you have to do is call a function provided below to generate the URL on the referring page, but the calling page does not need to be modified. Refer to PortalPageFilter URL below<br />
http://www.alfasierrapapa.com/Products/PortalPageFilter/</p>
<h4>To do 8: The Category or Sub-Category Pages</h4>
<p>Category and sub-category landing pages are not only a must-have for usability purposes but a necessity for search engine visibility. The category pages are a way to break down your product offerings into a logical and meaningful classifications. By classifying or grouping your products into categories, you will be able to help your user better locate the product they are looking for and help the searcher land directly on the page he or she is searching for.</p>
<p>For example, let&#8217;s take some Web site that sells compact discs. The company can break down its products into three main categories. The main categories can be Video compact discs, software compact discs, And Audio Compact Discs. Your goal, as an SEO, is to target the keyword phrases &#8221; Video compact discs &#8220;, &#8221; software compact discs and &#8221; Audio Compact Discs &#8221; respectively. Within these three main categories, you will most probably want to break down into several deeper subcategories. For example, Audio Compact Discs can contain the following subcategories; pop, rocks, classical, western, and so on. By now you can see why category and subcategory pages are a necessity for both the customers and search engines.</p>
<h3>To do 9: Product display/Subcategory display:</h3>
<p>In the middle portion of the page, you should list out the products within that category or subcategory. You can also have a breakdown of more filter options. So when you are on the category page, it is a good idea to have text links in that middle portion to the subcategory pages. It is also important to have products on those pages, for those consumers who are not sure what they want. The product information should contain simple text-based links to the product detail page. The link should contain the product name, a short product description underneath, and then an eye-catching &#8220;buy now&#8221; or &#8220;more info&#8221; button. The product image should be clear, attractive, and large enough to entice a user&#8217;s action. The product image should contain alternative text with the product name and link to the product detail page. Filters for the category or subcategory pages can work to your benefit. Filtering by brand, price, size, or any other product attribute will give you a better shot at ranking well for more keyword phrases.</p>
<h3>To do 10: The Brand Landing Pages</h3>
<p>The brand landing pages work much like the category landing pages. They provide an extra level of product navigation that is useful for your consumer and great for your keyword rankings. With a brand landing page, you can target keyword phrases that are searched for daily. For example, I am looking for compact disc products, and I might search on &#8221; audio compact disc &#8220;. Your goal is to rank somewhere under the official audio compact disc. But you can target phrases even deeper than that, such as English audio songs, and Engish pop songs. The on-page construction works exactly the same way as the category or sub-category pages but you should substitute the proper keywords in the relevant places. I have provided a mock-up of a brand page that is targeting a specific subcategory of a brand below.</p>
<h3>To do 11: The Product Page</h3>
<p>Product pages are the easiest pages to rank well because they target the most specific keywords. It is thus important to properly name the product by keeping your Web visitors and search engines in mind. Your product pages are constructed similarly to the category or brand pages but they are focused around the keyword phrases that match that specific product. Let&#8217;s start from the top of the product page and discuss what elements are important to include.</p>
<h3>Other techniques and solutions to convert eCommerce sites into search engine friendly</h3>
<h4>Why is a shopping cart not search-engine friendly?</h4>
<p>It is extremely imperative that you set up your eCommerce site to use search engine-friendly URLs and if you can help it, meaningful identifiers. Most eCommerce sites are database driven and by default, most shopping carts are not search engine friendly. This presents a very large problem because search engines may have trouble navigating to your product pages. Letting a search engine index your home page is not enough because people often search for exact products. For instance, if you run a golf store you would find that while some people do search for &#8220;golf clubs&#8221; they usually search for a specific brand or model club.</p>
<h4>What do Session Ids do?</h4>
<p>This goes along with search engine-friendly URLs but it is so important it deserves its own section. Most shopping carts end up putting session IDs in the URL in order to track visitors, something that is required for shopping carts to function. You&#8217;d be much better off storing the information in cookies if you can so that if someone wants to link to one of your products they won&#8217;t end up linking to a URL with a session ID in it. However, that doesn&#8217;t address the issue of search engines because even if you use cookies by default in most cases you&#8217;ll still end up putting the ID in the URL for a search engine because search engines do not accept cookies.</p>
<p>There are three ways you can handle this situation. One way is to detect search engines by accessing the HTTP_USER_AGENT variable and turning to track off for them. This is technically cloaking, however, it is benign as you&#8217;re using it to show the search engines what your visitors can see. Of course, malicious cloaking is showing search engines something your visitors do not see.</p>
<p>The other way to handle this is to detect if cookies are turned on. You do this by writing a cookie and then immediately trying to read from it. If you cannot read from it then the client does not have cookies turned on and you can then turn tracking off. This has the benefit of working for all search engines, regardless if you know their user agent or not. However, this also means that if a real person doesn&#8217;t have cookies turned on they won&#8217;t be tracked either.</p>
<p>The third way to handle this is to simply turn to track off for everyone until someone logs in, tries to view their cart, and or adds a product to their cart. Since you will make it impossible for a search engine to do any one of those things this means that users will all have the functionality they need when they need it, and search engines will not be hindered.</p>
<h4>Why Don&#8217;t Some Ecom Pages Need PageRank?</h4>
<p>PageRank is passed from page to page via links and the more links on a page the less each link gets. So if you have 5 links on a page and 4 go to pages that you want to have PageRank and one goes to a page that you don&#8217;t want to have PageRank then you&#8217;re sending 20% of the possible PR from that page to a place that doesn&#8217;t need it. This is a problem.<br />
For an eCommerce site, you have quite a few pages that don&#8217;t need PageRank. For instance, every single &#8220;My Account&#8221; &#8220;Your Cart&#8221; and or &#8220;Add to Cart&#8221; link is potentially draining PageRank from your product pages. This is bad. There is no reason that a search engine needs to see these pages. A search engine isn&#8217;t a shopper after all. The solution is to make sure the search engines do not see these pages. You can do this by using form or JavaScript-based navigation to access these pages (which a search engine cannot follow) but by far the easiest way to do this is to simply use robots.txt to deny them access. Doing this will stem any potential PR loss, which will, in turn, raise the PR of the rest of the pages on your site.</p>
<h4>Dynamic tags for product pages by a control panel</h4>
<p>In eCommerce sites, dynamic tags for product pages can be generated with the help of a control panel application at the backend. Control panel application can be built with the option to create new product pages and to add title, Meta tag, and alt tag features for created product pages so that each and every product pages have its individual title, Meta tag, and alt tag according to products. With this idea, your page can be indexed to major search engines according to tags and link names with product IDs. Moreover, title, Meta, and alt tags for product pages with IDs can be created dynamically with the help of a control panel.</p>
<h4>Now Finalizing!</h4>
<p>These issues are not unique to eCommerce sites. Once you address these issues you can work on SEO that is common for any type of site, such as increasing link popularity, using meaningful text links wherever possible for your internal navigation, adding keywords to your title and heading tags, and other things of that nature.</p>
<h4>For more details click bellow link</h4>
<p>I-Search Engine-Friendly URLs<br />
<a href="http://www.sitepoint.com/article/search-engine-friendly-urls" target="_blank" rel="noopener noreferrer">http://www.sitepoint.com/article/search-engine-friendly-urls</a><br />
II-Search Engine-Friendly catalog<br />
<a href="http://www.nexternal.com/seocatalog" target="_blank" rel="noopener noreferrer">http://www.nexternal.com/seocatalog</a></p>
<p>&nbsp;</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/seo-ecommerce-site-development/">SEO For eCommerce Site Development</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Search Engine Optimization for Beginners</title>
		<link>https://www.macronimous.com/resources/articles/seo-for-beginners/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Thu, 02 Mar 2017 06:06:49 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1074</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/SEO-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/SEO-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/SEO-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/SEO.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div>
<p>There are millions of users using search engines, especially Google to find information from billions of sites. The chances of increasing your visitors are high<a href="https://www.macronimous.com/resources/articles/seo-for-beginners/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/seo-for-beginners/">Search Engine Optimization for Beginners</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/SEO-470x290.png" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" srcset="https://www.macronimous.com/wp-content/uploads/SEO-470x290.png 470w, https://www.macronimous.com/wp-content/uploads/SEO-768x474.png 768w, https://www.macronimous.com/wp-content/uploads/SEO.png 1200w" sizes="auto, (max-width: 470px) 100vw, 470px" /></div><p>There are millions of users using search engines, especially Google to find information from billions of sites. The chances of increasing your visitors are high if your site is positioned only on top pages in the search engines or Directories. This article teaches you to prepare your site for search engines and helps you promote your site in a straightforward way. The author has more than 20 years of experience with search engines and SEO. This is an updated version of the article written in the year 1998. If you have any clarifications you can contact the author at <a href="mailto:enquiry@macronimous.com">enquiry@macronimous.com</a></p>
<h3>What are Search Engines and Directories?</h3>
<p>Sites providing search facilities are of two types. A search engine is a software compiled Index or a human-compiled directory. In other words, it&#8217;s a huge database that contains links to all the websites that have been submitted to them including a few details about each site. The main difference between the two is that one is reviewed by a human being and the other by a Spider or Robot.<br />
In some cases, the person who reviews your site may reject it because it is not submitted in the proper category or if the site is not good for its quality. But in the case of a computerized search engine, a program called a Robot or Spiders sent by the engine to visit the submitted site, collect the information about the site, and then include it in the search engine database. These Robots are faster and not as discriminating as human beings.</p>
<h3>How to prepare your site SEO?</h3>
<p>Before submitting your site to any search engine you&#8217;ll need to make sure it is ready. You may need to prepare the web page title, META tags (keywords and Description), and some of the first few lines of text on the page you submit.</p>
<blockquote><p><b>Macronimous Client amusement:</b><br />
&#8220;Yesterday I got my first order from our website. Maybe soon others will find me. It was exciting. Thanks &#8211; Michael Kelly&#8221;</p></blockquote>
<h4>&lt;title&gt; Tag</h4>
<p>The title is the one you see at the top of the browser as your website title. It is not the one that appears on your web page. The search engine will give a high degree of importance to the words in the title. Therefore, if someone is searching for Alaska logistics and if the word Alaska Logistics is in the title of the site then there is a good chance of the site appearing on the first page of a search. If you open the HTML source of this web page you would find something that looks like this.</p>
<p style="text-align: center;"><em>&lt;title&gt;Alaska Logistic solutions&lt;/title&gt;</em></p>
<p>You need to type the title of your site in the place between &lt;title&gt; and &lt;/title&gt; as it appears above.</p>
<h4>META tags</h4>
<p>META tags announce all the details about your site to a search engine. They are hidden in the code of the website and can give different information to the search engines, for example, keywords, description, author and more. Though these are all optional on any web page it&#8217;s a must for marketing your site through search engines. Each search engine gives its own weight to each META tag. It is therefore important to know some of the things that interest these search engines.</p>
<h4>Keywords</h4>
<p>Keywords are the words or phrases which are used by the search engine to locate a site. It is really important to phrase the keywords carefully so that any user who is using a search engine may find your site when he/she enters the appropriate keywords or phrases. You should come up with a set of keywords that exactly fit into the content of your site and its goals and purpose. If you view the source of this page you&#8217;ll be able to find the keywords which I used. The example below gives you an idea of what the keywords would look like for the page you are now reading.</p>
<p><em>&lt;</em>META<em> name=&#8221;keywords&#8221; content=&#8221;Search Engine Optimization, website marketing, Social Media Marketing&#8221;&gt;</em></p>
<p>You need to really work hard on finding the best keywords. Try and put yourself in the shoes of the person looking for your site. What words or phrases would she/he use?</p>
<p>Well, Search Engines like Google have become smarter by recognizing natural language keywords, using which you can focus on long-tail keywords.  By adding some questions and answers you can pave the way to search engines to recognize long-tail keywords or natural language queries.</p>
<h4>Description</h4>
<p>This is also a META tag that tells the search engine about your site. It is the description that appears below the title in the search results. This should be around 50 to 60 words. The description is often difficult to prepare. On one hand, it needs to be very appealing and cause the person to click and go to your site. On the other hand, it should contain good keywords and phrases to get a high ranking in the search results. To get a good ranking it is necessary to prepare a very good description that repeats your title and at least one or two keywords on which you want to focus. This META tag like the others should be added to the HTML source, may look like this:<br />
<em>&lt;meta name=&#8221;description&#8221; content=&#8221;We ship goods from and to Alaska&#8221;&gt;</em><br />
You can learn more about meta tags at <a href="https://www.searchenginewatch.com/2018/06/26/the-ultimate-guide-to-meta-tags-why-they-matter-and-how-to-optimize-them-for-impact/" target="_blank" rel="noopener noreferrer">www.searchenginewatch.com</a>, read more on the <a href="https://www.wordstream.com/meta-tags" target="_blank" rel="noopener noreferrer">WordStream</a> on META tags and SEO.</p>
<h3>What is Spamming?</h3>
<p>Search engines are very sensitive to the data that you feed them. The keywords that you use might be repeated in the title, keywords, description, and in content. This is OK but there is a limitation in repeating the keywords. You should be really careful about how many times you repeat them. All the search engines will allow a certain level of repetition of a keyword. However, if it is higher than what they permit, it will be considered spamming and your page will never get indexed. The spiders can calculate the keyword ratios faster than you can.</p>
<p>Here are some tips to avoid spam:</p>
<ul>
<li>Do not use the text color of the same as the page background color and hide text.</li>
<li>Avoid repeating keywords more than 3 times. Do not dump pages with keywords.</li>
<li>Do not try to create one page for promotion to not change it with some other page after getting indexed.</li>
<li>Put only relevant keywords. Do not try to use some popular keywords just to get hits that are related to your page.</li>
<li>Form your keyword wisely. Do not use words like &#8220;Great&#8221; &#8220;Extraordinary&#8221; or Sentences like &#8220;we are the only one&#8230;&#8221;.</li>
</ul>
<h3>How to Register your web pages?</h3>
<p>Submitting a site to any search engine is fairly simple. On the home page of the search engine locate the &#8220;Add your site&#8221; or &#8220;Register URL&#8221; or &#8220;Submit your site&#8221; link. Simply follow the instructions given by each search engine to add your site. Some of the search engines may ask you to submit all the pages that you want to be indexed, for example, AltaVista. Some ask that you submit only one page URL of your entire site and all the remaining pages will be spidered. This means that the search engine will automatically add the remaining pages. <a href="http://www.google.com/" target="_blank" rel="noopener noreferrer">Google</a> is an example of this. In Google there is no direct link like &#8220;Add URL&#8221;, then where will you submit it? Just do a search on <a href="http://www.google.com/" target="_blank" rel="noopener noreferrer">Google</a>.<br />
Submitting to the directories like is a tiresome job. Since they keep web pages under separate categories (directories), you will need to find the best category under which your site will fit. Remember, these are viewed by human beings. If you submit to irrelevant categories it may be considered spamming causing your site submission could be omitted.</p>
<h3>How to get Get listed?</h3>
<p>Now you know that submitting your site is not a big deal, but how sure are you that your site will be indexed? Getting indexed is nothing but getting a place for your site in the search engine&#8217;s database. How do you find out if your site has been added to the search engine? It&#8217;s easy. If you search with your URL or domain name as the keyword and the results of the search will show whether you are indexed in that search engine.<br />
Each search engine has its own policies (secrets!) to accept URLs that have been submitted. Some search engines take less time than others to get you listed. Be patient. Directories take more time since they need human intervention. It is good practice to resubmit the pages once in thirty or forty days regardless of whether the site has been listed or not.</p>
<ul>
<li><a href="http://addurl.altavista.com/sites/addurl/newurl" target="_blank" rel="nofollow noopener noreferrer">AltaVista</a><br />
In the search box enter http://mysite.com. You need to add the promotion code which appears on the site.</li>
<li><a href="http://www.hotbot.com/" target="_blank" rel="noopener noreferrer">HotBot</a><br />
Enter your domain and subdirectory in the form given.</li>
<li><a href="http://www.excite.com/" target="_blank" rel="noopener noreferrer">Excite</a><br />
Select Advanced Search. Select the option &#8220;URL must contain the phrase&#8221; and enter the URL.</li>
<li><a href="http://www.lycos.com/" target="_blank" rel="noopener noreferrer">Lycos </a><br />
Enter the complete URL, like http://www.mysite.com/</li>
<li><a href="https://www.google.com/" target="_blank" rel="noopener noreferrer">Google</a><br />
Free listing with SEO or PPC/Adwords. You have to pay per click. First, you bid on your keyword and pay.</li>
</ul>
<h3>Where are you?</h3>
<p>If your site has been listed then you may want to know where you rank. If you can find your site in the first 20 positions you have done a nice job. If you are not ranked in the first two pages, then again you need to do some work. To save time finding your rank you can use position analysis tools. But we don&#8217;t recommend any tools.<br />
You can submit your site but in my opinion, if you are not in the first three pages then there is no benefit. If this is the case then you need to start thinking about professional services!</p>
<h3>What is a Professional link-building service?</h3>
<p>Professional services can offer result-oriented back-link building. It takes a lot of effort and understanding of the inner workings of search engines as well as fine-tuning your site. Here are some steps that you can do to improve your rankings.</p>
<ul>
<li>Try again with the keywords you used before.</li>
<li>Visit 5 or 6 competing sites ranked at the top.</li>
<li>View their HTML source and understand their usage of titles and META tags.</li>
</ul>
<p>This will give you an idea of how they got to the top. After this, you may need to tweak your site at a constant interval. You may need to change the content to make sure the keywords are in the content with allowable repetition. Do not hesitate to modify your content.<br />
You can learn the latest search engine strategies from articles available online. Try to subscribe to some newsletters with search engine news. You can use web-based site promotion tools like Selfpromotion.com. This is a great tool that can help you a lot. At the bottom of this page, I mention some other useful sites.</p>
<h3>Do you like to learn more?</h3>
<p>To understand search engines and their ranking strategies you need to study their secrets constantly. The only way to do this is through researching and listening to what others say. Here are some links which can help you to learn more.</p>
<p><a href="http://www.searchengines.com/" target="_blank" rel="noopener noreferrer">Searchengines.com</a><br />
SearchEngines.com offers four highly effective solutions to achieve targeted web traffic for your company&#8217;s website<br />
Spider-food.net<br />
This is a good place to go for an easy explanation of site promotion. She also describes each major search engine in detail with pointers on how to submit to each. Lots of resources and articles.</p>
<p><a href="http://searchengineworld.com/" target="_blank" rel="noopener noreferrer">Searchengineworld.com </a><br />
This site is the home of the widely read Search Engine World Quarterly Magazine for webmasters and search engine promotion specialists</p>
<p><a href="http://Searchenginewatch.com/" target="_blank" rel="noopener noreferrer">Searchenginewatch.com</a><br />
Great tips and news about each search engine&#8217;s characteristics by Danny Sullivan. Secret tips for paid subscribers. A must-read for all webmasters</p>
<p><a href="http://Searchengineforums.com/" target="_blank" rel="noopener noreferrer">Searchengineforums.com</a><br />
An archive of all the search engine message boards and some site promotion forums. You can post your questions on the board and exchange ideas<br />
with others like you.</p>
<p><a href="http://Linkpopularity.com/" target="_blank" rel="noopener noreferrer">Linkpopularity.com</a><br />
Link popularity is the total number of websites that link to your site. It&#8217;s important because good link popularity can dramatically increase traffic to your website. Well-placed links are an excellent source of consistent and targeted traffic. Due to recent developments, they can even generate additional search engine traffic to your site. You can check your link popularity here. We feel some search engines give weight to link popularity too.</p>
<p><a href="http://www.Moz.com/" target="_blank" rel="noopener noreferrer">Moz.com</a><br />
Plenty of good information on SEO Social Media and other site promotion tools. An expert panel of authors from Moz shares their vast experience on their blog. They also provide free and paid tools that can help your SEO efforts simple.</p>
<h3>How can we help you?</h3>
<p>&#8220;For large and small companies optimizing their web pages to provide a top listing in search engines such as Google, represents a task to be outsourced to professionals. &#8221; &#8211; says Darrell Zahorsky of About.com. We have over 18 years of experience in search engine optimization and look at <a href="https://www.macronimous.com/services/inbound-marketing/outsource-seo-services">our services</a> which you might be interested in.</p>
<p>&nbsp;</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/seo-for-beginners/">Search Engine Optimization for Beginners</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Practical SEO Techniques E-book</title>
		<link>https://www.macronimous.com/resources/articles/practical-seo-techniques-ebook/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Thu, 02 Mar 2017 05:21:10 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1072</guid>

					<description><![CDATA[<p>What is in the new EBook edition? This is the second edition of our FREE EBook, Practical SEO Techniques Version 2.0. If you are an<a href="https://www.macronimous.com/resources/articles/practical-seo-techniques-ebook/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/practical-seo-techniques-ebook/">Practical SEO Techniques E-book</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>What is in the new EBook edition?</h3>
<p>This is the second edition of our FREE EBook, Practical SEO Techniques Version 2.0. If you are <img loading="lazy" decoding="async" class="size-full wp-image-1073 alignright" src="https://www.macronimous.com/wp-content/uploads/seo-e-book1.jpg" alt="Practical SEO Techniques E-book" width="109" height="144" />an aspiring SEO professional or working with Panda, Penguin, Hummingbird etc each day – This small little book could help you every day.<br />
The first edition of this E-Book was written during 2006 and it teaches you to apply some techniques to your SEO activity with a straightforward and honest approach by using some proven tools and methods for focusing high Return On Investment (ROI). These methods are suggested by many SEO experts and are used by SEO professionals around the world effectively for years.<br />
There are millions of search engine users to find information online, and the chance of increasing the visits to your site is high only if it is positioned in one of the top few pages in the search engines or Directories. So, now, we found it’s necessary to upgrade with the new techniques, tools that were helping the SEO professionals in many ways and simplified their life. This 30 page FREE eBook has what you require for the new age.<br />
<b>Note:</b> This editorial content is underwritten by Macronimous.com. All right reserved. 2013</p>
<h3>What are the topics covered in this new edition?</h3>
<ul>
<li>SEO &#8211; An Overview</li>
<li>What are Search Engines?</li>
<li>What is Search Engine Optimization (SEO)?</li>
<li>Benefits of SEO</li>
<li>Preliminary preparation for web promotion</li>
<li>Ways of Link Building</li>
<li>Where do we submit?</li>
<li>Keyword Analysis / Research</li>
<li>Using Meta tags on WebPages: With Examples</li>
<li>Importance of Content optimization</li>
<li>Avoiding frames in your site</li>
<li>Types of Navigation links</li>
<li>Robots.txt</li>
<li>Broken links &amp; Custom Error page</li>
<li>Avoiding &#8220;Under construction Page&#8221;</li>
<li>Competitor analysis</li>
<li>Keyword density analysis</li>
<li>Backlink Analysis</li>
<li>Google sitemap</li>
<li>RDF/RSS Feeds</li>
<li>Website statistics</li>
<li>Valuable free tools</li>
</ul>
<p>Do you want to improve the visibility of your website in search engine listing and increase ROI, download your free copy today! Click here <a href="https://www.macronimous.com/wp-content/uploads/Practical_SEO_Techniques.pdf" target="_blank" rel="noopener noreferrer">Practical SEO Techniques (PDF – 4.32MB)</a></p>
<p>Note: We are currently working on a completely updated eBook version v3.0 for 2020.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/practical-seo-techniques-ebook/">Practical SEO Techniques E-book</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Seven tips for successful Outsourcing relationship</title>
		<link>https://www.macronimous.com/resources/articles/seven-tips-successful-outsourcing-relationship/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Thu, 02 Mar 2017 05:05:11 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1071</guid>

					<description><![CDATA[<p>The foundation for a successful long-term outsourcing relationship is best established during the negotiation and Service Level Agreement (SLA) phase. Effective communication and clear expectations<a href="https://www.macronimous.com/resources/articles/seven-tips-successful-outsourcing-relationship/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/seven-tips-successful-outsourcing-relationship/">Seven tips for successful Outsourcing relationship</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The foundation for a successful long-term <a href="https://www.macronimous.com/services/offshore-outsourcing/">outsourcing</a> relationship is best established during the negotiation and Service Level Agreement (SLA) phase. Effective communication and clear expectations are crucial at this stage. Leading web development companies, particularly in India, are increasingly adopting best practices to enhance client relationship management and ensure mutually beneficial partnerships</p>
<h3>1. Fostering Relationships with Key Management:</h3>
<p>Strong relationships between key personnel are vital for long-term outsourcing success. Research confirms that fostering personal connections and open communication between counterpart teams leads to smoother collaboration and greater trust. To further streamline communication and avoid confusion, designating a single point of contact, such as a dedicated project manager, can significantly improve efficiency and mutual understanding.</p>
<h3>2. Setting Clear Expectations: Defining Criteria and Objectives:</h3>
<p>Clearly defined and quantifiable objectives are essential for successful outsourcing. These objectives should be established at the outset of the contract, providing a measurable benchmark for evaluating performance. By comparing actual results against pre-defined targets, the client and the vendor can assess the value and effectiveness of the outsourcing relationship.</p>
<p>This transparency fosters accountability and ensures alignment between both parties. Well-defined performance criteria should encompass quantifiable metrics such as service levels, quality, customer satisfaction, and cost-effectiveness, allowing for objective comparisons against industry benchmarks or alternative providers.</p>
<h3>3. Creating a Joint Steering Committee for Outsourcing Succes:</h3>
<p>To ensure smooth and effective management of outsourcing relationships, consider establishing a dedicated governance structure, such as a joint steering committee or executive board. This team, composed of key stakeholders from both organizations, should be responsible for developing and overseeing strategic plans, proactively identifying and resolving issues, and facilitating communication and collaboration.</p>
<p>By providing a structured forum for regular meetings and discussions, this dedicated team can effectively address challenges, manage expectations, and foster a strong, mutually beneficial partnership.</p>
<h3>4. Incentives and Penalties:</h3>
<p>To encourage high performance and align incentives, consider implementing a performance-based pricing model. This structure rewards the provider for exceeding expectations with incentives while applying penalties when performance falls short of agreed-upon targets. This transparency not only promotes accountability but also fosters a deeper understanding of the work involved, the payment structure, and the commitment required from both sides. Ultimately, a well-designed performance-based <a href="https://www.macronimous.com/pricing-models/">pricing model</a> can contribute to a more successful and mutually beneficial outsourcing partnership.</p>
<h3>5. Periodical review meetings:</h3>
<p>Frequent and structured review meetings are essential for maintaining a healthy and productive outsourcing relationship. These meetings provide a valuable forum for both teams to discuss progress, align priorities, and proactively address any challenges. Regularly reviewing deliverables, sharing feedback, and collaboratively planning future goals ensures that both parties stay informed and engaged.</p>
<p>Open and consistent communication minimizes misunderstandings, fosters trust, and ultimately contributes to a more successful and satisfying partnership.</p>
<h3>6. Training vendor personnel:</h3>
<p>Ongoing training and development for vendor personnel are essential for ensuring they remain aligned with the client&#8217;s evolving business goals and industry best practices. This training should go beyond technical skills, encompassing areas like communication, problem-solving, and an understanding of the client&#8217;s business challenges and objectives.</p>
<p>By investing in continuous learning, vendors demonstrate their commitment to delivering high-quality service and building a strong, long-lasting partnership.</p>
<h3>7. Understanding the cultural differences:</h3>
<p>Bridging cultural gaps is essential for successful outsourcing relationships, particularly in a globally connected world. Companies must recognize and respect cultural differences, investing time and effort to foster understanding and build trust. Organizing social events, providing cultural sensitivity training, and encouraging participation in cross-cultural initiatives can help bridge these gaps and create a more cohesive and collaborative partnership. This is particularly important for countries like India, with its rich and diverse cultural heritage, where demonstrating cultural awareness can significantly enhance business relationships.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/seven-tips-successful-outsourcing-relationship/">Seven tips for successful Outsourcing relationship</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Introduction to PostgresSQL</title>
		<link>https://www.macronimous.com/resources/articles/introduction-to-postgressql-2/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Thu, 02 Mar 2017 04:30:38 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1069</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img-2-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div>
<p>Database driven websites The needs of online businesses are constantly evolving, requiring more capable technology. Many are discovering the benefits of open-source solutions. These offer<a href="https://www.macronimous.com/resources/articles/introduction-to-postgressql-2/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/introduction-to-postgressql-2/">Introduction to PostgresSQL</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img-2-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div><h3>Database driven websites</h3>
<p>The needs of online businesses are constantly evolving, requiring more capable technology. Many are discovering the benefits of open-source solutions. These offer flexibility, customization, and cost savings compared to traditional software. This makes open-source options (operating systems, web servers, and even database systems) a smart choice for ECommerce platforms.</p>
<h3>PostgreSQL &#8211; An open source DB</h3>
<p>Of the available open-source databases, <a href="https://www.postgresql.org/">PostgreSQL</a> (also known as Postgres) stands out as a robust, object-relational database management system. Its open-source origins and active development community fuel rapid innovation. Major features are often added in months, a pace unmatched by commercial software companies.</p>
<p>The active PostgreSQL community consists of hundreds of dedicated developers and users. This collaborative environment drives testing and improvements, ensuring quick fixes and feature rollouts across diverse platforms. Version 9.6.8 is gaining widespread enterprise adoption, and the upcoming version 10.3 promises even greater capabilities, potentially disrupting the commercial database market.</p>
<p>PostgreSQL&#8217;s origins at the University of California at Berkeley have resulted in a remarkably simple and flexible open-source license. This permissive license is a major factor in its appeal to businesses.</p>
<h3>MySQL, the competitor</h3>
<p><a href="https://www.mysql.com" target="_blank" rel="noopener noreferrer">MySQL</a> differs significantly from PostgreSQL and InterBase, catering to different use cases. It&#8217;s designed for speed and simplicity, making it ideal for websites with straightforward data requirements and moderate traffic. MySQL integrates seamlessly with web scripting languages like Perl and PHP, further explaining its popularity amongst webmasters. While its feature set was initially more limited, the recent adoption of <a href="https://www.gnu.org/licenses/gpl-3.0.en.html" target="_blank" rel="noopener">GNU Public License</a> (GPL) has opened up possibilities for expanded functionality.</p>
<h3>History of PostgreSQL</h3>
<p><strong>PostgreSQL&#8217;s Roots in Ingres</strong></p>
<p>PostgreSQL has a rich history linked to the Ingres project, born at the University of California at Berkeley (1977-1985). Ingres technology eventually powered one of the first successful commercial database systems.</p>
<p><strong>From Postgres to PostgreSQL</strong></p>
<p>UC Berkeley professor Michael Stonebraker continued database research, leading to the Postgres project (1986-1994), a database focused on advanced concepts (often called object-relational). Students Jolly Chen and Andrew Yu brought essential SQL capabilities, renaming the project Postgres95.</p>
<p><strong>Open-Source Evolution</strong></p>
<p>In 1996, the demand for an open-source database with SQL led to the creation of PostgreSQL, honoring its past and new capabilities. Despite initial developer challenges due to the code&#8217;s complexity, the project&#8217;s potential and welcoming structure eventually attracted skilled contributors.</p>
<p><strong>Community Growth</strong></p>
<p>This sparked a passionate community dedicated to PostgreSQL&#8217;s development. You can find the project&#8217;s online home at PostgreSQL.org.</p>
<h3>Whats up there in PostgreSQL?</h3>
<p><strong>PostgreSQL: Modern, Versatile, and Standards-Compliant</strong></p>
<p>PostgreSQL boasts a powerful feature set and impressive adaptability. As of 2024, the current version is 16.2, demonstrating its continued active development. PostgreSQL supports a wide array of operating systems, including Linux, BSD variants, Solaris, HP-UX, AIX, Irix, and Windows, showcasing its flexibility. Its strong standards compliance and robust feature set make it ideal for businesses of all sizes, powering websites, intranets, extranets, and eCommerce platforms.</p>
<p data-sourcepos="9:1-9:266">PostgreSQL is highly extensible. Users can create custom functions and operators, encapsulating complex business logic directly within the database for improved performance and maintainability. Its support for various programming languages enhances this flexibility.</p>
<p><strong>Limitations</strong></p>
<div class="div-table" style="display: flex; flex-direction: column; width: 400px; border: 1px solid black;">
<div class="div-row" style="display: flex;">
<div class="div-cell" style="flex: 1; border: 1px solid black;"><strong>Limitation</strong></div>
<div class="div-cell" style="flex: 3; border: 1px solid black;"><strong>Maximum Size </strong></div>
</div>
<div class="div-row" style="display: flex;">
<div class="div-cell" style="flex: 1; border: 1px solid black;">Database</div>
<div class="div-cell" style="flex: 3; border: 1px solid black;">Unlimited (very large databases exist)</div>
</div>
<div class="div-row" style="display: flex;">
<div class="div-cell" style="flex: 1; border: 1px solid black;">Table</div>
<div class="div-cell" style="flex: 3; border: 1px solid black;">64 TB (all OS)</div>
</div>
<div class="div-row" style="display: flex;">
<div class="div-cell" style="flex: 1; border: 1px solid black;">Row (7.1 and later)</div>
<div class="div-cell" style="flex: 3; border: 1px solid black;">Unlimited</div>
</div>
<div class="div-row" style="display: flex;">
<div class="div-cell" style="flex: 1; border: 1px solid black;">Field (7.1 and later)</div>
<div class="div-cell" style="flex: 3; border: 1px solid black;">&gt;1 GB</div>
</div>
<div class="div-row" style="display: flex;">
<div class="div-cell" style="flex: 1; border: 1px solid black;">Rows per Table</div>
<div class="div-cell" style="flex: 3; border: 1px solid black;">Unlimited</div>
</div>
<div class="div-row" style="display: flex;">
<div class="div-cell" style="flex: 1; border: 1px solid black;">Columns per Table</div>
<div class="div-cell" style="flex: 3; border: 1px solid black;">1600</div>
</div>
<div class="div-row" style="display: flex;">
<div class="div-cell" style="flex: 1; border: 1px solid black;">Indexes per Table</div>
<div class="div-cell" style="flex: 3; border: 1px solid black;">Unlimited</div>
</div>
</div>
<p>&nbsp;</p>
<h3>PostgreSQL in the Real World</h3>
<p><strong>Powering Diverse Applications</strong></p>
<p>PostgreSQL&#8217;s capabilities extend beyond just web development. Businesses of all sizes, from small startups to large enterprises, leverage PostgreSQL in diverse fields like finance, healthcare, logistics, and more. Its reliability and feature set make it adaptable to both traditional and cutting-edge use cases.</p>
<h3><strong>The Rise of Open-Source Databases</strong></h3>
<p>Businesses increasingly rely on sophisticated database systems to power critical operations like supply chain management, customer interactions, and advanced analytics. The flexibility, adaptability, and cost-effectiveness of open-source databases make them exceptionally attractive to companies seeking greater control over their technology stack.</p>
<p><strong>Drivers of Adoption</strong></p>
<p>The collaborative nature of open-source development fosters rapid innovation and allows businesses to customize solutions to meet their specific needs. This stands in contrast to the constraints and slower development cycles often associated with proprietary database vendors.</p>
<p><strong>Continued Growth</strong></p>
<p>The open-source database market continues to expand rapidly. While predictions about the complete shift away from proprietary models might be debatable, the advantages of open-source databases ensure their growing role in the tech landscape.</p>
<p>* This article is a collection of information from various resources. All Names belong to their respective owners. PostgreSQL is an open source DB tool with GNU.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/introduction-to-postgressql-2/">Introduction to PostgresSQL</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Getting business with your web site &#8211; Some practices to keep your web site effective</title>
		<link>https://www.macronimous.com/resources/articles/getting-business-web-site-practices-keep-web-site-effective/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Wed, 01 Mar 2017 14:48:15 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1068</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img2-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div>
<p>Article explains you to improve your web presence and to helps to get your web site as a business Gateway. Learn how to improve your<a href="https://www.macronimous.com/resources/articles/getting-business-web-site-practices-keep-web-site-effective/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/getting-business-web-site-practices-keep-web-site-effective/">Getting business with your web site &#8211; Some practices to keep your web site effective</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img2-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div><p>Article explains you to improve your web presence and to helps to get your web site as a business Gateway. Learn how to improve your web presence. Contact the author at <a href="mailto:enquiry@macronimous.com">enquiry@macronimous.com</a><br />
The effect of web sites brought us a whole new world of global market. So every one wants to have their web presence in these days. I assume that you also have got a web site now. You developed by yourself, or you outsource the work to some one. You are proud of your web site as it looks very appealing. Your friends say they have visited your site and signed on your guest book. Everything is fine. But have you thought about making it effective and how about bringing some business in. Here in this discussion, I can help you to make your site to help your business. Let us discuss some key points that can make your site for revenue generation portal.</p>
<h3>Market research with your site</h3>
<p>Prepare some questionnaire that can help your business market and request your visitors to attend the survey. Many sites offer some small gifts for the selected visitors who are attending the Survey. This survey results can help you to study your and reinvent your business structure. You can also create some dynamic polls, which can send the instant market trends. There are many ASP ,PHP or CGI survey applications in the market which you can use it in your site. Or you can ask your developer to develop a customized one with desired reports as output.</p>
<h3>Keep your content refreshed</h3>
<p>Always refresh your content whenever its needed. To make this simple you can use a content management system (CMS) that can suite for your site. A CMS can help you to create and maintain the site content updated. Refreshed content if very necessary to make the visitor come back. As visitors are looking for new information the site should come up with new content and should speak new trends, technology, business and market. make it readable, you can hire a content developer who can understand your business and target places and write for you.</p>
<h3>Transparency</h3>
<p>Tell shortly who you are, what you do and how you do. You can improve the reliability of your services, by telling how you develop your products and services. For example, the taxes you pay for the service. The site can explains the visitors about your policies, development procedures, goals, targets and quality measurements. You can ask them for suggestions, tell them that they can help your business by attending your survey. There is no harm in being transparent to the customer who doesn&#8217;t even know your face. Many customers like transparency.</p>
<h3>Improve navigation</h3>
<p>Clear navigation can help your customers to visit all your pages without any blocking. Make some cross-linking to related pages, or related services as it appears in this site. Put a search on your web site, customers can search the information, which they want.</p>
<h3>Test the loading time</h3>
<p>All visitors are not patient enough to wait for your pages, which takes minutes to get loaded. If a visitor finds you in a search, remember she/he may open more than one link from the search result in separate browser windows. If your pages are very dull in loading, he will not hesitate to close one window where your site appears slowly. So do not load the sites with huge graphics and animation. Use good graphic design tools to optimize the images. Though the bandwidth limitations are coming down, Test your web site in different Internet speeds. There are users who are still using dial-up modem in many countries with less then 30KBPS.</p>
<h3>The value</h3>
<p>Provide some information to your visitor. Give related Tip of the day, articles, tutorials, syndicated content with which you can educate your visitors and clients. This can add a huge value to your web site. This can, not only make your visitor to visit back, but also can help while promoting the site with search engines. Above all it adds credibility. Encourage your employees to write for the site.</p>
<h3>Benefits, not just features</h3>
<p>You can use the site to tell about your services, features as well as the benefits they get. Unlike conventional advertisements you can tell more about the benefits your customer gets through your services. Explain in detail but not with pages of words.</p>
<h3>Promote your site</h3>
<p>Your web site will be of no use to you if it is a secret! Put your web site address on everything. Your letterhead, envelopes, with your signature on emails, business cards, company vehicles. Send an email to all your clients with a link to your site. Submit your site to search engines and directories. Set up links and affiliates to drive traffic to your site. You can also use free for all links (FFA), which can increase your link popularity. Submit pages to your industry related indexes and free link pages.</p>
<h3>Put a site analysis tool</h3>
<p>Add a free/paid site analysis tools, which can help you to track and analyze the information about your visitor.(Like the one you see in the bottom of this page). This can help you to understand, who your visitors are, which page they like most, which country they visit from and much more.</p>
<h3>Improving things</h3>
<p>If you need help in improving your web presence we can give you our hands, we specialize in makeovers &#8212; taking an existing Web site and transforming it into a productive, attractive and profitable business tool. We can also provide a professional Web site evaluation and make suggestions for improvement. Contact us at <a href="mailto:enquiry@macronimous.com">enquiry@macronimous.com </a> for further information and price quote.<br />
<a><br />
</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/getting-business-web-site-practices-keep-web-site-effective/">Getting business with your web site &#8211; Some practices to keep your web site effective</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to measure SMO conversion?</title>
		<link>https://www.macronimous.com/resources/articles/measure-smo-conversion/</link>
		
		<dc:creator><![CDATA[Benny]]></dc:creator>
		<pubDate>Wed, 01 Mar 2017 14:31:36 +0000</pubDate>
				<guid isPermaLink="false">https://www.macronimous.com///?post_type=resources&#038;p=1065</guid>

					<description><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img-1-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div>
<p>Social Media Optimization (SMO) is becoming one among the must-adopt methods to generate traffic by increasing website (or blog) popularity and visibility amongst your type<a href="https://www.macronimous.com/resources/articles/measure-smo-conversion/" class="">...</a></p>
<p>The post <a href="https://www.macronimous.com/resources/articles/measure-smo-conversion/">How to measure SMO conversion?</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="470" height="290" src="https://www.macronimous.com/wp-content/uploads/banner_img-1-470x290.jpg" class="attachment-medium size-medium wp-post-image" alt="" style="margin-bottom: 15px;" decoding="async" loading="lazy" /></div><p>Social Media Optimization (SMO) is becoming one among the must-adopt methods to generate traffic by increasing website (or blog) popularity and visibility amongst your type of visitors directly or through social media sites like online communities, discussion groups, etc. This could be achieved through networking in blog post sharing, resource sharing, videos, podcast and social book marking.<br />
Now SMO is one of the best ways to get free traffic, which can benefit in both ways &#8211; 1. To generate leads, and 2. For spreading your business type by tagging. SMO is also known as web 2.0 marketing.<br />
SMO is much recommended along with your regular SEO plans for better and quicker results. You can get good amount of quality Backlinks from networking and bookmarking and also visitors will have a chance to know about your products or services through the respective links, when they browse through social networking sites. Along with these benefits, it helps in getting you on top of the search ranking. Some of the most popular Social sites which you should target first are Twitter, Technorati, del.icio.us, Digg, Furl, you tube and stumbleupon.<br />
Once you register with most popular Social sites you can see the difference in your site traffic and visibility in search engines. However you need to measure SMO conversion and work further to improve and find where all your website visibility can be increased.<br />
Assuming you have some site statistics tool to check your site traffic, but if you don&#8217;t have one it is advisable to go for Google analytics, a free web statistics account. Find out social media referral unique visitor, time spent on the site, depth of visit and location. All these can be measured using any top recommended popular statistics or Google analytics. There are few other alternatives to Google analytics, which we discussed <a href="http://blog.macronimous.com/alternatives-to-google-analytics-to-measure-your-roi/" target="_blank" rel="noopener noreferrer">here</a>.</p>
<h3>Some of the important SMO conversion measures are listed below</h3>
<h4>Site or Blog posts Book marking Conversion</h4>
<p>There are many ways to check these conversions, as you can use &#8220;Add this&#8221; or &#8220;Share Social Book Marking Services&#8221; sites. If you have not used them before, it is advisable to create profiles in del.icio.us, Digg and the likes, and search for your urls. Another possible way is by using Google analytics &#8220;Site overlay&#8221; option as you see in the below attached screen shot.</p>
<h4>&#8220;Site overlay&#8221; Google analytics</h4>
<p><img loading="lazy" decoding="async" class="size-full wp-image-1066 aligncenter" src="https://www.macronimous.com/wp-content/uploads/site_overlay_image.jpg" alt="How to measure SMO conversion?" width="467" height="172" /></p>
<h4>Add this Top Destination Chart</h4>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1067" src="https://www.macronimous.com/wp-content/uploads/destination_chart.jpg" alt="How to measure SMO conversion?" width="389" height="282" /></p>
<h4>Your content readers</h4>
<p>If you have resources section or blog, then monitor who are all your readers and from which location they land to your page. Use Google analytics &#8220;Top Content&#8221; section and find out most popular content pages of your site that are referred by social sites and how long they where in the page, including the bounce rate of the specific content.</p>
<table border="0" width="100%" cellspacing="0" cellpadding="8" align="center">
<thead>
<tr>
<th class="table_border" colspan="2" align="left">Page</th>
<th class="table_border" align="center" width="16%">Page Views</th>
<th class="table_border" align="center" width="19%">Unique Page Views</th>
<th class="table_border1" align="center" width="13%">Time on Page</th>
</tr>
</thead>
<tbody>
<tr>
<td class="table_border" align="left" valign="top" width="5%">1</td>
<td class="table_border" valign="top" width="47%"><a href="https://www.macronimous.com/resources/z-stored-procedures-asp-vb-programmers">/resources/stored_procedures_for..</a></td>
<td class="table_border" valign="top">3,039</td>
<td class="table_border" valign="top">2,887</td>
<td class="table_border1" valign="top">00:05:27</td>
</tr>
<tr>
<td class="table_border" align="left" valign="top">2</td>
<td class="table_border" valign="top"><a href="https://www.macronimous.com/resources/calling-stored-procedures-from-asp-net-and-vb-net-2">/resources/calling_stored_proced..</a></td>
<td class="table_border" valign="top">2,887</td>
<td class="table_border" valign="top">2,607</td>
<td class="table_border1" valign="top">00:05:13</td>
</tr>
<tr>
<td class="table_border" align="left" valign="top">3</td>
<td class="table_border" valign="top"><a href="https://www.macronimous.com/resources/creating-dynamic-pdf-files-using-html-php">/resources/Converting_HTML2PDF..</a></td>
<td class="table_border" valign="top">2,131</td>
<td class="table_border" valign="top">1,868</td>
<td class="table_border1" valign="top">00:05:37</td>
</tr>
<tr>
<td class="table_border" align="left" valign="top">4</td>
<td class="table_border" valign="top">/<a href="https://www.macronimous.com/resources/web-development-life-cycle">resources/web_development_life..</a></td>
<td class="table_border" valign="top">1,894</td>
<td class="table_border" valign="top">1,590</td>
<td class="table_border1" valign="top">00:04:21</td>
</tr>
<tr>
<td class="table_border_last" align="left" valign="top">5</td>
<td class="table_border_last" valign="top"><a href="https://www.macronimous.com/resources/image-rollovers-using-dreamweaver">/resources/dynamic_layers_with..</a></td>
<td class="table_border_last" valign="top">1,499</td>
<td class="table_border_last" valign="top">1,140</td>
<td style="border: none;" valign="top">00:02:31</td>
</tr>
</tbody>
</table>
<h4>RSS feed Subscriber Conversion- Feed burner</h4>
<p>Feedburner is one of the widely used services for blogs and RSS feeds subscription. There are various ways to measure visitor&#8217;s subscribing your feeds. You can check from which location your feed readers are and through which user agent they come from, as you can see in the below screen shot.<br />
<b>25 hits 19 and half hours</b></p>
<h3>in the last</h3>
<p>All times are translated to your local time zone</p>
<table class="mobile_none" border="0" width="100%" cellspacing="0" cellpadding="8" align="center">
<thead>
<tr>
<th class="table_border">Time</th>
<th class="table_border">User Agent</th>
<th class="table_border">Country</th>
</tr>
</thead>
<tbody>
<tr>
<td class="table_border" align="left" valign="top">10:17:36 AM (2009-1-16)</td>
<td class="table_border" valign="top"><span style="color: #0000ff;">WordPress</span></td>
<td class="table_border1" valign="top">United States</td>
</tr>
<tr>
<td class="table_border" align="left" valign="top">9:46:22 AM (2009-1-16)</td>
<td class="table_border" valign="top"><span style="color: #0000ff;">Google Feedfetcher</span></td>
<td class="table_border1" valign="top">United States</td>
</tr>
<tr>
<td class="table_border" align="left" valign="top">9:40:01 AM (2009-1-16)</td>
<td class="table_border" valign="top"><span style="color: #0000ff;">FeedBurner Feed Insurance</span></td>
<td class="table_border1" valign="top">N/A</td>
</tr>
<tr>
<td class="table_border" align="left" valign="top">8:17:19 AM (2009-1-16)</td>
<td class="table_border" valign="top"><span style="color: #0000ff;">WordPress</span></td>
<td class="table_border1" valign="top">United States</td>
</tr>
<tr>
<td class="table_border_last" align="left" valign="top">8:02:06 AM (2009-1-16)</td>
<td class="table_border_last" valign="top"><span style="color: #0000ff;">FeedBurner Email Subscriptions</span></td>
<td style="border: none;" valign="top">United States</td>
</tr>
</tbody>
</table>
<h3>Discussions on your Content &#8211; Commenting</h3>
<p>Do allow commenting about your content in the resource pages and blog posts. They allow you to be more social, at the same time helps you find number of visitors who interact about your content. One of the best ways is to use <a href="http://openid.net/" target="_blank" rel="noopener noreferrer">openid</a> for comment login so that you can also track users in social sites too.</p>
<h3>Authority sites and Micro blogging</h3>
<p>Another method to check social media conversion is, by using authority sites and micro blogging using technorati, twitter and so. Through authority sites you can find who is linking to you site or blog through blog roll and also it can be a discussion post about your content. These are called as reactions. In twitter and related sites you can monitor followers and tweets and find out what they are discussing about your content and where your followers come from.</p>
<h3>Networks and communities</h3>
<p>Trusted networks and sharing website communities provide decent conversion which can bring you possible leads to develop your business and also increase you website popularity. Through trusted networks like Linked in, you can find, from which geographic locations you are more visible and who all can reach your profile / business, along with getting information on who are all searching for your service. All are depending on network direct connections, also termed as degree connection. Sharing sites in communities are similar to content commenting. Youtube and related sites provide video sharing and commenting &#8211; if you have a video uploaded then you can find out who all interact with your video content.<br />
All the above SMO conversion metrics can help you improve your business website or blog visibility, further corresponding your visitors and location, allowing you to target locations where you are not found.</p>
<p>The post <a href="https://www.macronimous.com/resources/articles/measure-smo-conversion/">How to measure SMO conversion?</a> appeared first on <a href="https://www.macronimous.com">Macronimous</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
