<?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>Veera Sundar &#187; Web</title>
	<atom:link href="http://veerasundar.com/blog/category/web2/feed/" rel="self" type="application/rss+xml" />
	<link>http://veerasundar.com/blog</link>
	<description>Java / Web developer</description>
	<lastBuildDate>Mon, 30 Jan 2012 15:39:11 +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>Backbone JS &#8211; Hello World tutorial</title>
		<link>http://veerasundar.com/blog/2012/01/backbone-js-hello-world-tutorial/</link>
		<comments>http://veerasundar.com/blog/2012/01/backbone-js-hello-world-tutorial/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 15:39:11 +0000</pubDate>
		<dc:creator>Veera</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[backbone]]></category>
		<category><![CDATA[helloworld]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://veerasundar.com/blog/?p=2855</guid>
		<description><![CDATA[Backbone.js is recently getting lots of traction among the web developers because of its ability to organize the JavaScript code. It provides the structure (Model-View) around which we can build our JavaScript heavy web applications. I have started learning backbone.js for my personal project and I&#8217;m going to document my learning along the way. Let&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://documentcloud.github.com/backbone/">Backbone.js</a> is recently getting lots of traction among the web developers because of its ability to organize the JavaScript code. It provides the structure (Model-View) around which we can build our JavaScript heavy web applications.</p>
<p>I have started learning backbone.js for my personal project and I&#8217;m going to document my learning along the way. Let&#8217;s start with a simplest possible example: A Hello World tutorial in Backbone.js (duh!)</p>
<p>You are welcomed to point out any anti-patterns/mistakes that I made in this tutorial so that I can update the content for better.</p>
<p><a title="Backbone JS - Hello World tutorial" href="http://veerasundar.com/app/hello-backbone/" target="_blank">Demo</a> | <a title="Fork the source code in GitHub" href="https://github.com/vraa/hello-backbone" target="_blank">Source code</a></p>
<h2>The need for Backbone.js</h2>
<p>Generally, we use JavaScript to handle UI events (<em>click</em>, <em>keypress</em>, etc), to process the UI data (<em>innerHTML,</em> etc) and to render DOM elements (<em>appendChild, </em>etc).</p>
<p>Without a framework like Backbone.js, each developer would implement the above logic in his/her own coding style. This might cause some maintenance issues if multiple developers are involved.</p>
<p>Backbone.js provides a structure to do the above operations so that it is easy to write a maintainable code with less effort.</p>
<p>With Backbone, you get the following constructs:</p>
<ol>
<li><strong>Model </strong>- used to represent your application data. For example, an <em>Employee</em> model.</li>
<li><strong>Collection </strong>- used to hold a list of your model objects. For example, an <em>Employees </em>collection which contains a list of <em>Employee </em>model.</li>
<li><strong>Views </strong>- each model &amp; collection can be associated with a Backbone view. You can also create a view for an existing DOM element so that the view can respond to events generated from that DOM element.</li>
</ol>
<p>That said, Let&#8217;s start building our application step by step.</p>
<h2>0. Requirement</h2>
<p>Our requirement is to <a href="http://veerasundar.com/app/hello-backbone/" target="_blank">create a application</a> that gets a name from the user and says &#8216;Hello {name}&#8217; and appends it to a list.</p>
<h2>1. Create the User Interface</h2>
<p>Let&#8217;s create our user interface first.</p>
<pre class="brush:html">	&lt;body&gt;
		&lt;header&gt;
			&lt;h1&gt;Backbone JS - Hello World Tutorial!&lt;/h1&gt;
			&lt;h5&gt;&amp;lt;= &lt;a href='#'&gt;back to the article&lt;/a&gt;&lt;/h5&gt;
		&lt;/header&gt;

		&lt;section id='UserInput'&gt;
			&lt;fieldset&gt;
				&lt;legend&gt;Enter a name and click say hello!&lt;/legend&gt;
				&lt;input type="text" name="hello" placeholder="your friend name" value="veera" /&gt; &amp;#160; &lt;button&gt;Say hello&lt;/button&gt;
			&lt;/fieldset&gt;
		&lt;/section&gt; 

		&lt;ol id="HelloList"&gt;

		&lt;/ol&gt;

		&lt;script type="text/javascript" src="jquery-1.7.1.min.js"&gt;&lt;/script&gt;
		&lt;script type="text/javascript" src="underscore-min.js"&gt;&lt;/script&gt;
		&lt;script type="text/javascript" src="backbone-min.js"&gt;&lt;/script&gt;
		&lt;script type="text/javascript" src="hello.js"&gt;&lt;/script&gt;
	&lt;/body&gt;</pre>
<p>As you can see, it&#8217;s a simple HTML document with a textbox, button to accept user input and a empty OL element to hold the list of hello messages.</p>
<h2>2. Create the Backbone Views to represent the UI elements</h2>
<p>We have two views in our UI: One that accepts user input and one that shows the accepted inputs as a list. So, we&#8217;ll create two Backbone views for this. Open the <em>hello.js </em>and type in the below code.</p>
<pre class="brush:javascript">(function($) {

	var UserInputView = Backbone.View.extend({

		el : '#UserInput',

		initialize : function() {
			this.helloListView = new HelloListView();
		},

		events : {
			'click button' : 'addToHelloCollection'
		},

		addToHelloCollection : function(e) {
		}
	});

	var HelloListView = Backbone.View.extend({

		el : '#HelloList',

	});

	new UserInputView();

})(jQuery);</pre>
<p>Because we are creating the Backbone views to represent the existing DOM elements, we can mention the elements in <em>el<strong> </strong></em>option. You can use the CSS3 selector syntax here and Backbone will find the element for you.</p>
<p>All Backbone objects has an <em>initialize() </em>function. Above we are initializing the <em>UserInputView </em>with a reference to the <em>HelloListView</em>.</p>
<p>Each view can accept a <em>events</em> object. Within this, you can specify what are all the events this view will trigger and method name to handle the event. In our case, we have a <em>click </em>event for the <em>button </em>element and a method <em>addToHelloCollection</em> to handle the click event. It is important to note that Backbone searches for the elements mentioned inside the <em>events </em>hash (in this case <em>button</em>) inside the <em>el</em>. So the <em>el</em> element should contain whatever element you give in the <em>events </em>object.</p>
<h2>3. Create Backbone Model, Collection and a view to represent the model</h2>
<p>It&#8217;s time to create a Backbone Model to hold our application data. We can map each hello message to a model. Since we have list of messages, we&#8217;ll create a Backbone Collection too. Lets look at the code.</p>
<pre class="brush:javascript">var Hello = Backbone.Model.extend({
		initialize : function() {
			this.name = 'name'
		}
	});

	var HelloView = Backbone.View.extend({
		tagName : 'li',
		render : function() {
			$(this.el).html('Hello ' + this.model.get('name'));
			return this;
		}
	});

	var HelloList = Backbone.Collection.extend({
		model : Hello
	});</pre>
<p><em>Hello</em> is the model object with a property <em>name </em>initialized to &#8216;name&#8217;. <em>HelloList</em> is the collection and we set this collection <em>model </em>property to our <em>Hello</em> model.</p>
<p>In Backbone, each Model and Collection can have it&#8217;s own view to render themselves. So, we created a <em>HelloView</em> for the <em>Hello</em> model with the <em>render() </em>method to generate the HTML output. Since this view is not associated with any existing DOM elements and Backbone needs a wrapper tag to surround the rendered output, we provide the <em>tagName </em>property with &#8216;li&#8217;. Because of this, when the <em>Hello</em> model generates its HTML code (in <em>render() </em>method), it will be surrounded by <em>li </em>tag.</p>
<h2>4. Combine everything: The final code for hello.js</h2>
<p>Lets update our <em>hello.js </em>file with this final JavaScript.</p>
<pre class="brush:javascript">(function($) {

	var UserInputView = Backbone.View.extend({

		el : '#UserInput',

		initialize : function() {
			this.helloListView = new HelloListView();
		},

		events : {
			'click button' : 'addToHelloCollection'
		},

		addToHelloCollection : function(e) {
			var hello = new Hello({
				name : this.$('input').val()
			});
			this.helloListView.collection.add(hello);
		}
	});

	var Hello = Backbone.Model.extend({
		initialize : function() {
			this.name = 'name'
		}
	});

	var HelloView = Backbone.View.extend({
		tagName : 'li',
		render : function() {
			$(this.el).html('Hello ' + this.model.get('name'));
			return this;
		}
	});

	var HelloList = Backbone.Collection.extend({
		model : Hello
	});

	var HelloListView = Backbone.View.extend({

		el : '#HelloList',

		initialize : function() {
			_.bindAll(this, 'render', 'appendToHelloUL');
			this.collection = new HelloList();
			this.collection.bind('add', this.appendToHelloUL);
		},

		render:function(){

			$.each(this.collection.models, function(i, helloModel){
				self.appendToHelloUL(helloModel);
			});
		},

		appendToHelloUL : function(helloModel) {
			var helloView = new HelloView({
				model : helloModel
			});
			$(this.el).append(helloView.render().el);
		}
	});

	new UserInputView();

})(jQuery);</pre>
<p>As you can see, we have two Backbone views:</p>
<ol>
<li><em>UserInputView</em> &#8211; which listens to the user interface events(<em>button click</em>) and update the model object with user input.</li>
<li><em>HelloListView</em> &#8211; which listens to the changes in our model(<em>add </em>event) and update the user interface with the model values.</li>
</ol>
<div>Everything starts when we create a <em>new UserInputView() </em>which triggers <em>initialize </em>function for each objects and sets up event listeners. When user interacts with the view, the respective event listeners are called and the model gets updated. Then the <em>HelloListView</em> which is listening to model changes gets triggered and the user interface is updated.</div>
<p>Well, that concludes this tutorial. You can see the <a title="Backbone JS - Hello World tutorial" href="http://veerasundar.com/app/hello-backbone/" target="_blank">completed application in action</a> or <a title="Github source" href="https://github.com/vraa/hello-backbone" target="_blank">fork the code in GitHub</a>.</p>
<h2  class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://veerasundar.com/blog/2012/01/the-rise-of-the-front-end-developers/" title="The Rise of the Front End Developers">The Rise of the Front End Developers</a></li><li><a href="http://veerasundar.com/blog/2011/11/sorting-an-array-of-custom-objects-in-javascript/" title="Sorting an array of custom objects in JavaScript">Sorting an array of custom objects in JavaScript</a></li><li><a href="http://veerasundar.com/blog/2011/10/rock-paper-scissors-and-bombs/" title="Rock Paper Scissors and Bombs">Rock Paper Scissors and Bombs</a></li><li><a href="http://veerasundar.com/blog/2011/10/intercepting-onclick-event-in-javascript-using-jquery/" title="Intercepting onclick event in JavaScript using JQuery">Intercepting onclick event in JavaScript using JQuery</a></li><li><a href="http://veerasundar.com/blog/2011/09/making-get-and-post-requests-in-android-application/" title="Making GET and POST requests in android application">Making GET and POST requests in android application</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://veerasundar.com/blog/2012/01/backbone-js-hello-world-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Rise of the Front End Developers</title>
		<link>http://veerasundar.com/blog/2012/01/the-rise-of-the-front-end-developers/</link>
		<comments>http://veerasundar.com/blog/2012/01/the-rise-of-the-front-end-developers/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 17:53:54 +0000</pubDate>
		<dc:creator>Veera</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[back-end]]></category>
		<category><![CDATA[backbone]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[opinion]]></category>

		<guid isPermaLink="false">http://veerasundar.com/blog/?p=2826</guid>
		<description><![CDATA[In any web development company, there exists two different worlds; well there are more, but we&#8217;ll just focus on - front end (designers) &#38; back end (developers) The Front end guys are responsible for making something that is visible to the end users (THE LOOK). The back end guys are responsible for making the front end work [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>In any web development company, there exists two different worlds; well there are <em>more,</em> but we&#8217;ll just focus on - front end (designers) &amp; back end (developers)</p>
<p>The Front end guys are responsible for making something that is visible to the end users (THE LOOK). The back end guys are responsible for making the front end work (THE FUNCTIONALITY). Together, they both deliver a complete web application/site.</p>
<p>The back end developers would typically use programming languages, such as Java/C++/Python. Apart from talking to database and processing requests, they even have an arsenal of libraries to generate the site markup (JSPs, server side templates, etc).</p>
<p>Front end guys usually fill in by writing HTML documents and CSS files (merely a <em>writer</em>) to present this markup in an visually pleasing way and back end just take these templates to populate data.</p>
<p>Front end had only one option to do any logical operations, by using <em>JavaScript </em>- which has been used for a long time just to validate forms (and do some freaky stuffs).</p>
<p>Because of this <em>cultural </em>difference, there&#8217;s always been a ego-war between these two worlds. Even the company management would rate the front end guys par below the back end developers because the front ends guys don&#8217;t do any serious programming.</p>
<p>All was going fine until the web2.0 era. Now, the front end realized that they could use JavaScript to do much more cooler stuffs than just the form validation. The development of high speed JavaScript engines (such as V8) made it possible to run complex JavaScript code right in the browser. With the introduction of technologies such as WebGL and Canvas, even graphics rendering became feasible using JavaScript.</p>
<p>But, this didn&#8217;t change anything on the server side; the server programs were still running on JVMs/Rubys/Pythons.</p>
<p>Fast forward to today: The scenario is dramatically changing. JavaScript has just sneaked its way into the servers. Now, it is no longer required that a web application needs to have a back end programming language such as Java/C++. Everything can be done using just JavaScript.</p>
<p>Thanks to <strong>node.js </strong>which made it possible to run the JavaScript on the server side. Using <strong>MongoDB, </strong>one can replace the need to have SQL code and now store JSON documents using JavaScript MongoDB connectors. The JavaScript template libraries such as <strong>{{Mustache}}/Underscore </strong>almost removed the need to have server side templates (JSPs). On the client side, JavaScript MVC frameworks such as <strong>Backbone.JS </strong>enable us to write maintainable code. And, there&#8217;s always the plain old JavaScript waiting for us to write some form validation script.</p>
<p>With that, now it is possible to do the heavy lifting just by using JavaScript. The front end JavaScript programmers no longer need to focus on just the front end. They can use their skill set to develop the web application <strong>end-to-end.</strong></p>
<p>This rise of the front end developers poses a real threat to the survival of back end developers. If you are one of that back end guy, do you already realize this threat? What&#8217;s your game plan to stay fit to survive this challenge?</p>
<h2  class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://veerasundar.com/blog/2008/12/i-am-a-java-developer-should-i-know-about-div/" title="I am a Java developer. Should I know about DIV ?">I am a Java developer. Should I know about DIV ?</a></li><li><a href="http://veerasundar.com/blog/2012/01/backbone-js-hello-world-tutorial/" title="Backbone JS &#8211; Hello World tutorial">Backbone JS &#8211; Hello World tutorial</a></li><li><a href="http://veerasundar.com/blog/2011/02/redesigning-my-home-page-as-a-game/" title="Redesigning my home page as a game">Redesigning my home page as a game</a></li><li><a href="http://veerasundar.com/blog/2010/12/javascript-getattribute-method/" title="JavaScript getAttribute method">JavaScript getAttribute method</a></li><li><a href="http://veerasundar.com/blog/2010/07/infinite-scroll-loading-content-while-scrolling-using-java-and-jquery/" title="Infinite scroll : Loading content while scrolling, using Java and JQuery">Infinite scroll : Loading content while scrolling, using Java and JQuery</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://veerasundar.com/blog/2012/01/the-rise-of-the-front-end-developers/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>How to create a new image in GIMP with the size of clipboard image</title>
		<link>http://veerasundar.com/blog/2012/01/how-to-create-a-new-image-in-gimp-with-the-size-of-clipboard-image/</link>
		<comments>http://veerasundar.com/blog/2012/01/how-to-create-a-new-image-in-gimp-with-the-size-of-clipboard-image/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 05:34:15 +0000</pubDate>
		<dc:creator>Veera</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[editing]]></category>
		<category><![CDATA[gimp]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[slice]]></category>
		<category><![CDATA[slicing]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[ued]]></category>
		<category><![CDATA[visual]]></category>

		<guid isPermaLink="false">http://veerasundar.com/blog/?p=2804</guid>
		<description><![CDATA[When you are designing a web page and you are given only the single visual design image file, it is vital to slice the image into multiple smaller images to get the required image parts (logo, icons etc.). In Photoshop world, slicing images is piece-of-cake. When you copy an image and choose &#8220;File-&#62;New&#8221;, Photoshop automagically [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>When you are designing a web page and you are given only the single visual design image file, it is vital to slice the image into multiple smaller images to get the required image parts (logo, icons etc.).</p>
<p>In Photoshop world, slicing images is piece-of-cake. When you copy an image and choose &#8220;File-&gt;New&#8221;, Photoshop automagically sets the new image dimension as of the clipboard image.</p>
<p>But GIMP doesn&#8217;t do this! Wait&#8230;there&#8217;s another technique to achieve the same functionality in GIMP.</p>
<ol>
<li>Open the image from which you want to cut smaller images and make them as separate files.</li>
<li>Copy/Cut your required section.</li>
<li>Now go to &#8220;<em>Edit -&gt; Paste as New Image</em>&#8221; (or just <em>Ctrl+Shift+v)</em></li>
<li>Bingo! you have a new image with the same size as of the one you just cut/copied.</li>
</ol>
<h2  class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://veerasundar.com/blog/2011/10/easy-way-for-setting-up-the-lamp-stack-in-ubuntu-linux-command-line/" title="Easy way for setting up the LAMP stack in Ubuntu Linux command line">Easy way for setting up the LAMP stack in Ubuntu Linux command line</a></li><li><a href="http://veerasundar.com/blog/2009/09/good-news-for-gimp-users-gimp-2-8-supports-single-window-mode/" title="Good news for GIMP users : GIMP 2.8 supports single window mode!">Good news for GIMP users : GIMP 2.8 supports single window mode!</a></li><li><a href="http://veerasundar.com/blog/2011/11/design-changes/" title="Design changes">Design changes</a></li><li><a href="http://veerasundar.com/blog/2011/06/choosing-a-date-time-picker-ui-jquery/" title="Choosing a date time picker UI &#8211; jQuery">Choosing a date time picker UI &#8211; jQuery</a></li><li><a href="http://veerasundar.com/blog/2011/02/redesigning-my-home-page-as-a-game/" title="Redesigning my home page as a game">Redesigning my home page as a game</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://veerasundar.com/blog/2012/01/how-to-create-a-new-image-in-gimp-with-the-size-of-clipboard-image/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making XAMPP to serve any directory outside htdocs</title>
		<link>http://veerasundar.com/blog/2011/11/making-xampp-to-serve-any-directory-outside-htdocs/</link>
		<comments>http://veerasundar.com/blog/2011/11/making-xampp-to-serve-any-directory-outside-htdocs/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 06:52:22 +0000</pubDate>
		<dc:creator>Veera</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[htdocs]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[xampp]]></category>

		<guid isPermaLink="false">http://veerasundar.com/blog/?p=2738</guid>
		<description><![CDATA[So, you have installed XAMPP on windows, changed its server port to a different number other than 80 and changed the MySQL root password to a more secure one. Now its the time to create some HTML files that will be served by XAMPP server. By default, XAMPP serves any file that is located under the [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>So, you have installed XAMPP on windows, <a title="How to change XAMPP server port?" href="http://veerasundar.com/blog/2009/07/how-to-change-xampp-server-port/" target="_blank">changed its server port</a> to a different number other than 80 and <a title="How to change the ‘root’ password for MySQL in XAMPP?" href="http://veerasundar.com/blog/2009/01/how-to-change-the-root-password-for-mysql-in-xampp/" target="_blank">changed the MySQL <em>root</em> password</a> to a more secure one. Now its the time to create some HTML files that will be served by XAMPP server.</p>
<p>By default, XAMPP serves any file that is located under the directory <em>[xampp_installation_folder]/htdocs, </em> which means that you have to copy all your HTML/PHP files inside this directory. But what if you maintain a different folder for all your projects files and you want XAMPP to serve them too along with <em>htdocs</em>?</p>
<p>Lets make XAMPP to do this.</p>
<ol>
<li>Open the file <em>[xamp_installation_folder]/apache/conf/httpd.conf</em> in any text editor.</li>
<li>Copy below lines after the <em>htdocs </em>&lt;Directory&gt; element after changing the directory to your own folder.
<pre class="brush:xml">&lt;Directory "C:/path/to/your/folder"&gt;
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
&lt;/Directory&gt;</pre>
</li>
<li>Then search for this string: &lt;IfModule alias_module&gt;. Inside that element, add a new alias as followed:
<pre class="brush:text">Alias /yoursite/ "C:/path/to/your/folder/yoursite/"</pre>
</li>
<li>Save the file and restart the XAMPP server.</li>
</ol>
<div>After this, if you have a website named &#8216;yoursite&#8217; inside the folder <em>&#8216;c:/path/to/your/folder&#8217;</em> you can access it directly by using the URL: <em>http://localhost:8080/yoursite/ </em>(assuming you have <a title="Change XAMPP server port" href="http://veerasundar.com/blog/2009/07/how-to-change-xampp-server-port/" target="_blank">changed XAMPP port</a> to 8080).</div>
<h2  class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://veerasundar.com/blog/2011/10/easy-way-for-setting-up-the-lamp-stack-in-ubuntu-linux-command-line/" title="Easy way for setting up the LAMP stack in Ubuntu Linux command line">Easy way for setting up the LAMP stack in Ubuntu Linux command line</a></li><li><a href="http://veerasundar.com/blog/2009/07/xampp-apache-mysql-php-perl-environment-in-windows/" title="XAMPP &#8211; Apache, MySQL, PHP, Perl environment in Windows ">XAMPP &#8211; Apache, MySQL, PHP, Perl environment in Windows </a></li><li><a href="http://veerasundar.com/blog/2009/01/php-development-with-codeigniter-getting-started-1/" title="PHP development with CodeIgniter : Getting Started [1]">PHP development with CodeIgniter : Getting Started [1]</a></li><li><a href="http://veerasundar.com/blog/2011/11/sorting-an-array-of-custom-objects-in-javascript/" title="Sorting an array of custom objects in JavaScript">Sorting an array of custom objects in JavaScript</a></li><li><a href="http://veerasundar.com/blog/2011/10/intercepting-onclick-event-in-javascript-using-jquery/" title="Intercepting onclick event in JavaScript using JQuery">Intercepting onclick event in JavaScript using JQuery</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://veerasundar.com/blog/2011/11/making-xampp-to-serve-any-directory-outside-htdocs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Design changes</title>
		<link>http://veerasundar.com/blog/2011/11/design-changes/</link>
		<comments>http://veerasundar.com/blog/2011/11/design-changes/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 05:30:36 +0000</pubDate>
		<dc:creator>Veera</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://veerasundar.com/blog/?p=2724</guid>
		<description><![CDATA[Just a quick note to let you know that the design of this blog has been changed a bit. If you are using a wide screen monitor (&#62; 1100 pixels), you would notice that the blog title has been moved towards the left, leaving more space for the post content. Floating the title left caused [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Just a quick note to let you know that the design of this blog has been changed a bit. If you are using a wide screen monitor (&gt; 1100 pixels), you would notice that the blog title has been moved towards the left, leaving more space for the post content.</p>
<p>Floating the title left caused a broken layout in resolution that are less than 1100 pixels. The title was displayed on top of the content, because of the absolute positioning. But, thanks to media queries, the layout is now adopts itself to all monitors.</p>
<pre class="brush:css">@media all and (min-width:1100px){
.custom #header{border:none;position:absolute;top:0;left:0;width:100px;}
}</pre>
<p>And, there&#8217;s space for the social buttons too, which I shamelessly copied from my own <a href="http://veerasundar.com">home page</a>.</p>
<p>So, what do you think?</p>
<p>PS: If you are reading this post in an reader, never mind!</p>
<h2  class="related_post_title">Related Posts</h2><ul class="related_post"><li><a href="http://veerasundar.com/blog/2011/02/redesigning-my-home-page-as-a-game/" title="Redesigning my home page as a game">Redesigning my home page as a game</a></li><li><a href="http://veerasundar.com/blog/2012/01/how-to-create-a-new-image-in-gimp-with-the-size-of-clipboard-image/" title="How to create a new image in GIMP with the size of clipboard image">How to create a new image in GIMP with the size of clipboard image</a></li><li><a href="http://veerasundar.com/blog/2011/08/the-problem-with-the-atm-menus/" title="The problem with the ATM Menus">The problem with the ATM Menus</a></li><li><a href="http://veerasundar.com/blog/2011/06/choosing-a-date-time-picker-ui-jquery/" title="Choosing a date time picker UI &#8211; jQuery">Choosing a date time picker UI &#8211; jQuery</a></li><li><a href="http://veerasundar.com/blog/2010/09/justtype-nothing-else/" title="JustType &#8211; Nothing Else">JustType &#8211; Nothing Else</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://veerasundar.com/blog/2011/11/design-changes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

