<?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-2234699053314393169</id><updated>2012-02-17T05:47:14.048+02:00</updated><category term='linux'/><category term='seo'/><category term='firefox'/><category term='tools'/><category term='software'/><category term='php'/><category term='uk'/><category term='seocontest2008'/><category term='security'/><category term='mac'/><category term='develop'/><category term='seocontest'/><category term='joke'/><category term='off topic'/><category term='first april'/><category term='code'/><category term='productivity'/><category term='United Kingdom'/><category term='open source'/><category term='rubycorner.net'/><category term='hardware'/><category term='UK SEO'/><category term='browsers'/><category term='google'/><title type='text'>IT Gears - Serving The Hacker Culture</title><subtitle type='html'>IT Gears is dedicated to IT, Developers Tips and Tricks, Hacker Culture, Geeks Hardware Tech and more.
Here you will find interesting stuff about PHP, MySQL, Personal Development, GNU/Linux, Apache, Geeks Projects, Software Development and Hardware.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Явор Иванов</name><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>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-494838464284968047</id><published>2008-03-24T22:14:00.005+02:00</published><updated>2008-03-24T22:28:34.368+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seocontest2008'/><category scheme='http://www.blogger.com/atom/ns#' term='seo'/><category scheme='http://www.blogger.com/atom/ns#' term='United Kingdom'/><category scheme='http://www.blogger.com/atom/ns#' term='uk'/><category scheme='http://www.blogger.com/atom/ns#' term='seocontest'/><category scheme='http://www.blogger.com/atom/ns#' term='UK SEO'/><title type='text'>SEOCONTEST2008 UNITED KINGDOM</title><content type='html'>&lt;h1 title="seocontest2008"&gt;&lt;br /&gt;  &lt;a href="http://seocontest2008.uk.com/" rel="contents" title="seocontest2008"&gt;&lt;br /&gt;    SEO Contest 2008&lt;br /&gt;  &lt;/a&gt;&lt;br /&gt;&lt;/h1&gt; &lt;br /&gt;&lt;br /&gt;&lt;h2 title="seocontest2008"&gt;  We support the SEOCONTEST2008 - &lt;br /&gt;  &lt;strong title="seocontest2008"&gt;seocontest2008&lt;/strong&gt;&lt;br /&gt;&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt; &lt;p&gt;&lt;br /&gt;  &lt;em&gt;&lt;br /&gt;     You can see their web page at the &lt;br /&gt;    &lt;a href="http://seocontest2008.uk.com/" title="seocontest2008.uk.com"&gt;&lt;br /&gt;      SEOCONTEST2008.uk.com&lt;br /&gt;    &lt;/a&gt;. &lt;br /&gt;  &lt;/em&gt;&lt;br /&gt;&lt;/p&gt; &lt;br /&gt;&lt;br /&gt;&lt;img src="http://seocontest2008.uk.com/wp-content/themes/3column_black_white/images/bg.gif" title="SEO Contest 2008 uk" alt="seocontest 2008 uk"&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-494838464284968047?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/494838464284968047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=494838464284968047' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/494838464284968047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/494838464284968047'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2008/03/seocontest2008.html' title='&lt;a href=&apos;http://seocontest2008.uk.com/&apos; title=&apos;seocontest2008&apos;&gt;SEOCONTEST2008 UNITED KINGDOM&lt;/a&gt;'/><author><name>Явор Иванов</name><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>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-7306901938457539506</id><published>2007-09-14T21:23:00.000+02:00</published><updated>2007-09-14T21:26:38.517+02:00</updated><title type='text'>Яицазимитпо Лъгуг - гугъЛ ОптимизациЯ</title><content type='html'>&lt;h3 id="story_title_4151"&gt;&lt;span style="font-size:180%;"&gt;&lt;a class="title_green" onclick="window.open(this.href); return false;" rel="nofollow" href="http://svejo.net/home/link_summary/4151"&gt;Яицазимитпо Лъгуг - гугъЛ ОптимизациЯ.&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;Яицазимитпо Лъгуг или гугъЛ Оптимизац&lt;/span&gt;иЯ на обратно. Ето и за сега печелившият сайт по "Яицазимитпо Лъгуг" търсенето в Google. Яицазимитпо Лъгуг е фраза от SEO състезанието, което започна на скоро. Ето и малко инфо в &lt;span style="font-size:130%;"&gt;&lt;a href="http://svejo.net/home/link_summary/4151?"&gt;SVEJO.NET на темата Яицазимитпо Лъгуг - гугъЛ ОптимизациЯ. &lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-7306901938457539506?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/7306901938457539506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=7306901938457539506' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/7306901938457539506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/7306901938457539506'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/09/blog-post.html' title='Яицазимитпо Лъгуг - гугъЛ ОптимизациЯ'/><author><name>Явор Иванов</name><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>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-67782687088702659</id><published>2007-04-01T12:28:00.000+02:00</published><updated>2007-04-28T12:57:52.355+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='first april'/><category scheme='http://www.blogger.com/atom/ns#' term='joke'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>How to easily upgrade your notebook to an Apple Macbook Pro</title><content type='html'>After serious amount of time spend researching I found an easy way of upgrading your standard notebook to a powerful Macintosh notebook.&lt;br /&gt;&lt;br /&gt;The steps and hardware required are minimal.&lt;br /&gt;&lt;br /&gt;Things we need to prepare:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Linux CD (Open SuSE + Gnome)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;an apple (yellow is preferred)&lt;/li&gt;&lt;li&gt;HAMMER&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;TAPE SCOTCH&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;and the notebook itself&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;OK after we prepared our hardware for the upgrade we need to put the Linux CD into the CD/DVD drive and install it. Assuming the installation went without no problems and we have it installed we proceed to step two.&lt;br /&gt;&lt;br /&gt;Grab the apple and put it on the notebook. The notebook should be closed. Then take the hammer and smash it. A better effect could be done if you bite off some of the apple. Also if you chosen a yellow apple the effect will be better if your notebook is black colored.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-style: italic;"&gt;(&lt;span style="color: rgb(255, 0, 0);"&gt;note: &lt;/span&gt;if you have some cool M$ notebook you might not want to smash the apple on it cause they give some nasty blue screen after the smash)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After we did step 2 we need to take the TAPE and stick the apple with it to the cover of the notebook where we have smashed it.&lt;br /&gt;&lt;br /&gt;The result shall be astonished enough.&lt;br /&gt;Look at this successful upgrade&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_PbEtsD5Lb0w/RjMmA3N-hqI/AAAAAAAAAHQ/8elxKn2mES8/s1600-h/_MacBookPro.color.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_PbEtsD5Lb0w/RjMmA3N-hqI/AAAAAAAAAHQ/8elxKn2mES8/s320/_MacBookPro.color.jpg" alt="" id="BLOGGER_PHOTO_ID_5058428602731628194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And one of the unsuccessful upgrades&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_PbEtsD5Lb0w/RjMmRnN-hrI/AAAAAAAAAHY/Am7AICGSknY/s1600-h/Geek05.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_PbEtsD5Lb0w/RjMmRnN-hrI/AAAAAAAAAHY/Am7AICGSknY/s320/Geek05.jpg" alt="" id="BLOGGER_PHOTO_ID_5058428890494437042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And for those of you who did believed this till now ;) ... it's an 1-st of April joke :P&lt;br /&gt;As a Linux and Mac user I respect Macs and so I joke a bit with them :)&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-67782687088702659?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/67782687088702659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=67782687088702659' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/67782687088702659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/67782687088702659'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/04/how-to-easily-upgrade-your-notebook-to.html' title='How to easily upgrade your notebook to an Apple Macbook Pro'/><author><name>Явор Иванов</name><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://bp2.blogger.com/_PbEtsD5Lb0w/RjMmA3N-hqI/AAAAAAAAAHQ/8elxKn2mES8/s72-c/_MacBookPro.color.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-4420431837925800864</id><published>2007-03-30T02:09:00.000+02:00</published><updated>2007-03-29T19:43:02.654+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rubycorner.net'/><title type='text'>http://rubycorner.net/</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Ruby&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Ruby on Rails&lt;/span&gt; web site with beautiful articles and forum appeared in the world wide web.&lt;br /&gt;&lt;h1&gt;&lt;a style="font-weight: bold; font-style: italic;" href="http://rubycorner.net/"&gt;http://rubycorner.net/&lt;/a&gt;&lt;/h1&gt; - &lt;span style="font-style: italic;"&gt;a blog like part with interesting stuff&lt;/span&gt;&lt;br /&gt;&lt;h2&gt;&lt;a style="font-weight: bold; font-style: italic;" href="http://forum.rubycorner.net/"&gt;http://forum.rubycorner.net/&lt;/a&gt;&lt;/h2&gt; - &lt;span style="font-style: italic;"&gt;forum where we expect to find help&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="size:8px;" href="http://rubycorner.blogspot.com"&gt;ruby&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-4420431837925800864?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/4420431837925800864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=4420431837925800864' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/4420431837925800864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/4420431837925800864'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/03/httprubycornernet.html' title='http://rubycorner.net/'/><author><name>Явор Иванов</name><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>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-5506956237694887649</id><published>2007-03-04T16:18:00.000+02:00</published><updated>2007-03-13T20:33:36.909+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rubycorner.net'/><title type='text'>Are YouToo Cool For IE ?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_PbEtsD5Lb0w/RfQROSiknsI/AAAAAAAAAHE/2Km5Mc4fbSY/s1600-h/Untitled-2.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_PbEtsD5Lb0w/RfQROSiknsI/AAAAAAAAAHE/2Km5Mc4fbSY/s400/Untitled-2.png" alt="" id="BLOGGER_PHOTO_ID_5040672820127112898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A new cool web site I found on the net is doing like initiative against evil IE.&lt;br /&gt;The web site actually promotes the "&lt;span style="font-style: italic; font-weight: bold;"&gt;GOOD&lt;/span&gt;" web browsers as Safari and Firefox.&lt;br /&gt;I wonder if the whole inet does have the &lt;span style="font-weight: bold; font-style: italic;"&gt;'too cool for IE'&lt;/span&gt; logo on their web site this might force&lt;br /&gt;MS IE to be more standard compliant. Hmmm but never mind :)&lt;br /&gt;If you like putting one of those pics in the lower left of your site... feel free to do it.&lt;br /&gt;&lt;br /&gt;;)&lt;br /&gt;&lt;br /&gt;official site is - &lt;a href="http://www.w3junkies.com/toocool/"&gt;http://www.w3junkies.com/toocool/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-5506956237694887649?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/5506956237694887649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=5506956237694887649' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/5506956237694887649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/5506956237694887649'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/03/are-youtoo-cool-for-ie.html' title='Are YouToo Cool For IE ?'/><author><name>Явор Иванов</name><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://bp3.blogger.com/_PbEtsD5Lb0w/RfQROSiknsI/AAAAAAAAAHE/2Km5Mc4fbSY/s72-c/Untitled-2.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-1231071312092747393</id><published>2007-02-26T19:12:00.000+02:00</published><updated>2007-10-28T15:53:27.542+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='develop'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Tips for software development /theoretical/</title><content type='html'>Well we all know how vast this topic is so I am going to be simple on this ;)&lt;br /&gt;&lt;br /&gt;I will take two of my favorite sayings!&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;"Things should be made as simple as possible, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; but not simpler." — Albert Einstein&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;Let us dig deeper on this thought! All people seem to have heard such sayings and react as "Well it is obvious you fool it is like you found a gold mine... fool!" when someone told them this wisdom. But why are they reacting so and why are they producing these enormous amount of software that is so over complexed?&lt;br /&gt;&lt;br /&gt;Simple! They know it but never use it!&lt;br /&gt;There is an other situation where dead lines play role and developers are forced to continue coding without re-thinking what they did wrong and fix, rewrite, rethink ... it and so on.&lt;br /&gt;&lt;br /&gt;So what is my tip for such people!&lt;br /&gt;Do not agree to short dead lines! Know what you need ... time money... and so on for the software you do. Don't calc it to the shortest possible way!&lt;br /&gt;Calc it to best one available. By best I really mean doing something like this:&lt;br /&gt;&lt;br /&gt;1. "Time for the project" /time you think is enough for the project to be build/&lt;br /&gt;2. "Time for the project"x2 /double the time needed/&lt;br /&gt;3. +50% /for the unexpected/&lt;br /&gt;&lt;br /&gt;So now calc the time!&lt;br /&gt;If the time for the project was 3months .... add x2 and then 50%... it basically happens to be x3&lt;br /&gt;so it comes to 9 months for the project to be ready... but you see it will really be ready and will satisfy most of the needs of the purchaser.&lt;br /&gt;&lt;br /&gt;This scheme will prove the most effective if you are serious about software and do build software the way it should be build ... &lt;span style="font-weight: bold;"&gt;SIMPLE AND ELEGANT!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I will not give more information on the topic as it is well written and much more explained in hundreds of pages all over the net and the globe ;)&lt;br /&gt;&lt;br /&gt;I will just give you an example of why simple software wins!&lt;br /&gt;Here is another wise thought!&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;"All things being equal, the simplest solution tends to be &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; the best one." — William of Ockham&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;All sounds very logical right :)&lt;br /&gt;William and Albert told it!&lt;br /&gt;&lt;br /&gt;If you found this refreshing of thoughts interesting then I really entered your mind and found a sweet spot... but the most important thing is! YOU REALIZE THE IMPORTANCE OF ALL THIS!&lt;br /&gt;&lt;br /&gt;I recommend you read the book of &lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 0, 153);"&gt;37singnals - Getting Real&lt;/span&gt;&lt;br /&gt;It will reveal most of the things I didn't mentioned here but you already are thinking for. You can buy their book or just read it online at their site &lt;span style="font-weight: bold;"&gt;http://www.37signals.com/ &lt;/span&gt;&lt;br /&gt;Yes those are the &lt;span style="font-weight: bold; font-style: italic;"&gt;RUBY people&lt;/span&gt; ;) they are the founders of &lt;span style="font-weight: bold;"&gt;Ruby On Rails&lt;/span&gt;.&lt;br /&gt;So they know what they are talking about after being quite successful over time.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I would like to finish with this wise words again ;) so think over them whenever you build software... and in general something that people would use.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;"Things should be made as simple as possible, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt; but not simpler." — Albert Einstein&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-1231071312092747393?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/1231071312092747393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=1231071312092747393' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/1231071312092747393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/1231071312092747393'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/02/tips-for-software-development.html' title='Tips for software development /theoretical/'/><author><name>Явор Иванов</name><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-2234699053314393169.post-6747172007507726615</id><published>2007-02-25T02:46:00.000+02:00</published><updated>2007-02-25T03:06:29.416+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='develop'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Ease your recursion</title><content type='html'>Ever wanted to have an easy way of building a recursive tree ?&lt;br /&gt;Or something like that ?&lt;br /&gt;Or even without understanding much of recursion or always thinking how was this done and so one ?&lt;br /&gt;&lt;br /&gt;Well I eased your life a bit ;P&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 11px; color: navy;"&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;/**&lt;br /&gt; * Function that builds a category tree with recursion&lt;br /&gt; * (it selects only id, [your specified field] and parent_id &lt;br /&gt; *  from the selected table)&lt;br /&gt; *&lt;br /&gt; * @param string $spacer&lt;br /&gt; * @param string $table_name&lt;br /&gt; * @param string $field_name&lt;br /&gt; * @param integer $start_id&lt;br /&gt; * @param string $link&lt;br /&gt; * @param string $request_param&lt;br /&gt; * @param string $link_style&lt;br /&gt; */&lt;br /&gt;function buildRecursionTree($spacer = '&gt;&gt;' , $table_name , &lt;br /&gt;                            $field_name , $start_id = '0' , &lt;br /&gt;                            $link , $request_param , &lt;br /&gt;                            $link_style) {&lt;br /&gt;    global $db;&lt;br /&gt;&lt;br /&gt;    $sql = "SELECT `id`,`$field_name`,`parent_id` &lt;br /&gt;                  FROM `$table_name` &lt;br /&gt;                  WHERE `parent_id`='$start_id'";&lt;br /&gt; $result = $db-&gt;query($sql);&lt;br /&gt; while (list($id,$name,$parent_id) = $db-&gt;fetch_array($result)) {&lt;br /&gt;      $spacer_next = "   ".$spacer;&lt;br /&gt;      ?&gt;&lt;br /&gt;      &amp;lt;?=$spacer?&gt;&lt;br /&gt;      &amp;lt;a href="'&amp;lt;?="$link?"&gt;?&amp;lt;?=$request_param?&gt;=&amp;lt;?=$id?&gt;' &lt;br /&gt;                      style='&amp;lt;?=$link_style?&gt;' &gt;&lt;br /&gt;          &amp;lt;?=$name?&gt;&lt;br /&gt;      &amp;lt;/a&gt;&lt;br /&gt;      &amp;lt;br/&gt;&lt;br /&gt;      &amp;lt;?&lt;br /&gt;      buildRecursionTree($spacer_next , $table_name , &lt;br /&gt;                         $field_name , $id ,&lt;br /&gt;                         $link , $request_param , &lt;br /&gt;                         $link_style);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And now some sample usage ;)&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 11px; color: navy;"&gt;&lt;br /&gt;&amp;lt;?&lt;br /&gt;$spacer = "&amp;lt;img src='images/arrow.png' border='0' /&gt;";&lt;br /&gt;$table_name = "categories";&lt;br /&gt;$field_name = "name";&lt;br /&gt;$start_id = "0";&lt;br /&gt;$link = "index.php";&lt;br /&gt;$request_param = "category";&lt;br /&gt;$link_style = "color: #000000; font-family: arial; &lt;br /&gt;               font-size: 11px;&lt;br /&gt;               text-decoration: none;";&lt;br /&gt;buildRecursionTree($spacer , $table_name , $field_name , &lt;br /&gt;                   $start_id ,&lt;br /&gt;                   $link , $request_param , $link_style);&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Well easy enough huh !&lt;br /&gt;See the sample result yourself ;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_PbEtsD5Lb0w/ReDfZZdhFvI/AAAAAAAAAG4/_g5lh18NdjU/s1600-h/Untitled-2.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_PbEtsD5Lb0w/ReDfZZdhFvI/AAAAAAAAAG4/_g5lh18NdjU/s400/Untitled-2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5035270010824627954" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-6747172007507726615?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/6747172007507726615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=6747172007507726615' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/6747172007507726615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/6747172007507726615'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/02/ease-your-recursion.html' title='Ease your recursion'/><author><name>Явор Иванов</name><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://bp0.blogger.com/_PbEtsD5Lb0w/ReDfZZdhFvI/AAAAAAAAAG4/_g5lh18NdjU/s72-c/Untitled-2.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-2134558492748921629</id><published>2007-02-14T20:36:00.000+02:00</published><updated>2007-02-14T21:11:23.796+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='develop'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Ruby - the power of simplicity</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_PbEtsD5Lb0w/RdNclmJF66I/AAAAAAAAAGs/gkBTjcbFl4Q/s1600-h/ruby.png"&gt;&lt;img style="margin: 10px; float: left; cursor: pointer;" src="http://bp0.blogger.com/_PbEtsD5Lb0w/RdNclmJF66I/AAAAAAAAAGs/gkBTjcbFl4Q/s400/ruby.png" alt="" id="BLOGGER_PHOTO_ID_5031467009666575266" border="0" /&gt;&lt;/a&gt;I expect that most of you have already heard of RUBY.&lt;br /&gt;If not! Well RUBY is the new hot programming language... as always new doesn't really mean it has been released yesterday but it is a newcomer to the world of programming language popularity.&lt;br /&gt;&lt;br /&gt;Why is ruby hot?&lt;br /&gt;Well RUBY is all about simplicity.&lt;br /&gt;You know when you switched from C or Java to PHP when developing web based applications and saw how PHP deals fast and easy with web oriented stuff... so does RUBY.&lt;br /&gt;Actually RUBY has been planed all around web application development. It focus on simplicity and elegance. It is a mix between PHP,PYTHON and maybe JAVA. You know! Everything in RUBY is an object! Yes! That is true :) everything is an object so for the object oriented developers it is really a good one ;)&lt;br /&gt;But what is a programming language without the TOOLS.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;RUBY ON RAILS&lt;/strong&gt;&lt;br /&gt;Ruby on Rails is a framework that will help you deploy everything almost out of the box. It is really made simple, elegant and very very powerful!&lt;br /&gt;The actual idea of Ruby and Ruby on Rails is to enable the developer to focus on the actual problems ... what the user see and get... not the background stuff and all the  silly little problems but the actual problems and solving them.&lt;br /&gt;&lt;br /&gt;If you think I am over happy with ruby and I talk this because I am a ruby developer you can see the statistics at &lt;a href="http://www.tiobe.com/tpci.htm"&gt;TIOBE&lt;/a&gt;&lt;br /&gt;Yes that is right :) RUBY has gained an enormous popularity recently and stepped 10 positions above. Eventually I should tell you that the trends for 2007 are like this:&lt;br /&gt;1. Microsoft Vista entering slowly on Desktop PC&lt;br /&gt;2. Ruby gaining vast popularity among web developers&lt;br /&gt;3. ...&lt;br /&gt;&lt;br /&gt;Hmmm sounds good right ? :)&lt;br /&gt;So to make you over happy I will tell you more on Ruby on Rails.&lt;br /&gt;&lt;br /&gt;Ruby on Rails is the software you need for ruby development.&lt;br /&gt;You remember when I said about making something almost out of the box ?&lt;br /&gt;Well ruby on rails enables you to have UNIT testing on the fly... database stuff that generates by default and you know it is really a good software. The people from 37signals have really done again a great job with this peace of software.&lt;br /&gt;What really makes people like RUBY and RUBY ON RAILS is that 37signals designed Rails with simplicity, elegance and POWER in mind. All you need to setup for the proper development of an application is made simple and powerful and you can come up with UNIT TESTS (for example) in the blink of an eye... it is made automatically for you.&lt;br /&gt;&lt;br /&gt;But enough talking you can see more about RUBY on &lt;a href="http://www.ruby-lang.org/"&gt;http://www.ruby-lang.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-2134558492748921629?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/2134558492748921629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=2134558492748921629' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/2134558492748921629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/2134558492748921629'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/02/ruby-power-of-simplicity.html' title='Ruby - the power of simplicity'/><author><name>Явор Иванов</name><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://bp0.blogger.com/_PbEtsD5Lb0w/RdNclmJF66I/AAAAAAAAAGs/gkBTjcbFl4Q/s72-c/ruby.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-5145193441496155573</id><published>2007-02-04T23:00:00.000+02:00</published><updated>2007-02-04T23:54:34.773+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google Desktop to kick Yahoo! Widgets</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_PbEtsD5Lb0w/RcZUXyE3WAI/AAAAAAAAAF8/N1caAXKWpw8/s1600-h/sidebar_refresh_sm.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_PbEtsD5Lb0w/RcZUXyE3WAI/AAAAAAAAAF8/N1caAXKWpw8/s320/sidebar_refresh_sm.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5027798801561638914" /&gt;&lt;/a&gt;&lt;br /&gt;According to recent researches Google Desktop is getting far more acceptable by the users than the Yahoo! Widgets. Why so?&lt;br /&gt;&lt;br /&gt;This article is intended to give a clue on why people are using Google Desktop or having a sweet spot for it.&lt;br /&gt;&lt;br /&gt;Google Desktop is a simple!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_PbEtsD5Lb0w/RcZTvSE3V-I/AAAAAAAAAFs/XMBxuPOvzuc/s1600-h/yahoo-widget-screen-766774.jpg"&gt;&lt;img style=" margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_PbEtsD5Lb0w/RcZTvSE3V-I/AAAAAAAAAFs/XMBxuPOvzuc/s200/yahoo-widget-screen-766774.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5027798105776936930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_PbEtsD5Lb0w/RcZUDyE3V_I/AAAAAAAAAF0/vXSe2svwr-I/s1600-h/sidebar_ex.gif"&gt;&lt;img style="float: right; display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_PbEtsD5Lb0w/RcZUDyE3V_I/AAAAAAAAAF0/vXSe2svwr-I/s320/sidebar_ex.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5027798457964255218" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The widgets you use with Google Desktop are simple and elegant. They give you just enough swing to do the job you want to do. You have your calender, your gmail and so on... what so ever you say! Yahoo! has integrated their services with their widgets long ago too. Yes! In fact Yahoo! widgets are currently more powerful than the Google one but their approach is far too different from the Google one.&lt;br /&gt;Yahoo uses a widget engine which operates and loads every widget like another process unlike Google widget engine which loads the widgets "within it's own process". &lt;br /&gt;But really is this good ?&lt;br /&gt;Yes! It is!&lt;br /&gt;&lt;br /&gt;Google Desktop is by far faster than Yahoo! Widgets ... Yahoo! Widgets get the upper hand if running one widget but putting like 10 widgets running on both engines Google Desktop is by far the WINNER! &lt;br /&gt;&lt;br /&gt;Beside benchmarking and a bit of technological difference Google is much more different and powerful than Yahoo in the sense of SEARCH.&lt;br /&gt;Well as we know the giant ;) in that view GOOGLE of course is always oriented towards information and finding it... weather, news, shopping, mapping ... Google finds it ;) Yahoo long ago saw this and is by far the best concurrent of Google but when speaking for the Desktop Widgets Yahoo! really didn't throw much search capability in it.&lt;br /&gt;Google have!&lt;br /&gt;&lt;br /&gt;Here is a short list of comparison between the two products&lt;br /&gt;Google | Yahoo!&lt;br /&gt;G simplicity and usability&lt;br /&gt;Y more complexity&lt;br /&gt;&lt;br /&gt;G search oriented &lt;br /&gt;Y design oriented&lt;br /&gt;&lt;br /&gt;G being fast when dealing with more than 5 widgets &lt;br /&gt;Y getting slower with more than 5 widgets&lt;br /&gt;&lt;br /&gt;G integrated company services&lt;br /&gt;Y integrated company sercices&lt;br /&gt;&lt;br /&gt;G developers ease and support is good&lt;br /&gt;Y developers support and ease is good because of being on the market longer than the  opponent&lt;br /&gt;&lt;br /&gt;G simple design and functionality ... having simple, elegant widgets for the everyday tasks&lt;br /&gt;Y complex and good design but user experience isn't good with some of the widgets&lt;br /&gt;for the everyday work&lt;br /&gt;&lt;br /&gt;&lt;hr size='1'&gt;&lt;br /&gt;&lt;br /&gt;After giving a short summarization of all that is on the internet and my own research I like to put a few words about the services and the products both Companies offer and why I personally have switched to Google Desktop.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Having the Yahoo! Widget engine working with more than 5 widgets rendered my NOTEBOOK (which is not the cutting edge stuff) useless sometimes when developing software&lt;br /&gt;&lt;br /&gt;2. Most of the widgets couldn't be resized and so on fitting more comfortably on my desktop unlike Google Desktop which can resize every single widget so you can make it fit better&lt;br /&gt;&lt;br /&gt;3. This one is because I personally like GMail instead of Yahoo! Mail which is more colorful and so on... :) so using a Google account is more integrated with every single service of Google unlike Yahoo! (which isn't far behind)&lt;br /&gt;&lt;br /&gt;4. TODO lists, Scratch Pads and so on statistics and note takers the everyday task widgets on Google Desktop far more suits me than what Yahoo! had offered.&lt;br /&gt;&lt;br /&gt;&lt;hr size='1'/&gt;&lt;br /&gt;&lt;br /&gt;And the conclusion is!&lt;br /&gt;My research shows that people seeking information and IT people (programmers/developers,administrators,webmasters) are more comfortable with and prefer Google Desktop while most of the so called normal average desktop users and designers and people that are always creative(sometimes meaning over creative) and so on likes the beauty of Yahoo! Widgets.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;I personally find Google Desktop more robust and "TO DO THE WORK" software but this is my experience!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So what do you say ?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Comments on the topic are highly appreciated...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-5145193441496155573?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/5145193441496155573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=5145193441496155573' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/5145193441496155573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/5145193441496155573'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/02/google-desktop-to-kick-yahoo-widgets.html' title='Google Desktop to kick Yahoo! Widgets'/><author><name>Явор Иванов</name><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://bp2.blogger.com/_PbEtsD5Lb0w/RcZUXyE3WAI/AAAAAAAAAF8/N1caAXKWpw8/s72-c/sidebar_refresh_sm.gif' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-1680800135154603823</id><published>2007-02-03T20:05:00.000+02:00</published><updated>2007-02-03T21:13:35.231+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='seo'/><category scheme='http://www.blogger.com/atom/ns#' term='develop'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Basic SEO - steps to improve your SERP</title><content type='html'>Well I've been asked to write about &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SEO&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;For those that don't know what &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SEO&lt;/span&gt; is it is the short of Search Engine Optimization. But what does this really mean ? It means that if a good &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SEO&lt;/span&gt; is in place your web page will display on top of the results in some search engine for a certain keyword.&lt;br /&gt;For those that don't know what &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SERP&lt;/span&gt; is ;) it stands for: search engine results page&lt;br /&gt;&lt;br /&gt;Sounds like interesting stuff?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_PbEtsD5Lb0w/RcTcViE3V9I/AAAAAAAAAFE/3XhVWY0iG3g/s1600-h/PageRank-byFML.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer;" src="http://bp3.blogger.com/_PbEtsD5Lb0w/RcTcViE3V9I/AAAAAAAAAFE/3XhVWY0iG3g/s320/PageRank-byFML.gif" alt="" id="BLOGGER_PHOTO_ID_5027385346534889426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well here are a few steps to actually achieve this:&lt;br /&gt;&lt;br /&gt;BASIC&lt;br /&gt;&lt;br /&gt;1. Use H1 html tag to display your title&lt;br /&gt;&lt;br /&gt;2. Use H2 for the subtitle&lt;br /&gt;&lt;br /&gt;3. Keywords meta, title, description, &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;url&lt;/span&gt;, h1 and h2 tags should have something in common if they are the same the satisfaction will be 100% ... so the use of a term like "&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;findacar&lt;/span&gt;" for example if used right in all the stuff of the web page shall bring you very good results in search engines with the search term "FIND A CAR"&lt;br /&gt;&lt;br /&gt;4. Do bold or strong whenever possible ... &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;Google&lt;/span&gt; thinks it is important and raises results for your page for the tagged word&lt;br /&gt;&lt;br /&gt;5. Do not use a lot of keywords in the meta&lt;br /&gt;&lt;br /&gt;6. New content is very positive... a forum on your site shall bring enough new data for the day&lt;br /&gt;&lt;br /&gt;7. Making your sign in the forums at the bottom of your post to be a link at your site will both increase traffic(which is the most powerful &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SEO&lt;/span&gt;) and will give a link to your page(&lt;span style="font-weight: bold;"&gt;SITES THAT LINK TO YOURS IS CONSIDERED KEY FUNDAMENTAL IN MOST OF THE SEARCH ENGINES FOR DISPLAYING... ESPECIALLY GOOGLE&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;8. Don't waist your energy on giving links off your site... it will decrease your overall &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SEO&lt;/span&gt;... &lt;span style="font-weight: bold;"&gt;especially the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;Google&lt;/span&gt; results for your site&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;interesting&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The GOOGLE Page Rank &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;algorithm&lt;/span&gt; is LINK based!&lt;br /&gt;It will place you more on top if major PG(Page Rank) sites give a link to yours. So a fundamental concept is to have more inbound links (to your site) ... at the opposite side external links (on your site pointing to an other site) will decrease your PG.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ADVANCED&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. The &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;Google&lt;/span&gt; &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;algorithm&lt;/span&gt; is strongly working depending on links... a good practice is the management of your own links(your inside site navigation and so on links) too!&lt;br /&gt;The very first thing is: NOT HAVING BROKEN LINKS&lt;br /&gt;&lt;br /&gt;2. &lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;NOT HAVING A TREE STRUCTURE OF LINKS THAT THE CRAWLER WILL CRAW AND END ON A PAGE WHERE IT CAN'T MOVE FROM IT... EXAMPLE NOT HAVING LINKS THAT ARE POINTING BACK TO YOUR HOMEPAGE&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Having as much links that the crawler needs to crawl ... so not only to have on all the pages the home link but also many others so that the bot stays on your site much longer and finds more info... it is questionable the methods of how the crawler really works but this is tested stuff believe me!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;EXPERT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If not used right this might be considered gray or even BLACK hatting so please be ethical,moral and so on on this one! I DO NOT ENCOURAGE THE USE OF ANY BLACK HAT STRATEGIES!!! I am writing strongly white hat strategies which are 100% acceptable from the SEARCH ENGINES policy and terms of service and so on...&lt;br /&gt;This tips are not straight forward so it might be a good idea to check &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;wikipedia&lt;/span&gt; or search &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;Google&lt;/span&gt; for ideas about this.&lt;br /&gt;&lt;br /&gt;1. Making use of the SLASHDOT effect&lt;br /&gt;&lt;br /&gt;2. Making use of the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;DIGG&lt;/span&gt; effect&lt;br /&gt;&lt;br /&gt;3. Making use of GOOD INFORMATION&lt;br /&gt;&lt;br /&gt;This is the most important one!&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(51, 51, 255);font-size:85%;" &gt;IF YOUR SITE HAS VALUABLE CONTENT THERE IS A 99% PROBABILITY OF PEOPLE LINKING TO IT AND MAKING ENORMOUS AMOUNT OF TRAFFIC WHICH IS OUR MING GOAL!!! WHY DID I PUT THIS HERE? WELL PUBLISHING AND INTRODUCING INFORMATION IS NOT SO EASY AND IS ACTUALLY THE MOST TIME CONSUMING AND HARD CONCEPT OFF ALL. MAKE SURE YOU WILL INTRODUCE THE INFORMATION IN AS MORE HTML-&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(51, 51, 255);font-size:85%;" onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_16" &gt;ALIZED&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(51, 51, 255);font-size:85%;" &gt; VERSION TO THE AUDIENCE AND MAKE IT SHORT AND PAGINATED. ALSO IF YOU SKIPP MOST OF THE JAVASCRIPT AND FLASH EXTRAS IT WILL BE POSITIVE FOR YOUR &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(51, 51, 255);font-size:85%;" onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_17" &gt;SEO&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(51, 51, 255);font-size:85%;" &gt;. MAKING W3C VALIDATIONS WILL ALSO BE VERY USEFUL AND WILL MAKE POSITIVE &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(51, 51, 255);font-size:85%;" onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_18" &gt;SEO&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(51, 51, 255);font-size:85%;" &gt; RESULTS!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr size='1'&gt;&lt;br /&gt;&lt;br /&gt;Making more simple and html-&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;lized&lt;/span&gt; as well as friendly and more standard compliant sites will be the most powerful &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;SEO&lt;/span&gt; from the view of the development process. The next thing is introducing valuable information!&lt;br /&gt;&lt;br /&gt;Hope this one article was useful!&lt;br /&gt;&lt;br /&gt;&lt;hr size='1'&gt;&lt;br /&gt;&lt;br /&gt;Want to try your &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;SEO&lt;/span&gt; skills ?&lt;br /&gt;Wonder how ?&lt;br /&gt;Here is a link to a contest where you can try and will a small price ;)&lt;br /&gt;&lt;a href="http://bgwebmast.org/"&gt;http://bgwebmast.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-1680800135154603823?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/1680800135154603823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=1680800135154603823' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/1680800135154603823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/1680800135154603823'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/02/basic-seo-steps-to-improve-your-serp.html' title='Basic SEO - steps to improve your SERP'/><author><name>Явор Иванов</name><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://bp3.blogger.com/_PbEtsD5Lb0w/RcTcViE3V9I/AAAAAAAAAFE/3XhVWY0iG3g/s72-c/PageRank-byFML.gif' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-294230485070808854</id><published>2007-01-23T23:44:00.000+02:00</published><updated>2007-01-24T00:23:57.189+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='off topic'/><title type='text'>WOMEN vs MEN DRIVERS</title><content type='html'>An USA research tells that the very popular myth of "WOMEN BEING BAD DRIVERS" or "MAN CAN DRIVE BETTER THAN WOMEN" is actually wrong! The university of "Carnegy Meltun" &lt;a href="http://www.cmu.edu/" target="_blank"&gt;CMU.edu&lt;/a&gt; says that the chances a man dies in a car accident is 77% bigger than those of a woman. For the research ordered by AAA &lt;a href="http://ww2.aaa.com/" target="_blank"&gt;ААА&lt;/a&gt; was build a &lt;a href="http://www.aaafoundation.org/trafficSTATS/" target="_blank"&gt;special web page&lt;/a&gt; which every driver can sign in with his own parameters like age,sex,driving hours and so on... On the base of this information and the statistics the system performed the possibility of the drivers being in a situation that indangered his life. Sometimes the reports are very interesting ;)&lt;br /&gt;&lt;br /&gt;The possibility of a 82 years old woman driver being in an accident that can cause death is much bigger than of a young 16-23 years old driver.&lt;br /&gt;Women drivers are not so confident but in the same time the young men are not so mature and with little experience like drivers and have a very strong emotion to take dangerous risks when driving.&lt;br /&gt;Men are dangerous cause thay just do silly things with their car (when driving) explains Poll Fishback from Carnegy Melun. According to the university stats the most dangerous wheel is "the small bicycle" and the most secure the minivan or the school bus ;)&lt;br /&gt;Most accidents were measured Saturday.&lt;br /&gt;The most dangerous time is 2am.&lt;br /&gt;Most accidents are reported October while February is the most safest.&lt;br /&gt;The drivers with less accidents are drivers between 40 and 50 years.&lt;br /&gt;&lt;br /&gt;Statistics tell that in the period 1999-2004 in 116 493 from the death accidents were caused by a man while women drivers were just 40 381 of the times!&lt;br /&gt;At the year 1998 the count of women and men drivers is almost equal!&lt;br /&gt;&lt;br /&gt;I wonder how our country statistics are right now :)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;I still think that the computer who made those statistics was a women pc ;)&lt;/span&gt;&lt;br /&gt;JUST JOKING !!! ;)&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-294230485070808854?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/294230485070808854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=294230485070808854' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/294230485070808854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/294230485070808854'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/women-vs-men-drivers.html' title='WOMEN vs MEN DRIVERS'/><author><name>Явор Иванов</name><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-2234699053314393169.post-1365902124356924055</id><published>2007-01-21T01:54:00.000+02:00</published><updated>2007-01-21T02:05:23.226+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='off topic'/><title type='text'>Thanks!</title><content type='html'>Well obviously for me there is interest in what I am writing after all... the statistics show:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;29 178 &lt;span style="font-style: italic;"&gt;Visits&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;32 497 &lt;span style="font-style: italic;"&gt;Page views&lt;br /&gt;&lt;br /&gt;That is statistic from the start of this till now... guess what ?!? It isn't even a month ;)&lt;br /&gt;This is from 3-th of January till now!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;This is wonderful!&lt;br /&gt;After all I am not spending so much time in front of my notebook or desktop PC (beside working at job :) ) for this blog has shown me that a person really can write about things on his heart ... things that has happened to him and so on... and they have value for people. So thanks again for e-mailing and commenting on my blog.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Funny I didn't remember giving my e-mail here ?!?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As soon as I get rid of my work that is connected with my job I will drop a surprise for you here :)&lt;br /&gt;OK I will tell what it is actually ;)&lt;br /&gt;It is a bunch of XHTML and CSS guides, tutorials, how-to ... name it what ever you like!&lt;br /&gt;There is also a bit of PHP code too ;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;So I hope it will be an interesting source of information and even something you can put in use just out of the box.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Greetings to all of you!&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-1365902124356924055?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/1365902124356924055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=1365902124356924055' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/1365902124356924055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/1365902124356924055'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/thanks.html' title='Thanks!'/><author><name>Явор Иванов</name><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-2234699053314393169.post-6512781964061404376</id><published>2007-01-21T01:23:00.000+02:00</published><updated>2007-01-21T01:44:30.199+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Looking for a Delphi like thing on LINUX ?</title><content type='html'>Well there isn't much time needed to think and we will come up with &lt;span style="font-weight: bold;"&gt;KYLIX&lt;/span&gt;. But isn't there something that is both not &lt;span style="font-weight: bold;"&gt;BORLAND&lt;/span&gt; and does give us quite a lot of useful things to do only with the mice ... do the things on linux we want to do ... &lt;span style="font-weight: bold; font-style: italic;"&gt;without doing a nasty coding&lt;/span&gt; but more of&lt;span style="font-weight: bold;"&gt; designing our application with just the mouse&lt;/span&gt; ?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Well there is something ;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://kommander.kdewebdev.org/"&gt;KOMMANDER&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is a KDE thing but is just what we need... it does feels like BASH scripting but&lt;br /&gt;offers us a way to escape from the konsole. I aways wanted to BASH script a Desktop application with all the GUI and so on :) now I got a chance.&lt;br /&gt;This TOOL isn't actually very new... it exist from quite a lot of time but according to my recent research which was inspired from just asking about a tool which will offer me the ease of use to do a simple NOTE TACKER application... I was given quite a lot answers and finally KOMMANDER was introduced to me in it's full glory :)&lt;br /&gt;So you might want to take a look at the link I provided and also you might find these links also useful:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://kde-apps.org/content/show.php?content=12865"&gt;kde-apps.org&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dot.kde.org/1087424515/"&gt;dot.kde.org news&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://applications.linux.com/article.pl?sid=04/12/17/2033227"&gt;some more info&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://docs.kde.org/stable/en/kdewebdev/kommander/index.html"&gt;handbook&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;So why I did wrote this again.&lt;br /&gt;I did wrote this article to remind the world about this TOOL.&lt;br /&gt;When I did asked for the tool to do my NOTE TACKER application I was flooded with C and C++ things... QT ... python and so on!&lt;br /&gt;&lt;br /&gt;THERE IS AN EASY WAY! IT IS THE KOMMANDER WAY!&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-6512781964061404376?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/6512781964061404376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=6512781964061404376' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/6512781964061404376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/6512781964061404376'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/looking-for-delphi-like-thing-on-linux.html' title='Looking for a Delphi like thing on LINUX ?'/><author><name>Явор Иванов</name><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-2234699053314393169.post-7186681055877084814</id><published>2007-01-18T20:28:00.000+02:00</published><updated>2007-01-18T20:46:32.437+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>iptables to brake free from the ISP jail</title><content type='html'>You are asking yourself about the title of this right?&lt;br /&gt;Well I received a couple of e-mail from bulgarian people about how to overcome the local restrictions we have in our country. For information I will say unlike other countries Bulgarian ISPs are doing everything possible to make you unable to share your internet traffic. So let's get started.&lt;br /&gt;&lt;br /&gt;This is fast and I am going to ask you to read additional materials about what I will type here.&lt;br /&gt;&lt;br /&gt;So first you got a linux box.&lt;br /&gt;Second you need iptables.&lt;br /&gt;Then open a console/terminal and authorize yourself as a root (the command is "su -").&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The first thing to do when root is type in:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt; iptables -t nat -A POSTROUTING -s IPADDRESS -j MASQUERADE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You should substitute IPADDRESS with the ip address of the host which we want to provide internet to. Basically many people don't use MASQUERADE but SOURCE NAT but this has a drawback with a certain configuration cause if you change addresses or if you have a dynamic address you can't use it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&gt; iptable -t mangle -A PREROUTING -j TTL --ttl-set 126&lt;br /&gt;&gt; iptable -t mangle -A POSTROUTING -s 192.168.4.0/255.255.255.0 -j TTL --ttl-inc 1&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The first line is the thing we actually need.&lt;br /&gt;It alters the TTL so it does not expire ;)&lt;br /&gt;You can have the second one line in order to set the TTL from the other host to the same as it has come from your host! This is made for the reason your ISP doesn't understand that you have a host behind you.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Make sure to change the address in the example to the one you need!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So if you need more info about the commands and iptables please refer to &lt;a href="http://www.netfilter.org/"&gt;http://www.netfilter.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-7186681055877084814?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/7186681055877084814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=7186681055877084814' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/7186681055877084814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/7186681055877084814'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/iptables-to-brake-free-from-isp-jail.html' title='iptables to brake free from the ISP jail'/><author><name>Явор Иванов</name><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-2234699053314393169.post-1627238442796397995</id><published>2007-01-17T23:45:00.000+02:00</published><updated>2007-01-18T00:05:17.404+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Adobe Flash ver. 9 released</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_PbEtsD5Lb0w/Ra6dhMBL78I/AAAAAAAAAEs/l-8Peoa7kkE/s1600-h/17338.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_PbEtsD5Lb0w/Ra6dhMBL78I/AAAAAAAAAEs/l-8Peoa7kkE/s400/17338.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5021123828052127682" /&gt;&lt;/a&gt;&lt;br /&gt;The end of FLASH sites not functioning well on a LINUX BOX is over!&lt;br /&gt;Finally you can enjoy FLASH 9 on a Linux BOX.&lt;br /&gt;&lt;br /&gt;You can download version 9 of Adobe Flash player for Linux as:&lt;br /&gt;- &lt;a href="http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_9_linux.tar.gz"&gt;tar.gz&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://fpdownload.macromedia.com/get/flashplayer/current/flash-plugin-9.0.31.0-release.i386.rpm"&gt;rpm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I remind the fans of Flash that ActionScript, the language Adobe is using in Flash will soon be released OpenSource!&lt;br /&gt;&lt;br /&gt;Happy new FLASH version ;)&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-1627238442796397995?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/1627238442796397995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=1627238442796397995' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/1627238442796397995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/1627238442796397995'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/adobe-flash-ver-9-released.html' title='Adobe Flash ver. 9 released'/><author><name>Явор Иванов</name><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://bp3.blogger.com/_PbEtsD5Lb0w/Ra6dhMBL78I/AAAAAAAAAEs/l-8Peoa7kkE/s72-c/17338.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-8597669296675662166</id><published>2007-01-15T20:05:00.000+02:00</published><updated>2007-01-17T18:33:04.134+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='develop'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>3 basic files to work with</title><content type='html'>&lt;span style="font-style:italic;"&gt;I haven't posted anything "code like" for some time huh ;)&lt;br /&gt;Well now is the time to actually dig up some code!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_PbEtsD5Lb0w/Ravm_cBL77I/AAAAAAAAAEg/1MViTRufciw/s1600-h/code.gif"&gt;&lt;img style="float:center; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_PbEtsD5Lb0w/Ravm_cBL77I/AAAAAAAAAEg/1MViTRufciw/s320/code.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5020360187161866162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I thought a lot about the topic to write on and it will be really a one for starters.&lt;br /&gt;These 3 files I will show you are the solid foundation of all my projects. A project should have these files always. If a project does not contain those files or files like the one I will give you then it has a major drawback or is just too small so it doesn't actually needs it ;) but you need almost 99% of the time files that serve this purpose. So enough with the initial bla bla bla :) nets code ;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I will follow this schema:&lt;br /&gt;&lt;br /&gt;1. Describing why it is good to have it&lt;br /&gt;2. Actual CODE&lt;br /&gt;3. Tips and other options to this&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr size="1"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;NAME: config.php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Description&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is a configuration file which will give you the control over the server. As a server I mean that you will be able to tweak the php.ini file as you like. This file represents a large number of ini_set() function which will temporary change the scripts behavior. Changing the php.ini config or the scripts behavior is a big plus when developing a project which will be hosted on a server which is out of your touch and for example you can't touch the php.ini file to say hide the error reporting or so on. So having this allow us to change the preferences of PHP as expected by us, the developers! Take a note that some of the directives might not be changed so don't expect always to have a full control over the php.ini!&lt;br /&gt;&lt;br /&gt;Besides PHP configuration this file represents a central unit for defining the PATH of our application or the USERNAMES, PASSWORDS and so on of say, the DATABASE server. So have a look a it!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. The CODE&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre style="font-size: 10px; color: navy; font-family: arial;"&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;##################################################################&lt;br /&gt;#&lt;br /&gt;#===== CONFIGURAION FILE =====&lt;br /&gt;#&lt;br /&gt;#=================================================================&lt;br /&gt;#&lt;br /&gt;# php.ini directives&lt;br /&gt;# database constants&lt;br /&gt;# path constants&lt;br /&gt;#&lt;br /&gt;#=================================================================&lt;br /&gt;#&lt;br /&gt;# PHP 5.2 version&lt;br /&gt;#&lt;br /&gt;#=================================================================&lt;br /&gt;#======= created by Yavor Ivanov | email:                 =======#&lt;br /&gt;#=================================================================&lt;br /&gt;##################################################################&lt;br /&gt;//////////////////////////////////////////////////////////////////&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#===== PHP.INI DIRECTIVES&lt;br /&gt;ini_set("output_buffering" , 0);   // OUTPUT BUFFER&lt;br /&gt;ini_set("safe_mode" , 0);    // SAFE MODE&lt;br /&gt;ini_set("expose_php" , 0);&lt;br /&gt;ini_set("max_execution_time" , "120");&lt;br /&gt;ini_set("max_input_time" , "60");&lt;br /&gt;ini_set("memory_limit" , "16M");&lt;br /&gt;error_reporting(E_ALL | E_STRICT);   // ERROR REPORTING&lt;br /&gt;ini_set("display_errors" , 1);    // DISPLAY ERRORS&lt;br /&gt;ini_set("display_startup_errors" , 1);&lt;br /&gt;ini_set("log_errors" , 1);&lt;br /&gt;ini_set("report_memleaks" , 1);&lt;br /&gt;ini_set("html_errors" , 1);&lt;br /&gt;ini_set("error_log" , "syslog");   // ERROR LOG&lt;br /&gt;ini_set("register_globals" , 0);&lt;br /&gt;ini_set("magic_quotes_gpc" , 0);&lt;br /&gt;ini_set("magic_quotes_runtime" , 0);&lt;br /&gt;ini_set("file_uploads" , 1);    // FILE UPLOADS&lt;br /&gt;ini_set("upload_max_filesize" , "10M");&lt;br /&gt;ini_set("session.use_cookies" , 0);   // USE COOCKIES&lt;br /&gt;ini_set("session.auto_start" , 1);   // SESSION AUTO START&lt;br /&gt;ini_set("session.cookie_lifetime" , 0);&lt;br /&gt;ini_set("session.gc_probability" , "1");&lt;br /&gt;ini_set("session.gc_divisor" , "100");&lt;br /&gt;ini_set("session.gc_maxlifetime" , "1440");&lt;br /&gt;ini_set("session.cache_expire" , "180");&lt;br /&gt;ini_set("url_rewriter.tags" , "");   // URL REWRITER&lt;br /&gt;#=================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#===== DATABASE CONSTANTS&lt;br /&gt;define("DBHOST" , "127.0.0.1");&lt;br /&gt;define("DBUSER" , "username");&lt;br /&gt;define("DBPASS" , "password");&lt;br /&gt;define("DBNAME" , "database");&lt;br /&gt;#=================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#===== PATH CONSTANTS&lt;br /&gt;define("BASE_PATH", str_replace('\\', '/', dirname(__FILE__)));&lt;br /&gt;&lt;br /&gt;define("CLASSES" , BASE_PATH."classes/");&lt;br /&gt;define("WEB_ROOT" , BASE_PATH."/web_root/");&lt;br /&gt;#=================================================================&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3. Tips and other options to this&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There aren't much words to be put in here for this piece of code but we can say that you are free to add some more directives or define more constants at your desire and need. The tricky thing you can do here is to put as much configuration options as possible so your team mates knows that they only need to go in here and change the desired thing.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr size="1"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;NAME: session.inc.php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Description&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Basically this is a file to be included always at the start of every file. Why? Because it starts the session every time and keeps it running trough the whole application and also protects from hijacing. But let us see the code!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. The CODE&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre style="font-size: 10px; color: navy; font-family: arial;"&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;session_start();&lt;br /&gt;session_regenerate_id(true);&lt;br /&gt;&lt;br /&gt;// if the user is just accessing the server his session &lt;br /&gt;// is empty so BUILD a unique hash and put it in&lt;br /&gt;if (empty($_SESSION)) {&lt;br /&gt; // md5 or sha1 might be used for increased security &lt;br /&gt; // but it might become slower&lt;br /&gt; $_SESSION['hash'] = $_SERVER['REMOTE_ADDR'] .&lt;br /&gt; $_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_PORT'];&lt;br /&gt;} else{&lt;br /&gt; // md5 or sha1 might be used for increased security &lt;br /&gt; // but it might become slower&lt;br /&gt; $hash = $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] . &lt;br /&gt; $_SERVER['REMOTE_PORT'];&lt;br /&gt; &lt;br /&gt; // if the hash is different from the original one build &lt;br /&gt; // when first accessing the SERVER &lt;br /&gt; // there might be a second user who might be a hidjacker &lt;br /&gt; // so we destroy the SESSION !!!&lt;br /&gt; if ($_SESSION['hash'] != $hash) {&lt;br /&gt;  session_unset($_SESSION);&lt;br /&gt;  session_destroy();&lt;br /&gt;  session_start();&lt;br /&gt;  session_regenerate_id(true);&lt;br /&gt;  $err = "Sorry there was a problem accessing the page!";&lt;br /&gt;  exit($err);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3. Tips and other options to this&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So what you see here is changing the session on every click of the user ;) why? Why not :) Every switching of session id can make our un-welcomed harmful user have a hard time. Beside in php5 regenerate_id() has a param of true which will destroy our previous session. Also making a unique hash of some info about the user protects us from hijacing. You can do the hash more complex and unique :) just play with code a bit it is well documented and easy to read :) at least my team mates and I think so.&lt;br /&gt;&lt;br /&gt;&lt;hr size="1"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;NAME: database.class.php&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Description&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What you will see in the source is a PHP 5 class which will connect automatically to the database, when you create the object and the cool thing about this class is that it will execute every single query as a custom method... what is so cool about it :)&lt;br /&gt;Well if you decide that you will use postgres sql you will not change all the mysql_query with pg_query for example but instead you will change just the class methods ;) cool huh! And I made a special param called DEBUG when you give it TRUE it will print your query ;) so you can latter paste it in for example in phpMyAdmin or something of the sort and look at what is actually causing trouble and so on ;) yes you can do it some more advanced like putting error logging and so on so this is the reason you can use the class and upgrade it ;) &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. The CODE&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;pre style="font-size: 10px; color: navy; font-family: arial;"&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;##################################################################&lt;br /&gt;#&lt;br /&gt;#===== Database Interaction Class =====&lt;br /&gt;#&lt;br /&gt;#=================================================================&lt;br /&gt;#&lt;br /&gt;# Written for MySQL database server&lt;br /&gt;# Easily modified to work for a different SQL server&lt;br /&gt;#&lt;br /&gt;#&lt;br /&gt;#=================================================================&lt;br /&gt;#&lt;br /&gt;# PHP 5.2 version &lt;br /&gt;#&lt;br /&gt;#=================================================================&lt;br /&gt;#======= created by Yavor Ivanov | yavor.xenium@gmail.com =======#&lt;br /&gt;#=================================================================&lt;br /&gt;##################################################################&lt;br /&gt;//////////////////////////////////////////////////////////////////&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;class DBI {&lt;br /&gt; private  $init_db;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; public function __construct() {&lt;br /&gt;  if ( !isset($this-&gt;init_db) ) {&lt;br /&gt;   $this-&gt;init_db = mysqli_connect( DBHOST , DBUSER , DBPASS , DBNAME );&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; public function __destruct() {&lt;br /&gt;  mysqli_close();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; //============================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; function query($sql , $DEBUG = false) {&lt;br /&gt;  if ( $DEBUG == true ) {&lt;br /&gt;   print "&lt;code&gt;";&lt;br /&gt;   print "SQL: ";&lt;br /&gt;   print  "&lt;pre style='font-size:10px;color: navy;'&gt;";&lt;br /&gt;   print   $sql;&lt;br /&gt;   print  "&lt;/pre&gt;";&lt;br /&gt;   print "&lt;/code&gt;";&lt;br /&gt;  }&lt;br /&gt;  return mysqli_query($sql);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; function fetch_array($sql) {&lt;br /&gt;  return mysqli_fetch_array($sql);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; function query_and_fetch($sql , $DEBUG = FALSE) {&lt;br /&gt;  $result = $this-&gt;fetch_array($this-&gt;query($sql));&lt;br /&gt;&lt;br /&gt;  if ( $DEBUG == true ) {&lt;br /&gt;   print "&lt;code&gt;";&lt;br /&gt;   print "SQL: ";&lt;br /&gt;   print  "&lt;pre style='font-size:10px;color: navy;'&gt;";&lt;br /&gt;   print   $sql;&lt;br /&gt;   print  "&lt;/pre&gt;";&lt;br /&gt;   print "&lt;/code&gt;";&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  return $result;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; function num_rows($result) {&lt;br /&gt;  return mysqli_num_rows($result);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; function get_last_id() {&lt;br /&gt;  list($value) = $this-&gt;query_and_fetch("SELECT LAST_INSERT_ID()");&lt;br /&gt;  return $value;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3. Tips and other options to this&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So as I said the cool thing is that you can actually change databases very easily with few mods of the class. Also adding error logging might be a good idea or for example you can make automated escapes of variables or just another method like EscapeParam for example ;)&lt;br /&gt;Use you imagination here and automate as much as you can to ease your work! Notice I use mysqli so don't expect this to work on php4. &lt;br /&gt;&lt;br /&gt;There are a lot of object persistent classes and abstract ones but this is something that is easily understood and is something that you can tweak around :) most of the persistent/abstract classes aren't very short and need time to go into the code while this is short and useful the other alternative (I mean the persistent/abstract classes) are much more powerful and offer much more things ;)&lt;br /&gt;&lt;br /&gt;&lt;hr size="1"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Well with this article I demonstrated the basic files each application should have. I hope those of you who didn't knew where to start now know the entry point and will start smooth ;)&lt;br /&gt;The demonstrated here CODE isn't the best! Come on! Spare me all the critics you might have for it... it is far than a complete solution. The targeted audience isn't experienced programmers which know everything while sharing some ideas might enlightened them, it is new ones that could not find the path and I try to give them what is considered good.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;So I hope you will find the CODE interesting and you got idea what to do with it so start the codding, have fun with it and.... CODE it secure ;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-8597669296675662166?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/8597669296675662166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=8597669296675662166' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/8597669296675662166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/8597669296675662166'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/3-basic-files-to-work-with.html' title='3 basic files to work with'/><author><name>Явор Иванов</name><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://bp1.blogger.com/_PbEtsD5Lb0w/Ravm_cBL77I/AAAAAAAAAEg/1MViTRufciw/s72-c/code.gif' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-4218007775751207859</id><published>2007-01-15T15:40:00.000+02:00</published><updated>2007-01-15T16:16:41.888+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><title type='text'>Firefox 3 on the way</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_PbEtsD5Lb0w/RauMPcBL76I/AAAAAAAAAEU/qJbxJsRqID4/s1600-h/firefox6.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_PbEtsD5Lb0w/RauMPcBL76I/AAAAAAAAAEU/qJbxJsRqID4/s320/firefox6.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5020260406481645474" /&gt;&lt;/a&gt;&lt;br /&gt;The developers of Firefox 3 have confirmed the list of changes in the third version of the most popular Web Browser.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;From the compulsory list we can state the following "must do" things:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;* Enchanted work of the manager for add-ons as well as simplified installation and more comfortable interface for tweaking&lt;br /&gt;&lt;br /&gt;* An option for a more tight integration with web services like click on mailto:&lt;br /&gt;This can be tweaked to find Gmail or to be redirected to open a file from Google Documents&lt;br /&gt;&lt;br /&gt;* WYSIWYG template of the pages ready for printing &lt;br /&gt;&lt;br /&gt;* Support for Microsoft CardSpace and OpenID&lt;br /&gt;&lt;br /&gt;* New system for informing developers for crash of the browser&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Other functions that might be build in Firefox 3:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;* Anonymous surfing of the web - when no info is left in the cache of the browser and no info is left in the history&lt;br /&gt;&lt;br /&gt;* An option for storing the pages in PDF format&lt;br /&gt;&lt;br /&gt;* Group look of the contents of tabs on one page - like foXpose extension&lt;br /&gt;&lt;br /&gt;* Function for installing and activating of add-ons without restart of the browser&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;for more info you might search in &lt;a href="http://wiki.mozilla.org/Firefox3/Firefox_Requirements"&gt;here&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr size="1"&gt;&lt;br /&gt;&lt;br /&gt;I personally wish that they make a functional X11 session support&lt;br /&gt;&lt;br /&gt;Lets hope that we enjoy this great release in the 2007 with the biggest market share ever ;)&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-4218007775751207859?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/4218007775751207859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=4218007775751207859' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/4218007775751207859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/4218007775751207859'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/firefox-3-on-way.html' title='Firefox 3 on the way'/><author><name>Явор Иванов</name><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://bp1.blogger.com/_PbEtsD5Lb0w/RauMPcBL76I/AAAAAAAAAEU/qJbxJsRqID4/s72-c/firefox6.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-2287806577905231056</id><published>2007-01-15T09:57:00.000+02:00</published><updated>2007-01-17T18:03:14.846+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>Why apple are such a success?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_PbEtsD5Lb0w/Ras6mMBL75I/AAAAAAAAAEI/lxDrzEflDMo/s1600-h/apple_14.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_PbEtsD5Lb0w/Ras6mMBL75I/AAAAAAAAAEI/lxDrzEflDMo/s200/apple_14.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5020170637370191762" /&gt;&lt;/a&gt;A friend of mine asked me this question lately. He said:&lt;br /&gt;&lt;span style="font-style:italic;"&gt;"Well I will always buy a normal PC for less money than the MAC and it will serve me even better than the MAC, apple are offering me."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So we spoke a bit about apple and so on... mentioning Creative, Microsoft and so on... speaking about IPod, Mac and so on...&lt;br /&gt;&lt;br /&gt;But why is really Apple so successful with it's products?&lt;br /&gt;&lt;br /&gt;The key to this is exactly the opposite of what Microsoft's Chairman Bill Gates recently said about variety of the products and that software and hardware vendor shouldn't be the same. Apple done pretty well for most of the world with their design. Every singe one looking at IPod NANO say: &lt;br /&gt;&lt;span style="font-style:italic;"&gt;"wow! What a simple cool design! And how do they manage to get all this GB in there ?"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Truth is they made it as it should be! They made what the end user really wants!&lt;br /&gt;Many companies use a strategy of cutting off some of the hardware coolnesses so that they lower the price. They offer cheap design or not so fast processing units or just not a complete set of software for their product. But apple did just fine with does things. The price of their products is no doubt. It is not cheap! Especially for small countries like mines it is really not the first MP3 player that will come in your mind to take as a gift for someone who hasn't got one.&lt;br /&gt;&lt;br /&gt;As I said MS Bill Gates said something about Hardware and Software vendor variety. But who needs variety if we got one single cool, stable thing out there which just works! And improves every single day!&lt;br /&gt;&lt;br /&gt;Many said about MAC being overrun by the INTEL processor so they are doing to loose market share. Well ain't true! The power of MAC never was only the CPU so despite the migration MAC will remain a bunch of software and hardware mixed in a HOLLY way so they work at the MAX power!&lt;br /&gt;&lt;br /&gt;Why I am going to buy a MAC?&lt;br /&gt;Or an IPod?&lt;br /&gt;Well cause I don't want to spend my time at the office of some low cost company telling them that the product they offered me is not doing the thing it was said... or not doing it as advertised.&lt;br /&gt;And besides! Who wants to have a BRICK about 20x20inc which is called an MP3 player and is about 4 kg and wear this on his neck for example ;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well this was an answer to my friend and a short review of what I think of Apple.&lt;br /&gt;Have fun and remember!&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Always buy the thing that isn't cheaper but efficient so that you don't curse yourself latter that it doesn't serve it's purpose well or as expected ;) always spend a little more so that you are happy after the shopping ;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-2287806577905231056?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/2287806577905231056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=2287806577905231056' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/2287806577905231056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/2287806577905231056'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/why-apple-are-such-success.html' title='Why apple are such a success?'/><author><name>Явор Иванов</name><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://bp0.blogger.com/_PbEtsD5Lb0w/Ras6mMBL75I/AAAAAAAAAEI/lxDrzEflDMo/s72-c/apple_14.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-7879715547106309644</id><published>2007-01-14T13:15:00.000+02:00</published><updated>2007-01-17T18:03:24.712+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>OpenSuSE to rival VISTA</title><content type='html'>While the eyes of the IT experts have spent plenty of time looking to see the new Microsoft's unfolding operating system named VISTA, the open sourced companies and individuals have been building the Linux operating systems for a better adoption from the Desktop users.&lt;br /&gt;&lt;br /&gt;Two of the best and most wide spread to the Desktop Linux distributions - OpenSUSE and Ubuntu both of which offered the best of open source software.&lt;br /&gt;&lt;br /&gt;UBUNTU is a DEBIAN based distributions and it is fairly young linux distro but offers its users a really wide (maybe the biggest) package lists. Its tools for package management are just great and it is fairly one of Microsoft's rival. It has a strong community which keeps the foundation of this distro solid and offers a lot of friendly support for new users.&lt;br /&gt;&lt;br /&gt;The openSuSE or just the old SUSE linux is the other M$ rival. It is by far in my experience the GREAT Microsoft rival ever. It has always been towards Desktop and usability. A truly DESKTOP linux distribution which offers its new YaST tool. Well not that it is new but it is far better than the last YaST I have tried. It is by far faster and comfortable to work with. A tool that many distros does not offer for their Desktop users. The great thing about the new OpenSuSE is that it ships with all the enterprise considered packages such as XEN, AppArmor ... and even the more cool desktop oriented XGL/Compiz. Those things make OpenSuSE one of the most COMPLETE Desktop and Enterprise Linux distributions. With its YaST tool it offers one stop CONFIGURATION utility which serves a really good job for new and even a bit more experienced users. So this by far over takes what UBUNTU offered us.&lt;br /&gt;&lt;br /&gt;Both UBUNTU and SUSE offered us comfort and usability when installing and when working with. UPGRADING from old UBUNTO and SUSE to the newest version is fairly easy. I personally find OpenSUSEs YaST upgrade tool for more intuitive but that might be cause I am a suse user since time ;) One cool thing about OpenSuSE is that behind it stays a Profit Organization like Novel which contributes to the development of this great distribution.&lt;br /&gt;&lt;br /&gt;So UBUNTU might be a little behind MS new VISTA but OpenSuSE still keeps the fight.&lt;br /&gt;What really goes beyond what other distros offer is the new start menu on both KDE and GNOME desktops. It is a VISTA like menu which offers us FAVORITES , MOST USED  and other menus to ease and speed up our work... or just to make us feel comfortable. The new 10.2 also includes a new SuSEUpdater applet which serves a better use than the old ZMD was doing.&lt;br /&gt;&lt;br /&gt;Also I found that OpenSuSE 10.2 comes with the newest of the power management daemons. But really the best thing I found recently while testing this with one of my colleagues was that actually VISTA is a lot more unfriendly to the hardware (ESPECIALLY NOTEBOOKS) and it consumes a lot more than SUSE. Yes MS released litter versions and so one and still I have to say that I have no problems running it on my ACER notebook with just 512MB of RAM... while VISTA is a bit of a pain on the same machine.&lt;br /&gt;&lt;br /&gt;Well the new OpenSuSE 10.2 is by far more friendly and stable than the new VISTA Microsoft has offered us. It really comes with a great GUI to rival VISTAs AERO theme and also provides more compatibility with the hardware requirements than VISTA.&lt;br /&gt;&lt;br /&gt;But the question still is: "Is this the year of the linux desktop?"&lt;br /&gt;&lt;br /&gt;I bet for me it is... this and the previous one years too ;)&lt;br /&gt;What about you?&lt;br /&gt;&lt;br /&gt;Comments are highly appreciated!&lt;br /&gt;&lt;br /&gt;For some screenshots check this link - &lt;a href="http://en.opensuse.org/Screenshots/Screenshots_openSUSE_10.2"&gt;screen shots&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-7879715547106309644?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/7879715547106309644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=7879715547106309644' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/7879715547106309644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/7879715547106309644'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/opensuse-to-rival-vista.html' title='OpenSuSE to rival VISTA'/><author><name>Явор Иванов</name><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>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-3412290976951263099</id><published>2007-01-12T16:17:00.000+02:00</published><updated>2007-01-17T18:03:30.761+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux people are sexy!</title><content type='html'>&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;If you think LINUX is only an operating system you were WRONG !!!&lt;br /&gt;If you think LINUX is only a way to do job or money you were WRONG !!!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_PbEtsD5Lb0w/RabQ5cBL73I/AAAAAAAAADw/gHNAc1Wl1Ok/s1600-h/clt05_familie_II_1000.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_PbEtsD5Lb0w/RabQ5cBL73I/AAAAAAAAADw/gHNAc1Wl1Ok/s320/clt05_familie_II_1000.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5018928519943286642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well many of us know that most of the people using linux have a sweet spot for it. It is sometimes like a secret passion for it... no matter for administering a network, developing or desktop use a linux guy is a passionate user of this operating system. According to some materials in the world wide web :) was found that men using linux have not only developed a passion for it but also for a lot of other things in someway. Well I started my own research and found out that LINUX MEN were at all passionate people and they really did almost everything in their life with fun and passion. &lt;br /&gt;&lt;br /&gt;What I found out recently was surprising!&lt;br /&gt;I found that many HATERS (so called by me people that just hate everything surrounding them) switch their point of view after starting using a LIXUX OS. I mean they started all positive thoughts and become somewhat different people. This was very strange for me so I wanted to pull my research at the next level. I did asked them questions that revealed me information about this topic but they did not understood that I was making any kind of research. Then I went to some girlfriends of them and spoke with them about their relation ships. Some of them didn't quite submit the info I wanted but others where kind enough to respond to my research.&lt;br /&gt;&lt;br /&gt;Well the surprising fact was that some girls and ex ones did agree to experiment. I asked them to put t-shirts on a penguin or something that will remind their beloved one about linux or something like that. So a few of them get KDE t-shirts and a few others made themselves penguin T-shirts .... third group just buy one from the internet.&lt;br /&gt;&lt;br /&gt;So the next step was to wait... I actually almost forget about this research after time, but I recently met an old girl friend and she reminded me about this :)&lt;br /&gt;So I interviewed her and opened my research again. I called some of the girls that were participating in my research and take them to a cafe. I didn't even spoke about the topic and 90% of them started as a second topic on the meeting the LINUX MEN PASSION topic. They said that their boyfriends totally freaked out about the penguin :) after a while they became more passionate and increased the amount of time spend on their relation ships. So girls where totally satisfied with the result. They even told me about hanging around only with the LINUX t-shirt (I actually mean without much clothes on) which was the TOP of the iceberg ;) boys just freaked out with this exotic women behavior. This actually verify an old post I found before quite some time about a women doing this with her boyfriend.&lt;br /&gt;&lt;br /&gt;But here comes the interesting part which I didn't believed for true.&lt;br /&gt;&lt;br /&gt;ABOUT 60% OF THE LINUX MEN BECAME THE ULTIMATE LOVERS.&lt;br /&gt;&lt;br /&gt;Girls say that they never experienced such a passion before :)&lt;br /&gt;&lt;br /&gt;So here are the statistics:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;83 girls participated&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;- 67 voted for a very good relation ship after the LINUX t-shirt experiment (54 said that their intimate life was better too after the experiment)&lt;br /&gt;- 8 said bad things&lt;br /&gt;- 8 said they didn't found change or that their boyfriends behave not bad but differently and they couldn't say if it is good or bad&lt;br /&gt;&lt;br /&gt;As part of the results I will reveal that some of those girls said that they achieved this thanks to their LINUX t-shirt while those with the KDE one weren't so successful... no offens to KDE... I am currently using it from about 5+ years and counting :)&lt;br /&gt;&lt;br /&gt;So as a conclusion I want to say that the LINUX penguin logo and even the sign LINUX is a good stimulant for most of the hackers out there :) so girls if you are desperate to draw the attention of your beloved one from the PC to you ... go get a cool t-shirt ;)&lt;br /&gt;If you don't know where to get it :) well try one of the Linux Distributions Home Page (it is better to be his favorite distro ;) ) they usually sell such things or just try finding one at e-Bay.&lt;br /&gt;&lt;br /&gt;So good luck with your man ;)&lt;br /&gt;&lt;br /&gt;----------&lt;br /&gt;&lt;br /&gt;It will be interesting for me to find out if this works on girls too so if someone has info please share it with us!&lt;br /&gt;&lt;br /&gt;Bad that I do not know a lot of LINUX girls to test this myself ;)&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-3412290976951263099?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/3412290976951263099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=3412290976951263099' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/3412290976951263099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/3412290976951263099'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/linux-people-are-sexier.html' title='Linux people are sexy!'/><author><name>Явор Иванов</name><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://bp0.blogger.com/_PbEtsD5Lb0w/RabQ5cBL73I/AAAAAAAAADw/gHNAc1Wl1Ok/s72-c/clt05_familie_II_1000.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-7234133054019958975</id><published>2007-01-11T00:08:00.000+02:00</published><updated>2007-01-17T18:03:41.997+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='off topic'/><title type='text'>Bulgaria in EU</title><content type='html'>This is an off topic article about my country!&lt;br /&gt;&lt;br /&gt;I LOVE MY COUNTRY!&lt;br /&gt;&lt;br /&gt;Since many people find this a big advantage for our country I found useful to put a few words in here. So we talk about Bulgaria getting part of Europe but why are you saying this nonsense!?!?&lt;br /&gt;Bulgaria was always in Europe so please don't use those words.&lt;br /&gt;&lt;br /&gt;Bulgaria is a good country and it has many good sides. While some fellows don't really realize it Bulgaria is like a big magnet for all the big companies out there. I will not go into details cause I don't know the terms for these taxes and so on that attracts all the companies. If you don't believe me I will give you an example of HP building its Clients Support Center in Bulgaria.&lt;br /&gt;And about the tourism well I don't have to even doubt at that... &lt;a href="http://www.youtube.com/watch?v=WC5HZ00MgkU"&gt;see for yourself&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So why do people want to go out of Bulgaria and go elsewhere ?!?! Yes our economics aren't the best and there are simple things you can't change in the flick of an eye but are all other countries perfect!?!? I don't think so!&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=htb5OeeY_ac"&gt;Besides there are so cool people here ;)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I don't know if you realize but even the work here (yes sometimes not so well paid) is not pain in the ass. You will say that this is bullshit but it isn't it is true!&lt;br /&gt;I have a job without fixed time and by not fixed time you have to understand that 99% of the time if I ask not to go to work I am free to do what ever I want and if I get there not at 10:00 as "expected" I wont be killed at the door entrance. You will say - "yes but the salary"? Well I will keep this in secret but I get enough to live my life the way I want it :)&lt;br /&gt;And my colleagues are just great :) a bunch of interesting and funny people ;) the boss is my favorite he just gets under my skin when he tells a joke or a funny story ;)&lt;br /&gt;So what do I need more?!?! Oh yes a bowling place near me and some good cafes and disco clubs right :) well yes I do have them all around me :)&lt;br /&gt;Yes not everyone is with this luck like me but be real Bulgarian lifestyle is much more cooler then in other countries and you know it... take for example the Americans 22 years restriction to alcohol and so on. Every single "alien" which arrived here is attracted to our country so don't leave it!&lt;br /&gt;It is you home place and it is a good one.&lt;br /&gt;&lt;br /&gt;Well all this was a bunch of thoughts I had.&lt;br /&gt;Sorry if they are a bit messy and you don't find them interesting to read.&lt;br /&gt;&lt;br /&gt;After all this is the place where I can write every thing right?&lt;br /&gt;&lt;br /&gt;So at the end look at how we celebrate new year ... &lt;a href="http://www.youtube.com/watch?v=KFWWxg8wqo4&amp;mode=related&amp;amp;search="&gt;NEW 2007 EURO YEAR ;)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-7234133054019958975?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/7234133054019958975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=7234133054019958975' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/7234133054019958975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/7234133054019958975'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/bulgaria-in-eu.html' title='Bulgaria in EU'/><author><name>Явор Иванов</name><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-2234699053314393169.post-7747768178513923203</id><published>2007-01-09T00:35:00.000+02:00</published><updated>2007-01-09T18:10:12.704+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Why programmers don't want to comment code</title><content type='html'>Why don't developer comment their code? &lt;br /&gt;This is a question I will try to answer by summarizing my life experience.&lt;br /&gt;I've been coding most in PHP but I coded also in a few other languages but the majority of code I have written is PHP so I am a PHP programmer and that has shown me a lot of ugly thoughts why people just wont comment their code.&lt;br /&gt;So here are some of the reasons why most of my colleagues and team mates didn't wont to comment their code and often find more appropriate to delete mines too so they see more REAL CODE than bullshits like comments and lines that separate CODE from DESIGN and so on.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;"I'm lazy!"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Well I am lazy too. Laziness is the reason why people are so advanced these days ;). That is why I personally comment my code. I don't want to figure it all out again later cause I forgot what it was and how it works. Think about it. If it is commented you will never have to figure it out again because you have written down an explanation of all the weird parts. It ease everyones work if you haven't got to figure out the problem again every time it comes up.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;"Good code is self-documenting!"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;The programmer that thinks that way thinks his code is so good that any moron could understand it without comments. After all good code is self-documenting is it? Totally wrong! There are many pieces of code which just could be understand by looking at it. For example because they are one line of code. But in the big picture most of the hard to code algorithms aren't obvious at first look to all the programmers even to you if you look at it after a while. So hard, complex algorithms and code blocks should be documented.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;"Upper management doesn't care about comments!"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;The BOSS looks at the metrics supplied to him. These usually are like lines of code, hours spent at work, tasks completed or simply does this work. But just cause time spent commenting is not reported or your boss isn't interested in it doesn't mean it isn't important at least to you. The better your comment skill is, the more productive you will code when you rewrite or upgrade your code later. This will decrease some of your hours in the long term so putting some extra time in the beginning might be a good idea.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;"I'll never work on this after I'm done!"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;This is the normal newbie mistake. So when you have finished your first project and all went well with it you are ready to move on the next one and you do. You might get a couple of more projects done but then they start coming back to you. It is not because they were bad written but because the users wants new features. The idea is that if you have written something once you will most of the time (99% of the time) need at least a piece of it again.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Well I think I gave you enough reasons to think about this for a moment and at least give it a try. After all how bad could it be to put an extra sentence at the end or at the top of your code block ?&lt;br /&gt;&lt;br /&gt;Well have fun with your comments...&lt;br /&gt;and your well written never reused code too ;)&lt;br /&gt;&lt;br /&gt;&lt;hr size="1" /&gt;&lt;br /&gt;I will really appreciate comments on this topic.&lt;br /&gt;And if you have in mind another reason why programmers just wont comment their code feel free to share it with us ;)&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-7747768178513923203?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/7747768178513923203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=7747768178513923203' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/7747768178513923203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/7747768178513923203'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/why-programmers-dont-want-to-comment.html' title='Why programmers don&apos;t want to comment code'/><author><name>Явор Иванов</name><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>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-5239822506277849639</id><published>2007-01-08T19:37:00.000+02:00</published><updated>2007-01-17T18:37:56.273+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='develop'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>PHP Security Tips</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_PbEtsD5Lb0w/RaKKiQXFnpI/AAAAAAAAAC0/b-ZI3dUMPk8/s1600-h/password.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_PbEtsD5Lb0w/RaKKiQXFnpI/AAAAAAAAAC0/b-ZI3dUMPk8/s400/password.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5017725255956143762" /&gt;&lt;/a&gt;A lot of programmers out there use PHP to do their every day tasks but a lot of them are not very aware of SECURITY issues at all. So this article is intended to those users who actually are not very aware of the security in PHP development. I will provide some basic overview and run through the most common problems and their solution and actually I will tell you some pretty cool tricks so you don't worry about your applications security. So shall we start ?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Short list of security issues:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;1.&lt;/span&gt; Not escaping user input fields&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2.&lt;/span&gt; Not escaping SQL queries&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3.&lt;/span&gt; URL parameters hack&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;4.&lt;/span&gt; Giving direct access to files&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;5.&lt;/span&gt; Configuration of the web server&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;First of all I shall say that this article will not make you aware of all the problems you might get when fighting with crackers and there are plenty of other hacks that will not be covered here... but this list of SECURITY issues shall be more than enough for your web site to be stable and secure. And second - a completely secure system is virtually impossible.&lt;br /&gt;&lt;br /&gt;This is what I call a list of basic security issues which most of the unexperienced web developers are unaware of.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Not escaping user input fields &lt;br /&gt;and 2. Not escaping SQL queries&lt;/span&gt;&lt;br /&gt;Escaping of a string means the obscuring of the special symbols like HTML or SCRIPT tags which provide native code execution or something of the kind. So escaping means if we put our PHP code in a post on a site which has escaped our post the code wont execute.&lt;br /&gt;&lt;br /&gt;Well as you might already think not using this method for protecting your site is a very serious issue. Imagine this web page where you can post a comment. Imagine you can make in your post a whole new page. Well lets just limit our imagination to a JavaScript for redirection. So if a user posts this JS like a comment and all the symbols aren't escaped we will end up with a page which will redirect to somewhere else... so a big minus for our users and probably they will not come back to our site because the HARMFUL user already did his job well to bring our site down. And just in case this seems not so bad for you imagine putting a piece of code which will execute and delete our database or just bring our web server down (without redirecting).&lt;br /&gt;&lt;br /&gt;A simple code use that will eventually prevent the closing of an html tag:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size:10px; color:navy; font-family: arial;"&gt;&lt;br /&gt;//user submited text is: I will brake you code with this " symbol&lt;br /&gt;$str = $_POST['user_submited_text'];&lt;br /&gt;&lt;br /&gt;echo addslashes($str);&lt;br /&gt;// Outputs: I will brake you code with this \" symbol&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Addslashes function will escape the ' , " , \ and NULL symbols by putting a dash in front of them. Actually addslashes will be more effective for our second issue - SQL queries.&lt;br /&gt;SQL queries are vulnerable to the so called sql injection. It means that you want ot submit a qeury with a value that is submitted by the user but instead of standard WORD he puts a whole string that makes your query end, begins a new query build by himself then ends his query.&lt;br /&gt;And guess what might his query be? Maybe "DROP dbname;" will be appropriate which ofcourse isn't a good query and will drop our database.&lt;br /&gt;&lt;br /&gt;So a really useful thing in all the cases is to just use not addslashes but some other function which will escape most of the harmful symbols like &lt; &gt; ? ; " ' and so on.&lt;br /&gt;So a good function to use is htmlspecialchars, mysql_real_escape_string or build a custom one.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3. URL parameters hack&lt;/span&gt;&lt;br /&gt;This issue is connected with what the most of the normal web surfers don't really see.&lt;br /&gt;The GET parameters in the URL. Normally these GET params are of great help for the web developers so they can process information across multiple scripts but if those scripts are badly written a potential security hole is open and a cracker might use this against us.&lt;br /&gt;See this example of telling the script to create a page.&lt;br /&gt;&lt;code style="color:navy;font-weight:bold;"&gt;http://example.com/pages.php?action=create&lt;/code&gt;&lt;br /&gt;Let us say this script gives you control over your pages and you can create, edit and delete your pages. Well normally the delete process would be something like this:&lt;br /&gt;&lt;code style="color:navy;font-weight:bold;"&gt;http://example.com/pages.php?action=delete&amp;id=2&lt;/code&gt;&lt;br /&gt;Well this will tell the script to delete page with ID = 2. But what if the user doesn't pick one of the links with his assigned pages IDs but puts like ID = 2105. Well he might just got one of our users hate us for deleting his page. So you should be very careful about the usage of URL GET PARAMS in your application. A method to protect is to double check everything especially user rights. I can't give you a code example to protect against this cause it will depend on what you have programmed but you can use isset(), empty() and the $_SESSION super global array to prevent some of the bugs you might INCIDENTALLY leave. Cause you know no body is perfect.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;4. Giving direct access to files&lt;/span&gt;&lt;br /&gt;Another issue is the use of &lt;b&gt;require_once("script_name.php");&lt;/b&gt;.&lt;br /&gt;What is wrong with this? Actually nothing :)&lt;br /&gt;You include a file which will provide certain functionality in another file which you have checked that the user has been logged in and so on... security security security.... but what if the user access this file directly and skip all the checking that were made in the other file?&lt;br /&gt;So providing access to all your script files is a bad idea.&lt;br /&gt;you can always put tons of code in them to make them not execute but!&lt;br /&gt;I said something about tricks right ?&lt;br /&gt;Well most of the web developers use htaccess files to protect files from direct execution or as I said tons of code includes which serves the same purpose. Well here is the tricky part.&lt;br /&gt;While developing your web application make a directory like WEB_ROOT where you will put all the visible parts of the site like all your HTML files, images and so on. The scripts you include one level up in the tree. So you have all the scripts in the ROOT folder and all the things that the users will see in its subfolder named WEB_ROOT. In the WEB_ROOT include just one script file (mostly this is the index.php file) which will control the scripts that aren't directly accessible. And when you deploy your web site just make sure your domain name will load the WEB_ROOT folder.&lt;br /&gt;Why this is tricky?&lt;br /&gt;- you don't need many files for access control&lt;br /&gt;- you don't include unnecessary protection code in your files&lt;br /&gt;- PHP works with the file system (so it can access the files with ../ but HTTP doesn't work the same way and ../ wont bring you the content of the ROOT folder).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;5. Configuration of the web server&lt;/span&gt;&lt;br /&gt;Many problems come from miss configuration of the web server especially the php.ini file which is responsible for the PHP module of your web server.&lt;br /&gt;While in general this is a custom process you can do the following to protect.&lt;br /&gt;1. Make a config file to include in your project if you don't have/use one&lt;br /&gt;2. with ini_set set some of the php.ini directives so they work as you expect&lt;br /&gt;3. turn error_reporting off when you site is in production state not development&lt;br /&gt;4. and at the end always recommend to turn php into safe mode&lt;br /&gt;&lt;br /&gt;&lt;hr size="1" /&gt;&lt;br /&gt;&lt;br /&gt;I say again that this is far alway from full list of SECURITY issues. But this shall be more than enough if you comply with it to provide your application a stable and secure environment to run.&lt;br /&gt;&lt;br /&gt;There is a lot about this topic I will be glad to explain if you leave a comment and ask politely! But I will have to ASK those of you who will find my article unsatisfied to not submit their hate here!&lt;br /&gt;&lt;br /&gt;As I used to say: "Love your code, have fun with it and don't hate it" ;)&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-5239822506277849639?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/5239822506277849639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=5239822506277849639' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/5239822506277849639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/5239822506277849639'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/php-security-tips.html' title='PHP Security Tips'/><author><name>Явор Иванов</name><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://bp2.blogger.com/_PbEtsD5Lb0w/RaKKiQXFnpI/AAAAAAAAAC0/b-ZI3dUMPk8/s72-c/password.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-5810187494428720457</id><published>2007-01-07T16:31:00.000+02:00</published><updated>2007-01-07T17:03:20.850+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='develop'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><title type='text'>IE7 Web Developers Nightmare</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_PbEtsD5Lb0w/RaEKJwXFnnI/AAAAAAAAACc/il1VPimIJlE/s1600-h/post-25718-1123995426.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_PbEtsD5Lb0w/RaEKJwXFnnI/AAAAAAAAACc/il1VPimIJlE/s400/post-25718-1123995426.png" alt="" id="BLOGGER_PHOTO_ID_5017302622584282738" border="0" /&gt;&lt;/a&gt;Internet Explorer 7 has kicked in at last on all MS Windows OS running PCs because of the fact M$ decided to force it's users to migrate through update. Well actually there isn't much wrong with this but IE7 was supposed to comply more with the standards what in fact isn't true.&lt;br /&gt;IE7 is a night mare for most of the developers that try to comply with standards for crossbrowsing.&lt;br /&gt;I recently needed to rewrite a web site so it works on firefox too... and the surprising element was  that when testing the new and the old site on IE7 I found out that many things does not function as expected and "not function as expected" isn't the right word for it, it was more a question of working at all.&lt;br /&gt;&lt;br /&gt;I found that submiting through JavaScript has some pretty uncool things which I don't actually blame IE but some functions did not work when not passing all the parameters and so on.&lt;br /&gt;And the MOST killer thing was the DISability of IE to submit data through "input type img" which actually was the whole sites data... I don't actually blame the programmers that they did it so but IE for not keeping with standards again.&lt;br /&gt;&lt;br /&gt;So actually with IE7 we come to a new era of &lt;span style="font-weight: bold;"&gt;"web developers nightmare"&lt;/span&gt; as it will require BAD and maybe not so BAD web sites to be rewritten and this with crush some of the small companies business.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;And a final TIP from me!&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Try avoiding writing JavaScript without testing it 100% on all of the major used web browsers like FireFox, IE7, Opera and Safari.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Just to have a clue:&lt;br /&gt;According to W3C the web browser market share of IE7 for the previous month is: 7.1%&lt;br /&gt;and for IE6 is: 49.9%&lt;br /&gt;&lt;br /&gt;So with a bit of analyzing the situation and the facts as well as doing some math we can say that IE7 will show a market share of about 60% according to W3C... which isn't the best picture for us the devs.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_PbEtsD5Lb0w/RaEK6wXFnoI/AAAAAAAAACk/U6Hkuu2FWvI/s1600-h/firefox.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_PbEtsD5Lb0w/RaEK6wXFnoI/AAAAAAAAACk/U6Hkuu2FWvI/s400/firefox.png" alt="" id="BLOGGER_PHOTO_ID_5017303464397872770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Have fun with you code and don't hate it :) hate the things that don't comply to the standards...&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-5810187494428720457?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/5810187494428720457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=5810187494428720457' title='309 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/5810187494428720457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/5810187494428720457'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/ie7-nightmare-for-web-developers.html' title='IE7 Web Developers Nightmare'/><author><name>Явор Иванов</name><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://bp3.blogger.com/_PbEtsD5Lb0w/RaEKJwXFnnI/AAAAAAAAACc/il1VPimIJlE/s72-c/post-25718-1123995426.png' height='72' width='72'/><thr:total>309</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-1096267922574220391</id><published>2007-01-06T22:00:00.000+02:00</published><updated>2007-01-17T18:39:50.219+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='develop'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Use of Model View Controller</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_PbEtsD5Lb0w/RZ_1EgXFnmI/AAAAAAAAACI/8Lv7NQ9fmCk/s1600-h/kded.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_PbEtsD5Lb0w/RZ_1EgXFnmI/AAAAAAAAACI/8Lv7NQ9fmCk/s400/kded.png" alt="" id="BLOGGER_PHOTO_ID_5016997967669075554" border="0" /&gt;&lt;/a&gt;Model View Controller also known as MVC is a great way to do development. But what actually is MVC? It is not a tool or software that you can actually buy... well yes you can buy it and you can name it a tool but I will not speak of those made by others but for those hand made by you. OK so what was MVC? MVC is a self made FRAMEWORK. It's idea is to have TREE TIER SOFTWARE DEVELOPMENT.&lt;br /&gt;Those tree layers are Model, View and Controller. In this article I will write mostly about the CONTROLLER and leave you space to think about the other elements while I will try to give you some basic idea about them too.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;step 0.&lt;/span&gt; We start building some project and we don't know where to start from. Obviously we should start with some configuration file right? That is good... but don't forget the initial planning it is way more important but we skip this now :)   After building some config file we need an index.php file which we will enchant with the power of MVC methodology.&lt;br /&gt;&lt;br /&gt;So a basic &lt;span style="font-weight: bold; font-style: italic;"&gt;step 0&lt;/span&gt; is to make a config file and index.php with some basic design and idea.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;step 1.&lt;/span&gt; The next thing we will do is to build our CONTROLLER. It is responsible for controlling the overall process of our application. So it needs to comply with the following things:&lt;br /&gt;- handle URL requests&lt;br /&gt;- process requested information to and from the layers&lt;br /&gt;- handle loading of classes&lt;br /&gt;&lt;br /&gt;This is our very basic form.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/we skip some other code that should be there keep that in mind/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here it is in PHP code:&lt;br /&gt;&lt;hr size="1" /&gt;&lt;br /&gt;&lt;pre style="color:navy;font-size:10px;font-family:arial;"&gt;&lt;br /&gt;##### ..:CONFIG FILE:.. ##### &lt;br /&gt;require_once("../config.php");&lt;br /&gt;##### ***CONFIG FILE*** #####&lt;br /&gt;&lt;br /&gt;##### ..:AUTOLOAD:.. ##### &lt;br /&gt;function __autoload($class_name) {&lt;br /&gt; $dirs = array('/experts/','/experts/db/','/experts/user/', '/experts/question/');&lt;br /&gt; array_push($dirs,'/experts/exceptions/');&lt;br /&gt;&lt;br /&gt; foreach ($dirs as $dir) {&lt;br /&gt;  $classfile = CLASSES . $dir . $class_name . '.php';&lt;br /&gt;  if ( file_exists($classfile ) ) {&lt;br /&gt;   require_once ($classfile);&lt;br /&gt;  }&lt;br /&gt; } &lt;br /&gt;}&lt;br /&gt;##### ***AUTOLOAD*** #####&lt;br /&gt;&lt;br /&gt;##### ..:CONTROLLER:.. #####&lt;br /&gt;if (isset ($_REQUEST['module'])) {&lt;br /&gt; require_once(MODULES . basename($_REQUEST['module']) . ".php");&lt;br /&gt;} else {&lt;br /&gt; require_once(MODULES . 'default.php');&lt;br /&gt;}&lt;br /&gt;##### ***CONTROLLER*** #####&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;hr size="1" /&gt;&lt;br /&gt;&lt;br /&gt;So what you see in this code is that we include in the first place the CONFIG file and this shall be clear why. The second thing is making use of AUTOLOAD function in PHP5 which finds for us the needed class and we don't care about including classes we made into the files (modules) we write.&lt;br /&gt;&lt;br /&gt;And then the actual CONTROLLER which just looks a GET parameter and sees if its name build with .php exists in the MODULES folder and if yes it loads it... if not it loads a default one.&lt;br /&gt;&lt;br /&gt;This is the INDEX.PHP file code... it needs to have some design or some VIEW implementation which you can see how to achive in the bottom (well actually you will have to read a bit more off this site but don't bother I might write about this another time)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;step 2.&lt;/span&gt; Is the Model... we will call these MODELS - MODULES.&lt;br /&gt;These MODULES work in the following way:&lt;br /&gt;&lt;br /&gt;They are loaded by the CONTROLLER and they serve a specific functionality like login/logout. In this Module we work with the functionality (the classes) we wrote. And this is it.&lt;br /&gt;We might do this to work directly with the VIEW as the following code:&lt;br /&gt;&lt;br /&gt;&lt;hr size="1" /&gt;&lt;br /&gt;&lt;pre style="color:navy;font-size:10px;font-family:arial;"&gt;&lt;br /&gt;// Proccess with user input if given&lt;br /&gt;if (isset($_GET['action'])) {&lt;br /&gt;    switch ($_GET['action']) {&lt;br /&gt;        case 'login':&lt;br /&gt;            require_once(STATIC_MODULES."login/handle_login.php");&lt;br /&gt;            break;&lt;br /&gt;        case 'logout':&lt;br /&gt;            require_once(STATIC_MODULES."login/handle_logout.php");&lt;br /&gt;            break;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Display the needed Smarty tpl&lt;br /&gt;if (isset($_SESSION['auth'])) {&lt;br /&gt;    $user = unserialize($_SESSION['user']);&lt;br /&gt;    $user-&gt;loadStats();&lt;br /&gt;&lt;br /&gt;    $smarty-&gt;assign("button" , '&lt;&amp;#97; href="index.php?action=logout"&gt; &lt;br /&gt;             &lt;&amp;#105;mg src="button logout.png" style="border: 0px;" /&gt; &lt;br /&gt;             &lt;/&amp;#97;&gt;');&lt;br /&gt;    $smarty-&gt;assign("username" , $user-&gt;getUsername());&lt;br /&gt;    $smarty-&gt;assign("title" , $user-&gt;getStats()-&gt;getTitle());&lt;br /&gt;    $smarty-&gt;assign("points" , $user-&gt;getStats()-&gt;getCredits());&lt;br /&gt;    $smarty-&gt;display("STATIC/login/login.tpl");&lt;br /&gt;} else {&lt;br /&gt;    $smarty-&gt;display("STATIC/login/login_form.tpl");&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;hr size="1" /&gt;&lt;br /&gt;&lt;br /&gt;The Module just looks after a PARAM to be sure if it is set then process to other modules if necessary ... then it unserializes an OBJECT of the user from the SESSION loads the user info and process the needed info for the VIEW (which is SMARTY template engine).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;step 3.&lt;/span&gt; The VIEW is already mentioned it is just a TPL file of SMARTY ... for more info about this Templating Engine look at smarty.php.net or just google it for more information. In few words the VIEW is a TPL file which has in it those {$variableName} tags which by parsing this file they are replaced with values that we assign through the MODULES (MODEL).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So for all of you PHP geeks which were not known to MVC I think this is enough to see the power you get from this framework... if you don't see it I will mention some things:&lt;br /&gt;&lt;br /&gt;- You get a FRAMEWORK for every project you build to use&lt;br /&gt;- It is easily to upgrade and use&lt;br /&gt;- You don't need to touch the files of your framework most of the times only the CONFIG file and then just start building the MODULES&lt;br /&gt;- You easily will redesign the site because of the templates you use&lt;br /&gt;- You write without caring about includes paths or other stuff&lt;br /&gt;- and if you write this good &lt;span style="font-style:italic;font-size:10px;"&gt;(not that this isn't good but this piece of code is not what it is now at the project we have used it... yes this was working code :) now it is more advanced with more lines of code and complexity but this is its main idea)&lt;/span&gt; you will develop you projects twice as fast as you usually do and believe me when I say YOU GOT THE POWER OF Objects AND Templates AND Re-Usability OF CODE and this is what most programmers have difficulties to achieve.&lt;br /&gt;&lt;br /&gt;But YES this isn't a topic that I can cover in a hour or too just like this and yes I am not good at large scale Articles which cover future and history and so on so just look at what wikipedia has to offer about this topic... I'll ease you with this direct link to &lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;MVC at wikipedia&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I hope I have given you the first steps and thoughts about building your own MVC whether in PHP or some other programming language.&lt;br /&gt;Have fun!&lt;br /&gt;And remember not to hate your code but to have fun with it ;)&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-1096267922574220391?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/1096267922574220391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=1096267922574220391' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/1096267922574220391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/1096267922574220391'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/model-view-controller.html' title='Use of Model View Controller'/><author><name>Явор Иванов</name><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://bp0.blogger.com/_PbEtsD5Lb0w/RZ_1EgXFnmI/AAAAAAAAACI/8Lv7NQ9fmCk/s72-c/kded.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-1789037982558787538</id><published>2007-01-05T13:00:00.000+02:00</published><updated>2007-01-17T18:03:51.387+02:00</updated><title type='text'>ABOUT</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_PbEtsD5Lb0w/RZ12y8RCxfI/AAAAAAAAABc/CoNjWqu9Uh4/s1600-h/pic2.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_PbEtsD5Lb0w/RZ12y8RCxfI/AAAAAAAAABc/CoNjWqu9Uh4/s400/pic2.png" alt="" id="BLOGGER_PHOTO_ID_5016296177503749618" border="0" /&gt;&lt;/a&gt;Well I am a software developer who has decided to put a blog on the web to write about LIFE... the life and interests of IT people. The life of all the people who want to solve problems, find interesting information about IT and about themselves. Or maybe like some of us say - HACKERS! I don't really call myself so but many in my country say to me and my best friend that thing - "hey your a hacker". So I just will say that I am a programmer which has an appetite for solving problems of all kind. So if you are to be filled by the same hunger... welcome!&lt;br /&gt;&lt;br /&gt;So finally ... Hi! My name is Yavor Ivanov.&lt;br /&gt;I am more of a LAMP developer as P is for PHP ;-)&lt;br /&gt;I am working at a small company in Bulgaria and just live my life the way I think is right!&lt;br /&gt;&lt;br /&gt;As you will find here, I am writing about the following topics:&lt;br /&gt;- Open Source&lt;br /&gt;- PHP&lt;br /&gt;- Linux&lt;br /&gt;- personal development&lt;br /&gt;- and some miscellaneous stuff I will call HACKER'S STUFF&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I appreciate comments and opinions.&lt;br /&gt;I am open to suggestions.&lt;br /&gt;I am not tall, just about 175 centimeters  :-)&lt;br /&gt;I like sport climbing, swimming, basketball...&lt;br /&gt;brake dance, PROGRAMMING, bowling...&lt;br /&gt;oooo and BEER and COFFEE  too ;-)&lt;br /&gt;&lt;br /&gt;I hope this BLOG will be helpful for you!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Greetings to all and cheers!&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-1789037982558787538?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/1789037982558787538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=1789037982558787538' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/1789037982558787538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/1789037982558787538'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/about.html' title='ABOUT'/><author><name>Явор Иванов</name><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://bp0.blogger.com/_PbEtsD5Lb0w/RZ12y8RCxfI/AAAAAAAAABc/CoNjWqu9Uh4/s72-c/pic2.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-3697012919660265910</id><published>2007-01-05T00:17:00.000+02:00</published><updated>2007-01-17T18:43:49.596+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='develop'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Basic Recursion</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_PbEtsD5Lb0w/RZ19usRCxgI/AAAAAAAAABs/gC1QWpA9E34/s1600-h/ksirtet.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_PbEtsD5Lb0w/RZ19usRCxgI/AAAAAAAAABs/gC1QWpA9E34/s320/ksirtet.png" alt="" id="BLOGGER_PHOTO_ID_5016303801070700034" border="0" /&gt;&lt;/a&gt;I found out that many programmers that are not academic educated but self learners don't know recursion. And this is something that might safe your life pretty fast sometimes ... so I will drop a few lines about it and why use it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Recursion&lt;/b&gt;, in mathematics and computer science, is a method of defining functions in which the function being defined is applied within its own definition. The term is also used more generally to describe a process of repeating objects in a self-similar way. For instance, when the surfaces of two mirrors are almost parallel with each other the nested images that occur are a form of recursion.&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold; font-style: italic;font-size:85%;" &gt;&lt;span style="font-family:arial;"&gt;/description from Wikipedia/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I actually find pretty confusing the example with the mirrors for someone who is hearing for  the first time about recursion. So I will give one from me:&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Drawing a tree structure from the folders and sub folders of your computer hard drive is made with recursion.&lt;/span&gt;"&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;So as I expect my audience to be people from the IT sector or at least people generally known to software or programming at least at a basic level I will give an example of this with web based category navigation.&lt;br /&gt;&lt;br /&gt;So we have something like 1 is the root of 2 and 3.&lt;br /&gt;And 2 is the root of 4.&lt;br /&gt;It looks like this:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1&lt;/span&gt;&lt;br /&gt;|-&lt;span style="font-weight: bold;"&gt;2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;_&lt;/span&gt;|-&lt;span style="font-weight: bold;"&gt;4&lt;/span&gt;&lt;br /&gt;|-&lt;span style="font-weight: bold;"&gt;3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;font-family:arial;font-size:110;"  &gt;&lt;br /&gt;php code example:&lt;/span&gt;&lt;br /&gt;&lt;pre style="color:navy;font-size:10px;font-family:arial;"&gt;&lt;br /&gt;&lt;hr size="1"&gt;&lt;br /&gt; // Making the function to draw the tree ***RECURSION IN MIND***&lt;br /&gt; function tree($id='0',$spacer="&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"){&lt;br /&gt;  $query = "SELECT * FROM categories WHERE parent_id='$id'";&lt;br /&gt;  $result = mysql_query($query);&lt;br /&gt;  while ($row = mysql_fetch_array($result)) {&lt;br /&gt;   echo $spacer.'img src="images/folder.png" border="0" /&gt; '.&lt;br /&gt;   $row['title'].' &amp;nbsp; '.&lt;br /&gt;   'a href="index.php?module=ADMIN"&gt;'.'add'.'/a&gt; | '.&lt;br /&gt;   'a href="index.php?module=ADMIN" style="font-size:9px;"&gt;'.'edit'.'/a&gt; &lt;br /&gt; ';&lt;br /&gt;   // The RECURSION&lt;br /&gt;   tree($row['id'],$spacer."&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;");&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; // Calling the function&lt;br /&gt; tree();&lt;br /&gt;&lt;hr size="1"&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is old code that I posted accidentally without looking at it that it is not recursion sorry about this... I will leave it in case someone find it useful ;)&lt;br /&gt;&lt;pre style="color:navy;font-size:10px;font-family:arial;"&gt;&lt;br /&gt;&lt;hr size="1"&gt;&lt;br /&gt;public function navigation($id) {&lt;br /&gt;$navigation = '';&lt;br /&gt;&lt;br /&gt;$this-&gt;initdb();&lt;br /&gt;$sql = "SELECT `id`,`name`,`description`,`parent_id`&lt;br /&gt;           FROM `category`&lt;br /&gt;           WHERE `id` = '$id'&lt;br /&gt;           LIMIT 1";&lt;br /&gt;&lt;br /&gt;$res = $this-&gt;db-&gt;query($sql);&lt;br /&gt;$row = $res-&gt;fetchRow(MDB2_FETCHMODE_ASSOC);&lt;br /&gt;$navigation .= $row['name'];&lt;br /&gt;$parent_id = $row['parent_id'];&lt;br /&gt;&lt;br /&gt;while($parent_id != 0) {&lt;br /&gt;   $sql = "SELECT `id`,`name`,`description`,`parent_id`&lt;br /&gt;               FROM `category`&lt;br /&gt;               WHERE `id` = '$parent_id'&lt;br /&gt;               LIMIT 1";&lt;br /&gt;&lt;br /&gt;   $result = $this-&gt;db-&gt;query($sql);&lt;br /&gt;   $row = $result-&gt;fetchRow(MDB2_FETCHMODE_ASSOC);&lt;br /&gt;&lt;br /&gt;   // REVERSE THE BUILD&lt;br /&gt;   $navigation = $row['name'].' &gt; '.$navigation;&lt;br /&gt;&lt;br /&gt;   $parent_id = $row['parent_id'];&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//$this-&gt;checkPearError($result);&lt;br /&gt;return $navigation;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;hr size="1"&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I hope that the example is clear to understand... for those with PHP and MySQL knowledge it shouldn't be a problem even if they never used the MDB2 pear package.&lt;br /&gt;Recursion is very useful in those situations where you need repetitive work.&lt;br /&gt;&lt;br /&gt;This is working code from a project I participate in and this chunk is written by me :-p&lt;br /&gt;So yes it actually works ;-)&lt;br /&gt;&lt;br /&gt;So I hope I gave light on this topic!&lt;br /&gt;Good night folks.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-3697012919660265910?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/3697012919660265910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=3697012919660265910' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/3697012919660265910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/3697012919660265910'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/basic-recursion.html' title='Basic Recursion'/><author><name>Явор Иванов</name><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://bp3.blogger.com/_PbEtsD5Lb0w/RZ19usRCxgI/AAAAAAAAABs/gC1QWpA9E34/s72-c/ksirtet.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-9222178662369194336</id><published>2007-01-04T22:09:00.000+02:00</published><updated>2007-01-05T01:41:22.108+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='develop'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Team Software Development</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_PbEtsD5Lb0w/RZ1kOMRCxdI/AAAAAAAAABI/f3bQSqHp4MQ/s1600-h/firefox6.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_PbEtsD5Lb0w/RZ1kOMRCxdI/AAAAAAAAABI/f3bQSqHp4MQ/s320/firefox6.png" alt="" id="BLOGGER_PHOTO_ID_5016275754934257106" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;This article is about &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Software Management&lt;/span&gt;&lt;span style="font-style: italic;"&gt; and especially about the working process of developers. It should make light on the way team work is done and show how it could be made a lot faster, easier and even fun. I will try to explain why some people think their way works for them but in fact they were very wrong and migrating to this way of software development is exactly for them.&lt;br /&gt;&lt;br /&gt;First I want to really say that I am really for Open Source technology but I really appreciate the commercial things that just works... what is written well is written well and there is no doubt when people are happy with it and use it. So this sentence was a kind of "I want you to know me" so you know I am judging from a neutral side.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I will start with a real life example at my job again!&lt;br /&gt;We do software development like this:&lt;br /&gt;1. accessing FTP server&lt;br /&gt;2. downloading content&lt;br /&gt;3. writing code to files&lt;br /&gt;4. saving files&lt;br /&gt;5. looking at modifications&lt;br /&gt;&lt;br /&gt;Well I expect some people to say that this is a normal software development stuff and there is nothing wrong with it but let us see this:&lt;br /&gt;1. accessing FTP server&lt;br /&gt;2. downloading content&lt;br /&gt;3. writing code to files&lt;br /&gt;- another one is writing code to the same files&lt;br /&gt;4. saving files&lt;br /&gt;- overwriting each others code&lt;br /&gt;5. looking at modifications (yours or of your colleague or the worst case of something between)&lt;br /&gt;- some users are looking at changes you do... whether harmless ones or not so harmless&lt;br /&gt;&lt;br /&gt;Well you see the picture!&lt;br /&gt;This type of software development is not good for any one.&lt;br /&gt;I will not go into details about it you saw the picture and you shall think about it!&lt;br /&gt;&lt;br /&gt;Then I shall show you a real software development model.&lt;br /&gt;The tool or software which is used in it is called SUBVERSION or SVN.&lt;br /&gt;It is the successor of &lt;b&gt;Concurrent Versions System&lt;/b&gt; (&lt;b&gt;CVS&lt;/b&gt;) but it has some improvements. So what is so cool about this SVN you ask. Well first of all many people write code and every one is made aware of the changes. Then you develop software with a whole bunch of version control things that ease your life. Well let me try to summarize it:&lt;br /&gt;&lt;br /&gt;SVN is a Version Control System that keeps track of all work and all changes in a set of files, typically the implementation of a software project, and allows several (potentially widely separated) developers to collaborate.&lt;br /&gt;&lt;br /&gt;The thing about this open source software is that it really works and helps. I will not go into details about how it is used or implemented I want to just show you the benefit of switching to it.  SVN doesn't only make you aware of file changes. It allow programmers to lock files, merge changes, comment what they made with the file... and so on. Also SVN is most of the time a separate server on which you develop so users don't have to see your changes in real time. Also a cool thing is that you have a structure of versions that is tree like. When you build a version that is stable enough you can make it go up into the so called branch where you can then just copy this to the server where you want to deploy the project or if the host and develop server are one and the same you can just relink to the newest branch and hey! We got our site updated.&lt;br /&gt;&lt;br /&gt;SVN has one more cool thing!&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TRAC - &lt;/span&gt;an open source, minimalist and web-based project management and bug-tracking tool&lt;br /&gt;&lt;br /&gt;Trac allows hyperlinking information between a computer bug database, revision control and wiki content. It also serves as a sophisticated web interface to the subversion version control system. The web front end presentation of Trac is handled by the ClearSilver template system.&lt;br /&gt;&lt;br /&gt;Cool huh!&lt;br /&gt;&lt;br /&gt;So if you find this useful and actually tried it please let me know your opinion!&lt;br /&gt;&lt;br /&gt;Nice hacking!&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-9222178662369194336?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/9222178662369194336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=9222178662369194336' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/9222178662369194336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/9222178662369194336'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/software-development-made-smart.html' title='Team Software Development'/><author><name>Явор Иванов</name><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://bp1.blogger.com/_PbEtsD5Lb0w/RZ1kOMRCxdI/AAAAAAAAABI/f3bQSqHp4MQ/s72-c/firefox6.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-41135316911145331</id><published>2007-01-03T21:11:00.000+02:00</published><updated>2007-01-05T01:41:38.566+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='develop'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>IDE vs Editors</title><content type='html'>&lt;div style="text-align: left; float: left;"&gt;In this article I will try to obsolete any believes that standard text editors or even the more advanced ones are not only bad but evil!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_PbEtsD5Lb0w/RZwAksRCxbI/AAAAAAAAAAw/Un1yYAkV9cE/s1600-h/kate.png"&gt;&lt;img style="cursor: pointer; width: 64px; height: 64px;" src="http://bp2.blogger.com/_PbEtsD5Lb0w/RZwAksRCxbI/AAAAAAAAAAw/Un1yYAkV9cE/s320/kate.png" alt="" id="BLOGGER_PHOTO_ID_5015884715341825458" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_PbEtsD5Lb0w/RZwBGMRCxcI/AAAAAAAAAA4/9mwZrqhN0Fs/s1600-h/klaptop.png"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_PbEtsD5Lb0w/RZwBGMRCxcI/AAAAAAAAAA4/9mwZrqhN0Fs/s320/klaptop.png" alt="" id="BLOGGER_PHOTO_ID_5015885290867443138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;First you might want to look just at the above pictures.&lt;br /&gt;What you will prefer to write on?&lt;br /&gt;Maybe in bed I will want the Book 'cause it is better than a personal computer but is it really faster than it? What if I make a mistake? I'll have to rewrite it... on the PC I will do undo or just retype it. Hmmm clever isn't it?!?!&lt;br /&gt;&lt;br /&gt;Well the same basics are there for IDE vs Text Editors.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I will give a real example again. Consider the following situation at work.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;You have a server where you host the project a boss tells you to "LOGIN" to it and make some changes... ok there are some great editors like JEdit which have many plug-ins and can have a build in client or what so ever... so OK. Then you need to, let's say find the bug in the design. What a horrible task. Yes you will need to look at all the spicy code in there an fix some unclosed tag. Then you need to add some functionality and can't remember the PHP function name for striping some characters... oh my!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I think you already got the picture!&lt;br /&gt;You are faced in the worst case scenario with lack of highlighting, tag completion, ftp client ... and so on.&lt;br /&gt;&lt;br /&gt;With an IDE(Integrated Development Environment) you got all this if not more.&lt;br /&gt;Even in the best case scenario the TEXT EDITOR will lack one of your needs like say SVN client. But with an IDE you got it all there build in or with plug-ins that just work with the environment.&lt;br /&gt;&lt;br /&gt;My boss told me that using an IDE leads to some BAD habits like not remembering all the function names or like using a function that you don't actually know what it does. But that ain't true.&lt;br /&gt;IDE is giving you all the details and corrects your silly mistakes... and all the experience you will gain just by writing and looking at the code is enough to make sure you know what you are doing. An IDE is the Swiss knife of a modern DEVELOPER.&lt;br /&gt;&lt;br /&gt;There are some good choices like Eclipse and ZDE (Zend inc) for PHP for example.&lt;br /&gt;And there are plenty more... for other languages too... both free and paid.&lt;br /&gt;&lt;br /&gt;But what I really wanted to say is that using a text editor leads to bad habits like writing text instead of code. This is not right to do and shall not be tolerated within the mind of developer.&lt;br /&gt;A real developer should know what he's doing and just use the tools to be more productive, not waste time on silly mistakes or facing trouble with some software or hardware issues that ain't he's work.&lt;br /&gt;&lt;br /&gt;So what you say ?&lt;br /&gt;I will appreciate if you drop some comments so I know I provoked your mind to think about the topic... or just that you support me ;-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;So have fun with your code instead of hating it!&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-41135316911145331?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/41135316911145331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=41135316911145331' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/41135316911145331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/41135316911145331'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/ide-vs-editors.html' title='IDE vs Editors'/><author><name>Явор Иванов</name><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://bp2.blogger.com/_PbEtsD5Lb0w/RZwAksRCxbI/AAAAAAAAAAw/Un1yYAkV9cE/s72-c/kate.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-3462298017118210752</id><published>2007-01-03T20:23:00.000+02:00</published><updated>2007-01-17T18:04:22.181+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><title type='text'>The productivity coefficient</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_PbEtsD5Lb0w/RZv16cRCxaI/AAAAAAAAAAk/41mJZnhVGM8/s1600-h/kformula.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_PbEtsD5Lb0w/RZv16cRCxaI/AAAAAAAAAAk/41mJZnhVGM8/s320/kformula.png" alt="" id="BLOGGER_PHOTO_ID_5015872994376074658" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;The productivity coefficient formula is one tricky thing that not many people know and practice. This post is intended to bring some light over this topic so feel free to be angry when you learn how wrong you were about this.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;So what is this coefficient formula for productivity?&lt;br /&gt;&lt;br /&gt;This is it:&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;font-size:130%;" &gt;  P = W / T&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;P = productivity coefficient&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-style: italic;"&gt;W = Work done&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;T = Time spend on work&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;What this simple formula tells us is that the longer you spent time at job the less the coefficient will be.&lt;br /&gt;You will say yes but also the WORK DONE will increase... YES but lets be for real will the WORK DONE be&lt;br /&gt;more that the time when you spent 11 hours at work than 4 ?&lt;br /&gt;I don't think so and I proven it.&lt;br /&gt;Actually statistics say that the average people going to job like 10:00 starts working at 14:00 and they work till 18:00 then again till the end they don't do much. Why ? It is simple! They have time! So why the haste?&lt;br /&gt;We have time, we have work ... so if they really don't work for themselves it isn't likely to be productive.&lt;br /&gt;&lt;br /&gt;Let's see the big picture in this.&lt;br /&gt;I go to work usually at 10:00 and work till 19:00 I am so productive at the first two days then I need more sleep and more I get de-motivated and so on.&lt;br /&gt;Now I work from 10:00 till 16:00 and I don't actually do muck off topic at work. I am motivated and I do the things more easily and it is all fun... and the big + in this is that I have time for myself :-)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;This is real example guys ... I do this for real and it works for me and other people around me too.&lt;br /&gt;&lt;br /&gt;But lets face it! If you have to do a project in 48 hours you shouldn't bother to NOT follow this :-)&lt;br /&gt;This was a bit jokingly but if you don't believe me just try this for a week if you can and see the effect.&lt;br /&gt;I recommend doing a graph of all the process so you can really see the difference.&lt;br /&gt;&lt;br /&gt;Well this is it ;-)&lt;br /&gt;Have fun and don't forget:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;The world is full of fascinating problems waiting to be solved...&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-3462298017118210752?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/3462298017118210752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=3462298017118210752' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/3462298017118210752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/3462298017118210752'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/productivity-coeficient.html' title='The productivity coefficient'/><author><name>Явор Иванов</name><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://bp0.blogger.com/_PbEtsD5Lb0w/RZv16cRCxaI/AAAAAAAAAAk/41mJZnhVGM8/s72-c/kformula.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-1597043017476165369</id><published>2007-01-03T09:09:00.000+02:00</published><updated>2007-01-17T18:04:42.365+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><title type='text'>Manage your consciousness</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_PbEtsD5Lb0w/RZtXTcRCxZI/AAAAAAAAAAY/Z4qtmoFH3yo/s1600-h/kword.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_PbEtsD5Lb0w/RZtXTcRCxZI/AAAAAAAAAAY/Z4qtmoFH3yo/s320/kword.png" alt="" id="BLOGGER_PHOTO_ID_5015698601523987858" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;I will start this with a question. &lt;/span&gt;How many of you have ever started something or planned to do something but actually never did it because you were scared to do it 'cause it is so hard or time consuming ?&lt;br /&gt;&lt;br /&gt;Well I will answer for some of you and tell: &lt;span style="font-style: italic;"&gt;"Well my friends and I are very familiar to this problem and it happened a lot of times especially for me."&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;OK so what can we do about it?&lt;br /&gt;Actually the answer to this and it's resolution are very easy.&lt;br /&gt;You asked yourself what could that be right ?&lt;br /&gt;Well I will tell you now ;-) the answer is a &lt;span style="font-weight: bold;"&gt;TODO list.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;TODO lists are a very helpful thing.&lt;br /&gt;They will present you with short term targets that you can manage easily and give you a time management scheme.&lt;br /&gt;&lt;br /&gt;Look at this example:&lt;br /&gt;&lt;br /&gt;1. Create a simple database&lt;br /&gt;2. Make user login&lt;br /&gt;3. Make user register&lt;br /&gt;4. Make user status panel&lt;br /&gt;5. ...&lt;br /&gt;&lt;br /&gt;OK this simple sample ;-) tells you the steps to actually start the thing. When you think about the project you tell what the **** this thing is huge it needs this and that and that... and so on and you actually de-motivate yourself by doing this... and what about the time?&lt;br /&gt;&lt;br /&gt;By thinking small you are really realistic about giving the time for building something. So you can start putting small time lines on every task like this:&lt;br /&gt;&lt;br /&gt;6. Statistics about user registration - 3 days&lt;br /&gt;7. Statistics about user interests - 1 day&lt;br /&gt;&lt;br /&gt;You see the time of 7 has been 1 day instead of 3 days 'cause it may reuse the whole code from 6 but you really  can't tell this until you see it. You can even drop a few words about problems or just a simple description after each it may speed up the idea you had in the initial planning (the building of the todo list).&lt;br /&gt;&lt;br /&gt;So at last I will give you a formula to sum up the time of the project. It is simple sum the whole todo list and add 25% for unexpected things if you want to be honest to your clients and your time :) if not giving this 25% you may consider it very likely to drop of the plan for some day or two... which might not be critical but it is not a good thing for a client to see you behind schedule. If you want to do this the right way the formula is ("todo list time" + 100%) + 25% but many consider this not a good practice because they loose clients.... but this is most seen in small companies where every page they create is valuable and they actually make pages instead of projects if you know what I mean ;-)&lt;br /&gt;&lt;br /&gt;OK that's it folks!&lt;br /&gt;I hope this one article was helpful for you.&lt;br /&gt;In the next article I will write again about managing and disciplining your self topics.&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-1597043017476165369?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/1597043017476165369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=1597043017476165369' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/1597043017476165369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/1597043017476165369'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/manage-your-consciousness.html' title='Manage your consciousness'/><author><name>Явор Иванов</name><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://bp0.blogger.com/_PbEtsD5Lb0w/RZtXTcRCxZI/AAAAAAAAAAY/Z4qtmoFH3yo/s72-c/kword.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2234699053314393169.post-4243573518985649663</id><published>2007-01-02T23:33:00.000+02:00</published><updated>2007-01-03T17:20:35.129+02:00</updated><title type='text'>New Blog, New Year</title><content type='html'>&lt;a href="http://bp2.blogger.com/_PbEtsD5Lb0w/RZrRkMRCxYI/AAAAAAAAAAM/pUEgRz5iss0/s1600-h/home.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_PbEtsD5Lb0w/RZrRkMRCxYI/AAAAAAAAAAM/pUEgRz5iss0/s320/home.png" alt="" id="BLOGGER_PHOTO_ID_5015551554728674690" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;OK this is my first post!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;With it I want to say Happy New year to every one... and to say a few words about this blog dedication.Well it is a blog about IT, computer gears and technology, programming and self establishment. Here you will find interesting stuff about management of software and IT, methods &lt;/span&gt;&lt;span style="font-style: italic;"&gt;about software planing and development and a lot of other things.&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;So have fun  ;-)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-4783174734673951";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel = "";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2234699053314393169-4243573518985649663?l=it-gears.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://it-gears.blogspot.com/feeds/4243573518985649663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2234699053314393169&amp;postID=4243573518985649663' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/4243573518985649663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2234699053314393169/posts/default/4243573518985649663'/><link rel='alternate' type='text/html' href='http://it-gears.blogspot.com/2007/01/ok-this-is-my-first-post-with-it-i-want.html' title='New Blog, New Year'/><author><name>Явор Иванов</name><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://bp2.blogger.com/_PbEtsD5Lb0w/RZrRkMRCxYI/AAAAAAAAAAM/pUEgRz5iss0/s72-c/home.png' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
