<?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>BLOGS@DiGiTSS</title>
	<atom:link href="http://blogs.digitss.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.digitss.com</link>
	<description>DiGiTSS Team&#039;s Programming experience with PHP, MySQL, Ajax, Javascript, jQuery, C# and Microsoft technologies</description>
	<lastBuildDate>
	Thu, 14 Mar 2019 06:00:32 +0000	</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Javascript ES6 Arrow Function variations</title>
		<link>http://blogs.digitss.com/javascript/javascript-es6-arrow-function-variations/</link>
				<comments>http://blogs.digitss.com/javascript/javascript-es6-arrow-function-variations/#respond</comments>
				<pubDate>Thu, 14 Mar 2019 05:54:13 +0000</pubDate>
		<dc:creator><![CDATA[Dharmavirsinh Jhala]]></dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://blogs.digitss.com/?p=731</guid>
				<description><![CDATA[Arrow function helps programmers intending to write declarative code with Javascript. While everyone may have different feelings for this new addition to the Javascript/ES6 but at the same time whatever camp you belong to&#46;&#46;&#46;]]></description>
								<content:encoded><![CDATA[
<figure class="wp-block-image"><img src="http://blogs.digitss.com/wp-content/uploads/2019/03/Screen-Shot-2019-03-13-at-10.58.53-PM.png" alt="" class="wp-image-733"/></figure>



<p>Arrow function helps programmers intending to write declarative code with Javascript. While everyone may have different feelings for this new addition to the Javascript/ES6 but at the same time whatever camp you belong to you, you will have to deal with and deal with <strong>variations of Arrow Function</strong>.</p>



<h4>Why you need to know this?</h4>
<p>
Theoretically you don't need to learn to use arrow function at all. You can do everything with good old "function" that you have been doing since you started writing your first Javascript code. It could be advantageous in some cases but you can get away without using them.
But even if you don't use it right now, you might end up using arrow functions in future or you might have to maintain code that was written by someone who loved using arrow functions. <img src="https://s.w.org/images/core/emoji/11.2.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br>
<i>So there is always wisdom in learning, knowledge is power!!</i>
</p>



<p>Now, without spending more time in introduction, we will get straight to the business and talk about variations.</p>



<h2>No Parameters</h2>
<h3>() =&gt; 7</h3>
This is the variation where you don't have any parameters for arrow function and just an expression. For the sake of simplicity I have avoided using any expression because it could be anything. <br>For example: <br>
<pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> fn = <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> =&gt; <span style="color: #CC0000;">7</span>
<span style="color: #009900; font-style: italic;">// To run: fn()</span>
<span style="color: #009900; font-style: italic;">// expected output: 7  </span></pre>



<h2>Single Parameter</h2>
<h3>p =&gt; p*p</h3>
OR 
<h3>(p) =&gt; p*p</h3>
With single parameter, you can either choose to use parentheses or omit them. I personally like using parentheses for consistency.
<br>For example: <br>
<pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> fn = <span style="color: #66cc66;">&#40;</span>p<span style="color: #66cc66;">&#41;</span> =&gt; p * p
<span style="color: #009900; font-style: italic;">// To run: fn(5)</span>
<span style="color: #009900; font-style: italic;">// expected output: 25  </span></pre>



<h2>Multiple Parameters</h2>
<h3>(p1, p2) =&gt; p1+p2</h3>
You have to use parentheses with multiple parameters.
<br>For example: <br>
<pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> fn = <span style="color: #66cc66;">&#40;</span>p<span style="color: #66cc66;">&#41;</span> =&gt; p * p
<span style="color: #009900; font-style: italic;">// To run: fn(5)</span>
<span style="color: #009900; font-style: italic;">// expected output: 25  </span></pre>



<h2>Using Gather Operator or Rest Parameters</h2>
<h3> (...p) =&gt; expression </h3>
Here <i>rest parameters</i> will collect all arguments into an array and provide us for processing.
<b>When do you use them in your function definition?</b>
Simple, when you want to provide flexibility or variable number of arguments during a function call.
Example:
<pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> fn = <span style="color: #66cc66;">&#40;</span>...<span style="color: #006600;">p</span><span style="color: #66cc66;">&#41;</span> =&gt;  p.<span style="color: #006600;">map</span><span style="color: #66cc66;">&#40;</span>Math.<span style="color: #006600;">sqrt</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #009900; font-style: italic;">// To run: fn(25, 16)</span>
<span style="color: #009900; font-style: italic;">// expected output: [5, 4]</span></pre>



<h2>Using Curly Brackets for Concise Function Body </h2>
<h3> (...p) =&gt; expression </h3>
Now the expression(s) that we use to write body of an arrow function is called concise function body. If you want to wrap your logic with curly brackets then you need to remember to use return keyword. When you don't use curly brackets, return statement is implicit whether it is one or more expression.
Example:
<pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> fn = <span style="color: #66cc66;">&#40;</span>p1, p2<span style="color: #66cc66;">&#41;</span> =&gt;  <span style="color: #66cc66;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span> p1 * p2; <span style="color: #66cc66;">&#125;</span>
<span style="color: #009900; font-style: italic;">// To run: fn(5, 6)</span>
<span style="color: #009900; font-style: italic;">// expected output: 30</span></pre>
I personally like using semi-colon at the end of the expression but it is not necessary but it won't give you any error if you use.
Another example
<pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> fn = <span style="color: #66cc66;">&#40;</span>...<span style="color: #006600;">params</span><span style="color: #66cc66;">&#41;</span> =&gt;  <span style="color: #66cc66;">&#123;</span>
let output = <span style="color: #CC0000;">0</span>;
<span style="color: #000066; font-weight: bold;">for</span><span style="color: #66cc66;">&#40;</span>let param of params<span style="color: #66cc66;">&#41;</span> output += param;
<span style="color: #000066; font-weight: bold;">return</span> output;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #009900; font-style: italic;">// Usage: fn(1,2,3)</span>
<span style="color: #009900; font-style: italic;">// expected output: 6</span>
<span style="color: #009900; font-style: italic;">// Using with spread operator</span>
let input = <span style="color: #66cc66;">&#91;</span><span style="color: #CC0000;">1</span>, <span style="color: #CC0000;">2</span>, <span style="color: #CC0000;">3</span>, <span style="color: #CC0000;">6</span><span style="color: #66cc66;">&#93;</span>;
fn<span style="color: #66cc66;">&#40;</span>...<span style="color: #006600;">input</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #009900; font-style: italic;">// output: 12</span></pre>



<h2>Returning Object</h2>
<h3>(p1, p2) =&gt; ({"param1": p1, "param2": p2})</h3>
To return an object while not using curly brackets you must use parentheses.
<br>For example: <br>
<pre class="javascript"><span style="color: #009900; font-style: italic;">// Wrong usage: results in Javascript syntax error</span>
let fn = <span style="color: #66cc66;">&#40;</span>p1, p2<span style="color: #66cc66;">&#41;</span> =&gt; <span style="color: #66cc66;">&#123;</span><span style="color: #3366CC;">&quot;param1&quot;</span>: p1, <span style="color: #3366CC;">&quot;param2&quot;</span>: p2<span style="color: #66cc66;">&#125;</span>
<span style="color: #009900; font-style: italic;">// Correct usage</span>
let fn = <span style="color: #66cc66;">&#40;</span>p1, p2<span style="color: #66cc66;">&#41;</span> =&gt; <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span><span style="color: #3366CC;">&quot;param1&quot;</span>: p1, <span style="color: #3366CC;">&quot;param2&quot;</span>: p2<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #009900; font-style: italic;">// To run: fn(10, 20)</span>
<span style="color: #009900; font-style: italic;">// expected output: {&quot;param1&quot;: 100, &quot;param2&quot;: 200}  </span></pre>



<h2>What you can't do with Arrow Function?</h2>
While you can use all expressions and loop, you can't use "if..else" or "try...catch" inside the concise body of the arrow function so keep that in mind. If you use it, it will result in a syntax error.



<h2>In the end;</h2>
Majority of the time arrow function would be used as an argument to another function. It won't have the "var fn = " in front of it. I did it, just so that I can have code that we can run in a browser console to test it.
There are positives of using <b>Arrow Function</b>, which I will find out on my way while using them or you can learn more about <a href="https://medium.com/tfogo/advantages-and-pitfalls-of-arrow-functions-a16f0835799e" target="_blank" rel="nofollow noopener noreferrer"> pros and cons of arrow functions here</a>.

They are anonymous by definition and in addition to above article by Tim Fogarty on Medium, would like to add few more:
<ul>
<li>They are anonymous and so will show up as anonymous functions in stack trace, you can store them in a variable (like we did in all examples above) and it will use name inference.</li>
<li>You can't easily self reference to it (think about recursion)</li>
</ul>



<h4>Credits / References </h4>
This post is compiled to keep a quick reference for variations of <b>Arrow Functions</b> for myself and audience here. It is compiled from learnings from a course by Kyle Simpson <a href="https://frontendmasters.com/courses/es6-right-parts/arrow-function-variations/" target="_blank" rel="noopener noreferrer">ES6: The Right Parts</a>.



<p>Feel free to shout out your experience with new features of ES6 and your thoughts on arrow function in comments below.</p>
]]></content:encoded>
							<wfw:commentRss>http://blogs.digitss.com/javascript/javascript-es6-arrow-function-variations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>DevOps: What to expect from DevOps engineer? What not? and most important do you need one?</title>
		<link>http://blogs.digitss.com/business/devops/devops-what-to-expect-from-devops-engineer-and-what-not/</link>
				<comments>http://blogs.digitss.com/business/devops/devops-what-to-expect-from-devops-engineer-and-what-not/#respond</comments>
				<pubDate>Sun, 07 Feb 2016 20:56:24 +0000</pubDate>
		<dc:creator><![CDATA[Dharmavirsinh Jhala]]></dc:creator>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Continuous Delivery]]></category>
		<category><![CDATA[Continuous Integration]]></category>

		<guid isPermaLink="false">http://blogs.digitss.com/?p=709</guid>
				<description><![CDATA[Not sure what to expect or what DevOps can do for you? or not sure what you'll have to do as a DevOps engineer?

Watch the detailed presentation to find out more about DevOps whether you're looking forward to make a career move towards DevOps or a business who is planning to start a DevOps within the organization or a company who is planning to jump into DevOps as a Service provider or even if you're just an enthusiast who is looking forward to know more on the topic.]]></description>
								<content:encoded><![CDATA[<p>DevOps is a new term, new buzzword which was coined in about 2010 and gained momentum in 2014-15 and since then DevOps engineers are in demand and businesses are ready to pay the premium price for them. Now it's very important for Companies to self-analyze the need and find out exactly what they are looking from the DevOps position or team and what they should expect.</p>
<p>DevOps is not a silver bullet to fix all the problems between Development (Developers + QA) and Operations team and things won't change overnight. To cut long story short, I have compiled a presentation last year for one company which was looking forward to create a space for DevOps in their organization - initially to experiment and start by eating their own dog food and then using it as a service to market and gain new business by providing <strong>DevOps as a Service</strong>.</p>
<p>I would highly recommend to watch this presentation to anyone who is either looking forward to make a <strong><em>career move towards DevOps</em></strong> or a business who is <strong><em>planning to start a DevOps within the organization</em></strong> or a <strong><em>company who is planning to jump into DevOps as a Service provider</em></strong> or even if you're just an <em><strong>enthusiast</strong> </em>who is looking forward to know more on the topic.<br />
<iframe src="https://www.slideshare.net/slideshow/embed_code/57983168" width="720" height="579" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe><br/></p>
<p>Liked the presentation? I would like to listen to your comments about the presentation and your experiences in the DevOps space.</p>
<p>Or just feel free to ask a question - below in the comments section.</p>
]]></content:encoded>
							<wfw:commentRss>http://blogs.digitss.com/business/devops/devops-what-to-expect-from-devops-engineer-and-what-not/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Command Prompt Here &#8211; in Windows 10</title>
		<link>http://blogs.digitss.com/microsoft/command-prompt-here-in-windows-10/</link>
				<comments>http://blogs.digitss.com/microsoft/command-prompt-here-in-windows-10/#respond</comments>
				<pubDate>Thu, 28 Jan 2016 00:50:05 +0000</pubDate>
		<dc:creator><![CDATA[Dharmavirsinh Jhala]]></dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[command-prompt]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[windows 10]]></category>

		<guid isPermaLink="false">http://blogs.digitss.com/?p=703</guid>
				<description><![CDATA[To open command-line with working directory as your current working directory in explorer, go to address-bar in Windows Explorer and type in just 3 letter "CMD" and it opens up Windows Command-line right there with your current directory as the active/working directory in command-prompt instance.]]></description>
								<content:encoded><![CDATA[<p><img class="size-full wp-image-704 alignleft" src="http://blogs.digitss.com/wp-content/uploads/2016/01/windows-10.png" alt="Microsoft Windows 10" width="231" height="180" />Today I recalled that "<strong>Command Prompt here</strong>" feature of Windows and so it reminded me of Windows Power Toys. Installing Power Toys in Windows XP days used to provide a shortcut to open Command Prompt anywhere by making it available as a menu item in explorer's context menu. So I googled up today as I needed to deal with it but could not find Power Toys for Windows 10, they are discontinued.</p>
<p>I am sure there are many third party apps available which enable this feature other than Power Toys (by Microsoft) and I have used them in past but did not wanted to bloat my system with more tools. Then I came across an article on the Internet showing 10 ways to open command prompt in Windows 10 and there I found my now favorite trick to open Windows CLI.</p>
<p><a href="http://blogs.digitss.com/wp-content/uploads/2016/01/command-prompt-here-windows-10.png" rel="attachment wp-att-705"><img class="alignleft size-full wp-image-705" src="http://blogs.digitss.com/wp-content/uploads/2016/01/command-prompt-here-windows-10.png" alt="command-prompt-here-windows-10" width="548" height="140" /></a>Look at this, go to address-bar in Windows Explorer and type in just 3 letter "<strong>CMD</strong>" and it opens up Windows Command-line right there with your current directory as the active/working directory in command-prompt instance.</p>
<p>This is really nice hidden feature and using it will save you from the hell of navigating to your working directory.</p>
<p>Similarly if you want to open "command-prompt as administrator" with working directory in Windows Explorer just navigate to <em>File &gt; Open command prompt &gt; Open command prompt</em> as administrator. Same goes for Windows PowerShell as well, look at the screen capture below;</p>
<p><a href="http://blogs.digitss.com/wp-content/uploads/2016/01/open-command-here-as-administrator.png" rel="attachment wp-att-707"><img class="alignleft size-full wp-image-707" src="http://blogs.digitss.com/wp-content/uploads/2016/01/open-command-here-as-administrator.png" alt="open-command-here-as-administrator" width="552" height="186" /></a></p>
<p>I hope this simple yet hidden trick will be helpful to you and save your few minutes a day. Share your thoughts and hidden tricks you are using in your day-to-day routine as comments. Enjoy.!!</p>
<p>&nbsp;</p>
<p>Reference: http://www.howtogeek.com/235101/10-ways-to-open-the-command-prompt-in-windows-10/</p>
]]></content:encoded>
							<wfw:commentRss>http://blogs.digitss.com/microsoft/command-prompt-here-in-windows-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Node.JS &#8211; changing installation directory for global modules</title>
		<link>http://blogs.digitss.com/javascript/node-js/node-js-changing-installation-directory-for-global-modules/</link>
				<comments>http://blogs.digitss.com/javascript/node-js/node-js-changing-installation-directory-for-global-modules/#respond</comments>
				<pubDate>Mon, 18 Jan 2016 18:00:00 +0000</pubDate>
		<dc:creator><![CDATA[Dharmavirsinh Jhala]]></dc:creator>
				<category><![CDATA[Node.JS]]></category>
		<category><![CDATA[nodejs]]></category>

		<guid isPermaLink="false">http://blogs.digitss.com/?p=700</guid>
				<description><![CDATA[Like many people I like to manage installation directory of programs which I install. I like to make sure that things are in CONTROL in my system and so it goes for all programs&#46;&#46;&#46;]]></description>
								<content:encoded><![CDATA[<p><a href="http://blogs.digitss.com/wp-content/uploads/2016/01/nodejs.png" rel="attachment wp-att-701"><img class="alignleft size-full wp-image-701" src="http://blogs.digitss.com/wp-content/uploads/2016/01/nodejs.png" alt="nodejs" width="318" height="159" /></a>Like many people I like to manage installation directory of programs which I install. I like to make sure that things are in <strong>CONTROL</strong> in my system and so it goes for all programs and their modules, plugins or packages I install. <img src="https://s.w.org/images/core/emoji/11.2.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Basically I need to know first where they are sitting in my system and once I know where they are and if I don't like that I put them somewhere else.</p>
<p>When we install modules globally in <strong>Node.JS</strong> it installs them at default location which is following in windows system:</p>
<pre>${APPDATA}\npm</pre>
<p>Which translates to</p>
<pre>C:\Users\&lt;Your-Username&gt;\AppData\Roaming\npm</pre>
<p>and I don't like Node.JS installing my global packages at this location and to change that you have to make change file "<strong>npmrc</strong>" which was at following location in my system:</p>
<pre>D:\DiGiTSS\Programs\nodejs\node_modules\npm\</pre>
<p>Open the file <em>X:\&lt;Your-Programs-Dir&gt;\nodejs\node_modules\npm\<strong>npmrc</strong></em>, now you will see following line in this file:</p>
<pre>prefix=${APPDATA}\npm</pre>
<p>Now change this path to whatever you want, like I changed it to following as I wanted it to be static at some location:</p>
<pre>prefix=D:\DiGiTSS\Programs\nodejs\global_modules</pre>
<p>I like some of my programs to be installed on non-windows drive and so I choose different drive but generally I do not like development tools install something in Windows Roaming profile even if you install MySQL using installer it sets "data" directory default inside ProgramData in Windows which is following:</p>
<pre>C:\ProgramData\MySQL\MySQL Server 5.x\Data\</pre>
<p>I don't like this either, we will learn about how to change this in another post.</p>
<p>Looking forward to hear back from you if this tip helped and even if it did not.!</p>
]]></content:encoded>
							<wfw:commentRss>http://blogs.digitss.com/javascript/node-js/node-js-changing-installation-directory-for-global-modules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Exception in thread &#8220;main&#8221; org.springframework.beans.factory.BeanCreationException: Error creating bean with name &#8216;&#8216; defined in class path resource</title>
		<link>http://blogs.digitss.com/java/exception-in-thread-main-org-springframework-beans-factory-beancreationexception-error-creating-bean-with-name-defined-in-class-path-resource/</link>
				<comments>http://blogs.digitss.com/java/exception-in-thread-main-org-springframework-beans-factory-beancreationexception-error-creating-bean-with-name-defined-in-class-path-resource/#respond</comments>
				<pubDate>Thu, 11 Jun 2015 04:26:46 +0000</pubDate>
		<dc:creator><![CDATA[Dharmavirsinh Jhala]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[AOP]]></category>
		<category><![CDATA[AspectJ]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://blogs.digitss.com/?p=695</guid>
				<description><![CDATA[If you encounter above error while compiling your project with Spring AOP (Aspect Oriented Programming) then you need to make sure that you have included AspectJ dependencies (aspectjrt.jar and aspectjweaver.jar) in your classpath. Because&#46;&#46;&#46;]]></description>
								<content:encoded><![CDATA[<p>If you encounter above error while compiling your project with Spring AOP (Aspect Oriented Programming) then you need to make sure that you have included AspectJ dependencies (<em>aspectjrt.jar</em> and <em>aspectjweaver.jar</em>) in your classpath. Because Spring's AOP config with AOP namespace is based on AspectJ and it is not bundled with <em>org.springframework.aop.jar</em>.</p>
<p>Error description:</p>
<pre>Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'knight' defined in class path resource [com/digitss/knights/knight.xml]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.aop.aspectj.AspectJPointcutAdvisor#0': Cannot create inner bean '(inner bean)' of type [org.springframework.aop.aspectj.AspectJMethodBeforeAdvice] while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)': Cannot resolve reference to bean 'embark' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'embark': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:454)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
    at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;init&gt;(ClassPathXmlApplicationContext.java:139)
    at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;init&gt;(ClassPathXmlApplicationContext.java:83)
    at com.springinaction.knights.KnightMain.main(KnightMain.java:13)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.aop.aspectj.AspectJPointcutAdvisor#0': Cannot create inner bean '(inner bean)' of type [org.springframework.aop.aspectj.AspectJMethodBeforeAdvice] while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)': Cannot resolve reference to bean 'embark' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'embark': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:282)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:126)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:629)
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1045)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:949)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:487)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198)
    at org.springframework.aop.framework.autoproxy.BeanFactoryAdvisorRetrievalHelper.findAdvisorBeans(BeanFactoryAdvisorRetrievalHelper.java:86)
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findCandidateAdvisors(AbstractAdvisorAutoProxyCreator.java:101)
    at org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator.shouldSkip(AspectJAwareAdvisorAutoProxyCreator.java:103)
    at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessBeforeInstantiation(AbstractAutoProxyCreator.java:276)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:890)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:862)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:448)
    ... 10 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)': Cannot resolve reference to bean 'embark' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'embark': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:615)
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1045)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:949)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:487)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:271)
    ... 28 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'embark': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1007)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:953)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:487)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:314)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
    ... 36 more
