<?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>Techie-Gyan &#187; basics</title>
	<atom:link href="http://www.techiegyan.com/category/basics/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.techiegyan.com</link>
	<description></description>
	<lastBuildDate>Fri, 25 Nov 2011 05:37:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Google Starter Guide on SEO (Search Engine Optimization)</title>
		<link>http://www.techiegyan.com/2011/09/12/google-starter-guide-on-seo-search-engine-optimization/</link>
		<comments>http://www.techiegyan.com/2011/09/12/google-starter-guide-on-seo-search-engine-optimization/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 07:49:36 +0000</pubDate>
		<dc:creator>shaguna</dc:creator>
				<category><![CDATA[basics]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.techiegyan.com/?p=1866</guid>
		<description><![CDATA[How does one improve traffic on a website? Well there are various ways e.g. online marketing/advertising, through search engines, social networking etc. The higher the page in search results, the better probability it has of being clicked and hence more visitors would reach the website through a search engine. SEO (Search Engine Optimization) is a [...]]]></description>
			<content:encoded><![CDATA[<p>How does one improve traffic on a website? Well there are various ways e.g. online marketing/advertising, through search engines, social networking etc.<br />
The higher the page in search results, the better probability it has of being clicked and hence more visitors would reach the website through a search engine.<br />
SEO (Search Engine Optimization) is a process of improving the visibility of a website to search engines through natural and organic/unpaid methods. SEO is usually about making small modifications here and there in your website. When viewed individually, these are small changes, but in totality they can have a major impact on the site’s user experience and performance in organic search results.</p>
<p>Here&#8217;s an interesting article to get you started &#8211; <a title="Google's Search Engine Optimization -Starter Guide" href="http://static.googleusercontent.com/external_content/untrusted_dlcp/www.google.com/en//webmasters/docs/search-engine-optimization-starter-guide.pdf" target="_blank">Google’s Search Engine Optimization &#8211; Starter Guide</a>.</p>
<p>Before going ahead, do remember that SEO would help your website gain better positioning in search results, but main focus of a website should be it’s content &amp; users, not just search engines.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techiegyan.com/2011/09/12/google-starter-guide-on-seo-search-engine-optimization/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A list of useful software tools – 3</title>
		<link>http://www.techiegyan.com/2011/04/19/a-list-of-useful-software-tools-%e2%80%93-3/</link>
		<comments>http://www.techiegyan.com/2011/04/19/a-list-of-useful-software-tools-%e2%80%93-3/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 17:58:24 +0000</pubDate>
		<dc:creator>Aditya</dc:creator>
				<category><![CDATA[addon]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[basics]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.techiegyan.com/?p=1725</guid>
		<description><![CDATA[Top100 Tools for Learning 2010 View more presentations from Jane Hart]]></description>
			<content:encoded><![CDATA[<div style="width:425px" id="__ss_5467243"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/janehart/top100-tools-for-learning-2010" title="Top100 Tools for Learning 2010">Top100 Tools for Learning 2010</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/5467243" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/janehart">Jane Hart</a> </div>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.techiegyan.com/2011/04/19/a-list-of-useful-software-tools-%e2%80%93-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>10x Performance Improvements &#8211; MySql</title>
		<link>http://www.techiegyan.com/2011/04/10/10x-performance-improvements-mysql/</link>
		<comments>http://www.techiegyan.com/2011/04/10/10x-performance-improvements-mysql/#comments</comments>
		<pubDate>Sun, 10 Apr 2011 06:55:55 +0000</pubDate>
		<dc:creator>Aditya</dc:creator>
				<category><![CDATA[basics]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.techiegyan.com/?p=1718</guid>
		<description><![CDATA[10x Performance Improvements View more presentations from Ronald Bradford]]></description>
			<content:encoded><![CDATA[<div style="width:425px" id="__ss_3776503"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/ronaldbradford/10x-performance-improvements" title="10x Performance Improvements">10x Performance Improvements</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/3776503" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/ronaldbradford">Ronald Bradford</a> </div>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.techiegyan.com/2011/04/10/10x-performance-improvements-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Application Events &#8211; Spring framework</title>
		<link>http://www.techiegyan.com/2011/04/08/using-application-events-spring-framework/</link>
		<comments>http://www.techiegyan.com/2011/04/08/using-application-events-spring-framework/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 18:25:31 +0000</pubDate>
		<dc:creator>Aditya</dc:creator>
				<category><![CDATA[basics]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[j2ee]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.techiegyan.com/?p=1700</guid>
		<description><![CDATA[Spring Application contexts support a simple form of event publishing and subscription. This event mechanism can not be compared with other message queues and JMS like systems but can be useful for certain use cases like following: 1. Sending async email: While executing a user registration flow, system may want to send and email and [...]]]></description>
			<content:encoded><![CDATA[<p>Spring Application contexts support a simple form of event publishing and subscription. This event mechanism can not be compared with other message queues and JMS like systems but can be useful for certain use cases like following:</p>
<p>1. Sending async email: While executing a user registration flow, system may want to send and email and sending this email should not stop the registration process to complete so it requires an asynchronous way to do that. Application Event can help in this situation.<br />
2. Auditing application actions: Another use case where you do not want to stop the execution of main thread and want to audit activities in an async way.</p>
<p>I am trying to list classes you will need to use your own Application Events and handle them:</p>
<p><strong>a) Your custom event :</strong> UserEvent, AbstractEvent. AbstractEvent is an abstract class which can be extended based on requirement. As you can see in the code, Event Id is used to call its super class which is ApplicationEvent class of Spring framework. Another variable eventContext is used to carry context parameters to the handler of event(Check different constructors of UserEvent). </p>
<pre class="brush: java; title: ; notranslate">
public class UserEvent extends AbstractEvent {
        public UserEvent(String eventId, Object eventContext) {
		super(eventId, eventContext);
	}
        public UserEvent(String eventId, User user, String tPassword) {
		super(eventId, new HashMap());
		Map&lt;String, Object&gt; params = (Map&lt;String, Object&gt;) this.getEventContext();
		params.put(&quot;user&quot;, user);
		params.put(&quot;tPassword&quot;, tPassword);
	}
}

public abstract class AbstractEvent extends ApplicationEvent {

        protected String eventId;
	protected Object eventContext;

	public AbstractEvent(String eventId, Object eventContext) {
		super(eventId);
		this.eventId = eventId;
		this.eventContext = eventContext;
	}

	public String getEventId() {
		return eventId;
	}

	public Object getEventContext() {
		return eventContext;
	}

	public Object getContextParams(String paramName){
		if(! (eventContext!= null &amp;&amp; eventContext instanceof Map)){
			return null;
		}
		return ((Map)eventContext).get(paramName);
	}
}
</pre>
<p><strong>b) Publish your custom event :</strong> You will like to publish your custom event generally from the flow of execution e.g. in this case UserService or RegistrationService. Spring gives a facility to make your class able to publish Application events by implementing ApplicationEventPublisherAware interface. </p>
<p>By implementing ApplicationEventPublisherAware, you need to implement setApplicationEventPublisher function and Spring will automatically call set function to inject ApplicationEventPublisher instance. This instance can be used for publishing the event.</p>
<p>This basically invokes all listeners waiting for this kind of Event in a separate thread to make it async.</p>
<pre class="brush: java; title: ; notranslate">
public class RegistrationService implements ApplicationEventPublisherAware{
        protected ApplicationEventPublisher applicationEventPublisher;
        public static final String Event_RegisterUser = &quot;registerUser&quot;;

        public void registerUser(User u) {
                .......
                .......
                try {
				applicationEventPublisher.publishEvent(new UserEvent(Event_RegisterUser, u));
			}
			catch(Exception e) {
				logger.error(e.getMessage(), e);
			}
                ..........
                ..........
        }
        public void setApplicationEventPublisher(
			ApplicationEventPublisher applicationEventPublisher) {
		this.applicationEventPublisher = applicationEventPublisher;
	}
}
</pre>
<p><strong>c) Handle your custom event :</strong> An event listener would be required to handle the event published by the service and handle it. By implementing ApplicationListener, class has to implement onApplicationEvent function where it gets the Event object with eventId and eventContext.</p>
<pre class="brush: java; title: ; notranslate">
public class UserEventListener implements ApplicationListener&lt;UserEvent&gt; {
        public void onApplicationEvent(UserEvent event) {
                String eventId = event.getEventId();
                User user = (User) event.getContextParams(&quot;user&quot;);
                String tempPassword = (String) event.getContextParams(&quot;tPassword&quot;);
                //Do your handling like send an email to newly added User
        }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.techiegyan.com/2011/04/08/using-application-events-spring-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installing WordPress locally on Windows</title>
		<link>http://www.techiegyan.com/2011/03/07/installing-wordpress-locally-on-windows/</link>
		<comments>http://www.techiegyan.com/2011/03/07/installing-wordpress-locally-on-windows/#comments</comments>
		<pubDate>Mon, 07 Mar 2011 09:45:05 +0000</pubDate>
		<dc:creator>shaguna</dc:creator>
				<category><![CDATA[basics]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[non-techie]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.techiegyan.com/?p=1546</guid>
		<description><![CDATA[Installing WordPress is a fairly simple task. This article will help you install WordPress and it&#8217;s dependencies from scratch. It is intended for beginners like me, who are not web developers but would like to have a blog and manage it themselves. Having a local copy of your blog helps you experiment with various themes, [...]]]></description>
			<content:encoded><![CDATA[<p>Installing WordPress is a fairly simple task. This article will help you install WordPress and it&#8217;s dependencies from scratch. It is intended for beginners like me, who are not web developers but would like to have a blog and manage it themselves. Having a local copy of your blog helps you experiment with various themes, widgets, plug-ins etc without impacting your actual website.</p>
<p><span style="text-decoration: underline;"><strong>Before starting, you need to download the following:</strong></span></p>
<p>1. Installer of <a title="Download WampServer" href="http://www.wampserver.com/en/download.php" target="_blank">Latest WampServer</a>. This will install all the dependencies (Apache, MySQL, PHP) that WordPress needs to run on your machine.<br />
2. A copy of <a title="Download WordPress" href="http://wordpress.org/download/" target="_blank">Latest WordPress</a>.</p>
<p><span style="text-decoration: underline;"><strong>Installation Steps:</strong></span></p>
<p>1. Install WampServer.  You can keep all the default settings and press Next/OK.</p>
<p>2. Once installed, start the WampServer from the QuickLaunch bar. Click on the WampServer&#8217;s icon and select <strong>Start All Services</strong>.</p>
<p><div id="attachment_1555" class="wp-caption aligncenter" style="width: 199px"><a href="http://www.techiegyan.com/wp-content/uploads/2011/03/01-start-wamp-server.jpg"><img class="size-full wp-image-1555   " style="border: 1px solid black;" title="Start Wamp Server" src="http://www.techiegyan.com/wp-content/uploads/2011/03/01-start-wamp-server.jpg" alt="" width="189" height="305" /></a><p class="wp-caption-text">Start Wamp Server</p></div></p>
<p>3. In the browser, open <a title="WampServer" href="http://localhost" target="_blank">http://localhost</a><span id="more-1546"></span></p>
<p>4. Scroll down and go to <a title="phpmyadmin" href="http://localhost/phpmyadmin/" target="_blank">phpmyadmin</a></p>
<p>5. Create a new database, say, <strong>wordpresstest</strong> with the default settings. To keep things simple, we will use the mySQL user <strong>root</strong> for now.</p>
<p><div id="attachment_1564" class="wp-caption aligncenter" style="width: 560px"><a href="http://www.techiegyan.com/wp-content/uploads/2011/03/02-createDB-500.jpg"><img class="size-full wp-image-1564  " style="border: 1px solid black;" title="Create Database" src="http://www.techiegyan.com/wp-content/uploads/2011/03/02-createDB-500.jpg" alt="" width="550" height="317" /></a><p class="wp-caption-text">Create Database</p></div></p>
<p>6. Unzip the already downloaded WordPress, you will see a folder <em><strong>wordpress </strong></em>in here. Copy this folder inside the <em><strong>www </strong></em>folder that the Wamp installation had created. The default location is usually <em><strong>C:\wamp\www</strong></em>. This is the root web server directory.</p>
<p>7. Now we need to configure WordPress. In the browser, go to <a title="WordPress Configuration" href="http://localhost/wordpress" target="_blank">http://localhost/wordpress</a>.  Continue on this page, you will be asked for details to setup. <strong>Database Name</strong> would be the name with which you had created the DB earlier i.e. <strong>wordpresstest</strong>. <strong>UserName</strong> is the database user, let&#8217;s use the default user <strong>root</strong>. <strong>Password </strong>for root is <strong>&lt;blank&gt;</strong>. Leave <strong>Database Host</strong> and <strong>Table Prefix</strong> as they are.</p>
<p><div id="attachment_1567" class="wp-caption aligncenter" style="width: 560px"><a href="http://www.techiegyan.com/wp-content/uploads/2011/03/03-ConfigureWordPress-500.jpg"><img class="size-full wp-image-1567 " style="border: 1px solid black;" title="Configure WordPress - Step 1" src="http://www.techiegyan.com/wp-content/uploads/2011/03/03-ConfigureWordPress-500.jpg" alt="" width="550" height="334" /></a><p class="wp-caption-text">Configure WordPress - Step 1</p></div></p>
<p>8. Continue to the next page. Enter the<strong> Site Title</strong>, this will be the title of your website, let&#8217;s call it <strong>My First Blog</strong>. <strong>Username </strong>is the name of the user who would be writing/managing the blog, say, <strong>admin</strong>. Put <strong>Password </strong>for this user.</p>
<p><div id="attachment_1568" class="wp-caption aligncenter" style="width: 560px"><a href="http://www.techiegyan.com/wp-content/uploads/2011/03/04-ConfigureWordPress-500.jpg"><img class="size-full wp-image-1568 " style="border: 1px solid black;" title="Configure WordPress - Step 2" src="http://www.techiegyan.com/wp-content/uploads/2011/03/04-ConfigureWordPress-500.jpg" alt="" width="550" height="378" /></a><p class="wp-caption-text">Configure WordPress - Step 2</p></div></p>
<p>9. Go ahead and Run the install. Voila, you are done!</p>
<p>10. In the browser, go to <a title="WordPress Configuration" href="http://localhost/wordpress" target="_blank">http://localhost/wordpress</a> and what do you see? You have just created your own website on which you have full control!!!</p>
<p><div id="attachment_1570" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.techiegyan.com/wp-content/uploads/2011/03/05-Blog-500.jpg"><img class="size-full wp-image-1570 " style="border: 1px solid black;" title="My First Blog" src="http://www.techiegyan.com/wp-content/uploads/2011/03/05-Blog-500.jpg" alt="" width="500" height="265" /></a><p class="wp-caption-text">My First Blog</p></div></p>
<p>11. Go to <a title="WordPress Dashboard" href="http://localhost/wordpress/wp-admin" target="_blank">WordPress Dashboard</a> to write and manage your blog.</p>
<p><div id="attachment_1571" class="wp-caption aligncenter" style="width: 560px"><a href="http://www.techiegyan.com/wp-content/uploads/2011/03/06-Dashboard-500.jpg"><img class="size-full wp-image-1571 " style="border: 1px solid black;" title="Dashboard" src="http://www.techiegyan.com/wp-content/uploads/2011/03/06-Dashboard-500.jpg" alt="" width="550" height="320" /></a><p class="wp-caption-text">Dashboard</p></div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.techiegyan.com/2011/03/07/installing-wordpress-locally-on-windows/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

