<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-23162742</id><updated>2012-02-16T07:21:07.551-08:00</updated><category term='cheat sheet'/><category term='Riddle'/><category term='Research'/><category term='javascript'/><category term='JSP'/><category term='Good Link'/><category term='maven'/><category term='Thoughts'/><category term='tomcat'/><category term='tag'/><category term='Commercial'/><category term='Skills'/><category term='Idea'/><category term='mashups'/><category term='Tutorials'/><category term='Book Quote'/><category term='C++'/><category term='Emotional Intelligence'/><category term='Quote'/><category term='Magazine'/><category term='css'/><category term='Opensource'/><category term='git'/><category term='Writing'/><category term='vim'/><category term='eclipse'/><category term='nice images'/><category term='linux'/><category term='Gadget Tools'/><category term='technical articles'/><category term='mysql'/><category term='Getting Organized'/><category term='security'/><category term='Graphical Design'/><category term='I hate boredom'/><category term='Personal Skills'/><category term='Tips'/><category term='Java'/><category term='bash'/><category term='BP'/><category term='Analogy'/><category term='question'/><category term='Advice'/><category term='kindle'/><category term='exec'/><category term='PHP'/><category term='Database'/><category term='languages'/><category term='CMS'/><category term='Tools'/><category term='design'/><category term='Hardware'/><category term='lambdaj'/><category term='linux administration'/><category term='architecture'/><category term='Desktop Application Development'/><category term='Laptops'/><category term='health'/><category term='Monitoring'/><category term='web design'/><category term='screencast'/><category term='Utilities'/><title type='text'>Code Ventures</title><subtitle type='html'>Lost In The Code Carribeans</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default?start-index=101&amp;max-results=100'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>144</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-23162742.post-9036036267490606701</id><published>2012-02-15T12:33:00.002-08:00</published><updated>2012-02-15T12:33:48.748-08:00</updated><title type='text'>Maven not showing which tests failed in command prompt</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://stackoverflow.com/questions/5474356/maven-not-showing-which-tests-failed-in-command-prompt"&gt;http://stackoverflow.com/questions/5474356/maven-not-showing-which-tests-failed-in-command-prompt&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-9036036267490606701?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/9036036267490606701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=9036036267490606701' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/9036036267490606701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/9036036267490606701'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2012/02/maven-not-showing-which-tests-failed-in.html' title='Maven not showing which tests failed in command prompt'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-6224437355390608000</id><published>2012-02-12T05:39:00.000-08:00</published><updated>2012-02-12T05:39:24.005-08:00</updated><title type='text'>Excellent tip for importing static methods in eclipse</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;One of the great features of Java 1.5 is &lt;a href="http://java.sun.com/j2se/1.5.0/docs/guide/language/static-import.html"&gt;Static Imports&lt;/a&gt;. In order to configure Eclipse to search for static imports in a particular class, you have to perform the following steps:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Navigate to Preferences by clicking on the Window -&amp;gt; Preferences Menu Item&lt;div&gt;&lt;br /&gt;2. Navigate to Java -&amp;gt; Editor -&amp;gt; Content Assist -&amp;gt; Favorites using the menu tree (or search for Favorites using the search bar at the top)&lt;br /&gt;&lt;br /&gt;3. Click the New Type button&lt;br /&gt;4. Type in the name of the Class that has static methods that you would like to be used when using Eclipse's Content Assist / Code Completion (eg Assert)&lt;br /&gt;5. Click on the Browse button which will bring up the Open Type Dialog using what you entered previously as the search criteria&lt;br /&gt;6. Find the class that you would like to add, and then click Okay on the Open Type Dialog&lt;br /&gt;7. Then Click Okay on the New Type Favorite Dialog.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now when you are editing Java code, instead of typing Assert.assertEquals, you only need to type assertEquals, with Ctrl-Space, and the Assert Type will be searched for in order to resolve the static import.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-6224437355390608000?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/6224437355390608000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=6224437355390608000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6224437355390608000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6224437355390608000'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2012/02/excellent-tip-for-importing-static.html' title='Excellent tip for importing static methods in eclipse'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-1638785976852651196</id><published>2012-02-04T14:17:00.000-08:00</published><updated>2012-02-04T14:17:33.450-08:00</updated><title type='text'>Inject Util Class with Google Guice vs static Methods?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://stackoverflow.com/questions/4370683/inject-util-class-with-google-guice-vs-static-methods"&gt;http://stackoverflow.com/questions/4370683/inject-util-class-with-google-guice-vs-static-methods&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1 itemprop="name" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Trebuchet MS', 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 23px; line-height: 1.3; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; font-weight: normal; line-height: 18px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;It depends on the nature of your&amp;nbsp;&lt;code style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px; padding-left: 5px; padding-right: 5px; padding-top: 1px; vertical-align: baseline;"&gt;convert()&lt;/code&gt;&amp;nbsp;method.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; font-weight: normal; line-height: 18px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;If it's something&lt;/div&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; font-weight: normal; line-height: 18px; list-style-image: initial; list-style-position: initial; margin-bottom: 1em; margin-left: 30px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;simple&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;deterministic (i.e. doesn't depend on additional parameters)&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;have no side effects&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;is unlikely to change&lt;/li&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;etc&lt;/li&gt;&lt;/ul&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; font-weight: normal; line-height: 18px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;you can keep it as a static utility method.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; font-weight: normal; line-height: 18px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;Otherwise it's a good candidate for dependecy injection (you can rename it to&amp;nbsp;&lt;code style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px; padding-left: 5px; padding-right: 5px; padding-top: 1px; vertical-align: baseline;"&gt;ConversionService&lt;/code&gt;&amp;nbsp;to make it more clear).&lt;/div&gt;&lt;/h1&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-1638785976852651196?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/1638785976852651196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=1638785976852651196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/1638785976852651196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/1638785976852651196'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2012/02/inject-util-class-with-google-guice-vs.html' title='Inject Util Class with Google Guice vs static Methods?'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-8142698650124871989</id><published>2012-01-31T01:02:00.001-08:00</published><updated>2012-01-31T01:02:26.534-08:00</updated><title type='text'>Builder Pattern Plugin for Eclipse</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://code.google.com/p/bpep/"&gt;http://code.google.com/p/bpep/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-8142698650124871989?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/8142698650124871989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=8142698650124871989' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/8142698650124871989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/8142698650124871989'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2012/01/builder-pattern-plugin-for-eclipse.html' title='Builder Pattern Plugin for Eclipse'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-1730164337922277909</id><published>2012-01-30T04:59:00.000-08:00</published><updated>2012-01-30T05:00:12.556-08:00</updated><title type='text'>Adding Recent File List Plugin to VIM</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;From:&amp;nbsp;&lt;a href="http://stackoverflow.com/questions/3171284/recent-file-history-in-vim"&gt;http://stackoverflow.com/questions/3171284/recent-file-history-in-vim&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;MRU (Most Recently Used) Plugin&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.vim.org/scripts/script.php?script_id=521"&gt;http://www.vim.org/scripts/script.php?script_id=521&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How to add on unix:&lt;/b&gt;&lt;br /&gt;On vim enter:&lt;br /&gt;&lt;b&gt;:help add-plugin&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Steps:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;mkdir ~/.vim&lt;/b&gt;&lt;br /&gt;&lt;b&gt;mkdir ~/.vim/plugin&lt;/b&gt;&lt;br /&gt;&lt;b&gt;cd&amp;nbsp;&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="display: inline !important;"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="display: inline !important;"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;~/.vim/plugin&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;wget -O mru.vim http://www.vim.org/scripts/download_script.php?src_id=11919&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;u&gt;To Use:&lt;/u&gt;&lt;br /&gt;While working on vim, enter the command:&lt;br /&gt;&lt;br /&gt;1. :MRU&lt;br /&gt;2. Select a file, press enter, thats it.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-1730164337922277909?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/1730164337922277909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=1730164337922277909' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/1730164337922277909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/1730164337922277909'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2012/01/adding-recent-file-list-to-vim.html' title='Adding Recent File List Plugin to VIM'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-3078340414905493931</id><published>2012-01-30T03:30:00.000-08:00</published><updated>2012-01-30T03:30:55.043-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='exec'/><title type='text'>ProcessBuilder Runtime Redirecting Output and Exec uting</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The following discuss details of the problem:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1 itemprop="name" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Trebuchet MS', 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 24px; line-height: 1.3; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a class="question-hyperlink" href="http://stackoverflow.com/questions/5986324/processbuilder-redirecting-output" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; cursor: pointer; line-height: 1.3; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;ProcessBuilder redirecting output&lt;/a&gt;&lt;/h1&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/5986324/processbuilder-redirecting-output"&gt;http://stackoverflow.com/questions/5986324/processbuilder-redirecting-output&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: white; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 17px;"&gt;Shell redirection operators are unknown to&amp;nbsp;&lt;/span&gt;&lt;a href="http://download.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #4a6b82; cursor: pointer; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px; padding-left: 5px; padding-right: 5px; padding-top: 1px; vertical-align: baseline;"&gt;ProcessBuilder&lt;/code&gt;&lt;/a&gt;&lt;span style="background-color: white; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 17px;"&gt;. Put your command in a shell script and execute it, as shown&amp;nbsp;&lt;/span&gt;&lt;a href="http://stackoverflow.com/questions/1980671/executing-untokenized-command-line-from-java/1980921#1980921" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #4a6b82; cursor: pointer; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;here&lt;/a&gt;&lt;span style="background-color: white; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 17px;"&gt;. Alternatively, use&amp;nbsp;&lt;/span&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px; padding-left: 5px; padding-right: 5px; padding-top: 1px; vertical-align: baseline;"&gt;bash -c&lt;/code&gt;&lt;span style="background-color: white; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 17px;"&gt;, as shown&amp;nbsp;&lt;/span&gt;&lt;a href="http://stackoverflow.com/questions/5740390/printing-my-macs-serial-number-in-java-using-unix-commands/5740673#5740673" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #4a6b82; cursor: pointer; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;here&lt;/a&gt;&lt;span style="background-color: white; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 17px;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 17px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1 itemprop="name" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Trebuchet MS', 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 24px; line-height: 1.3; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a class="question-hyperlink" href="http://stackoverflow.com/questions/5986324/processbuilder-redirecting-output" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; cursor: pointer; line-height: 1.3; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Or prepending "bash -c"&amp;nbsp;&lt;/a&gt;to the exec&lt;/h1&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/5740390/printing-my-macs-serial-number-in-java-using-unix-commands/5740673#5740673"&gt;http://stackoverflow.com/questions/5740390/printing-my-macs-serial-number-in-java-using-unix-commands/5740673#5740673&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1 itemprop="name" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Trebuchet MS', 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 24px; line-height: 1.3; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;How to use OutputStream for output redirection&lt;/h1&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/3777654/problem-with-runtime"&gt;http://stackoverflow.com/questions/3777654/problem-with-runtime&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1 itemprop="name" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Trebuchet MS', 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 24px; line-height: 1.3; margin-bottom: 7px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a class="question-hyperlink" href="http://stackoverflow.com/questions/3259143/split-a-string-containing-command-line-parameters-into-a-string-in-java" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; cursor: pointer; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Split a string containing command-line parameters into a String[] in Java&lt;/a&gt;&lt;/h1&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/3259143/split-a-string-containing-command-line-parameters-into-a-string-in-java"&gt;http://stackoverflow.com/questions/3259143/split-a-string-containing-command-line-parameters-into-a-string-in-java&lt;/a&gt;&lt;br /&gt;Wonderful answer here:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 17px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;Here is a pretty easy alternative for splitting a text line from a file into an argument vector so that you can feed it into your options parser:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 17px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;This is the solution:&lt;/div&gt;&lt;pre class="lang-java prettyprint" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 17px; margin-bottom: 10px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: baseline; width: auto;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span class="kwd" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="kwd" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;static&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="kwd" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;void&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; main&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;String&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;[]&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; args&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;)&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;{&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;String&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; myArgs &lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;=&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Commandline&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;translateCommandline&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="str" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;"-a hello -b world -c \"Hello world\""&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;);&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;for&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;String&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; arg&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;:&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;myArgs&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;)&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;System&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;out&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;println&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;arg&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;);&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-3078340414905493931?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/3078340414905493931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=3078340414905493931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3078340414905493931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3078340414905493931'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2012/01/processbuilder-runtime-redirecting.html' title='ProcessBuilder Runtime Redirecting Output and Exec uting'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-4431738810668499932</id><published>2012-01-30T03:20:00.001-08:00</published><updated>2012-01-30T03:20:02.689-08:00</updated><title type='text'>Git User Manual, Looks Very Good</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://schacon.github.com/git/user-manual.html"&gt;http://schacon.github.com/git/user-manual.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-4431738810668499932?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/4431738810668499932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=4431738810668499932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4431738810668499932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4431738810668499932'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2012/01/git-user-manual-looks-very-good.html' title='Git User Manual, Looks Very Good'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-7114948012056812988</id><published>2012-01-30T03:19:00.000-08:00</published><updated>2012-01-30T03:19:45.935-08:00</updated><title type='text'>Git, how to diff a file with its previous commits</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;git diff HEAD 0d82 -- myfile.java&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-7114948012056812988?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/7114948012056812988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=7114948012056812988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7114948012056812988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7114948012056812988'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2012/01/git-how-to-diff-file-with-its-previous.html' title='Git, how to diff a file with its previous commits'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-6139806093386810479</id><published>2012-01-30T03:13:00.000-08:00</published><updated>2012-01-30T03:13:50.117-08:00</updated><title type='text'>Git, How to revert to a previous commit?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Best on this is:&lt;a href="http://stackoverflow.com/questions/4114095/git-revert-to-previous-commit-how"&gt;http://stackoverflow.com/questions/4114095/git-revert-to-previous-commit-how&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I like this way:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 17px; margin-bottom: 10px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: baseline; width: auto;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;git checkout 0d1d7fc32 .&lt;br /&gt;&lt;/code&gt;&lt;span style="background-color: #eeeeee;"&gt;git commit&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 17px; margin-bottom: 10px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: baseline; width: auto;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: small; line-height: normal; white-space: normal;"&gt;Also you can do the following if you have some local modifications:&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 10px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: baseline; width: auto;"&gt;&lt;span style="font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif;"&gt;&lt;span style="font-size: 14px; line-height: 17px;"&gt;git stash&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 17px;"&gt;git checkout 0d1d7fc32&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 17px;"&gt;git stash pop&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 17px;"&gt;git commit&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 10px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: baseline; width: auto;"&gt;&lt;span style="font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif;"&gt;&lt;span style="font-size: 14px; line-height: 17px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 17px; margin-bottom: 10px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: baseline; width: auto;"&gt;&lt;span style="font-family: 'Times New Roman'; font-size: small; line-height: normal; white-space: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-6139806093386810479?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/6139806093386810479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=6139806093386810479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6139806093386810479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6139806093386810479'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2012/01/git-how-to-revert-to-previous-commit.html' title='Git, How to revert to a previous commit?'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2208682797898355347</id><published>2012-01-27T04:53:00.000-08:00</published><updated>2012-01-27T04:53:34.749-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Stop the software architecture erosion.</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.infoq.com/presentations/Stop-the-Software-Architecture-Erosion"&gt;http://www.infoq.com/presentations/Stop-the-Software-Architecture-Erosion&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wonderful tools in this presentation and should be watched.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2208682797898355347?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/2208682797898355347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=2208682797898355347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2208682797898355347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2208682797898355347'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2012/01/stop-software-architecture-erosion.html' title='Stop the software architecture erosion.'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-5839436376041776107</id><published>2012-01-27T04:50:00.000-08:00</published><updated>2012-01-27T04:50:26.664-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Where Did My Architecture Go?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.infoq.com/presentations/Where-Did-My-Architecture-Go"&gt;http://www.infoq.com/presentations/Where-Did-My-Architecture-Go&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Watch this video, and make sure you understand the tools used inside it.&lt;br /&gt;&lt;br /&gt;Eoin Woods&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-5839436376041776107?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/5839436376041776107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=5839436376041776107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5839436376041776107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5839436376041776107'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2012/01/where-did-my-architecture-go.html' title='Where Did My Architecture Go?'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-819636380728893142</id><published>2012-01-23T04:17:00.001-08:00</published><updated>2012-01-23T04:17:30.885-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='lambdaj'/><title type='text'>Lambdaj feature page</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://code.google.com/p/lambdaj/wiki/LambdajFeatures"&gt;http://code.google.com/p/lambdaj/wiki/LambdajFeatures&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-819636380728893142?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/819636380728893142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=819636380728893142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/819636380728893142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/819636380728893142'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2012/01/lambdaj-feature-page.html' title='Lambdaj feature page'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2921859031518399526</id><published>2012-01-14T01:01:00.001-08:00</published><updated>2012-01-14T01:01:12.029-08:00</updated><title type='text'>Display files modified in the last 10 minutes on linux</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;find /var/log -type f -mmin -10&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Wonderful command.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2921859031518399526?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/2921859031518399526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=2921859031518399526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2921859031518399526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2921859031518399526'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2012/01/display-files-modified-in-last-10.html' title='Display files modified in the last 10 minutes on linux'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-4329921428955523969</id><published>2012-01-05T06:48:00.001-08:00</published><updated>2012-01-05T06:48:38.910-08:00</updated><title type='text'>Password Manager Web Based Opensource &amp; Free</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.teampass.net/"&gt;http://www.teampass.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-4329921428955523969?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/4329921428955523969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=4329921428955523969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4329921428955523969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4329921428955523969'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2012/01/password-manager-web-based-opensource.html' title='Password Manager Web Based Opensource &amp; Free'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-5389136548433455529</id><published>2012-01-04T14:00:00.001-08:00</published><updated>2012-01-04T14:00:50.271-08:00</updated><title type='text'>Converting between openssh and ssh2</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;a href="http://burnz.wordpress.com/2007/12/14/ssh-convert-openssh-to-ssh2-and-vise-versa/"&gt;http://burnz.wordpress.com/2007/12/14/ssh-convert-openssh-to-ssh2-and-vise-versa/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Keywords: RSA, SSH, SSH2, Authentication&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-5389136548433455529?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/5389136548433455529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=5389136548433455529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5389136548433455529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5389136548433455529'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2012/01/converting-between-openssh-and-ssh2.html' title='Converting between openssh and ssh2'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2515116241074246102</id><published>2011-12-12T06:12:00.001-08:00</published><updated>2011-12-12T06:12:33.719-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>How to comment code in VI or VIM</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div style="color: #333333; font-family: 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 1.05em; line-height: 16px; text-align: justify;"&gt;Mark the area which is to be commented using the *&lt;i&gt;blockwise&lt;/i&gt;* visual mode (&lt;b&gt;CTRL-V&lt;/b&gt;, in Windows this is&amp;nbsp;&lt;b&gt;CTRL-Q&lt;/b&gt;).&lt;/div&gt;&lt;div style="color: #333333; font-family: 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 1.05em; line-height: 16px; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #333333; font-family: 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 1.05em; line-height: 16px; text-align: justify;"&gt;Press&amp;nbsp;&lt;b&gt;I&lt;/b&gt;&amp;nbsp;(capital i) and write the text you want to prepend to each line of the selected block, e.g.&amp;nbsp;&lt;i&gt;#####&lt;/i&gt;.&lt;/div&gt;&lt;div style="color: #333333; font-family: 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 1.05em; line-height: 16px; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: #333333; font-family: 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 1.05em; line-height: 16px; text-align: justify;"&gt;Then press&amp;nbsp;&lt;b&gt;ESC&lt;/b&gt;&amp;nbsp;and the text will be inserted to the left of each line of the selected block.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2515116241074246102?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/2515116241074246102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=2515116241074246102' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2515116241074246102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2515116241074246102'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/12/how-to-comment-code-in-vi-or-vim.html' title='How to comment code in VI or VIM'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-4194725870005440979</id><published>2011-12-12T02:27:00.001-08:00</published><updated>2011-12-12T02:34:33.738-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>getResouce and Files in java. I just hate having to search for this every time.</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;To get a file inside a jar, you have to do the following:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;URI resourceURI = this.class.getResource("/path/to/file/in/jar/config.txt").toURI();&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;To open the file using a file you can do:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;File theFile = new File(resourceURI);&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;To read the contents of the file:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;List&amp;lt;String&amp;gt; lines = Files.readLines(theFile, Charsets.UTF_8);&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;To read the files in a directory:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="lang-java prettyprint" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 10px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: baseline; width: auto;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span class="com" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: grey; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;// Load the directory as a resource&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;URL dir_url &lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;=&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;ClassLoader&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;getSystemResource&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;dir_path&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;);&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="com" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: grey; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;// Turn the resource into a File object&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;File&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; dir &lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;=&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="kwd" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: darkblue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;new&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;File&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;dir_url&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;toURI&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;());&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="com" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: grey; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;// List the directory&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;String&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; files &lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;=&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; dir&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;list&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;()&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-4194725870005440979?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/4194725870005440979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=4194725870005440979' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4194725870005440979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4194725870005440979'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/12/getresouce-and-files-in-java-i-just.html' title='getResouce and Files in java. I just hate having to search for this every time.'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-6116666084816092694</id><published>2011-10-31T14:34:00.000-07:00</published><updated>2011-10-31T14:34:30.388-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><title type='text'>"Run On Server" not showing up in Eclipse with m2eclipse?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Okay, I went through this problem in Eclipse Indigo for J2EE Developers release that m2eclipse wont show me the Run On Server selection in the Run menu when I import a maven project with war packaging (ie. the maven-archetype-webapp).&lt;br /&gt;&lt;br /&gt;Here is how to fix it:&lt;br /&gt;1. Uninstall the current m2eclipse plugin you have in eclipse:&lt;br /&gt;&amp;nbsp; (a) Go to "Help &amp;gt; Install New Software"&lt;br /&gt;&amp;nbsp; (b) Click on the "What is already installed?" link&lt;br /&gt;&amp;nbsp; (c) Select "m2e - Maven Eclipse Integration" and click on the "Uninstall" button&lt;br /&gt;&amp;nbsp; (d) Restart eclipse when prompted&lt;br /&gt;&lt;br /&gt;2. Next, you have to install the m2eclipse:&lt;br /&gt;&amp;nbsp; (a) Go to "Help &amp;gt; Eclipse Market Place"&lt;br /&gt;&amp;nbsp; (b) Search for the word m2eclipse&lt;br /&gt;&amp;nbsp; (c) Select "&lt;b&gt;Maven integration for eclipse&lt;/b&gt;"&lt;br /&gt;&amp;nbsp; (d) Click the "Install" button&lt;br /&gt;&lt;br /&gt;3. Install the "Maven Integration for Eclipse WTP"&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp; (a) Go to "Help &amp;gt; Eclipse Market Place"&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp; (b) Search for the word m2eclipse&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp; (c) Select "&lt;b&gt;Maven integration for eclipse WTP&lt;/b&gt;"&amp;nbsp;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&amp;nbsp; (d) Click the "Install" button&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Restart when prompted.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, importing a maven project with war packaging will work out of the box. Enjoy.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-6116666084816092694?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/6116666084816092694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=6116666084816092694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6116666084816092694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6116666084816092694'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/run-on-server-not-showing-up-in-eclipse.html' title='&quot;Run On Server&quot; not showing up in Eclipse with m2eclipse?'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2603920354762081599</id><published>2011-10-22T14:30:00.000-07:00</published><updated>2011-10-22T14:45:43.043-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Configuring Eclipse to run with a specific JDK or JRE</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;1. Open the file eclipse.ini for editing&lt;br /&gt;&lt;br /&gt;2. Add the two lines to specify the virtual machine to use (the bolded lines):&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-startup&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;-vm&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;C:\Program Files\Java\jdk1.6.0_29\bin\javaw.exe&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;--launcher.library&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Now start eclipse.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. To make sure the changes took place go to Help &amp;gt; About Eclipse &amp;gt; Configuration Details&lt;br /&gt;&lt;br /&gt;For more information please see:&lt;br /&gt;&lt;a href="http://help.eclipse.org/indigo/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/running_eclipse.htm"&gt;http://help.eclipse.org/indigo/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/running_eclipse.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.eclipse.org/Equinox_Launcher#Finding%5Fa%5FVM.2C%5FUsing%5FJNI%5FInvocation%5For%5FExecuting%5FJava"&gt;http://wiki.eclipse.org/Equinox_Launcher#Finding%5Fa%5FVM.2C%5FUsing%5FJNI%5FInvocation%5For%5FExecuting%5FJava&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And stackoverflow:&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/905611/how-do-i-set-eclipse-ini-vm-option"&gt;http://stackoverflow.com/questions/905611/how-do-i-set-eclipse-ini-vm-option&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2603920354762081599?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/2603920354762081599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=2603920354762081599' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2603920354762081599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2603920354762081599'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/configuring-eclipse-to-run-with.html' title='Configuring Eclipse to run with a specific JDK or JRE'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-5398085202484611753</id><published>2011-10-19T06:13:00.001-07:00</published><updated>2011-10-19T06:13:09.918-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Wonderful Iphone Icon Generator Online</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.iconj.com/iphone_style_icon_generator.php"&gt;http://www.iconj.com/iphone_style_icon_generator.php&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-5398085202484611753?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/5398085202484611753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=5398085202484611753' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5398085202484611753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5398085202484611753'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/wonderful-iphone-icon-generator-online.html' title='Wonderful Iphone Icon Generator Online'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2660319031260805359</id><published>2011-10-19T06:12:00.000-07:00</published><updated>2011-10-19T06:17:03.687-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Give your divs a simplistic nice shadow with css</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I loved the middle box shadow in the shopify.com website, and therefore decided to dig it up. The CSS used for it is:&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-moz-box-shadow: 0px 0px 15px rgba(0,0,0,0.1);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-webkit-box-shadow: 0px 0px 15px rgba(0,0,0,0.1);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;box-shadow: 0px 0px 15px rgba(0,0,0,0.5);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At:&amp;nbsp;&lt;a href="http://www.shopify.com/faq"&gt;http://www.shopify.com/faq&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2660319031260805359?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/2660319031260805359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=2660319031260805359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2660319031260805359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2660319031260805359'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/give-your-divs-simplistic-nice-shadow.html' title='Give your divs a simplistic nice shadow with css'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-4246868903050893000</id><published>2011-10-17T05:53:00.000-07:00</published><updated>2011-10-17T05:53:53.829-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='linux administration'/><title type='text'>Using mod_jk with Apache 2.2 How to</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;u&gt;Advice on mod_jk versus mod_proxy and mod_proxy_ajp&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;Do not use mod_proxy and mod_proxy_ajp on Apache 2.2 since they are not stable and have caused me some problems. Use mod_jk instead.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Prerequisites &amp;amp; Assumptions Before you continue&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;I assume you have:&lt;br /&gt;- You already have Apache Webserver 2.2 installed&lt;br /&gt;- You already have Tomcat installed&lt;br /&gt;- You already have a web application on Tomcat with context "jobsapp"&lt;br /&gt;- You are using Redhat Enterprise or CentOS and therefore have yum on your system.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;How to get the mod_jk binary for Apache 2.2 on Linux&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;You wont find it anywhere, you have to compile it, now stop being lazy and start working.&lt;br /&gt;&lt;br /&gt;The following steps detail the process:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;// Create a temporary source directory, I use /opt/src&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;mkdir /opt/src&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd /opt/src&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;// Get the source package&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;wget http://mirrors.isu.net.sa/pub/apache//tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.32-src.tar.gz&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;// Install packages needed to compile the binary&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;yum install httpd-devel&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;yum install gcc-c++&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;// Extract the tar.gz file&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;tar -zxvf /opt/src/tomcat-connectors-1.2.32-src.tar.gz&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;// Configure, make, make install&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;./configure --with-apxs=/usr/sbin/apxs&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;make&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;su -c 'make install'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;How to configure Apache Webserver with Mod JK&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1. Edit the file httpd.conf&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vim /etc/httpd/conf/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Add this line to load the module:&lt;br /&gt;...&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;LoadModule jk_module modules/mod_jk.so&lt;/span&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;3. Add also the following lines:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;JkWorkersFile &amp;nbsp; conf/worker.properties&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;JkLogFile &amp;nbsp; &amp;nbsp; &amp;nbsp; /var/log/httpd/mod_jk.log&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;JkLogLevel &amp;nbsp; &amp;nbsp; &amp;nbsp;debug&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;JkRequestLogFormat &amp;nbsp; &amp;nbsp; &amp;nbsp;"%w %U %T"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;JkOptions +ForwardURIEscaped +ForwardURICompatUnparsed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. Now create a file names worker.properties inside /etc/httpd/conf/ and add the following lines to it:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vim /etc/httpd/conf/worker.properties&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# Worker Properties file for mod_jk&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;worker.list=tomcat&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;worker.worker1.host=localhost&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;worker.worker1.port=8009&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;worker.worker1.type=ajp13&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;worker.worker1.connection_pool_timeout=300&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. Now open the httpd.conf or your virtual host configuration file and add the following lines:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;JkMount &amp;nbsp; &amp;nbsp; /jobsapp tomcat&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;JkMount &amp;nbsp; &amp;nbsp; /jobsapp/* tomcat&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. Also open the ssl httpd conf file which has the following line at the top,&lt;/div&gt;&lt;div&gt;and add the same two lines inside them:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;VirtualHost _default_:443&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;JkMount &amp;nbsp; &amp;nbsp; /jobsapp tomcat&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;JkMount &amp;nbsp; &amp;nbsp; /jobsapp/* tomcat&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;7.&amp;nbsp;Now restart apache&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/etc/init.d/httpd restart&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-4246868903050893000?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/4246868903050893000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=4246868903050893000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4246868903050893000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4246868903050893000'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/using-modjk-with-apache-22-how-to.html' title='Using mod_jk with Apache 2.2 How to'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-6263871554077285658</id><published>2011-10-11T09:33:00.000-07:00</published><updated>2011-10-11T09:33:24.176-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>Adding deleted files in git</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;When you type:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git commit -a&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Git will add the new, modified and deleted files automatically and commit them&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, there are cases when you want to 'git add' deleted files (that got deleted in your working directory).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I tried:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git add *&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But this didn't workout. It only added the modified and created files.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I wanted a way to add the deleted files, I thought of issuing a 'git rm' command:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git rm *&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;BUT WAIT. THIS WILL DELETE EVERYTHING.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, what is the solution.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The solution is to use:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git add -u&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The -u (show for --update) tells git to compare to the tracked files in git rather than the working directory.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;According to the GIT manual:&lt;/div&gt;&lt;div&gt;'git add' man page says about the -u option...&lt;/div&gt;&lt;div&gt;&lt;dt class="hdlist1" style="color: navy; font-style: normal; margin-bottom: 0px; margin-top: 0.5em;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-u&lt;/span&gt;&lt;/dt&gt;&lt;dt class="hdlist1" style="color: navy; font-style: normal; margin-bottom: 0px; margin-top: 0.5em;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;--update&lt;/span&gt;&lt;/dt&gt;&lt;dd style="font-family: serif;"&gt;&lt;div style="margin-bottom: 0.5em; margin-top: 0.1em;"&gt;Only match &amp;lt;filepattern&amp;gt; against already tracked files in the index rather than the working tree. That means that it will never stage new files, but that it will stage modified new contents of tracked files and that it will remove files from the index if the corresponding files in the working tree have been removed.&lt;/div&gt;&lt;div class="paragraph"&gt;&lt;div style="margin-bottom: 0.5em; margin-top: 0.5em;"&gt;If no &amp;lt;filepattern&amp;gt; is given, default to "."; in other words, update all tracked files in the current directory and its subdirectories.&lt;/div&gt;&lt;/div&gt;&lt;/dd&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-6263871554077285658?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/6263871554077285658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=6263871554077285658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6263871554077285658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6263871554077285658'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/adding-deleted-files-in-git.html' title='Adding deleted files in git'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-1062053929572428084</id><published>2011-10-09T09:17:00.001-07:00</published><updated>2011-10-09T09:17:57.770-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux administration'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>Making a bash script know its current directory location</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I use the following variables at the beginning of my Bash script to get such information:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;EXECUTED_FROM_DIR=`pwd`&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;THIS_SCRIPT_DIR=$(cd $(dirname "$0"); pwd)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd $THIS_SCRIPT_DIR&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#Do different tasks here&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd $EXECUTED_FROM_DIR&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-1062053929572428084?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/1062053929572428084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=1062053929572428084' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/1062053929572428084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/1062053929572428084'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/making-bash-script-know-its-current.html' title='Making a bash script know its current directory location'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-642251101997317988</id><published>2011-10-09T09:12:00.001-07:00</published><updated>2011-10-09T09:13:09.633-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>vim color tuning</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;A great way to tune color automatically in vim is by calling:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;&lt;b&gt;set background=dark&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Since the default on linux is "backgroun=light"&lt;br /&gt;&lt;br /&gt;I have also placed this inside the /etc/vimrc to have a global effect&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-642251101997317988?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/642251101997317988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=642251101997317988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/642251101997317988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/642251101997317988'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/vim-color-tuning.html' title='vim color tuning'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-4032827706410366946</id><published>2011-10-09T09:11:00.000-07:00</published><updated>2011-10-09T09:14:43.059-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux administration'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>Bash Tips</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;u&gt;To check if a file exists (The exclamation ! means "not") :&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;if [ ! -f ${TOMCAT_DIR}/conf/jobsapp.conf ]&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; echo "Do something"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;To check if a script should be run by a specific user:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;if [ "$(id -u -n)" != "root" ]; then&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;echo "This script must be run as root user" 1&amp;gt;&amp;amp;2&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;exit 1&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;To prompt a user for an action:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;read -p "Deploy on Tomcat (y/n)?" CONT&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;if [ "$CONT" == "y" ]; then&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; echo "Deploying on tomcat...";&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; echo "Finished deploying on tomcat.";&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; echo "Copied files, but didn't deploy on tomcat.";&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-4032827706410366946?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/4032827706410366946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=4032827706410366946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4032827706410366946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4032827706410366946'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/bash-tips.html' title='Bash Tips'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-4419524874568709669</id><published>2011-10-09T01:21:00.000-07:00</published><updated>2011-10-09T01:35:16.353-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>.gitignore by example</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;A git ignore is a file named ".gitignore" that gets placed in the top level directory of your git workspace.&lt;br /&gt;&lt;br /&gt;It informs git to ignore files when adding and committing files.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# Exclude files with an extension&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;*.jar&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;*.o&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;*.a&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# Do not exclude required.jar&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;!required.jar&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# ignore the file TODO at the top level directory only&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# thus /TODO will be ignored, but src/TODO will not be ignore.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;/TODO&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# To indicate a directory for ignoring it should end with a "/"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# This line ignores all directories and subdirectories named log/&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;log/&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# This line only ignores the top level directory named build&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;/build/&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# This ignores all files ending with txt inside doc/ directory, but not inside doc/example/&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;doc/*.txt&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Important notes:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;1. Files starting with / (slash) mean that you should start from the top level directory&lt;br /&gt;2. The * (star) in doc/*.txt does not mean it will match any directories inside. It will only match top level files inside the doc directory ending with *.txt. Thus doc/example/test.txt will not be matched.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-4419524874568709669?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/4419524874568709669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=4419524874568709669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4419524874568709669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4419524874568709669'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/gitignore-by-example.html' title='.gitignore by example'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-3903405684516050036</id><published>2011-10-09T01:05:00.000-07:00</published><updated>2011-10-12T05:25:47.526-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux administration'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>Tracking an /etc directory using GIT version control while preserving file permissions</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;.. while preserving permissions on the linux file system.&lt;br /&gt;&lt;br /&gt;Here's how to do it:&lt;br /&gt;1. Download the post hook file setgitperms from &lt;a href="http://repo.or.cz/w/git.git?a=tree;f=contrib/hooks;h=6424331a3a920429e610ac2494b857de7e520d8f;hb=HEAD"&gt;here&lt;/a&gt;&amp;nbsp;or directly from here &lt;a href="http://repo.or.cz/w/git.git/blob_plain/HEAD:/contrib/hooks/setgitperms.perl"&gt;http://repo.or.cz/w/git.git/blob_plain/HEAD:/contrib/hooks/setgitperms.perl&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Place the script inside your .git/hooks directory. You have two options here:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;(Option A) To apply this for all git repositories newly created&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;Copy the file setgitperms.perl inside the directory:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;mv setgitperms.perl /usr/share/git-core/templates/hooks/.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;(Option B) To apply this hook for a specific directory only&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;Copy the file setgitperms.perl inside the directory:&lt;br /&gt;mv setgitperms.perl &amp;lt;Your Project Directory&amp;gt;/.git/hooks/.&lt;br /&gt;&lt;br /&gt;3. Although git new releases handles this, just to be safe, make sure to add execute permissions for the hook:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chmod +x setgitperms.perl&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. Inside the hooks directory, create a file named "&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;pre-commit&lt;/span&gt;" and place in it the following lines:&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre;"&gt;#!/bin/sh&lt;/div&gt;&lt;div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre;"&gt;SUBDIRECTORY_OK=1&amp;nbsp;.&amp;nbsp;git-sh-setup&lt;/div&gt;&lt;div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre;"&gt;$GIT_DIR/hooks/setgitperms.perl&amp;nbsp;-r&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;5. Create file named &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;post-merge&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;post-checkout&lt;/span&gt; and place the following content inside each:&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: monospace; font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre;"&gt;#!/bin/sh&lt;/div&gt;&lt;div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre;"&gt;SUBDIRECTORY_OK=1&amp;nbsp;.&amp;nbsp;git-sh-setup&lt;/div&gt;&lt;div class="pre" style="font-family: monospace; font-size: 12px; white-space: pre;"&gt;$GIT_DIR/hooks/setgitperms.perl&amp;nbsp;-w&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;6. Save the files and make sure they are executable using chmod +x:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chmod +x post-merge&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chmod +x post-checkout&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chmod +x pre-commit&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;7. Thats it.&lt;br /&gt;&lt;br /&gt;Reference:&amp;nbsp;&lt;a href="http://serverfault.com/questions/5410/using-revision-control-for-server-configuration-files"&gt;http://serverfault.com/questions/5410/using-revision-control-for-server-configuration-files&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-3903405684516050036?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/3903405684516050036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=3903405684516050036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3903405684516050036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3903405684516050036'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/tracking-etc-directory-using-git.html' title='Tracking an /etc directory using GIT version control while preserving file permissions'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-1374098375811958847</id><published>2011-10-08T05:43:00.000-07:00</published><updated>2011-10-08T05:43:10.814-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><title type='text'>Installing Tomcat 6 on Redhat Enterprise</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;List of commands that took place:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd /opt&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;wget http://mirrors.isu.net.sa/pub/apache/tomcat/tomcat-6/v6.0.33/bin/apache-tomcat-6.0.33.zip&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;unzip apache-tomcat-6.0.33.zip&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ln -s /opt/apache-tomcat-6.0.33 tomcat&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;yum install java-1.6.0-sun&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;alternatives --config java&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;There are 3 programs which provide 'java'.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Selection &amp;nbsp; &amp;nbsp;Command&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-----------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /usr/lib/jvm/jre-1.4.2-gcj/bin/java&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;*+ 2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /usr/lib/jvm/jre-1.6.0-sun.x86_64/bin/java&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /usr/lib/jvm/jre-1.6.0-sun/bin/java&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Enter to keep the current selection[+], or type selection number:&amp;nbsp;(Press 2 Then Enter)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vim /etc/init.d/tomcat&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;While in vim type the following in command mode to avoid extra spaces which pasting:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;:set paste&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Copy the following text and paste it:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #f0f0f0; font-family: monospace; white-space: pre;"&gt;#!/bin/bash## Init file for SixSigns Tomcat server## chkconfig: 2345 55 25# description: SixSigns Tomcat server## Source function library.. /etc/init.d/functionsRUN_AS_USER=tomcat # Adjust run user hereCATALINA_HOME=/opt/tomcatstart() {        echo "Starting Razuna Tomcat: "        if [ "x$USER"&amp;nbsp;!= "x$RUN_AS_USER" ]; then          su - $RUN_AS_USER -c "$CATALINA_HOME/bin/startup.sh"        else          $CATALINA_HOME/bin/startup.sh        fi        echo "done."}stop() {        echo "Shutting down Razuna Tomcat: "        if [ "x$USER"&amp;nbsp;!= "x$RUN_AS_USER" ]; then          su - $RUN_AS_USER -c "$CATALINA_HOME/bin/shutdown.sh"        else          $CATALINA_HOME/bin/shutdown.sh        fi        echo "done."}case "$1" in  start)        start       &amp;nbsp;;;  stop)        stop       &amp;nbsp;;;  restart)        stop        sleep 10        #echo "Hard killing any remaining threads.."        #kill -9 `cat $CATALINA_HOME/work/catalina.pid`        start       &amp;nbsp;;;  *)        echo "Usage: $0 {start|stop|restart}"esacexit 0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then write and quit in vim:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;:wq&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Make sure the file doesn't contain microsoft new lines:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;dos2unix /etc/init.d/tomcat&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now change to executable:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chmod +x /etc/init.d/tomcat&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Next create a tomcat user:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;groupadd tomcat&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;useradd -g tomcat -d /opt/tomcat tomcat&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;passwd tomcat&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;password: tomcat&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;retype password: tomcat&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Reassign permissions to directories:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chown -R tomcat:tomcat /opt/tomcat&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chown -R tomcat:tomcat /opt/apache-tomcat-6.0.33&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd /opt/tomcat/bin&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chown +x *.sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Add tomcat to services:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chkconfig --add tomcat&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chkconfig --level 345 tomcat on&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Start tomcat:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/etc/init.d/tomcat start&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-1374098375811958847?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/1374098375811958847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=1374098375811958847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/1374098375811958847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/1374098375811958847'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/installing-tomcat-6-on-redhat.html' title='Installing Tomcat 6 on Redhat Enterprise'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-6883242402311071283</id><published>2011-10-08T05:29:00.000-07:00</published><updated>2011-10-08T05:30:48.822-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux administration'/><title type='text'>Finding ports and processes running on linux port 80</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The command:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# To find processes running on port 80&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;lsof -i :80&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-6883242402311071283?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/6883242402311071283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=6883242402311071283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6883242402311071283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6883242402311071283'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/finding-ports-and-processes-running-on.html' title='Finding ports and processes running on linux port 80'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2626700383102072509</id><published>2011-10-08T03:49:00.001-07:00</published><updated>2011-10-08T03:49:54.429-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>A Wonderful CSS Tricks Website</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://css-tricks.com/"&gt;http://css-tricks.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With screen casts too at:&lt;br /&gt;&lt;a href="http://css-tricks.com/video-screencasts/"&gt;http://css-tricks.com/video-screencasts/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2626700383102072509?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/2626700383102072509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=2626700383102072509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2626700383102072509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2626700383102072509'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/wonderful-css-tricks-website.html' title='A Wonderful CSS Tricks Website'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-6007169600299360399</id><published>2011-10-08T02:25:00.000-07:00</published><updated>2011-10-08T02:25:38.199-07:00</updated><title type='text'>Installing Tomcat 6 on Redhat Linux Enterprise or CentOS</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: sans-serif; font-size: 15px; font-weight: bold; line-height: 19px;"&gt;&lt;a href="http://wiki.openbluedragon.org/wiki/index.php/Apache_Tomcat_on_CentOS/RedHat"&gt;http://wiki.openbluedragon.org/wiki/index.php/Apache_Tomcat_on_CentOS/RedHat&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;h3&gt;From:&amp;nbsp;&lt;/h3&gt;&lt;h3&gt;&lt;span class="mw-headline"&gt;Install Tomcat&lt;/span&gt;&lt;/h3&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em;"&gt;With CentOS/RedHat you could install Tomcat from the YUM repositories, but they only hold the older 5.5.x version. Of course, if you want to have Version 5.5.x installed then you only have to issue a;&lt;/div&gt;&lt;pre style="background-color: #f0f0f0; border-bottom-color: rgb(60, 120, 181); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(60, 120, 181); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(60, 120, 181); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(60, 120, 181); border-top-style: solid; border-top-width: 1px; margin-left: 20px; margin-right: 20px; padding-bottom: 0.4em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.4em;"&gt;yum install tomcat*&lt;br /&gt;&lt;/pre&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em;"&gt;But I do recommend that you install Tomcat 6.0.18 (the current version of this writing), since it features better memory handling and some other improvements. The official Tomcat page is your friend in this regard&amp;nbsp;&lt;a class="external free" href="http://tomcat.apache.org/" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://wiki.openbluedragon.org/wiki/skins/modern/external.png); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; color: #3366bb; padding-right: 13px; text-decoration: none;" title="http://tomcat.apache.org/"&gt;http://tomcat.apache.org/&lt;/a&gt;. Luckily, installing Tomcat is straight forward.&lt;/div&gt;&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;Download Tomcat 6.0.18&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;Browse to&amp;nbsp;&lt;a class="external free" href="http://tomcat.apache.org/download-60.cgi" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://wiki.openbluedragon.org/wiki/skins/modern/external.png); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; color: #3366bb; padding-right: 13px; text-decoration: none;" title="http://tomcat.apache.org/download-60.cgi"&gt;http://tomcat.apache.org/download-60.cgi&lt;/a&gt;&amp;nbsp;and download the Binary Distribution or click on the direct link here&amp;nbsp;&lt;a class="external free" href="http://apache.mirror.testserver.li/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.tar.gz" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://wiki.openbluedragon.org/wiki/skins/modern/external.png); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; color: #3366bb; padding-right: 13px; text-decoration: none;" title="http://apache.mirror.testserver.li/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.tar.gz"&gt;http://apache.mirror.testserver.li/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.tar.gz&lt;/a&gt;. Wget is your friend.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0.1em;"&gt;I recommend to install Tomcat in the "/opt" directory. Thus copy the downloaded file into "/opt".&lt;/li&gt;&lt;li style="margin-bottom: 0.1em;"&gt;Extract it with&lt;/li&gt;&lt;/ol&gt;&lt;pre style="background-color: #f0f0f0; border-bottom-color: rgb(60, 120, 181); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(60, 120, 181); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(60, 120, 181); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(60, 120, 181); border-top-style: solid; border-top-width: 1px; margin-left: 20px; margin-right: 20px; padding-bottom: 0.4em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.4em;"&gt;tar xzvf apache-tomcat-6.0.18.tar.gz&lt;br /&gt;&lt;/pre&gt;&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;For better handling I always create a symbolic link for "tomcat" with&lt;/li&gt;&lt;/ol&gt;&lt;pre style="background-color: #f0f0f0; border-bottom-color: rgb(60, 120, 181); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(60, 120, 181); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(60, 120, 181); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(60, 120, 181); border-top-style: solid; border-top-width: 1px; margin-left: 20px; margin-right: 20px; padding-bottom: 0.4em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.4em;"&gt;ln -s /opt/apache-tomcat-6.0.18 tomcat&lt;br /&gt;&lt;/pre&gt;&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;Test Tomcat&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;Start Tomcat with:&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre style="background-color: #f0f0f0; border-bottom-color: rgb(60, 120, 181); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(60, 120, 181); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(60, 120, 181); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(60, 120, 181); border-top-style: solid; border-top-width: 1px; margin-left: 20px; margin-right: 20px; padding-bottom: 0.4em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.4em;"&gt;/opt/tomcat/bin/startup.sh&lt;br /&gt;&lt;/pre&gt;&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;Hit&amp;nbsp;&lt;a class="external free" href="http://localhost:8080/" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://wiki.openbluedragon.org/wiki/skins/modern/external.png); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; color: #3366bb; padding-right: 13px; text-decoration: none;" title="http://localhost:8080"&gt;http://localhost:8080&lt;/a&gt;. If all is fine you should see the Tomcat homepage.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em;"&gt;All should be fine, right? Ok, move on.&lt;/div&gt;&lt;a href="" name="Deploy_.28Install.29_OpenBD" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #003366; text-decoration: none;"&gt;&lt;/a&gt;&lt;h3&gt;&lt;span class="mw-headline"&gt;Deploy (Install) OpenBD&lt;/span&gt;&lt;/h3&gt;&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;go into the tomcat folder&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;cd /opt/tomcat/&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0.1em;"&gt;download the openbd.war file (be sure to check the OpenBD download site for the latest war file link)&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;wget&amp;nbsp;&lt;a class="external free" href="http://openbd.viviotech.net/downloader.cfm/id/64/file/openbd.war" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://wiki.openbluedragon.org/wiki/skins/modern/external.png); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; color: #3366bb; padding-right: 13px; text-decoration: none;" title="http://openbd.viviotech.net/downloader.cfm/id/64/file/openbd.war"&gt;http://openbd.viviotech.net/downloader.cfm/id/64/file/openbd.war&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0.1em;"&gt;once the file has downloaded move it to the tomcat webapps folder where it will automatically deploy&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;mv /opt/tomcat/openbd.war /opt/tomcat/webapps&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0.1em;"&gt;once the war file is in webapps Tomcat will pick it up and create an openbd folder&lt;/li&gt;&lt;li style="margin-bottom: 0.1em;"&gt;go to the administrator&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;&lt;a class="external free" href="http://localhost:8080/openbd/bluedragon/administrator" rel="nofollow" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://wiki.openbluedragon.org/wiki/skins/modern/external.png); background-origin: initial; background-position: 100% 50%; background-repeat: no-repeat no-repeat; color: #3366bb; padding-right: 13px; text-decoration: none;" title="http://localhost:8080/openbd/bluedragon/administrator"&gt;http://localhost:8080/openbd/bluedragon/administrator&lt;/a&gt;&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;the default bluedragon administrator password is&amp;nbsp;&lt;i&gt;admin&lt;/i&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;a href="" name="Configure_Tomcat_to_run_on_startup" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #003366; text-decoration: none;"&gt;&lt;/a&gt;&lt;h3&gt;&lt;span class="mw-headline"&gt;Configure Tomcat to run on startup&lt;/span&gt;&lt;/h3&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em;"&gt;Now, that Tomcat and OpenDB runs nicely you might want to have it automatically started when you reboot your system. For that we can use the following script and "chkconfig" command line.&lt;/div&gt;&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;Create a "tomcat" file in "/etc/init.d"&lt;/li&gt;&lt;/ol&gt;&lt;pre style="background-color: #f0f0f0; border-bottom-color: rgb(60, 120, 181); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(60, 120, 181); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(60, 120, 181); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(60, 120, 181); border-top-style: solid; border-top-width: 1px; margin-left: 20px; margin-right: 20px; padding-bottom: 0.4em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.4em;"&gt;vi /etc/init.d/tomcat&lt;br /&gt;&lt;/pre&gt;&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;Copy the below startup script&lt;/li&gt;&lt;/ol&gt;&lt;pre style="background-color: #f0f0f0; border-bottom-color: rgb(60, 120, 181); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(60, 120, 181); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(60, 120, 181); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(60, 120, 181); border-top-style: solid; border-top-width: 1px; margin-left: 20px; margin-right: 20px; padding-bottom: 0.4em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.4em;"&gt;#!/bin/bash&lt;br /&gt;#&lt;br /&gt;# Init file for SixSigns Tomcat server&lt;br /&gt;#&lt;br /&gt;# chkconfig: 2345 55 25&lt;br /&gt;# description: SixSigns Tomcat server&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# Source function library.&lt;br /&gt;. /etc/init.d/functions&lt;br /&gt;&lt;br /&gt;RUN_AS_USER=tomcat # Adjust run user here&lt;br /&gt;CATALINA_HOME=/opt/tomcat&lt;br /&gt;&lt;br /&gt;start() {&lt;br /&gt;        echo "Starting Razuna Tomcat: "&lt;br /&gt;        if [ "x$USER"&amp;nbsp;!= "x$RUN_AS_USER" ]; then&lt;br /&gt;          su - $RUN_AS_USER -c "$CATALINA_HOME/bin/startup.sh"&lt;br /&gt;        else&lt;br /&gt;          $CATALINA_HOME/bin/startup.sh&lt;br /&gt;        fi&lt;br /&gt;        echo "done."&lt;br /&gt;}&lt;br /&gt;stop() {&lt;br /&gt;        echo "Shutting down Razuna Tomcat: "&lt;br /&gt;        if [ "x$USER"&amp;nbsp;!= "x$RUN_AS_USER" ]; then&lt;br /&gt;          su - $RUN_AS_USER -c "$CATALINA_HOME/bin/shutdown.sh"&lt;br /&gt;        else&lt;br /&gt;          $CATALINA_HOME/bin/shutdown.sh&lt;br /&gt;        fi&lt;br /&gt;        echo "done."&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;case "$1" in&lt;br /&gt;  start)&lt;br /&gt;        start&lt;br /&gt;       &amp;nbsp;;;&lt;br /&gt;  stop)&lt;br /&gt;        stop&lt;br /&gt;       &amp;nbsp;;;&lt;br /&gt;  restart)&lt;br /&gt;        stop&lt;br /&gt;        sleep 10&lt;br /&gt;        #echo "Hard killing any remaining threads.."&lt;br /&gt;        #kill -9 `cat $CATALINA_HOME/work/catalina.pid`&lt;br /&gt;        start&lt;br /&gt;       &amp;nbsp;;;&lt;br /&gt;  *)&lt;br /&gt;        echo "Usage: $0 {start|stop|restart}"&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;exit 0&lt;br /&gt;&lt;/pre&gt;&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;Save the file (case you forgot "esc + x)&amp;nbsp;:-)&lt;/li&gt;&lt;li style="margin-bottom: 0.1em;"&gt;Add the tomcat startup script to the chkconfig with:&lt;/li&gt;&lt;/ol&gt;&lt;pre style="background-color: #f0f0f0; border-bottom-color: rgb(60, 120, 181); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(60, 120, 181); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(60, 120, 181); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(60, 120, 181); border-top-style: solid; border-top-width: 1px; margin-left: 20px; margin-right: 20px; padding-bottom: 0.4em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.4em;"&gt;chkconfig --add tomcat&lt;br /&gt;&lt;/pre&gt;&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;Then activate it for your run level. Since I am not running any X Server on my server I only want to run it on level 345. Do it with:&lt;/li&gt;&lt;/ol&gt;&lt;pre style="background-color: #f0f0f0; border-bottom-color: rgb(60, 120, 181); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(60, 120, 181); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(60, 120, 181); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(60, 120, 181); border-top-style: solid; border-top-width: 1px; margin-left: 20px; margin-right: 20px; padding-bottom: 0.4em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.4em;"&gt;chkconfig --level 345 tomcat on&lt;br /&gt;&lt;/pre&gt;&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;You can check if Tomcat will startup on reboot with listing the startup scripts with:&lt;/li&gt;&lt;/ol&gt;&lt;pre style="background-color: #f0f0f0; border-bottom-color: rgb(60, 120, 181); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(60, 120, 181); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(60, 120, 181); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(60, 120, 181); border-top-style: solid; border-top-width: 1px; margin-left: 20px; margin-right: 20px; padding-bottom: 0.4em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.4em;"&gt;chkconfig --list&lt;br /&gt;&lt;/pre&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em;"&gt;You should see a;&lt;/div&gt;&lt;pre style="background-color: #f0f0f0; border-bottom-color: rgb(60, 120, 181); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(60, 120, 181); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(60, 120, 181); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(60, 120, 181); border-top-style: solid; border-top-width: 1px; margin-left: 20px; margin-right: 20px; padding-bottom: 0.4em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.4em;"&gt;tomcat         	0:off	1:off	2:on	3:on	4:on	5:on	6:off&lt;br /&gt;&lt;/pre&gt;&lt;ol style="line-height: 1.5em; list-style-image: none; margin-bottom: 0px; margin-left: 3.2em; margin-right: 0px; margin-top: 0.3em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0.1em;"&gt;If you have done all well, you should now be able to bounce Tomcat with this script as well. Try it with:&lt;/li&gt;&lt;/ol&gt;&lt;pre style="background-color: #f0f0f0; border-bottom-color: rgb(60, 120, 181); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(60, 120, 181); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(60, 120, 181); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(60, 120, 181); border-top-style: solid; border-top-width: 1px; margin-left: 20px; margin-right: 20px; padding-bottom: 0.4em; padding-left: 0.4em; padding-right: 0.4em; padding-top: 0.4em;"&gt;/etc/init.d/tomcat restart&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-6007169600299360399?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/6007169600299360399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=6007169600299360399' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6007169600299360399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6007169600299360399'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/installing-tomcat-6-on-redhat-linux.html' title='Installing Tomcat 6 on Redhat Linux Enterprise or CentOS'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-5977135688173478825</id><published>2011-10-06T05:18:00.000-07:00</published><updated>2011-10-06T05:18:05.597-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>Speeding up mysql restoration of data</title><content type='html'>Mysql restoration too slow? Try the following steps:&lt;br /&gt;&lt;br /&gt;1. Open the file my.ini inside the MySQL installation directory and do the following:&lt;br /&gt;&lt;br /&gt;(a) Search for innodb_buffer_pool_size and set it to approx 20% of your RAM. I set it to 500M.&lt;br /&gt; innodb_buffer_pool_size=500M&lt;br /&gt;&lt;br /&gt;(b) Search for innodb_flush_log_at_trx_commit and change it from 1 to 2:&lt;br /&gt;innodb_flush_log_at_trx_commit=2&lt;br /&gt;&lt;br /&gt;(c) Search for key_buffer_size and set it to approx 20% of your physical RAM.&lt;br /&gt;key_buffer_size=1200M&lt;br /&gt;&lt;br /&gt;(d) In your data.sql file you are trying to restore, if it is an innodb tables, try to modify it and add the lines:&lt;br /&gt;SET FOREIGN_KEY_CHECKS=0  // At the beginning&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;SET FOREIGN_KEY_CHECKS=1 // At the end of the file&lt;br /&gt;&lt;br /&gt;Now restart MySQL service.&lt;br /&gt;&lt;br /&gt;Start restoring data. It will be approximately a magnitude of 50 times faster.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-5977135688173478825?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/5977135688173478825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=5977135688173478825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5977135688173478825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5977135688173478825'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/speeding-up-mysql-restoration-of-data.html' title='Speeding up mysql restoration of data'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-7310205393271463884</id><published>2011-10-06T01:28:00.001-07:00</published><updated>2011-10-06T02:28:19.692-07:00</updated><title type='text'>The Robot Two Leg Problem in Guice DI</title><content type='html'>&lt;script src='http://pastie.org/368348.js'&gt;&lt;/script&gt;&lt;br /&gt;&lt;style type="text/css"&gt;pre.textmate-source{  background: black;  color: #F8F8F8;}&lt;/style&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-7310205393271463884?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/7310205393271463884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=7310205393271463884' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7310205393271463884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7310205393271463884'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/robot-two-leg-problem-in-guice-di.html' title='The Robot Two Leg Problem in Guice DI'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-30824190816120084</id><published>2011-10-02T01:41:00.001-07:00</published><updated>2011-10-02T01:42:00.620-07:00</updated><title type='text'>Maven, configuring an http proxy</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;Go to your user directory (ie. /home/babbas or /c/Users/babbas) then goto ".m2" directory and create a file named settings.xml. Inside that file copy the contents below:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;proxies&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;proxy&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;active&amp;gt;true&amp;lt;/active&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;protocol&amp;gt;http&amp;lt;/protocol&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;host&amp;gt;iproxy.isu.net.sa&amp;lt;/host&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;port&amp;gt;8080&amp;lt;/port&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;username/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;password/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;nonProxyHosts/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;id/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;/proxy&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;/proxies&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;/settings&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-30824190816120084?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/30824190816120084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=30824190816120084' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/30824190816120084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/30824190816120084'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/maven-configuring-http-proxy.html' title='Maven, configuring an http proxy'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-7967167593044086282</id><published>2011-10-02T01:02:00.000-07:00</published><updated>2011-10-09T00:18:27.932-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>Installing GIT on Linux Redhat or CentOS 5</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;First is first:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rpm -Uvh epel-release-5-4.noarch.rpm&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;yum install git&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Next steps, configure git configuraiton:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git config --global user.name "Basil Abbas"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git config --global user.email "basil@isu.net.sa"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git config --global color.ui auto&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Creating a bare repository on a remote server:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;mkdir project_directory&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd project_directory&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git init --bare&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Cloning the bare remote repository on a development machine:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd /home/babbas&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git clone ssh://hostname/path/to/project_directory&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-7967167593044086282?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/7967167593044086282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=7967167593044086282' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7967167593044086282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7967167593044086282'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/installing-git-on-linux-redhat-or.html' title='Installing GIT on Linux Redhat or CentOS 5'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-669802932396449874</id><published>2011-10-01T07:17:00.000-07:00</published><updated>2011-10-01T07:19:52.819-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>VIM ignoring case search</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Just type:&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #f2f2f2; color: #39352e; font-family: monospace; font-size: 13px; line-height: 21px;"&gt;:set ignorecase&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #f2f2f2; color: #39352e; font-family: monospace; font-size: 13px; line-height: 21px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #f2f2f2; color: #39352e; font-family: monospace; font-size: 13px; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: 'Times New Roman'; font-size: small; line-height: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #f2f2f2; color: #39352e; font-family: monospace; font-size: 13px; line-height: 21px;"&gt;and to return back to normal:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #f2f2f2; color: #39352e; font-family: monospace; font-size: 13px; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="background-color: #f2f2f2; color: #39352e; font-family: monospace; font-size: 13px; line-height: 21px;"&gt;:set noignorecase&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #f2f2f2; color: #39352e; font-family: monospace; font-size: 13px; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="background-color: #f2f2f2; color: #39352e; font-family: monospace; font-size: 13px; line-height: 21px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;If you would like to search case insensitive one time only without changing the mode in vim, for example lets search for the word "earth" case insensitively:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #f2f2f2; color: #39352e; font-family: monospace; font-size: 13px; line-height: 21px;"&gt;/\cearth&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The \c character tells vim that the search should be case insensitive.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-669802932396449874?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/669802932396449874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=669802932396449874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/669802932396449874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/669802932396449874'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/10/vim-ignoring-case-search.html' title='VIM ignoring case search'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-8340966294688770865</id><published>2011-09-30T13:05:00.000-07:00</published><updated>2011-09-30T13:05:55.020-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technical articles'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Web Session Management White Paper</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;PDF Link:&lt;br /&gt;&lt;a href="http://www.isecpartners.com/files/web-session-management.pdf"&gt;http://www.isecpartners.com/files/web-session-management.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Developing an application with secure session management requires developers to understand a few crucial subtleties&amp;nbsp;of cookies — their attributes, their values, and how to keep them conﬁdential — and to understand how real-world&amp;nbsp;attackers are abusing weak session management in real applications today.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-8340966294688770865?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/8340966294688770865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=8340966294688770865' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/8340966294688770865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/8340966294688770865'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/web-session-management-white-paper.html' title='Web Session Management White Paper'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-629460763760267759</id><published>2011-09-29T06:11:00.001-07:00</published><updated>2011-09-29T06:11:46.878-07:00</updated><title type='text'>Making VIM on windows behave like linux</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The following:&lt;br /&gt;&lt;br /&gt;1. Open the file _vimrc which you will find inside c:\Program files\vim&lt;br /&gt;&lt;br /&gt;2. Find the line that says:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;behave mswin&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Change it to&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;behave xterm&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. Save and exit.&lt;br /&gt;&lt;br /&gt;This will now allow you to select text by typing the 'vi' then using the arrows to select text.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-629460763760267759?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/629460763760267759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=629460763760267759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/629460763760267759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/629460763760267759'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/making-vim-on-windows-behave-like-linux.html' title='Making VIM on windows behave like linux'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-5557085071018154031</id><published>2011-09-29T05:34:00.000-07:00</published><updated>2011-09-29T05:36:25.052-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>Deleting all lines that are empty or contain spaces in vim</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;To delete all lines that are empty in vim:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b style="background-color: #783f04;"&gt;:g/^$/d&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To delete all empty lines or empty lines that contain spaces:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b style="background-color: #783f04;"&gt;:g/^\s*$/d&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note that \s represents the space character in the regular expression. Or simply, you can also represent the space character with [ ]:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b style="background-color: #783f04;"&gt;:g/^[ ]*$/d&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-5557085071018154031?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/5557085071018154031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=5557085071018154031' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5557085071018154031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5557085071018154031'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/deleting-all-lines-that-are-empty-or.html' title='Deleting all lines that are empty or contain spaces in vim'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2760151245550835715</id><published>2011-09-29T05:31:00.000-07:00</published><updated>2011-09-29T05:36:47.853-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>Pasting code into VIM without the indentation problem</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Frequently, when pasting code into vim, i get lots of indentation spaces that really frustrate me.&lt;br /&gt;I discovered that this vim issue can easily be handled by typing in the command mode in vim:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b style="background-color: #783f04;"&gt;:set paste&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then going to insert mode and &lt;span&gt;&lt;/span&gt;pasting the source code.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2760151245550835715?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/2760151245550835715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=2760151245550835715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2760151245550835715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2760151245550835715'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/pasting-code-into-vim-without.html' title='Pasting code into VIM without the indentation problem'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-1172673820291560302</id><published>2011-09-29T05:29:00.000-07:00</published><updated>2011-09-29T05:37:46.023-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>Disable Autoindent in VIM</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;To disable autoindent in vim, you can do the following:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;:set noautoindent | set nosmartindent | set nocindent&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Or place the folowing lines in your .vimrc (linux) or _vimrc (windows):&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;set noautoindent&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;set nosmartindent&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;set nocindent&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Verdana, Geneva, Helvetica, Arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-1172673820291560302?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/1172673820291560302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=1172673820291560302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/1172673820291560302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/1172673820291560302'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/disable-autoindent-in-vim.html' title='Disable Autoindent in VIM'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-368106855194175302</id><published>2011-09-25T08:24:00.001-07:00</published><updated>2011-09-25T08:24:44.111-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cheat sheet'/><category scheme='http://www.blogger.com/atom/ns#' term='tag'/><title type='text'>Git Cheat Sheets</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://devcheatsheet.com/tag/git/"&gt;http://devcheatsheet.com/tag/git/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-368106855194175302?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/368106855194175302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=368106855194175302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/368106855194175302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/368106855194175302'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/git-cheat-sheets.html' title='Git Cheat Sheets'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-8383251392895654774</id><published>2011-09-25T07:13:00.000-07:00</published><updated>2011-09-25T07:13:10.212-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Graphical Design'/><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>Goodbye Adobe Photoshop, Goodbye Paint.NET, Good Bye Greedy Pricing Schemes</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I lately found this wonderful image processing application named PhotoPlus Starter Edition and I'm now no longer using either Adobe Photoshop nor Paint.NET.&lt;br /&gt;&lt;br /&gt;From serif.com:&lt;br /&gt;&lt;a href="http://www.serif.com/FreeDownloads/"&gt;http://www.serif.com/FreeDownloads/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-8383251392895654774?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/8383251392895654774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=8383251392895654774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/8383251392895654774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/8383251392895654774'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/goodbye-adobe-photoshop-goodbye.html' title='Goodbye Adobe Photoshop, Goodbye Paint.NET, Good Bye Greedy Pricing Schemes'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-7983137108807821644</id><published>2011-09-25T07:01:00.000-07:00</published><updated>2011-09-25T07:07:12.546-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>The best "git log" command to use</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;u&gt;This is the best git log command to use:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;git log --decorate --graph --oneline&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;You can alias this command as follows:&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;git config --global alias.lol "log --graph --decorate --oneline"&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Now you can use it as follows:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git lol&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-7983137108807821644?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/7983137108807821644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=7983137108807821644' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7983137108807821644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7983137108807821644'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/best-git-log-command-to-use.html' title='The best &quot;git log&quot; command to use'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-7522618586321661760</id><published>2011-09-25T06:46:00.000-07:00</published><updated>2011-09-25T06:48:24.775-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>Making two branches identical after a git merge</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I had two branches, heavy_refactoring and master branch in git.&lt;br /&gt;I have already merged heavy_refactoring into master, but I had some trouble since master looks different than heavy_refactoring at the end due to some changes that took place on master before the merge. These changes I dont want.&lt;br /&gt;&lt;br /&gt;What I wanted is that the 'master' branch look exactly like heavy_refactoring.&lt;br /&gt;&lt;br /&gt;So here are the steps:&lt;br /&gt;&lt;br /&gt;1. Go to the master branch first.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;git checkout master&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. First you do a git diff between the two branches:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git diff --summary master heavy_refactoring&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will shows us the differences that should take place for master to become heavy_refactoring. It is very important that you type 'master' before 'heavy_refactoring' to advise the git diffing to give the differences so that I can get from master to heavy_refactoring.&lt;br /&gt;&lt;br /&gt;The --summary is a switch to tell the diff not to show the contents inside each file.&lt;br /&gt;&lt;br /&gt;3. After running the command, a list of deleted, modified and created files show up.&lt;br /&gt;&lt;br /&gt;4. If the diff tells you that I file is "deleted", this means it should be removed from the master branch using:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git rm file_to_remove&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. If the diff tells you that I file is "created", this means you have to copy it from the heavy_refactoring branch to the master branch using:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# Copying a file from another branch to the current branch&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;git checkout heavy_refactoring src/main/java/com/basil/TargetFile.java&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;6. If the diff tells you that I file got "modified", this means you also have to copy it from heavy_refactoring branch to the master branch. Notice that my objective here is to make master exactly like heavy_refactoring.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git checkout heavy_refactoring srcmain/java/com/basil/TargetFile2.java&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;At the end, I can run the git diff again and it will show me an empty result which will indicate that the two branches are exact:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git diff --summary master heavy_refactoring&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-7522618586321661760?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/7522618586321661760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=7522618586321661760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7522618586321661760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7522618586321661760'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/making-two-branches-identical-after.html' title='Making two branches identical after a git merge'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-8105680690665674881</id><published>2011-09-22T02:07:00.000-07:00</published><updated>2011-09-22T02:07:26.466-07:00</updated><title type='text'>Webmail Ad Blocker (Chrome &amp; Firefox) for Hotmail, Gmail and Yahoo</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Goodbye hotmail ads. Goodbye nonsense ads.&lt;br /&gt;&lt;br /&gt;Download the chrome plugin from:&lt;br /&gt;&lt;a href="https://chrome.google.com/webstore/detail/cbhfdchmklhpcngcgjmpdbjakdggkkjp"&gt;https://chrome.google.com/webstore/detail/cbhfdchmklhpcngcgjmpdbjakdggkkjp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Download the firefox plugin from:&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/webmail-ad-blocker/"&gt;https://addons.mozilla.org/en-US/firefox/addon/webmail-ad-blocker/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-8105680690665674881?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/8105680690665674881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=8105680690665674881' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/8105680690665674881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/8105680690665674881'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/webmail-ad-blocker-chrome-firefox-for.html' title='Webmail Ad Blocker (Chrome &amp; Firefox) for Hotmail, Gmail and Yahoo'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2290188673114069161</id><published>2011-09-20T14:11:00.000-07:00</published><updated>2011-09-20T14:11:15.127-07:00</updated><title type='text'>Three more java sites to your favorites</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://javaboutique.internet.com/"&gt;http://javaboutique.internet.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.devx.com/Java/Door/6972"&gt;http://www.devx.com/Java/Door/6972&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.jguru.com/"&gt;http://www.jguru.com/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2290188673114069161?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/2290188673114069161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=2290188673114069161' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2290188673114069161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2290188673114069161'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/three-more-java-sites-to-your-favorites.html' title='Three more java sites to your favorites'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-3515022523301177015</id><published>2011-09-19T04:25:00.000-07:00</published><updated>2011-09-19T04:38:37.896-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='technical articles'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Enabling SSL in Apache Tomcat 6 The Easy Way</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;NOTE: This article does not use the APR tomcat module but rather the default Tomcat 6 deployment.&lt;br /&gt;&lt;br /&gt;To enable SSL for Apache Tomcat 6, perform the following:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;&lt;u&gt;1. &lt;b&gt;Create an SSL certificate using the java supplied keytool:&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;NOTE: If you get the error:&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #cc0000; font-family: 'Courier New', Courier, monospace;"&gt;keytool error: java.lang.Exception: Key pair not generated, alias &amp;lt;tomcat&amp;gt; already exists&lt;/span&gt;&lt;br /&gt;Then most probably you have a key file already in your user directory. If you are root, this will be &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/root/.keystore&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;&lt;u&gt;2. You will be requested for data that will show on your user browser's certificate, fill them all in.&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Notice that the bold font is my input. No problem if you stick to the password "&lt;b&gt;changeit&lt;/b&gt;" as it is the default password used by tomcat.&lt;br /&gt;&lt;br /&gt;Enter keystore password: &lt;b&gt;changeit&lt;/b&gt;&lt;br /&gt;Re-enter new password: &lt;b&gt;changeit&lt;/b&gt;&lt;br /&gt;What is your first and last name: &lt;b&gt;Jeremy Atkins&lt;/b&gt;&lt;br /&gt;What is your organizational unit: &lt;b&gt;OU&lt;/b&gt;&lt;br /&gt;What is the name of your organization: &lt;b&gt;NOYO&lt;/b&gt;&lt;br /&gt;What is the name of your city or your locality: &lt;b&gt;MyCity&lt;/b&gt;&lt;br /&gt;What is the name of your state or province: &lt;b&gt;Saudi Arabia&lt;/b&gt;&lt;br /&gt;What is the two-letter country code for this unit: &amp;nbsp;&lt;b&gt;uk&lt;/b&gt;&lt;br /&gt;Is the entered data correct: &lt;b&gt;yes&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Enter key password for &amp;lt;tomcat&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (RETURN if same as keystore password): &lt;b&gt;PRESS RETURN KEY&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;It is important to have the keystore password and the key password the same. This is done by pressing the RETURN KEY in the last step. This is necessary since Tomcat doesn't support having different passwords in the keystore and key.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;&lt;u&gt;3. When you're done with the previous step, a keystore file gets created in the user directory named keystore. Since I'm the root user, I will find it in /root/.keystore.&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Check that the file /root/.keystore got created.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;&lt;u&gt;4. Next, open the tomcat server.xml for editing:&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vi ${tomcat_installation_dir}/conf/server.xml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And uncomment the following section by removing the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;!--&lt;/span&gt; and the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;--&amp;gt;&lt;/span&gt; surrounding them from top and bottom:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;&amp;lt;Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;maxThreads="150" scheme="https" secure="true"&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clientAuth="false" sslProtocol="TLS"&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;&lt;u&gt;5. Change the port number from 8443 to 443 which is the default SSL port known to all browsers.&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;&lt;u&gt;Switch to 8443 while in development if needed.&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;&amp;lt;Connector port="&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;443&lt;/span&gt;&lt;/span&gt;" protocol="HTTP/1.1" SSLEnabled="true"&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;maxThreads="150" scheme="https" secure="true"&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clientAuth="false" sslProtocol="TLS"&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;&lt;u&gt;6. Now add the following line in between to tell tomcat where to locate the keystore and specify the password you specified:&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;maxThreads="150" scheme="https" secure="true"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;clientAuth="false" sslProtocol="TLS"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #38761d; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;keystoreFile="${user.home}/.keystore" keystorePass="changeit"&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tomcat will automatically replace ${user.home} with the path of the home directory for the user tomcat is running under. Which in my case is "&lt;b&gt;/root&lt;/b&gt;"&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;&lt;u&gt;7. Restart apache tomcat using:&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&amp;lt;tomcat_installation_dir&amp;gt;/bin/catalina.sh stop&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&amp;lt;tomcat_installation_dir&amp;gt;/bin/catalina.sh start&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Reference:&amp;nbsp;&lt;a href="http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html"&gt;http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-3515022523301177015?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/3515022523301177015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=3515022523301177015' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3515022523301177015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3515022523301177015'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/enabling-ssl-in-apache-tomcat-6-easy.html' title='Enabling SSL in Apache Tomcat 6 The Easy Way'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2200046903657630856</id><published>2011-09-19T01:32:00.000-07:00</published><updated>2011-09-19T01:38:47.685-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='technical articles'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Disabling WebDAV DELETE, PUT, OPTIONS in Apache Tomcat 6</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;It really took me more than two hours searching over the internet just to understand how to do this simple configuration of disabled the WebDAV methods in apache tomcat 6 for all applications.&lt;br /&gt;&lt;br /&gt;Here is how to do it:&lt;br /&gt;&lt;br /&gt;In your apache tomcat 6 installation, simply open the file &amp;lt;installation_directory&amp;gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;installation_directory&gt;/conf/web.xml&lt;/installation_directory&gt;&lt;/span&gt;&lt;/b&gt; for editing. Note that this web.xml file acts as a global file for all web applications and is processed before the web.xml's web application file.&lt;br /&gt;&lt;br /&gt;At the end of the global web.xml file and just before the  closing tag place the following text:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;security-constraint&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;web-resource-collection&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;web-resource-name&amp;gt;restricted methods&amp;lt;/web-resource-name&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;http-method&amp;gt;PUT&amp;lt;/http-method&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;http-method&amp;gt;DELETE&amp;lt;/http-method&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;http-method&amp;gt;OPTIONS&amp;lt;/http-method&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;http-method&amp;gt;TRACE&amp;lt;/http-method&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;/web-resource-collection&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;auth-constraint /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;/security-constraint&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The above security-constraint simply denies the above WebDAV methods to be processed by tomcat and returns a forbidden message.&lt;br /&gt;&lt;br /&gt;The &amp;lt;auth-constraint /&amp;gt; simply means: "For any user, deny access to PUT, DELETE, OPTIONS, and TRACE methods".&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After that, restart apache tomcat 6 using:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;lt;installation_directory&amp;gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;installation_directory&gt;/bin/catalina.sh stop&lt;/installation_directory&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;lt;installation_directory&amp;gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;installation_directory&gt;/bin/catalina.sh start&lt;/installation_directory&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To be able to verify that these methods are now forbidden, I used some javascript jquery code:&lt;/div&gt;&lt;div&gt;1. Open firefox with the firebug plugin installed&lt;/div&gt;&lt;div&gt;2. Open a webapplication that has jquery javascript file included within it.&lt;/div&gt;&lt;div&gt;3. Open firebug and select the "Console" tab from firebug&lt;/div&gt;&lt;div&gt;4. Write the following javascript code:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$.ajax({&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; type: 'DELETE',&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; url: "http://212.138.70.94",&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; data: {},&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; error: function() {alert('ERROR');},&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; success: function() {alert('SUCCESS');},&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;});&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. Click the Run button.&lt;/div&gt;&lt;div&gt;6. You should see an alert dialog with the message ERROR and a response in firebug with the following message:&lt;/div&gt;&lt;div&gt;&lt;span class="objectBox objectBox-string " role="presentation"&gt;&lt;span class="Apple-style-span" style="color: red; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;"NetworkError: 403 Forbidden - http://212.138.70.94/"&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="objectBox objectBox-string " role="presentation"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="objectBox objectBox-string " role="presentation"&gt;7. Repeat the above for the OPTIONS, TRACE and PUT methods.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="objectBox objectBox-string " role="presentation"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="objectBox objectBox-string " role="presentation"&gt;I'm sure there's a simpler way to verify it other than javascript. But I don't know how.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2200046903657630856?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/2200046903657630856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=2200046903657630856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2200046903657630856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2200046903657630856'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/disabled-webdav-delete-put-options-in.html' title='Disabling WebDAV DELETE, PUT, OPTIONS in Apache Tomcat 6'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-7957447509533568971</id><published>2011-09-16T09:15:00.000-07:00</published><updated>2011-09-16T09:16:36.244-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Research'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>Should You Go Beyond Relational Databases?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;A wonderful article by Martin Kleppmann from thinkvitamin:&lt;br /&gt;&lt;a href="http://thinkvitamin.com/code/should-you-go-beyond-relational-databases/"&gt;http://thinkvitamin.com/code/should-you-go-beyond-relational-databases/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-7957447509533568971?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/7957447509533568971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=7957447509533568971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7957447509533568971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7957447509533568971'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/should-you-go-beyond-relational.html' title='Should You Go Beyond Relational Databases?'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-8290420512003250747</id><published>2011-09-16T06:40:00.001-07:00</published><updated>2011-09-16T06:40:07.571-07:00</updated><title type='text'>Looking for Java Screen Casts, Try SoftDevTube.com</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.softdevtube.com/"&gt;http://www.softdevtube.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-8290420512003250747?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/8290420512003250747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=8290420512003250747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/8290420512003250747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/8290420512003250747'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/looking-for-java-screen-casts-try.html' title='Looking for Java Screen Casts, Try SoftDevTube.com'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2385636620917758458</id><published>2011-09-12T06:14:00.000-07:00</published><updated>2011-09-12T06:17:42.781-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Idea'/><title type='text'>Creativity is Not Design</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;From:&amp;nbsp;&lt;a href="http://jessewilson.net/notes/creativity-is-not-design"&gt;http://jessewilson.net/notes/creativity-is-not-design&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;Too often I notice designers and non-designers alike equating creativity with design. I find this assumption disturbing because it is one of the many fallacies that allow unskilled but creative pretenders to consider themselves capable design professionals when they’re nothing of the sort… &lt;b&gt;Creativity is bound by no laws, rules, or strictures… Design, on the other hand, is based entirely on math, psychology, human perception, and a host of rigid rules and laws that can be broken by only a highly skilled few…&lt;/b&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2385636620917758458?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/2385636620917758458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=2385636620917758458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2385636620917758458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2385636620917758458'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/creativity-is-not-design.html' title='Creativity is Not Design'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-4502852441104333762</id><published>2011-09-12T00:17:00.000-07:00</published><updated>2011-09-12T00:17:05.371-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Utilities'/><title type='text'>Automatic Java Class Diagram Generation Using ObjectAid</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I was looking for a tool that would allow me to view my classes graphically, until I bumped into this question from stackoverflow.com:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/1120032/what-is-your-favorite-automatic-class-diagram-generator-for-eclipse"&gt;http://stackoverflow.com/questions/1120032/what-is-your-favorite-automatic-class-diagram-generator-for-eclipse&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And after trying several tools, I think ObjectAid beats'em all.&lt;br /&gt;&lt;br /&gt;Object Aid Website:&lt;br /&gt;&lt;a href="http://www.objectaid.com/"&gt;http://www.objectaid.com/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-4502852441104333762?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/4502852441104333762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=4502852441104333762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4502852441104333762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4502852441104333762'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/automatic-java-class-diagram-generation.html' title='Automatic Java Class Diagram Generation Using ObjectAid'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2022973879181811191</id><published>2011-09-07T02:41:00.000-07:00</published><updated>2011-09-07T02:41:47.369-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='screencast'/><title type='text'>Effective API Design</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.infoq.com/presentations/effective-api-design"&gt;http://www.infoq.com/presentations/effective-api-design&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2022973879181811191?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/2022973879181811191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=2022973879181811191' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2022973879181811191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2022973879181811191'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/09/effective-api-design.html' title='Effective API Design'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-7198010063218960883</id><published>2011-07-13T11:40:00.000-07:00</published><updated>2011-07-13T11:40:00.961-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kindle'/><title type='text'>A Wonderful Tool Called Briss, Crop your PDF margins for Kindle Reading</title><content type='html'>Wonderful tool that will crop the white spaces in your PDFs to make them clearly readable on your Kindle 3.&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/briss/"&gt;http://sourceforge.net/projects/briss/&lt;/a&gt;&lt;br /&gt;Its freeware.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-7198010063218960883?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/7198010063218960883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=7198010063218960883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7198010063218960883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7198010063218960883'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/07/wonderful-tool-called-briss-crop-your.html' title='A Wonderful Tool Called Briss, Crop your PDF margins for Kindle Reading'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-9206145696245396117</id><published>2011-07-12T15:30:00.000-07:00</published><updated>2011-07-12T15:30:48.144-07:00</updated><title type='text'>Important Information Concerning SATA 3 Support on Laptops / Notebooks</title><content type='html'>Read this question:&lt;br /&gt;&lt;a href="http://superuser.com/questions/234754/revision-3-sata-6gb-s-capable-laptops-do-they-exist"&gt;http://superuser.com/questions/234754/revision-3-sata-6gb-s-capable-laptops-do-they-exist&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then this link:&lt;br /&gt;&lt;a href="http://www.intel.com/products/notebook/chipsets/ec-qm67/ec-qm67-overview.htm"&gt;http://www.intel.com/products/notebook/chipsets/ec-qm67/ec-qm67-overview.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then this link:&lt;br /&gt;&lt;a href="http://www.intel.com/Assets/PDF/datasheet/324645.pdf"&gt;http://www.intel.com/Assets/PDF/datasheet/324645.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When purchasing a laptop, check for a 6 series intel chipset.&lt;br /&gt;They are supported on laptops with the &lt;a href="http://www.intel.com/products/notebook/chipsets/ec-qm67/ec-qm67-overview.htm" rel="nofollow"&gt;QM67&lt;/a&gt;, &lt;a href="http://www.intel.com/products/notebook/chipsets/ec-qs67/ec-qs67-overview.htm" rel="nofollow"&gt;QS67&lt;/a&gt;, &lt;a href="http://www.intel.com/products/notebook/chipsets/ec-hm65/ec-hm65-overview.htm" rel="nofollow"&gt;HM65&lt;/a&gt;, &lt;a href="http://www.intel.com/products/notebook/chipsets/mec-um67/mec-um67-overview.htm" rel="nofollow"&gt;UM67&lt;/a&gt;, and &lt;a href="http://www.intel.com/products/notebook/chipsets/ec-hm67/ec-hm67-overview.htm" rel="nofollow"&gt;HM67&lt;/a&gt; chipset.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-9206145696245396117?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/9206145696245396117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=9206145696245396117' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/9206145696245396117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/9206145696245396117'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/07/important-information-concerning-sata-3.html' title='Important Information Concerning SATA 3 Support on Laptops / Notebooks'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-3156516538422905546</id><published>2011-07-06T06:28:00.000-07:00</published><updated>2011-07-06T06:28:04.490-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>Adobe Photoshop Tutorials, Tips and Articles From PSD.TUTSPLUS.COM</title><content type='html'>&lt;a href="http://psd.tutsplus.com/"&gt;http://psd.tutsplus.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-3156516538422905546?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/3156516538422905546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=3156516538422905546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3156516538422905546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3156516538422905546'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/07/adobe-photoshop-tutorials-tips-and.html' title='Adobe Photoshop Tutorials, Tips and Articles From PSD.TUTSPLUS.COM'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-262602006599370964</id><published>2011-07-06T05:59:00.000-07:00</published><updated>2011-07-06T05:59:16.475-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>15 ways to make great websites for less</title><content type='html'>&lt;a href="http://www.netmagazine.com/features/15-ways-make-great-websites-less"&gt;http://www.netmagazine.com/features/15-ways-make-great-websites-less&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This article contains wonderful tools for creating websites.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-262602006599370964?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/262602006599370964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=262602006599370964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/262602006599370964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/262602006599370964'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/07/15-ways-to-make-great-websites-for-less.html' title='15 ways to make great websites for less'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-4142248529926283907</id><published>2011-07-06T05:07:00.000-07:00</published><updated>2011-07-06T05:07:41.008-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>Kuler - A tool to help you select color themes for your website</title><content type='html'>&lt;a href="http://kuler.adobe.com/"&gt;http://kuler.adobe.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Its online. Its free.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-4142248529926283907?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/4142248529926283907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=4142248529926283907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4142248529926283907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4142248529926283907'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/07/kuler-tool-to-help-you-select-color.html' title='Kuler - A tool to help you select color themes for your website'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-4906248313784356247</id><published>2011-07-05T13:37:00.000-07:00</published><updated>2011-07-05T13:37:59.492-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nice images'/><title type='text'>Good Ideas Glow In The Dark</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-SRvg9qZraJE/ThN17hxPB2I/AAAAAAAAABQ/TNGCJ_6F3-A/s1600/good_ideas_glow_in_the_dark.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="424" src="http://1.bp.blogspot.com/-SRvg9qZraJE/ThN17hxPB2I/AAAAAAAAABQ/TNGCJ_6F3-A/s640/good_ideas_glow_in_the_dark.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-4906248313784356247?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/4906248313784356247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=4906248313784356247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4906248313784356247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4906248313784356247'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/07/good-ideas-glow-in-dark.html' title='Good Ideas Glow In The Dark'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-SRvg9qZraJE/ThN17hxPB2I/AAAAAAAAABQ/TNGCJ_6F3-A/s72-c/good_ideas_glow_in_the_dark.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-110013636405596129</id><published>2011-05-03T01:25:00.000-07:00</published><updated>2011-05-05T03:42:22.854-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><title type='text'>Setting a default program to open files with unknown extensions or no extension on Windows 7</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I always get frustrated having to select a program to open a file when most of the time this program is notepad.&lt;br /&gt;&lt;br /&gt;I searched the internet for a way to define a default program to open files for all other files that have extensions not defined on windows. Luckily, I found this article:&lt;br /&gt;&lt;a href="http://www.fortypoundhead.com/showcontent.asp?artid=2738"&gt;http://www.fortypoundhead.com/showcontent.asp?artid=2738&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To modify the registry you have to run regedit.exe and modify or add the following:&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\*\shell]&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\*\shell\open]&lt;br /&gt;@="Open With Notepad"&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\*\shell\open\command]&lt;br /&gt;@="notepad.exe %1"&lt;br /&gt;&lt;br /&gt;[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.]&lt;br /&gt;"Application"="Notepad"&lt;br /&gt;&lt;br /&gt;Note the following, if the key does not exist, you have to create it.&lt;br /&gt;Example, create the key "open" and created under it the key "command"&lt;br /&gt;Also @= means the default value for the key&lt;br /&gt;Application=Notepad means you have to create a string value containing Application and value Notepad&lt;br /&gt;Also, the last key make sure to notice the ".", its not "FileExts" but rather "FileExts\.", a subkey inside FileExts labeled dot.&lt;br /&gt;&lt;br /&gt;Or simply, the above could be saved into a *.reg file and executed.&lt;br /&gt;&lt;br /&gt;After that you will get in the context menu the option to open with Notepad for any unknown file.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-110013636405596129?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/110013636405596129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=110013636405596129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/110013636405596129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/110013636405596129'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/05/setting-default-program-to-open-files.html' title='Setting a default program to open files with unknown extensions or no extension on Windows 7'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-1484148707862606908</id><published>2011-02-14T11:59:00.000-08:00</published><updated>2011-02-14T11:59:31.250-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mashups'/><title type='text'>The Rise Of Mashups</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;As much as I hate the over-over-over-engineered java Portlet specification JSR-168 and JSR-268, as much as I &amp;nbsp;felt safe with the Mashup concept. Though in its early stages, I believe mashups will eventually replace Portals and Portlets forever.&lt;br /&gt;&lt;br /&gt;To follow up on Java mashup news, keep a close eye on the following:&lt;br /&gt;&lt;a href="http://www.jackbe.com/enterprise-mashup/mashups-and-java/"&gt;http://www.jackbe.com/enterprise-mashup/mashups-and-java/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-1484148707862606908?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/1484148707862606908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=1484148707862606908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/1484148707862606908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/1484148707862606908'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/02/rise-of-mashups.html' title='The Rise Of Mashups'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-4852260252900419666</id><published>2011-02-01T12:54:00.000-08:00</published><updated>2011-02-01T12:54:13.646-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSP'/><title type='text'>An excellent article explaining custom tags in JSP2</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This is an excellent article explaining custom tags in JSP2:&lt;br /&gt;&lt;a href="http://www.vsj.co.uk/java/display.asp?id=408"&gt;http://www.vsj.co.uk/java/display.asp?id=408&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The custom tag development has been simplified and the complicated java API is no longer needed to develop a custom tag. A *.tag file is created instead.&lt;br /&gt;&lt;br /&gt;JSP custom tags are an advantage in the JSP language that does not exist in other web technologies I'm aware of (ie. PHP).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-4852260252900419666?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/4852260252900419666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=4852260252900419666' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4852260252900419666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4852260252900419666'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/02/excellent-article-explaining-custom.html' title='An excellent article explaining custom tags in JSP2'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-603831708804330003</id><published>2011-01-01T13:55:00.000-08:00</published><updated>2011-01-01T13:56:16.474-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technical articles'/><title type='text'>Ten Ideas for Making Sys Admins Life Easier</title><content type='html'>&lt;a href="http://queue.acm.org/detail.cfm?id=1921361"&gt;http://queue.acm.org/detail.cfm?id=1921361&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A message from administrators to application vendors:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 12px; line-height: 15px;"&gt;&lt;b&gt;1. DO have a "silent install" option.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 12px; line-height: 15px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;2. DON'T make the administrative interface a GUI.&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 12px; line-height: 15px;"&gt;&lt;b&gt;3. DO create an API so that the system can be remotely administered.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 12px; line-height: 15px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;4. DO have a configuration file that is an ASCII file, not a binary blob.&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;&lt;b&gt;5.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 12px; line-height: 15px;"&gt;&lt;b&gt;DO include a clearly defined method to restore all user data, a single user's data, and individual items&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 12px; line-height: 15px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;6. DO instrument the system so that we can monitor more than just, "Is it up or down?"&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 12px; line-height: 15px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;7. DO tell us about security issues.&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;8. DO use the built-in system logging mechanism&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;9. DON'T scribble all over the disk.&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;10. DO publish documentation electronically on your Web site.&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 12px; line-height: 15px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-603831708804330003?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/603831708804330003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/603831708804330003'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/01/ten-ideas-for-making-sys-admins-life.html' title='Ten Ideas for Making Sys Admins Life Easier'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2184839391537024214</id><published>2011-01-01T13:46:00.000-08:00</published><updated>2011-01-01T13:46:48.218-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technical articles'/><title type='text'>Three Common Application Problems Developers Should Watch Out For</title><content type='html'>&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Read this:&amp;nbsp;&lt;a href="http://www.theserverside.com/news/thread.tss?thread_id=61566"&gt;http://www.theserverside.com/news/thread.tss?thread_id=61566&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Then this:&lt;a href="http://java.dzone.com/articles/three-common-application"&gt;http://java.dzone.com/articles/three-common-application&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;In summary:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- ORMs can really be dangerous on your application if you don't understand whats happening internally.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- Very few developers (a fringe of a fringe) really understand threading and can write multithreaded applications.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;- Memory leaks take place in java by not closing and freeing resources and could become a real performance problem if not tracked correctly.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2184839391537024214?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2184839391537024214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2184839391537024214'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2011/01/three-common-application-problems.html' title='Three Common Application Problems Developers Should Watch Out For'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-7712905764367370759</id><published>2010-12-31T23:42:00.000-08:00</published><updated>2010-12-31T23:42:24.190-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><title type='text'>Finding Free Use Fonts</title><content type='html'>Don't look any further:&amp;nbsp;&lt;a href="http://www.fontsquirrel.com/"&gt;http://www.fontsquirrel.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wonderful site with many free for use fonts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-7712905764367370759?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7712905764367370759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7712905764367370759'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2010/12/finding-free-use-fonts.html' title='Finding Free Use Fonts'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-5107754080231487171</id><published>2010-11-30T23:34:00.000-08:00</published><updated>2010-11-30T23:34:07.688-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Denying A Program To Connect To A Network</title><content type='html'>Imagine that one day you download a free password manager on your windows machine, and use it to store all your passwords for online banking accounts, emails, etc.&lt;br /&gt;&lt;br /&gt;Knowing that this same executable is capable of connecting to the internet and doing different things like connecting to a server and checking for updates...&lt;br /&gt;&lt;br /&gt;Imagine that one day the guy developing the tool inserted some malicious code to forward password information in your password manager.&lt;br /&gt;&lt;br /&gt;Paranoid thinking? But can we blame paranoids, I mean the world is full of negative surprises that only paranoids were able to predict.&lt;br /&gt;&lt;br /&gt;Better than blaming, is protecting yourself without losing the privilege of the software you want to use. On windows 7, here's how:&lt;br /&gt;&lt;br /&gt;1. Go to the &lt;b&gt;Control Panel&lt;/b&gt;.&lt;br /&gt;2. Click on the &lt;b&gt;Windows Firewall&lt;/b&gt; icon.&lt;br /&gt;3. Make sure that your windows firewall is turned on by clicking on &lt;b&gt;Turn Windows Firewall on or off&lt;/b&gt;&lt;br /&gt;4. When this is done, go back to the Windows Firewall and click on "&lt;b&gt;Advanced Settings&lt;/b&gt;".&lt;br /&gt;5. Click on "&lt;b&gt;Outbound Rules&lt;/b&gt;"&lt;br /&gt;6. On the right, click on "&lt;b&gt;New Rule...&lt;/b&gt;"&lt;br /&gt;7. Make sure &lt;b&gt;Program&lt;/b&gt; is selected in the radio buttons and click Next.&lt;br /&gt;8. Enter the path of the program exe then click Next.&lt;br /&gt;9. Make sure "Should be Blocked" is selected then click Next.&lt;br /&gt;10. Enter a display name for this rule.&lt;br /&gt;11. Click Finish.&lt;br /&gt;12. Open the desktop tool you want to protect against and select "Check for updates.." in your tool if available. The tool should crash or tell you that it is unable to connect to the internet. No connection available.&lt;br /&gt;&lt;br /&gt;Capiche. You're done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-5107754080231487171?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5107754080231487171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5107754080231487171'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2010/11/denying-program-to-connect-to-network.html' title='Denying A Program To Connect To A Network'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-3331373538612261419</id><published>2010-11-29T09:46:00.000-08:00</published><updated>2010-12-25T00:45:10.310-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Utilities'/><title type='text'>The Google Chrome Dictionary Plugin</title><content type='html'>I always have trouble finding and installing the google chrome dictionary plugin, therefore, I'm posting this link as a reminder:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://chrome.google.com/extensions/detail/mgijmajocgfcbeboacabfgobmjgjcoja?hl=en-US"&gt;https://chrome.google.com/extensions/detail/mgijmajocgfcbeboacabfgobmjgjcoja?hl=en-US&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-3331373538612261419?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3331373538612261419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3331373538612261419'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2010/11/google-chrome-dictinary-plugin.html' title='The Google Chrome Dictionary Plugin'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-4893788209805558207</id><published>2010-11-29T04:30:00.000-08:00</published><updated>2010-11-29T04:30:32.276-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='health'/><title type='text'>The Exercise Every Developer Needs</title><content type='html'>Exercises for tendonitis and carpal tunnel:&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=hUyMNyrOHJQ"&gt;http://www.youtube.com/watch?v=hUyMNyrOHJQ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Before its too late.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-4893788209805558207?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4893788209805558207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4893788209805558207'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2010/11/exercise-every-developer-needs.html' title='The Exercise Every Developer Needs'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-7969695774769393251</id><published>2010-11-09T10:01:00.000-08:00</published><updated>2010-11-09T10:02:56.603-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desktop Application Development'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>wxWidgets versus Qt?</title><content type='html'>Both are good frameworks for writing a C++ desktop application. By the way, Qt is used in Google Earth and the Skype application.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For a wonderful comparison between wxWidgets and Qt, read the following:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://stackoverflow.com/questions/2886258/wxwidgets-vs-qt"&gt;http://stackoverflow.com/questions/2886258/wxwidgets-vs-qt&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My final conclusion, Qt wins.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-7969695774769393251?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7969695774769393251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7969695774769393251'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2010/11/wxwidgets-versus-qt.html' title='wxWidgets versus Qt?'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-6327731022024339009</id><published>2010-11-03T03:13:00.001-07:00</published><updated>2010-11-03T03:20:58.494-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Utilities'/><title type='text'>Sticky Notes Utility and More...</title><content type='html'>I've been used to using ATNotes, which is a sticky notes utility that was very light weight but had some frustrations. I'm telling you, writing your todo's on a sticky note on screen is an excellent way to keep your mind fresh and at the same time keeping all your TODOs as a reminder.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, some frustrations with ATNotes bothered me, so I've started looking for alternatives. Usually I do this be searching on google for "ATNotes alternativeto" (without double quotes), which displays the alternetiveto.net site.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luckily, I found a wonderful alternative which is named &lt;a href="http://www.zhornsoftware.co.uk/stickies/index.html"&gt;Stickies&lt;/a&gt;. I've installed it and found it great, simple, lightweight and doesn't interfere with your system or registry.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you still need more alternatives you can check the list on &lt;a href="http://alternativeto.net/software/atnotes/"&gt;http://alternativeto.net/software/atnotes/&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More interestingly, I found that the company that made this utility also made some interesting utilities which I name a few here:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Stickies (The already mentioned sticky note utility).&lt;/div&gt;&lt;div&gt;2. &lt;a href="http://www.zhornsoftware.co.uk/zbar/index.html"&gt;ZBar&lt;/a&gt; (multiple task bars for multiple screens)&lt;/div&gt;&lt;div&gt;3. &lt;a href="http://www.zhornsoftware.co.uk/bart/index.html"&gt;Bart&lt;/a&gt; (A wonderful simple backup utility).&lt;/div&gt;&lt;div&gt;4. &lt;a href="http://www.zhornsoftware.co.uk/caffeine/index.html"&gt;Caffeine&lt;/a&gt; ( A utility that simulates a key press every one minute to avoid your PC from stand by or screen saving).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-6327731022024339009?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6327731022024339009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6327731022024339009'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2010/11/sticky-notes-utility-and-more.html' title='Sticky Notes Utility and More...'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-7019747471784161894</id><published>2010-10-03T00:48:00.000-07:00</published><updated>2010-10-03T00:50:50.402-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><title type='text'>Where to find good images for your website?</title><content type='html'>A good friend of mine named Maximos, originally Rami the 17th gave me this link which is excellente:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.sxc.hu/home"&gt;http://www.sxc.hu/home&lt;/a&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Don't look any further.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-7019747471784161894?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7019747471784161894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7019747471784161894'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2010/10/where-to-find-good-images-for-your.html' title='Where to find good images for your website?'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-6723846207262441491</id><published>2010-09-28T06:12:00.001-07:00</published><updated>2010-09-28T06:13:02.015-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Wonderful Tutorial on CSS Layout and Positioning</title><content type='html'>&lt;a href="http://www.brainjar.com/css/positioning/default.asp"&gt;http://www.brainjar.com/css/positioning/default.asp&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Its a five page tutorial that I found really helpful.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-6723846207262441491?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6723846207262441491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6723846207262441491'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2010/09/wonderful-tutorial-on-css-layout-and.html' title='Wonderful Tutorial on CSS Layout and Positioning'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2654209035928096171</id><published>2010-08-25T05:02:00.000-07:00</published><updated>2010-08-25T12:21:02.822-07:00</updated><title type='text'>Catching up with Nuxeo: Switching from Python to Java</title><content type='html'>I recently read &lt;a href="http://www.infoq.com/articles/nuxeo_python_to_java"&gt;this&lt;/a&gt; article on infoq.com. Summarizing the findings in this post, here's the story.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nuxeo - an ERP company - took the decision on 2006 to port their core products from Python to Java. Infoq recently got hold of their CEO to discuss how the conversion went and also discussed the merits of static very dynamic typed languages since Nuxeo now tried both.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;Summary of reasons to convert to Java&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;1. The availability of components and frameworks in Java like Hibernate, Lucene and Eclipse makes it much easier to build applications. Although they admint Python is great, it wasn't suitable for the platform they were envisioning to build.&lt;/div&gt;&lt;div&gt;2. The range and depth of the Java libraries was one of the main drivers for switching to Java. The Nuxeo product is using 100 libraries in total, including jBPM, OpenSocial, OAuth for widget inclusion, Apache Shindig, Apache Chemistry for CMIS, JXA-RS, JPA, JDBC, JTA, JSF, Seam and RichFaces.&lt;/div&gt;&lt;div&gt;3. Build system facilities based on Maven, Hudson, JUnit. Supporting Jetty, Tomcat, JBoss and bare OSGi.&lt;/div&gt;&lt;div&gt;4. Market Reasons. The market for java applications is huge. All companies know Java. Most already have java applications running. A lot of companies require Java for their IT. All system integrators have extensive java knowledge.&lt;/div&gt;&lt;div&gt;5. Community Reasons. The community is again, huge. The Java Apache community is tremendous. There are big annual conventions around Java (JavaOne, ApacheCon, Devoxx, Jazoon, etc.) and hundreds of small ones.&lt;/div&gt;&lt;div&gt;6. Specification Reasons. Many technologies in the Java world are based on published specifications that have many implementations and reference implementations promoting clean specs.&lt;/div&gt;&lt;div&gt;7. High availability of tooling for Java. The VM itself, debugging tools, IDEs, monitoring, performance benches, etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;The results of the new Nuxea java based platform&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;1. Performance scales of about 10 to 100 times more.&lt;/div&gt;&lt;div&gt;2. In terms of features, its around 4 times the scope of what had been.&lt;/div&gt;&lt;div&gt;3. In terms of developer compatibility and ease-of-use, its about the same, but with alot more tooling experience.&lt;/div&gt;&lt;div&gt;4. Doubling or even tripling the capabilities of the old platform.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;How customers reacted?&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;1. 80% were okay with the change.&lt;/div&gt;&lt;div&gt;2. For those organizations that didn't want to move, the community stepped forward to ensure their ongoing support (the open source advantage).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;Merits of Python versus Java (Merits of Dynamic versus Static typing)&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Merits of Python and Java is a subset of the merits of Dynamic versus Statically typed languages. Lets see what both sides have to say.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Advocates of Dynamyic types languages argue that they are faster to code in, since the languages are inherently more expressive. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Advocates of Static typed languages argue that time saved in development using Dynamic languages is time lost in testing. This is because the lack of type information makes testing harder. In addition, dynamic languages are generally slower than statically typed languages and thus tend to be more expensive to scale. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;Nuxeo Opinion on Static and Dynamic Languages&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;In Nuxeo's case, they tried both dynamic and static languages to write their large scale product that consists of thousands of classes and hundreds of thousands of lines of code. Nuxeo's CEO says: Without a doubt, statically typed languages are better for such applications and yield many benefits giving you:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. An IDE with proper autocompletion&lt;/div&gt;&lt;div&gt;2. An IDE that knows all the uses of a given method or field in all of your classes thus vastly improving search and refactoring.&lt;/div&gt;&lt;div&gt;3. Many compile time checks.&lt;/div&gt;&lt;div&gt;4. Tools that find patterns and bugs in your code.&lt;/div&gt;&lt;div&gt;5. Tools that extract documentation based on the actual types in your code. This is because a statically typed language will explicitly indicate the type of an argument passed to a function. This is rarely a hindrance and always good documentation. Dynamism on the other hand doesn't bring you anything except for less typing of the argument types.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;What about the advantages of dynamic languages?&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;IMHO, dynamically typed languages are useful only for tiny applications or fast written scripts that perform different tasks.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another interesting thought that comes up when debating dynamism versus static languages, is an analogous subject that has sparked myriads of debates in the United States when Obama's administration applied a new set of regulations on businesses (which in some people's opinions is freedom limiting).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've spotted this interesting analogy from comments placed by the infoq.com visitors on the same article discussing the new regulated economy.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2654209035928096171?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2654209035928096171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2654209035928096171'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2010/08/catching-up-with-nuxeo-switching-from.html' title='Catching up with Nuxeo: Switching from Python to Java'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-3654765703495733223</id><published>2010-08-25T04:56:00.000-07:00</published><updated>2010-08-25T05:02:05.293-07:00</updated><title type='text'>Chat Abbreviations and IMHO</title><content type='html'>Nowadays, people are using chat abbreviations very frequently to save time and typing along with emoticons.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What surprised me recently is a very popular abbreviation used widely on the internet that I never read or used before. Its "IMHO", from the letters used and the "O" at the end, I first thought that it is an international organization of some type. But when I looked it up, I discovered that what IMHO really stands for is:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;b&gt;"IMHO =&lt;/b&gt; &lt;b&gt;I&lt;/b&gt;n &lt;b&gt;M&lt;/b&gt;y &lt;b&gt;H&lt;/b&gt;umble &lt;b&gt;O&lt;/b&gt;pinion&lt;b&gt;"&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So you can now safely add IMHO to your set of chat abbreviations including LOL, BRB, NP, BR.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-3654765703495733223?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3654765703495733223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3654765703495733223'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2010/08/chat-abbreviations-and-imho.html' title='Chat Abbreviations and IMHO'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-6678527745682560056</id><published>2010-07-14T06:32:00.000-07:00</published><updated>2010-07-17T00:59:57.363-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BP'/><title type='text'>How BP Handles a Coffee Spill</title><content type='html'>Simulating how BP handled it's oil spill on a smaller scale scenario ... a coffee spill.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=2AAa0gd7ClM&amp;amp;feature=fvhr"&gt;http://www.youtube.com/watch?v=2AAa0gd7ClM&amp;amp;feature=fvhr&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Disclaimer: If you didn't follow the news then you wont get it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-6678527745682560056?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6678527745682560056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6678527745682560056'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2010/07/how-bp-handles-coffee-spill.html' title='How BP Handles a Coffee Spill'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2636651487354250373</id><published>2010-07-10T23:49:00.000-07:00</published><updated>2010-07-14T04:02:53.949-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>A good Drupal alternative?</title><content type='html'>Frankly, I'm quite fedup with Drupal.&lt;br /&gt;&lt;br /&gt;My plan is to find an alternative. And here's my research findings.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I bumped into the following excellent CMSs that I would like to try out:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Concrete 5 &lt;a href="http://www.concrete5.org/"&gt;http://www.concrete5.org/&lt;/a&gt; (PHP using Zend Framework)&lt;br /&gt;2. BrowserCMS &lt;a href="http://www.browsercms.org/"&gt;http://www.browsercms.org/&lt;/a&gt; (Ruby on Rails)&lt;br /&gt;3. Silver Stripe &lt;a href="http://www.silverstripe.org/silverstripe-cms/"&gt;http://www.silverstripe.org/silverstripe-cms/&lt;/a&gt; (PHP using Sapphire)&lt;br /&gt;4. modx &lt;a href="http://modxcms.com/download/"&gt;http://modxcms.com/download/&lt;/a&gt; (PHP)&lt;br /&gt;5. Frog CMS &lt;a href="http://www.madebyfrog.com/"&gt;http://www.madebyfrog.com/&lt;/a&gt; (PHP)&lt;br /&gt;6. MiaCMS &lt;a href="http://miacms.org/"&gt;http://miacms.org/&lt;/a&gt;&lt;br /&gt;7. CMS Made Simple http://www.cmsmadesimple.org/&lt;br /&gt;8. TextPattern http://textpattern.com/&lt;br /&gt;9. ImpressCMS http://www.impresscms.org/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well, I think all of them are excellent. I really likes the Concrete 5 video preview though.&lt;span style="WHITE-SPACE: pre" class="Apple-tab-span"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="WHITE-SPACE: pre" class="Apple-tab-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="WHITE-SPACE: pre" class="Apple-tab-span"&gt;Also have a look at this top chart:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span"&gt;&lt;span style="WHITE-SPACE: pre" class="Apple-style-span"&gt;&lt;a href="http://amplicate.com/rankings/475-top-ten-content-management-systems-cms/"&gt;http://amplicate.com/rankings/475-top-ten-content-management-systems-cms/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2636651487354250373?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2636651487354250373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2636651487354250373'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2010/07/good-drupal-alternative.html' title='A good Drupal alternative?'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-386541671739873150</id><published>2010-07-10T15:08:00.000-07:00</published><updated>2010-07-14T04:03:18.493-07:00</updated><title type='text'>In search for a User, Group, Role &amp; Security Java Library</title><content type='html'>I've been longing for a Java library that would cover all the needs of authorization and authentication within an application in a sensible manner. The library shouldn't require huge EJB structures and should allow being used within a POJO context. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've searched and found three useful libraries:&lt;/div&gt;&lt;div&gt;1. Apache Ki &lt;a href="http://incubator.apache.org/ki/"&gt;http://incubator.apache.org/ki/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;2. java.security &lt;a href="http://java.sun.com/javase/technologies/security/"&gt;http://java.sun.com/javase/technologies/security/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;3. Spring Security http://www.acegisecurity.org/ &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The one that drives my curiosity the most is Apache Ki. Seems very promising.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-386541671739873150?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/386541671739873150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/386541671739873150'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2010/07/in-search-for-user-group-role-security.html' title='In search for a User, Group, Role &amp; Security Java Library'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-3695864938557548908</id><published>2010-01-28T02:10:00.000-08:00</published><updated>2010-12-25T00:46:00.912-08:00</updated><title type='text'>Jobless, need money, why not freelance from home?</title><content type='html'>You can start freelancing effectively using these websites:&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #2a2a2a; font-family: 'times new roman', 'new york', times, serif; line-height: 20px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="line-height: 20px;"&gt;&lt;span class="Apple-style-span" style="color: #2a2a2a; font-family: 'times new roman', 'new york', times, serif; line-height: 20px;"&gt;&lt;a href="http://www.odesk.com/"&gt;http://www.odesk.com&lt;/a&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 20px;"&gt;&lt;span class="Apple-style-span" style="color: #2a2a2a; font-family: 'times new roman', 'new york', times, serif; line-height: 20px;"&gt;&lt;a href="http://www.guru.com/"&gt;http://www.guru.com&lt;/a&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 20px;"&gt;&lt;span class="Apple-style-span" style="color: #2a2a2a; font-family: 'times new roman', 'new york', times, serif; line-height: 20px;"&gt;&lt;a href="http://www.elance.com/"&gt;http://www.elance.com&lt;/a&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 20px;"&gt;&lt;span class="Apple-style-span" style="color: #2a2a2a; font-family: 'times new roman', 'new york', times, serif; line-height: 20px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 20px;"&gt;&lt;span class="Apple-style-span" style="color: #2a2a2a; font-family: 'times new roman', 'new york', times, serif; line-height: 20px;"&gt;One day, I'll need these websites badly.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-3695864938557548908?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3695864938557548908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3695864938557548908'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2010/10/jobless-need-money-why-not-to-freelance.html' title='Jobless, need money, why not freelance from home?'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-5029501863548996380</id><published>2007-06-12T14:48:00.000-07:00</published><updated>2007-06-12T14:56:59.759-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>A Useful Command Prompt Tip</title><content type='html'>&lt;strong&gt;&lt;span style="font-family:courier new;font-size:180%;"&gt;netstat -an |find ":80"&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The above command I use so frequently. It really helps me out figure if there is a webserver running on the machine (ie. listening on port 80).&lt;br /&gt;&lt;br /&gt;Actually, this command is a combination of two commands. The first is netstat which displays a boring long table.&lt;br /&gt;&lt;br /&gt;The second is find "XX" which ignores all strings that dont contain "XX".&lt;br /&gt;&lt;br /&gt;The '|' is the pipe operator. Now the command simply pipes the output of 'netstat' into 'find', the result is the line that contains the string "80".&lt;br /&gt;&lt;br /&gt;If you're from a linux background, you'll find this post a bit too obvious. Since we're used to using the 'grep' command (which is similar to 'find' on windows).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-5029501863548996380?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/5029501863548996380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=5029501863548996380' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5029501863548996380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5029501863548996380'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/06/useful-command-prompt-tip.html' title='A Useful Command Prompt Tip'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-3557777449840184327</id><published>2007-06-03T13:55:00.000-07:00</published><updated>2007-06-03T14:01:24.888-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>Microsoft PowerToys</title><content type='html'>Add convenience to your life ...&lt;br /&gt;&lt;br /&gt;Try these free tools:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. Alt-Tab Replacement&lt;/strong&gt;&lt;br /&gt;When using Alt-Tab, this will show you a small thumbnail of the program you are switching too. Very helpful when switching to multiple instances of the same application.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. Power Calculator&lt;/strong&gt;&lt;br /&gt;Enhanced calculator for your OS.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. Open Command Window Here&lt;/strong&gt;&lt;br /&gt;Allows you to open the command window for any folder you are currently in.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. Image Resizer&lt;/strong&gt;&lt;br /&gt;Resize images on the spot.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5. ClearType Tuner&lt;/strong&gt;&lt;br /&gt;This PowerToy lets you use ClearType technology to make it easier to read text on your screen, and installs in the Control Panel for easy access.&lt;br /&gt;&lt;br /&gt;Download any or all at:&lt;br /&gt;&lt;a href="http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx"&gt;http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-3557777449840184327?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/3557777449840184327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=3557777449840184327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3557777449840184327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/3557777449840184327'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/06/microsoft-powertoys.html' title='Microsoft PowerToys'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-6234482009932657428</id><published>2007-06-01T14:44:00.001-07:00</published><updated>2007-06-01T14:57:58.712-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><title type='text'>Who Said You Cant Learn Karate From A Book?</title><content type='html'>You can learn anything from books. A good book with good illustrations and a comprehendable language style can teach you anything.&lt;br /&gt;&lt;br /&gt;The only extra large step you need is to continually practice. If you dont, then most probably you're dropping everything you've read.&lt;br /&gt;&lt;br /&gt;Now wait a second, I know what you're thinking... but watch out for what I said; I said '&lt;em&gt;&lt;strong&gt;you can learn&lt;/strong&gt;&lt;/em&gt;', but I didn't say '&lt;strong&gt;&lt;em&gt;its the best way!&lt;/em&gt;&lt;/strong&gt;'. So lets face it, someone whom read a book about Karate will definitely know more than someone who haven't read (assuming both initially start in the same state).&lt;br /&gt;&lt;br /&gt;Here's my evaluation of the different ways to learn ordered from best to worst:&lt;br /&gt;&lt;br /&gt;1. Let an expert teach you, practice well, see what other experts teach, read about it, apply, understand the different schools on the same subject.&lt;br /&gt;&lt;br /&gt;2. Let an expert teach you and practice well.&lt;br /&gt;&lt;br /&gt;3. Read a book, and practice.&lt;br /&gt;&lt;br /&gt;4. Read a book.&lt;br /&gt;&lt;br /&gt;5. Do nothing.&lt;br /&gt;&lt;br /&gt;Please note that I'm writing this post without any pre-research or good analysis on the subject. Therefore, please forgive my '&lt;strong&gt;&lt;em&gt;hardly scratching the surface analysis&lt;/em&gt;&lt;/strong&gt;' (abbreviated &lt;strong&gt;&lt;em&gt;HSTSA&lt;/em&gt;&lt;/strong&gt;) on this subject.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-6234482009932657428?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/6234482009932657428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=6234482009932657428' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6234482009932657428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6234482009932657428'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/06/who-said-you-cant-learn-karate-from.html' title='Who Said You Cant Learn Karate From A Book?'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-923409561068608759</id><published>2007-05-28T14:14:00.000-07:00</published><updated>2007-05-28T23:13:15.862-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Research'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Advice'/><title type='text'>File System Storage Versus BLOB Objects</title><content type='html'>Document Management Systems nowadays are heading towards storing all documents as BLOB objects in the database. You rarely find any server side applications that deal with documents as files.&lt;br /&gt;&lt;br /&gt;Whether its a... Document, Content, Bug, Project, Knowledge Management System, they're all implementing document storage using BLOB objects.&lt;br /&gt;&lt;br /&gt;Why it that then?&lt;br /&gt;&lt;br /&gt;Well...&lt;br /&gt;&lt;br /&gt;1. The first advantage of having everything stored in the database is the ease of backups and restorations. You no longer need to backup the database then backup your document's directory, then make sure they are synchronized.&lt;br /&gt;&lt;br /&gt;2. The second advantage is that the documents are stored the same way on all platforms and partitions. Whether its FAT32, NTFS, or any other filesystem, you can store them all in the same way.&lt;br /&gt;&lt;br /&gt;3. The third advantage is, you have full control of versioning documents, storing interesting information like diffs, dates, users performing on them.&lt;br /&gt;&lt;br /&gt;4. The fourth advantage is that third party applications that connect to the database need only to have the database port available. No need to provide extra ftp access to acess the documents.&lt;br /&gt;&lt;br /&gt;Thats it. Bottom line...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;em&gt;If you're building some kind of server application, consider a Database File System.&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-923409561068608759?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/923409561068608759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=923409561068608759' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/923409561068608759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/923409561068608759'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/05/document-management-systems-no-longer.html' title='File System Storage Versus BLOB Objects'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2357928084061943754</id><published>2007-05-23T13:43:00.000-07:00</published><updated>2007-05-25T00:48:15.252-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal Skills'/><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>The 3arabeezy Habit</title><content type='html'>In the old university days, whenever I met someone speaking half english half arabic, I usually felt so intimidated of such personalities. I used to think of them as people whom try their best to show off by mixing sophisticated english terminology with verbal mingled arabic pronounced english sounding words. At those days, 3arabeezy for me was a 100% Yukk.&lt;br /&gt;&lt;br /&gt;Today, I became one of them (A 3arabeezist). I just cant stop it, I keep mixing english and arabic whenever I speak, I dont know how it came up to be, it just happened. Gradually, I started substituting english words for words that I cant find an arabic alternative for, and vice versa.&lt;br /&gt;&lt;br /&gt;It seems that mixing two languages makes me feel smoother. Its not only in verbal languages. Its also in computer languages. You need to write Embedded C in Java code for certain functionalities, and to write PHP extensions using C in others, or even assembly in some C code, mixing languages could be an advantage.&lt;br /&gt;&lt;br /&gt;However, mixing arabic and english proves that you are proficient in using both simultaneaously, but very weak in utilizing one at at time.&lt;br /&gt;&lt;br /&gt;Even when trying to talk completely in English... one or more 'ya3neeez' have to slip through the conversation. And when I talk in complete Arabic, one or more 'simply', 'basically', 'soon enough', 'I think' have to slip in between.&lt;br /&gt;&lt;br /&gt;In funny cases, I'm also starting to use the plural form of arabic words in english form... examples are 'Raheeebz', 'Raw3az', '7abaaaybax' and 'Jee3aanz'.&lt;br /&gt;&lt;br /&gt;Lets jump to the lessons learned of this post. I guess there's one really serious lesson to mention. 3arabeezy aint that bad, but could make you look REALLY bad in first impressions. So here's my advice:&lt;br /&gt;&lt;br /&gt;1. When introduced to new people, dont use 3arabeezy whatsoever. Stick to one language. Talk professionaly. Dont mix. It will only leave an impression of either a show-off or an improficient talker.&lt;br /&gt;&lt;br /&gt;2. In public speech, dont use 3arabeezy unless the audience are people you've worked with before.&lt;br /&gt;&lt;br /&gt;3. When dreaming, feel free to use 3arabeezy. Totally acceptable.&lt;br /&gt;&lt;br /&gt;4. Sometimes you need to use 3arabeezy when talking to people who know neither arabic or english. This raises the chances that there could be an arabic or english word that sound something similar to their native language.&lt;br /&gt;&lt;br /&gt;5. Only use 3arabeezy if you feel that a certain word has a better alternative in the other language that will ease up understanding. Again, this proves weakness in the former language.&lt;br /&gt;&lt;br /&gt;Till then, we'll meet again in a next epi-post of 'Lost in the Code Carribeans'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2357928084061943754?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/2357928084061943754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=2357928084061943754' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2357928084061943754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2357928084061943754'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/05/3arabeezy-habit-somebody-stop-me.html' title='The 3arabeezy Habit'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2496056168331549698</id><published>2007-05-14T14:59:00.000-07:00</published><updated>2007-05-14T15:14:04.144-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal Skills'/><category scheme='http://www.blogger.com/atom/ns#' term='Analogy'/><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><title type='text'>The Long Easy Way Versus the Short Hard Way</title><content type='html'>Today I had a small discussion with a good technical friend of mine ;) The discussion started with trying to handle an SQL Query with one shot.&lt;br /&gt;&lt;br /&gt;The SQL Query got a bit too complicated to handle and needed some extra research, reading and thinking to figure out the correct way to do it. It took two technical brains, good MySQL experience, about forty minutes of work, and at the end some testing. It resulted with a long SQL statement.&lt;br /&gt;&lt;br /&gt;Through our work we had another solution, its a very easy solution, get the data you need through multiple SQL statements. Thus, a long but easier way to do it.&lt;br /&gt;&lt;br /&gt;We felt so proud that we were able to tackle the short difficult path, but at the end, considering the long easy path we missed, I felt a bit unrelaxed, but as soon as that happened, I was reminded with an important wisdom (by my &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Amigo"&gt;amigo&lt;/a&gt;&lt;/em&gt;):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;em&gt;"If you keep choosing the easy and long path, you'll hardly learn anything. It's the difficult short path that provides you with extra skill and power."&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now imagine the amount of skill and power you can gain by choosing the long difficult path. Hmmmm, cool as long as no fatal mistakes takes place.&lt;br /&gt;&lt;br /&gt;There's always alternate wisdom supplements when twisting different stories around.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2496056168331549698?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/2496056168331549698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=2496056168331549698' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2496056168331549698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2496056168331549698'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/05/long-easy-way-versus-short-hard-way.html' title='The Long Easy Way Versus the Short Hard Way'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-1539355413841364978</id><published>2007-05-14T13:34:00.000-07:00</published><updated>2007-05-14T14:08:02.668-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>The 'Call Super' Antipattern</title><content type='html'>A common design problem that is usually solved using the 'Call Super' &lt;em&gt;antipattern&lt;/em&gt; (also referred to as &lt;em&gt;code-smell&lt;/em&gt;). Simply stated, the problem occurs when the subclass needs to share the implementation of the super classes over-ridable methods.&lt;br /&gt;&lt;br /&gt;In such case, 'Call Super' anti-patten is usually used by calling the over-ridden methods from within the subclass's over-riding methods.&lt;br /&gt;&lt;br /&gt;I'll show a 'Call Super' code sample, then show a much better and neater solution (proposed by Martin Fowler).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;The Bad Solution (Using the 'Call Super' AntiPattern):&lt;/u&gt; &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;class Penguin {&lt;br /&gt;public void intoduceYourSelf() {&lt;br /&gt;        System.out.println("Hi, I'm classified as a penguin.");&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class EmperorPenguin Extended Penguin {&lt;br /&gt;    public void introduceYourSelf() {&lt;br /&gt;        &lt;b&gt;super.introduceYourSelf();&lt;/b&gt;&lt;br /&gt;        System.out.println("My real name is Emperor Penguin");&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;strong&gt;&lt;u&gt;A Better Solution&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;A much better solution is to have an abstract method in the super class for the extra actions the subclasses will perform. And thus, the subclass only needs to implement that abstract method:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class Penguin {&lt;br /&gt;    public void introduceYourSelf() {&lt;br /&gt;        System.out.println("Hi, I'm classified as a penguin.");&lt;br /&gt;        &lt;b&gt;talkAboutYourselfMore();&lt;/b&gt;&lt;br /&gt;    }&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;    &lt;b&gt;abstract public talkAboutYourselfMore();&lt;/b&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;class EmperorPenguin extends Penguin {&lt;br /&gt;    public void talkAboutYourselfMore() {&lt;br /&gt;        System.out.println("My real name is Emperor Penguin");&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Thats it. A neat alternative solution that I love to use.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-1539355413841364978?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/1539355413841364978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=1539355413841364978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/1539355413841364978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/1539355413841364978'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/05/call-super-antipattern.html' title='The &apos;Call Super&apos; Antipattern'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-5098173424257713560</id><published>2007-05-09T13:21:00.000-07:00</published><updated>2007-05-11T15:42:51.654-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='I hate boredom'/><title type='text'>Curiosity Never Killed The Cat...</title><content type='html'>... it was Boredom which did.&lt;br /&gt;&lt;br /&gt;The amount of boredom I've been through in the past three days has been killing me softly.&lt;br /&gt;&lt;br /&gt;Unfortunately, this time it's the result of practicing a boring repititive task; writing code that tests code. You just keep on writing code and checking the result, then writing another line and checking the result, then another line, and checking the result.&lt;br /&gt;&lt;br /&gt;Trying my best to be creative with this task, I only modified the code a bit to show errors in red color and success in green color. Thats about it.&lt;br /&gt;&lt;br /&gt;Wisdom of the day:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;em&gt;Ok, curiosity might have killed the cat. But boredom will kill anything!&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-5098173424257713560?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/5098173424257713560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=5098173424257713560' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5098173424257713560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5098173424257713560'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/05/curiosity-never-killed-cat.html' title='Curiosity Never Killed The Cat...'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-6926909109857841326</id><published>2007-05-06T14:42:00.000-07:00</published><updated>2007-05-06T14:44:34.529-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>The Best Free Utilities</title><content type='html'>Check them out at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.techsupportalert.com/best_46_free_utilities.htm"&gt;http://www.techsupportalert.com/best_46_free_utilities.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy. I liked the sticky notes utility ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-6926909109857841326?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/6926909109857841326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=6926909109857841326' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6926909109857841326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6926909109857841326'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/05/best-free-utilities.html' title='The Best Free Utilities'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-6652271872768052828</id><published>2007-05-04T15:26:00.000-07:00</published><updated>2007-05-04T15:44:43.967-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><category scheme='http://www.blogger.com/atom/ns#' term='Idea'/><title type='text'>Swapping Two Integer Variables Without Using a Temp Variable</title><content type='html'>The first time I heard this question, I thought it was a joke of some kind. I never thought such was possible.&lt;br /&gt;&lt;br /&gt;Turned out to be possible and even faster than the normal technique, here you go:&lt;br /&gt;&lt;br /&gt;Let X be an integer variable.&lt;br /&gt;Let Y be another integer variable.&lt;br /&gt;X = X xor Y&lt;br /&gt;Y = X xor Y&lt;br /&gt;X = X xor Y&lt;br /&gt;&lt;br /&gt;Wont buy it? Then try it out for yourself.&lt;br /&gt;&lt;br /&gt;One more technique, you can use the - (minus) operator instead, but be careful not to step over the integer max and min limits. Here you go:&lt;br /&gt;&lt;br /&gt;(eg. X = 12, Y = 7)&lt;br /&gt;X = X - Y ( X is now 5)&lt;br /&gt;Y = X + Y ( Y is now 12)&lt;br /&gt;X = Y - X ( X is now 7)&lt;br /&gt;(result: X = 7, Y = 12, Voila! Swapped)&lt;br /&gt;&lt;br /&gt;Hmmmm. Coming to think of a practical use. The only way such would be useful is to swap two large memory binary buffers.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;"&gt;This swapping enhancement breaks the common myth of 'its either memory or speed, but not both'. The swapping algorithm you just saw proves better in both memory consumption and performance gain.&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-6652271872768052828?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/6652271872768052828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=6652271872768052828' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6652271872768052828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6652271872768052828'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/05/swapping-two-integer-variables-without.html' title='Swapping Two Integer Variables Without Using a Temp Variable'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-4851225512185680993</id><published>2007-05-02T10:31:00.000-07:00</published><updated>2007-05-03T14:23:59.321-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gadget Tools'/><title type='text'>Sticky Notes No Longer Stick</title><content type='html'>Ok, we all use pieces of paper for jotting notes and todos from time to time.&lt;br /&gt;&lt;br /&gt;Some use white paper, lined paper or 3M sticky notes. When no physical resources are available I'll usually use notepad for quick note jotting.&lt;br /&gt;&lt;br /&gt;This usually happens when I'm jotting down a quick description of a street address of phone number.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;em&gt;The problem with the notepad approach is the extra steps you have to walk through to actually open notepad and save the file. Which turns out to be so inconvenient when urgency is required.&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I mean you need to go to Start &gt; All Programs &gt; Accessories &gt; Notepad, oooft! or even Start &gt;Run then 'notepad' and enter. I also use the quick launch, but at the end, notepad for note taking creates an intimidating experience. Not to mention having to remember the filename you saved on the desktop.&lt;br /&gt;&lt;br /&gt;So long for notepad, what about the paper and pen approach? Well...&lt;br /&gt;&lt;br /&gt;First, you need them to be around your desk somewhere and you need them to be around instantly. Pen and paper are easily un-noticed on your desk until you discover that you need them (comparing them to a laptop).&lt;br /&gt;&lt;br /&gt;Second, paper and ink are limited resource, ie. They will run out. And you'll have to purchase them again.&lt;br /&gt;&lt;br /&gt;Third, ok, anyone can afford paper and ink, but what about the environment.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;"&gt;The amount of paper waste caused from temp note storage is unjustified with the alternative tools available. Consider the amount of trees wasted for the sake of disposable paper notes and todo items.&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Ok, I'm sure you're thinking now. What point is this post building up to?&lt;br /&gt;&lt;br /&gt;Well, its all about a small and cute sticky notes tool (that mimics 3M sticky notes) named "&lt;strong&gt;ATNotes&lt;/strong&gt;".&lt;br /&gt;&lt;br /&gt;You can download it for free from:&lt;br /&gt;&lt;a href="http://atnotes.free.fr/download.html"&gt;http://atnotes.free.fr/download.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yep. Yep. No more notepad files on your desktop, no more scattered paper, no more ink, and guess what? You're now an environment friendly person.&lt;br /&gt;&lt;br /&gt;A Big Thanks goes to its developer &amp;amp; author - "Thomas Ascher".&lt;br /&gt;&lt;br /&gt;Hope you like it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-4851225512185680993?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/4851225512185680993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=4851225512185680993' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4851225512185680993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/4851225512185680993'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/05/sticky-notes-no-longer-stick.html' title='Sticky Notes No Longer Stick'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-6254887881706883251</id><published>2007-04-30T15:14:00.000-07:00</published><updated>2007-05-02T11:56:08.106-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Utilities'/><title type='text'>The Programmers Notepad</title><content type='html'>If you're one of those people whom dislike thick fat development IDE's, and at the same time you miss many of those rich highlighting and search/replace features in your simples editors.&lt;br /&gt;&lt;br /&gt;Then go no further...&lt;br /&gt;&lt;br /&gt;Try "The Programmers Notepad".&lt;br /&gt;&lt;br /&gt;1.3 MB in size, free, wonderful, and very light-weight.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;"&gt;I loved it from first 'site' : / &lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;"&gt;at &lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;a href="http://www.pnotepad.org/"&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;"&gt;http://www.pnotepad.org/&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I think I'll let go of EditPlus. My X-Favorite Editor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-6254887881706883251?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6254887881706883251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/6254887881706883251'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/04/programmers-notepad.html' title='The Programmers Notepad'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-5615440464037737229</id><published>2007-04-29T13:15:00.000-07:00</published><updated>2007-05-01T13:06:23.660-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>Lazy Evaluation and Caching...</title><content type='html'>... are the most widely used techniques for improving your software's implementation performance.&lt;br /&gt;&lt;br /&gt;Then what are they and how can I use them?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;em&gt;Lazy Evaluation is exactly just like a Lazy Employee; he wont do the job unless some one directly requests it from him. Infact, he'll postpone it forever until the request is made official.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Caching on the other hand is simply storing frequently used data in some quick array or memory for fast retreival, although the same data is stored in a database or in a file, the programmer usually chooses to cache it in its accessible form for fast retreival. This memory could be an Array, a Berkley DB file, a tmp file or any other suitable media.&lt;br /&gt;&lt;br /&gt;Google - a well known search engine - caches search results for most frequently used queries. FileNET (a really good CMS server) renders all content objects inside one single HTML page ready for access (instead of querying it from a database everytime). The HTTP protocol itself caches different requested pages on the internet on local internet proxies and implements the HTTP headers to do so. And even does your browser cache some html pages from time to time.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;em&gt;Thats why you usually need to press Ctrl+F5 to force requesting to refresh the page from the server.&lt;/em&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;As a programming example, lets say you have a small class named &lt;u&gt;UserAccountManager&lt;/u&gt; and this class contains a single method:&lt;br /&gt;&lt;br /&gt;&lt;u&gt;public static String UserAccountsManager.getUsername(int UserId);&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;And a single private array which is simply a HashMap mapping a UserID to the Username which is used by getUsername(int UserId).&lt;br /&gt;&lt;br /&gt;The method is implemented simply to execute a query on the database:&lt;br /&gt;&lt;br /&gt;"SELECT USERNAME FROM USERS WHERE ID=" + UserId&lt;br /&gt;&lt;br /&gt;Here is a simple way to see how caching and lazy evaluation can be applied.&lt;br /&gt;&lt;br /&gt;The program can implement caching using a private array map that maps the user id to the username string. This array is filled only once from the database when the program first loads.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;"&gt;The tricky part when implementing caching is knowing when to re-generate the cache, or more accurately, how to identify that the original data store has changed or not? If changed, then the cache needs to be regenerated or else your program is using out-of-date data. &lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Any calls to getUsername will simply access the array instead of accessing the database. This is whats Caching all about.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;"&gt;Now, lazy evaluation simply changes the implementation so that the array AINT FILLED AT ALL until someone actually calls the getUsername() method.&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The advantage here is that you dont waste memory or connect to the database until someone actually calls the function. (ps. It might need not be called at all).&lt;br /&gt;&lt;br /&gt;After all this explanation, there is a very annoying advice that you have to stick to:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;em&gt;&lt;strong&gt;"Never implement optimization techniques such as caching or lazy evaluation until a bottle neck is identified in the system using benchmarking and testing procedures that shows that need. This simply means, avoid Premature Optimization as much as you can."&lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-5615440464037737229?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5615440464037737229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/5615440464037737229'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/04/lazy-evaluation-and-caching.html' title='Lazy Evaluation and Caching...'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-8736904775924985903</id><published>2007-04-26T14:43:00.000-07:00</published><updated>2007-05-01T13:05:53.293-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>SQL Statement Shortcuts</title><content type='html'>What always bothered me when writing SQL SELECT Statements is handling long table names, and having to reference a field by its table's name to avoid ambiguous errors.&lt;br /&gt;&lt;br /&gt;Take this for example, three tables: infobase, infobase_labels, and infobase_users. And let's imagine that those three tables each have a field named 'ID'.&lt;br /&gt;&lt;br /&gt;So a simple select statement will go like that:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT infobase.ID, infobase.NAME AS INFO_NAME, infobase_labels.NAME AS LABEL_NAME, PHONE FROM infobase_labels, infobase_users, infobase WHERE infobase_labels.ID=infobase.LABEL_ID and infobase_users.ID=infobase.USER_ID AND infobase.ID=5;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Okay, 238 characters of unreadable sql code.&lt;br /&gt;&lt;br /&gt;Whats next? Okay, till here you have two options:&lt;br /&gt;1. Live with it.&lt;br /&gt;2. Find a simpler way.&lt;br /&gt;&lt;br /&gt;I have been using option 1 for the last 7 years. Until, option two showed up ...&lt;br /&gt;&lt;br /&gt;... the usage of name aliasing for table names to make a query simpler, now this I love, simple alias each table with a 2 letter name, and use it instead of the table name:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT _IB.ID, _IB.NAME AS INFO_NAME, _IBL.NAME AS LABEL_NAME, PHONE FROM infobase_labels AS _IBL, infobase_users AS _IBU, infobase AS _IB WHERE _IBL.ID=_IB.LABEL_ID and _IBU.ID=_IB.USER_ID AND _IB.ID=5; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Okay, this makes them 205 characters long.&lt;br /&gt;&lt;br /&gt;For me the latter is much more readable, shorted and easier to write.&lt;br /&gt;&lt;br /&gt;Tidying the SQL statement a bit:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;_IB.ID, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;_IB.NAME AS INFO_NAME, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;_IBL.NAME AS LABEL_NAME, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PHONE &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FROM &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;infobase_labels AS _IBL, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;infobase_users AS _IBU, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;infobase AS _IB &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;WHERE &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;_IBL.ID=_IB.LABEL_ID &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;AND _IBU.ID=_IB.USER_ID &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;AND _IB.ID=5; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Okay thats it for today. Quite a long post, but I like it ; )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-8736904775924985903?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/8736904775924985903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/8736904775924985903'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/04/sql-statement-shortcuts.html' title='SQL Statement Shortcuts'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-7298392965665766060</id><published>2007-04-21T14:15:00.000-07:00</published><updated>2007-04-22T01:51:09.513-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal Skills'/><category scheme='http://www.blogger.com/atom/ns#' term='Thoughts'/><category scheme='http://www.blogger.com/atom/ns#' term='Advice'/><title type='text'>Master the Techniques Before Chasing the Goals</title><content type='html'>Miyagi told Daniel Son while holding the chop sticks:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;em&gt;"You have to catch fly first."&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And this applies to any career. Ok, Miyagi was a bit over-reacting here, I mean, if it was not for the 'beginners luck' of Daniel Son, I dont think this movie would have ever ended.&lt;br /&gt;&lt;br /&gt;The lesson here is that a career person SHOULD master the techniques of her or his profession. Know it well, do it right, know when to use a technique, know when to drop it, know the pros and cons of different techniques, but most importantly, Master it!&lt;br /&gt;&lt;br /&gt;That could be the boring part for some, to master the technique, to know the details, to understand the bits and pieces.&lt;br /&gt;&lt;br /&gt;A professional football player knows that mastering a 'pass' weighs much more than scoring a goal. Mediocre players - on the other hand - only care about scoring, this arises from a mentality of greed ... "Need to score, makes me feel good.".&lt;br /&gt;&lt;br /&gt;Most low quality environments overlook developing good techniques, and favor jumping directly to goals. Ok, fair enough, the time and budget constraints of 'the start' could force such conditions. But, this symptom easily grows to a disorder when this methodology becomes a continuous habit.&lt;br /&gt;&lt;br /&gt;Wisdom of today's post:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;em&gt;&lt;strong&gt;"Master the techniques, and make them the solid path to your goals."&lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-7298392965665766060?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/7298392965665766060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=7298392965665766060' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7298392965665766060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/7298392965665766060'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/04/master-techniques-before-chasing-goals.html' title='Master the Techniques Before Chasing the Goals'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-8489451234144450403</id><published>2007-04-16T14:38:00.000-07:00</published><updated>2007-04-22T14:17:13.076-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><title type='text'>Toggle The Toggler</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;We all use them, different places in our code, toggling variables.&lt;br /&gt;And there are many ways to achieve the same results. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;My first toggle looked like that. This toggles between 1 and -1.&lt;br /&gt;&lt;strong&gt;a *= -1;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;It then evolved to:&lt;br /&gt;&lt;strong&gt;a = a XOR 1; // or a = a ^ 1 in Java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I also started using the modulus operator:&lt;br /&gt;&lt;strong&gt;a = (a + 1) % 2;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Then I liked the modulus operator so much, that I started using it to toggle between three, four or N values:&lt;br /&gt;&lt;strong&gt;a = (a + 1) % 4;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-8489451234144450403?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/8489451234144450403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/8489451234144450403'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/04/toggle-toggler.html' title='Toggle The Toggler'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-202784739261656805</id><published>2007-04-15T13:20:00.000-07:00</published><updated>2007-04-17T14:43:10.405-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Research'/><category scheme='http://www.blogger.com/atom/ns#' term='Skills'/><title type='text'>Teach Yourself Programming in Ten Years</title><content type='html'>Very nice article discussing the programmers' learning curve:&lt;br /&gt;&lt;a href="http://norvig.com/21-days.html"&gt;&lt;strong&gt;http://norvig.com/21-days.html&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This article is so popular it has been translated to many different languages including chinese, arabic, german, french, polish, japanese, korean, russian, spanish and turkish.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;ref: Khaled J. Simtix Software.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-202784739261656805?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/202784739261656805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/202784739261656805'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/04/teach-yourself-programming-in-ten-years.html' title='Teach Yourself Programming in Ten Years'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2002631967970890507</id><published>2007-04-13T13:20:00.000-07:00</published><updated>2007-04-14T10:36:02.026-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Book Quote'/><title type='text'>Book Quote</title><content type='html'>&lt;em&gt;&lt;strong&gt;"Some people play tennis all their lives, but never get better. Those people are not willing to take a fresh look at what they do or to consider changing it. Good players recognize that getting better often means making an investment in new approaches. For a while, they may get worse, as they wrestle with new and unfamiliar techniques, but eventually they surpass their old plateau."&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;-Fisher, Ury and Patton&lt;/em&gt;&lt;br /&gt;&lt;em&gt;In Getting To Yes&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2002631967970890507?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2002631967970890507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2002631967970890507'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/04/book-quote.html' title='Book Quote'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-268147045114087595</id><published>2007-04-10T15:17:00.000-07:00</published><updated>2007-04-10T15:53:40.936-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Getting Organized'/><title type='text'>Getting Organized</title><content type='html'>I've seen different people do different stuff when it comes to getting organized.&lt;br /&gt;&lt;br /&gt;Whether its organizng your images, favorites, invoices, note taking, meetings, budgeting.&lt;br /&gt;&lt;br /&gt;Frankly, what works with some turns up to be impractical for others, and vice versa.&lt;br /&gt;&lt;br /&gt;1. Some use the browser's favorites toolbar; others see it as non-sense.&lt;br /&gt;2. Some use small notepad files to collect different websites, todo items, readings, passwords.&lt;br /&gt;Others use excel sheets for the same task.&lt;br /&gt;3. Some people even use stange but effective tools. An example is a tool that applies different colors to the different folders on a machine. Even others use tools that automate your environment through pre-configured shortcut keys and mouse clicks.&lt;br /&gt;4. Some use information tools - called outliners - for collecting important pieces of information. Others see it as overly organized.&lt;br /&gt;5. Some use outlook calendar for different reminders, others use their mobile, or even pen and paper.&lt;br /&gt;&lt;br /&gt;Best general tips when adopting an organizing procedure is:&lt;br /&gt;&lt;br /&gt;1. Make sure the maintenance cost is to the minimum when organizing an item. You dont want to spend an hour trying to figure out where to place your favorite site.&lt;br /&gt;2. Make sure there is some temp storage for your information items that need to be organized. Since sometimes you're too lazy to organize even when you have the infrastructure.&lt;br /&gt;3. Make sure that retrieval of the organized item is to the minimum (example, should be easily located, easily searchable by different fields, dates, text).&lt;br /&gt;4. Make sure that it is available from different places.&lt;br /&gt;5. Take time investigating organization tools at downloads.net, and tucows.com, see what fits your case, use what you find practical, make your life easier.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;"&gt;You never know, a fifteen minute deep thought of how to efficiently organize yourself, or even a small research in finding the right practical tool is your way for a much efficient and easier life.&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;"&gt;The main hurdle that lets people postpone organizing themselves is their false feeling of 'I can manage' my reminders, my todos, my schedules, my information, and my budget. Trust me on this one, when it comes to organizing yourself, your brain alone is very limited.&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-268147045114087595?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/268147045114087595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=268147045114087595' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/268147045114087595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/268147045114087595'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/04/getting-organized.html' title='Getting Organized'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23162742.post-2907685610918169785</id><published>2007-04-08T09:59:00.000-07:00</published><updated>2007-04-08T10:05:35.627-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>Big Downloads Cause Big Frustrations</title><content type='html'>These days, I'm downloading different IDE's, database binaries and (non microsoft) service updates from the net. The minimum download size is about 40 MB and the maximum was the new release of JDeveloper which is currently still being downloaded. Its about 508 MB in size.&lt;br /&gt;&lt;br /&gt;This is the third time I try to download this 508 piece with a failed connection frustration.&lt;br /&gt;&lt;br /&gt;Until... I found this wonderful free tool. Its a download manager named 'free download manager' that can be downloaded from &lt;a href="http://www.freedownloadmanager.org/download.htm"&gt;http://www.freedownloadmanager.org/download.htm&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Enjoy downloading. No more connection disruptions. No more frustrations.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;ref: Thanks Quazy (IT support team)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23162742-2907685610918169785?l=basilabbas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://basilabbas.blogspot.com/feeds/2907685610918169785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23162742&amp;postID=2907685610918169785' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2907685610918169785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23162742/posts/default/2907685610918169785'/><link rel='alternate' type='text/html' href='http://basilabbas.blogspot.com/2007/04/big-downloads-cause-big-frustrations.html' title='Big Downloads Cause Big Frustrations'/><author><name>Basil 3ibs</name><uri>http://www.blogger.com/profile/05294631468271930698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry></feed>