Caused by: java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
    at java.lang.Class.getConstructor0(Class.java:3075)
    at java.lang.Class.getDeclaredConstructor(Class.java:2178)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:78)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1000)
    ... 42 more
Caused by: java.lang.ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 48 more</pre>
<p>To fix this either download AspectJ and add <em>aspectjrt.jar</em> and <em>aspectjweaver.jar</em> to your classpath or make following change in your <em>pom.xml</em> if you are using maven.</p>
<pre class="xml">        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;dependency<span style="font-weight: bold; color: black;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;groupId<span style="font-weight: bold; color: black;">&gt;</span></span></span>org.springframework<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/groupId<span style="font-weight: bold; color: black;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;artifactId<span style="font-weight: bold; color: black;">&gt;</span></span></span>spring-aop<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/artifactId<span style="font-weight: bold; color: black;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;version<span style="font-weight: bold; color: black;">&gt;</span></span></span>${spring-framework.version}<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/version<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/dependency<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;dependency<span style="font-weight: bold; color: black;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;groupId<span style="font-weight: bold; color: black;">&gt;</span></span></span>org.aspectj<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/groupId<span style="font-weight: bold; color: black;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;artifactId<span style="font-weight: bold; color: black;">&gt;</span></span></span>aspectjweaver<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/artifactId<span style="font-weight: bold; color: black;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;version<span style="font-weight: bold; color: black;">&gt;</span></span></span>1.6.1<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/version<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/dependency<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre>
<p>&nbsp;</p>
]]></content:encoded>
							<wfw:commentRss>http://blogs.digitss.com/java/exception-in-thread-main-org-springframework-beans-factory-beancreationexception-error-creating-bean-with-name-defined-in-class-path-resource/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Remember last page on Windows with Adobe Acrobat Reader</title>
		<link>http://blogs.digitss.com/tools-plugins-extenstion/remember-last-page-on-windows-with-adobe-acrobat-reader/</link>
				<comments>http://blogs.digitss.com/tools-plugins-extenstion/remember-last-page-on-windows-with-adobe-acrobat-reader/#respond</comments>
				<pubDate>Thu, 21 May 2015 01:34:57 +0000</pubDate>
		<dc:creator><![CDATA[Dharmavirsinh Jhala]]></dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tools / Plugins / Extenstion]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://blogs.digitss.com/?p=689</guid>
				<description><![CDATA[I am a Windows user for my day to day routines and last year I used Macbook Air for about a year and was quite amazed with some out-of-the-box features of Mac OS and&#46;&#46;&#46;]]></description>
								<content:encoded><![CDATA[<p>I am a Windows user for my day to day routines and last year I used Macbook Air for about a year and was quite amazed with some out-of-the-box features of Mac OS and in-built capabilities. Mac OS comes with "<strong>Preview</strong>" application which can open anything from all type of images to PDF and much more. The best thing with that Preview application was that it used to remember last page on all the PDF documents that you open up using it. That was for me the "Wow!!" feature in the Application and OS itself which bags it. Yeah there are lot to talk about from battery life to touch-pad and much more on the positive side and when it comes to negative there are few things including one which I did not like specifically is - There is no default program in OS to remove software that user installs. Though it just removes it when you delete a file from /Applications directory but there are still some housekeeping required in terms of removing those .plist files from certain places or so. But yeah all in all it was good experience using Mac and except battery life, touch-pad and wonderful keyboard I don't miss it anymore with new Windows 8.1 laptop. Oh! yeah I miss the SSD too! <img src="https://s.w.org/images/core/emoji/11.2.0/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>But yeah I was talking about "Remembering last page or position of the PDF file opened" and when I did some google today I just figured out that it is possible to do it in Windows too without using any new software but just with Adobe Acrobat Reader.</p>
<p>In your Acrobat Reader go to "Edit -&gt; Preferences" (or press CTRL + K) and then navigate to "Documents" tab and check the check-box which says "Restore last view settings when reopening documents".<br />
<span id="more-689"></span></p>
<p><div id="attachment_690" style="width: 1008px" class="wp-caption alignleft"><a href="http://blogs.digitss.com/wp-content/uploads/2015/05/acrobat-remember-last-view.png"><img aria-describedby="caption-attachment-690" class="size-full wp-image-690" src="http://blogs.digitss.com/wp-content/uploads/2015/05/acrobat-remember-last-view.png" alt="Restore last view settings when reopening documents" width="998" height="731" /></a><p id="caption-attachment-690" class="wp-caption-text">Restore last view settings when reopening documents</p></div></p>
<p>Bingo! Once you change this preference and reopen your Adobe Acrobat, it will remember last position and page of all your PDF documents or e-books. Enjoy!!</p>
]]></content:encoded>
							<wfw:commentRss>http://blogs.digitss.com/tools-plugins-extenstion/remember-last-page-on-windows-with-adobe-acrobat-reader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>Moto G Android Lollipop upgrade, should I upgrade?</title>
		<link>http://blogs.digitss.com/reviews/moto-g-android-lollipop-upgrade-should-i-upgrade/</link>
				<comments>http://blogs.digitss.com/reviews/moto-g-android-lollipop-upgrade-should-i-upgrade/#respond</comments>
				<pubDate>Mon, 09 Feb 2015 20:03:27 +0000</pubDate>
		<dc:creator><![CDATA[Dharmavirsinh Jhala]]></dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Lollipop]]></category>
		<category><![CDATA[Moto-G]]></category>

		<guid isPermaLink="false">http://blogs.digitss.com/?p=686</guid>
				<description><![CDATA[All existing Moto G or Moto G 2nd Gen owners are exited to see Lollipop (Android 5.0) upgrade on their smartphones but think twice before you upgrade your phone with Android 5.0 (Lollipop) because&#46;&#46;&#46;]]></description>
								<content:encoded><![CDATA[<p><a href="http://blogs.digitss.com/wp-content/uploads/2015/06/Lollipop.jpg"><img class="alignleft size-full wp-image-694" src="http://blogs.digitss.com/wp-content/uploads/2015/06/Lollipop.jpg" alt="Lollipop" width="350" height="193" /></a>All existing Moto G or Moto G 2nd Gen owners are exited to see Lollipop (Android 5.0) upgrade on their smartphones but think twice before you upgrade your phone with Android 5.0 (Lollipop) because Lollipop upgrade may slow down your phone post-upgrade.</p>
<p>Moto G comes with decent specs for a entry level or budget smartphone and runs Android 4.4.4 (KitKat) quite well. Both Moto G and Moto G 2nd generation comes with same RAM and CPU and so upgrading to Lollipop will not make any difference in terms of performance between Moto G and Moto G 2nd Generation phones.</p>
<p>After upgrading you will for sure see a slow down in your performance and the biggest feature except bug-fixes and GUI enhancements you will see is multi-user support. So if you want to create another account for your kids to play games on your phone or for whatever reason multi-user support is important for you then you can make a compromise to slow down your phone a bit and get an Android Lollipop upgrade for your Moto G.</p>
<p>Yeah it has new and improved material design, improved notifications and improved run-time performance+battery life but all that is in vain if your phone hardware is incapable for the software.</p>
<p>Find out what Android Lollipop has to offer <a href="http://www.android.com/versions/lollipop-5-0/" target="_blank">here</a>. If you still want to try be safe by finding out how to revert back to stock OS before you upgrade.</p>
]]></content:encoded>
							<wfw:commentRss>http://blogs.digitss.com/reviews/moto-g-android-lollipop-upgrade-should-i-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>How to turn off browser auto-complete/auto-suggest on forms</title>
		<link>http://blogs.digitss.com/browsers/how-to-turn-off-browser-auto-completeauto-suggest-on-forms/</link>
				<comments>http://blogs.digitss.com/browsers/how-to-turn-off-browser-auto-completeauto-suggest-on-forms/#respond</comments>
				<pubDate>Tue, 13 Jan 2015 06:17:50 +0000</pubDate>
		<dc:creator><![CDATA[Dharmavirsinh Jhala]]></dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[Forms]]></category>

		<guid isPermaLink="false">http://blogs.digitss.com/?p=467</guid>
				<description><![CDATA[This post shows how you can turn off browser's auto-complete feature off by just specifying an attribute to input element or on html form.]]></description>
								<content:encoded><![CDATA[<p>Many times in web-development we want to turn off default browser auto-complete feature to turn off due to vary nature of our application and usage. For example if your use-case is based on the type of your application is such that you're building secure (financial/banking or any application with high-level of confidentiality) where you don't want browsers to remember usernames you can use attribute "<strong>autocomplete</strong>" in HTML form's INPUT elements to turn it off.</p>
<p>Use autocomplete="off" for all the fields for which you want to turn off autocomplete. Certain browsers might just not comply or understand this tag at input level in that case you will have to disable them at form level as well. Some version of Chrome browser is observed to have such issues, but for other than exceptions for rest of the others you can simply specify autocomplete="off" like following example:<span id="more-467"></span></p>
<pre class="xml"><span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- To disable autocomplete for specific input element --&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;form</span> <span style="color: #000066;">action</span>=<span style="color: #ff0000;">&quot;/forgotPassword/action&quot;</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;post&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;input</span> <span style="color: #000066;">autocomplete</span>=<span style="color: #ff0000;">&quot;off&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;username&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;input</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;ForgotPassword&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;submit&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/form<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre>
<p>or</p>
<pre class="xml"><span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- To disable autocomplete for all input elements within the form --&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;form</span> <span style="color: #000066;">action</span>=<span style="color: #ff0000;">&quot;/forgotPassword/action&quot;</span> <span style="color: #000066;">autocomplete</span>=<span style="color: #ff0000;">&quot;off&quot;</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;post&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;input</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;username&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;input</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;ForgotPassword&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;submit&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/form<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre>
<p>While I am writing this, Chrome in my system is updated to version 39.x and it respects <em><strong>autocomplete="off"</strong></em> attribute without any problem. But at the same time Safari 8.0.2 in my Mac do not show suggestions even when I don't have this attribute specified. Both Firefox 34 and Chrome 39 respects autocomplete attribute at both form and element level, so you can apply it based on your need.</p>
]]></content:encoded>
							<wfw:commentRss>http://blogs.digitss.com/browsers/how-to-turn-off-browser-auto-completeauto-suggest-on-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
		<item>
		<title>How to setup Xubuntu on Ubuntu-Server</title>
		<link>http://blogs.digitss.com/linux/ubuntu/how-to-setup-xubuntu-on-ubuntu-server/</link>
				<comments>http://blogs.digitss.com/linux/ubuntu/how-to-setup-xubuntu-on-ubuntu-server/#comments</comments>
				<pubDate>Sat, 23 Jun 2012 13:57:38 +0000</pubDate>
		<dc:creator><![CDATA[Dharmavirsinh Jhala]]></dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[x-window]]></category>

		<guid isPermaLink="false">http://blogs.digitss.com/?p=648</guid>
				<description><![CDATA[I recently started using Ubuntu and I really liked the way things work in Ubuntu. I really like that when you setup Ubuntu Server distribution it does not come with GUI at all and that way it saves us from spending few mega-bytes of memory and we won't be wasting around 200MB behind graphical display and related processes, which we won't be using on the Server OS which usually does it's job without requiring us to install any GUI application on the Server.
But well many a time we may want to setup light weight x-window system on our Linux (Ubuntu) system and we can do that with setting up Xface or it's Ubuntu name as "Xubuntu".
To setup lightweight Xface or Xubuntu system on your Ubuntu Server setup you just need to follow some simple commands and that's it, you are done.]]></description>
								<content:encoded><![CDATA[<p><div id="attachment_649" style="width: 287px" class="wp-caption alignleft"><a href="http://blogs.digitss.com/wp-content/uploads/2012/06/xubuntu.png"><img aria-describedby="caption-attachment-649" class="size-full wp-image-649" title="Xubuntu / Xfce on Ubuntu Server" src="http://blogs.digitss.com/wp-content/uploads/2012/06/xubuntu.png" alt="Xubuntu / Xfce on Ubuntu Server" width="277" height="75" /></a><p id="caption-attachment-649" class="wp-caption-text">Xubuntu / Xfce on Ubuntu Server</p></div></p>
<p>I recently started using <strong>Ubuntu</strong> and I really liked the way things work in <strong>Ubuntu</strong>. I really like that when you setup <strong>Ubuntu Server</strong> distribution it does not come with GUI at all and that way it saves us from spending few mega-bytes of memory and we won't be wasting around 200MB behind graphical display and related processes, which we won't be using on the <strong>Server OS</strong> which usually does it's job without requiring us to install any <strong>GUI</strong> application on the <strong>Server</strong>.</p>
<p>But well many a time we may want to setup light weight x-window system on our <strong>Linux</strong> (Ubuntu) system and we can do that with setting up <strong>Xface</strong> or it's <strong>Ubuntu</strong> name as "<strong>Xubuntu</strong>".</p>
<p>To setup lightweight <strong>Xface</strong> or <strong>Xubuntu</strong> system on your <strong>Ubuntu Server</strong> setup you just need to follow some simple commands and that's it, you are done.</p>
<p>So if you are ready to setup, just follow some simple <em>apt-get</em> commands and install <em>minimal packages</em> required to setup <em>lightweight <strong>GUI</strong></em> system on your <strong>Ubuntu Server</strong>:<br />
<strong># To get and install xfce4</strong></p>
<pre class="bash">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> apt-get <span style="color: #c20cb9; font-weight: bold;">install</span> xfce4</pre>
<p><strong># Set of required packages for minimal setup</strong></p>
<pre class="bash">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> aptitude <span style="color: #c20cb9; font-weight: bold;">install</span> catfish elementary-icon-theme exo-utils <span style="color: #c20cb9; font-weight: bold;">flex</span> gigolo gnome-icon-theme-full gnome-system-tools gnome-time-admin gthumb gthumb-data gtk2-engines-pixbuf indicator-application-gtk2 indicator-messages-gtk2 leafpad libclutter<span style="color: #000000;">-1.0</span><span style="color: #000000;">-0</span> libclutter<span style="color: #000000;">-1.0</span>-common libclutter-gtk<span style="color: #000000;">-1.0</span><span style="color: #000000;">-0</span> libcogl-common libcogl5 libconfig-inifiles-<span style="color: #c20cb9; font-weight: bold;">perl</span> libencode-locale-<span style="color: #c20cb9; font-weight: bold;">perl</span> libexo<span style="color: #000000;">-1</span><span style="color: #000000;">-0</span> libexo-common libfile-listing-<span style="color: #c20cb9; font-weight: bold;">perl</span> libfont-afm-<span style="color: #c20cb9; font-weight: bold;">perl</span> libgarcon<span style="color: #000000;">-1</span><span style="color: #000000;">-0</span> libgarcon-common libgdome2<span style="color: #000000;">-0</span> libgdome2-cpp-smart0c2a libgegl<span style="color: #000000;">-0.0</span><span style="color: #000000;">-0</span> libglade2<span style="color: #000000;">-0</span> libgnomevfs2-extra libgsf<span style="color: #000000;">-1</span><span style="color: #000000;">-114</span> libgsf<span style="color: #000000;">-1</span>-common libgstreamer-<span style="color: #c20cb9; font-weight: bold;">perl</span> libgtk2-notify-<span style="color: #c20cb9; font-weight: bold;">perl</span> libgtk2-trayicon-<span style="color: #c20cb9; font-weight: bold;">perl</span> libhtml-form-<span style="color: #c20cb9; font-weight: bold;">perl</span> libhtml-format-<span style="color: #c20cb9; font-weight: bold;">perl</span> libhtml-parser-<span style="color: #c20cb9; font-weight: bold;">perl</span> libhtml-tagset-<span style="color: #c20cb9; font-weight: bold;">perl</span> libhtml-tree-<span style="color: #c20cb9; font-weight: bold;">perl</span> libhttp-cookies-<span style="color: #c20cb9; font-weight: bold;">perl</span> libhttp-daemon-<span style="color: #c20cb9; font-weight: bold;">perl</span> libhttp-date-<span style="color: #c20cb9; font-weight: bold;">perl</span> libhttp-message-<span style="color: #c20cb9; font-weight: bold;">perl</span> libhttp-negotiate-<span style="color: #c20cb9; font-weight: bold;">perl</span> libid3tag0 libido<span style="color: #000000;">-0.1</span><span style="color: #000000;">-0</span> libilmbase6 libio-socket-ssl-<span style="color: #c20cb9; font-weight: bold;">perl</span> libjpeg-progs libkeybinder0 liblink-grammar4 libloudmouth1<span style="color: #000000;">-0</span> liblwp-mediatypes-<span style="color: #c20cb9; font-weight: bold;">perl</span> liblwp-protocol-https-<span style="color: #c20cb9; font-weight: bold;">perl</span> libmad0 libmailtools-<span style="color: #c20cb9; font-weight: bold;">perl</span> libnet-dbus-<span style="color: #c20cb9; font-weight: bold;">perl</span> libnet-http-<span style="color: #c20cb9; font-weight: bold;">perl</span> libnet-ssleay-<span style="color: #c20cb9; font-weight: bold;">perl</span> liboobs<span style="color: #000000;">-1</span><span style="color: #000000;">-5</span> libopenexr6 libotr2 libots0 libsexy2 libthunarx<span style="color: #000000;">-2</span><span style="color: #000000;">-0</span> libtie-ixhash-<span style="color: #c20cb9; font-weight: bold;">perl</span> libtimedate-<span style="color: #c20cb9; font-weight: bold;">perl</span> libtumbler<span style="color: #000000;">-1</span><span style="color: #000000;">-0</span> liburi-<span style="color: #c20cb9; font-weight: bold;">perl</span> libwww-<span style="color: #c20cb9; font-weight: bold;">perl</span> libwww-robotrules-<span style="color: #c20cb9; font-weight: bold;">perl</span> libxfce4ui<span style="color: #000000;">-1</span><span style="color: #000000;">-0</span> libxfce4util-bin libxfce4util-common libxfce4util4 libxfcegui4<span style="color: #000000;">-4</span> libxfconf<span style="color: #000000;">-0</span><span style="color: #000000;">-2</span> libxml-parser-<span style="color: #c20cb9; font-weight: bold;">perl</span> libxml-twig-<span style="color: #c20cb9; font-weight: bold;">perl</span> libxml-xpath-<span style="color: #c20cb9; font-weight: bold;">perl</span> libxss1 link-grammar-dictionaries-en <span style="color: #c20cb9; font-weight: bold;">m4</span> orage  python-configobj python-glade2 ristretto synaptic system-tools-backends tango-icon-theme tango-icon-theme-common thunar thunar-archive-plugin thunar-data thunar-media-tags-plugin thunar-volman ttf-droid ttf-lyx tumbler tumbler-common xfce-keyboard-shortcuts xfce4-appfinder xfce4-cpugraph-plugin xfce4-fsguard-plugin xfce4-indicator-plugin xfce4-mount-plugin xfce4-netload-plugin xfce4-notes xfce4-notes-plugin xfce4-notifyd xfce4-panel xfce4-places-plugin xfce4-power-manager xfce4-power-manager-data xfce4-quicklauncher-plugin xfce4-session xfce4-settings xfce4-systemload-plugin xfce4-taskmanager xfce4-terminal xfce4-utils xfce4-verve-plugin xfce4-volumed xfconf xfdesktop4 xfdesktop4-data xfwm4 xfwm4-themes xubuntu-artwork xubuntu-default-settings xubuntu-icon-theme xubuntu-wallpapers gnome-system-monitor</pre>
<p><span id="more-648"></span><br />
<strong># You may want to install firefox</strong></p>
<pre class="bash">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> apt-get <span style="color: #c20cb9; font-weight: bold;">install</span> abrowser</pre>
<p><strong># Remove screen-saver, as you do not want to waste cpu-cycles on your Server-OS</strong></p>
<pre class="bash">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> apt-get remove xscreensaver xscreensaver-data</pre>
<p>Once you are done with above setup, you will be having working <strong>Xfce / Xubuntu</strong> on top of your <strong>Ubuntu Server</strong>. You just need to reboot and you will see decent <strong>Xubuntu</strong> log-in screen. You might think that why do I need to install <strong>Xfce4</strong> and then all packages manually? but the reason is we are installing here only bare-minimum things instead of installing all packages which come with <strong>Xubuntu</strong>. So above setup installs visual themes, some packages which help you to view files, directories, configure system / network etc.</p>
<p>If you want to install complete Xubuntu on top of your Ubuntu-Server you just need to type, one line:</p>
<pre class="bash">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> apt-get <span style="color: #c20cb9; font-weight: bold;">install</span> xubuntu-desktop</pre>
<p>but, this way you will end up installing all those packages including office, multimedia and many others which you may not want on your <strong>Server</strong> unless you're going to use this system as development machine.</p>
]]></content:encoded>
							<wfw:commentRss>http://blogs.digitss.com/linux/ubuntu/how-to-setup-xubuntu-on-ubuntu-server/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
							</item>
		<item>
		<title>Ubuntu / Debian File System organization</title>
		<link>http://blogs.digitss.com/linux/ubuntu/ubuntu-debian-file-system-organization/</link>
				<comments>http://blogs.digitss.com/linux/ubuntu/ubuntu-debian-file-system-organization/#respond</comments>
				<pubDate>Sun, 27 May 2012 15:17:59 +0000</pubDate>
		<dc:creator><![CDATA[Dharmavirsinh Jhala]]></dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blogs.digitss.com/?p=645</guid>
				<description><![CDATA[Basic overview of Linux or Debian based system's file structure]]></description>
								<content:encoded><![CDATA[<p>If you ever wonder and would like to know about basic <strong>file-system architecture / organization</strong> of <strong>debain</strong> or <strong>ubuntu</strong> based system than here you go:</p>
<div>
<ul>
<li><strong>./:</strong> is root directory.<br />
- under root there will be home directory which will be having directory for each user under it.<br />
- under root "/" there will be following directories:<br />
etc, dev, home, usr, var</li>
<li><strong>/boot:</strong> This folder contains important files required to boot machine including bootloader files.</li>
<li><strong>/dev:</strong> Each device on your system has an entry in this folder. Each application accesses the device by using the relevant items inside /dev.</li>
<li><strong>/etc:</strong> This directory stores files for system-wide configuration. Apart from configuration files for all programs or system itself, this directory will also contain files for each user under the system.</li>
<li><strong>/lib:</strong> Important system software libraries are stored inside.</li>
<li><strong>/media:</strong> Media devices such as CD or USB sticks are referenced here when they are plugged in.</li>
<li><strong>/mnt:</strong> other mountable devices.</li>
<li><strong>/opt:</strong> Optional software can be installed here. This folder is optionally used when you want to build your own software.</li>
<li><strong>/proc/sys:</strong> Information about the current running status of the system is stored here.</li>
<li><strong>/root:</strong> Home directory for the main superuser.</li>
<li><strong>/bin:</strong> Software that is vital for the system to be able to boot is stored here.</li>
<li><strong>/sbin:</strong> Software that should be run by superuser is stored here.</li>
<li><strong>/usr:</strong> General software is installed here.</li>
<li><strong>/var:</strong> contains log files about the software on your computer.</li>
</ul>
<p><span id="more-645"></span><br />
Including debian, ubuntu and many other Linux operating system follows Filesystem Hierarchy Standard which you can <a title="Filesystem Hierarchy Standard" href="en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard" target="_blank">refer here on Wikipedia</a>. You can read more about Linux or Ubuntu File System Tree overview here <a title="Linux Filesystem Tree Overview" href="https://help.ubuntu.com/community/LinuxFilesystemTreeOverview" target="_blank">on Ubuntu online documentation/help</a>.</p>
</div>
]]></content:encoded>
							<wfw:commentRss>http://blogs.digitss.com/linux/ubuntu/ubuntu-debian-file-system-organization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
							</item>
	</channel>
</rss>
