<?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-9191485066716304771</id><updated>2012-02-16T02:17:37.404-08:00</updated><category term='checkout panel'/><category term='php classes'/><category term='postgres'/><category term='new field'/><category term='suggestion'/><category term='web'/><category term='bugs'/><category term='bug'/><category term='nightmare'/><category term='firebug'/><category term='admin menu'/><category term='SCAYT'/><category term='singleton is evil'/><category term='drupal module'/><category term='border'/><category term='database backup'/><category term='localhost'/><category term='library'/><category term='wrong directory'/><category term='lightbox2'/><category term='game development'/><category term='social bookmarking'/><category term='css'/><category term='position:relative'/><category term='extension'/><category term='tips'/><category term='lightbox'/><category term='get seconds'/><category term='domain site'/><category term='redirect'/><category term='limit'/><category term='hate oracle'/><category term='contest'/><category term='backslash'/><category term='jsf'/><category term='java'/><category term='fields'/><category term='mysql'/><category term='theme'/><category term='field'/><category term='flush cache'/><category term='hook_user'/><category term='libpq.dll'/><category term='jquery-ui'/><category term='playing'/><category term='problems'/><category term='create a new field'/><category term='drupal_goto()'/><category term='color'/><category term='subtheme'/><category term='unable'/><category term='time_to_sec'/><category term='#redirect'/><category term='design'/><category term='php vs java'/><category term='selector'/><category term='project'/><category term='error'/><category term='numeric'/><category term='schema color'/><category term='url'/><category term='login form'/><category term='custom css'/><category term='javascript'/><category term='debugging'/><category term='dynamic'/><category term='desarrollo de videojuegos'/><category term='like superfish'/><category term='load'/><category term='spellchecker'/><category term='paging'/><category term='gadget'/><category term='print_r'/><category term='general'/><category term='superfish'/><category term='wamp2'/><category term='tempalte'/><category term='php_pgsql.dll'/><category term='timestamp'/><category term='page not going anywhere'/><category term='ubercart'/><category term='variable highlight'/><category term='debug'/><category term='firephp'/><category term='login'/><category term='tabs'/><category term='ckeditor'/><category term='security scanner.exe'/><category term='validate'/><category term='op'/><category term='ie'/><category term='syntax highligther'/><category term='drupal_set_message'/><category term='jquery'/><category term='tags'/><category term='var_dump'/><category term='hackme'/><category term='drupal'/><category term='id'/><category term='inyection dependancy'/><category term='gagdet'/><category term='wamp'/><category term='INVALID_STATE_ERR:DOM 11'/><category term='aptana'/><title type='text'>Design By Jeeba</title><subtitle type='html'>All the stuff that makes our web lives more enjoyable</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-2957306923300204942</id><published>2012-02-09T06:46:00.001-08:00</published><updated>2012-02-09T06:47:00.472-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='like superfish'/><category scheme='http://www.blogger.com/atom/ns#' term='position:relative'/><category scheme='http://www.blogger.com/atom/ns#' term='superfish'/><title type='text'>Relative Superfish is a Mad Mad Girl</title><content type='html'>When trying to use Superfish or other css-based dynamic menu, Internet Explorer will complot against you, specially with some complex layout.&lt;br /&gt;&lt;br /&gt;Lets take an example of what im saying. Suppose we want to do come to this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-E1kR662U42c/TzPVgHa16iI/AAAAAAAABF4/zQjiaS77Rpk/s1600/jsuperfishy.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 396px; height: 252px;" src="http://3.bp.blogspot.com/-E1kR662U42c/TzPVgHa16iI/AAAAAAAABF4/zQjiaS77Rpk/s400/jsuperfishy.png" alt="" id="BLOGGER_PHOTO_ID_5707139900532714018" border="0" /&gt;&lt;/a&gt;This is a typical web page, we have a Menu with Superfish, an Slideshow underneat it, and also a floating Logo. So what is the best way to put all of this?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;1) Lets make the Dom:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-xo-YhgOlKII/TzPXyX2VDfI/AAAAAAAABGQ/Y1gRp44uWeI/s1600/jsuperfishy2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 376px;" src="http://4.bp.blogspot.com/-xo-YhgOlKII/TzPXyX2VDfI/AAAAAAAABGQ/Y1gRp44uWeI/s400/jsuperfishy2.png" alt="" id="BLOGGER_PHOTO_ID_5707142413203869170" border="0" /&gt;&lt;/a&gt;Thats right, put the container divs in that order and together at the same DOM level. Those ID comes from Drupal, but you can name them as you want.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2) Position:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;This is almost easy, just put them as the image suggest:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-I0EKQEWlDFM/TzPZFZyw_cI/AAAAAAAABGc/OFrrD1sXRFo/s1600/jsuperfishy3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 210px;" src="http://3.bp.blogspot.com/-I0EKQEWlDFM/TzPZFZyw_cI/AAAAAAAABGc/OFrrD1sXRFo/s400/jsuperfishy3.png" alt="" id="BLOGGER_PHOTO_ID_5707143839654936002" border="0" /&gt;&lt;/a&gt;The important part here is the static position on the Superfish Menu. &lt;span style="font-weight: bold;"&gt;Never put a position:relative&lt;/span&gt; to the superfish menu container. It will just mess it up the children menus. Why it does that? Well for what I know, when a relative item (the submenu) is  inside another relative item (the container), that item will only appear inside the view area of the container.  Of course only on IE. (6 to 8 at least).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-2957306923300204942?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/2957306923300204942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=2957306923300204942' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/2957306923300204942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/2957306923300204942'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2012/02/when-trying-to-use-superfish-or-other.html' title='Relative Superfish is a Mad Mad Girl'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-E1kR662U42c/TzPVgHa16iI/AAAAAAAABF4/zQjiaS77Rpk/s72-c/jsuperfishy.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-6857697107960783731</id><published>2011-04-04T15:45:00.000-07:00</published><updated>2011-05-27T14:54:29.617-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='INVALID_STATE_ERR:DOM 11'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>The Dreaded INVALID_STATE_ERR: DOM Exception 11</title><content type='html'>Last month I had a strange problem in Chrome with Jquery, the chrome console launched me an INVALID_STATE_ERR:DOM 11 error. It happen when i tried to insert a string of HTML directly using $.html(). Other browsers didnt thrown any error,even IE where ok with that kind of indecent proposal i tried to reach.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;So what was the problem with Mr Chrome?&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;The Exception 11 means teorically means that some objects doesnt exist, in practice it  mean that you're creating DOM objects ( I means html tags) using jquery append(), html() or prepend()  with semantics errors,  like not closing the tags or something like that. So if you write bad html like $.html('&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;HelloWorld&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;'); , ( we did'nt close the li tag) there will be mayhem in Chrome.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large; "&gt;&lt;b&gt;And the solution?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a idontexistproperty="yup"&gt;&lt;span class="Apple-style-span"&gt;If you are using jquery to write strings of html, then make sure all the tags are closed and your html doesnt have semantic errors like unclosed tags and non existing properties. Check the source code in Firefox or Opera an see if youre missing some properties over there. Hope this help&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-6857697107960783731?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/6857697107960783731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=6857697107960783731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/6857697107960783731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/6857697107960783731'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2011/04/dreaded-invalidstateerr-dom-exception.html' title='The Dreaded INVALID_STATE_ERR: DOM Exception 11'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-1296460094270607491</id><published>2010-12-31T01:18:00.000-08:00</published><updated>2010-12-31T01:52:23.272-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='localhost'/><category scheme='http://www.blogger.com/atom/ns#' term='url'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='database backup'/><category scheme='http://www.blogger.com/atom/ns#' term='domain site'/><title type='text'>Drupal: From localhost to your domainsite in five steps</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0udjNlBOwVI/TR2iSaTiEhI/AAAAAAAAA6w/phppr-ynYw4/s1600/backup.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;The designer in you, has finished to create the plus ultra of web pages, the only problem is that your web pages is in localhost, or worse yet, it is in a subdirectory in another domain. No problem, with this five step guide step you are going to have our web page ready to be truly Online&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Step 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Backup your database and webpage and put it in your new domain. This mean you have to enter your cpanel ( or other web manager , if you have plesk, may Odin be with you) and go to  &lt;a href="http://www.phpmyadmin.net/home_page/index.php"&gt;PhpMyAdmin&lt;/a&gt; ( you can install it if you dont have one, its free!) and export your database.&lt;br /&gt;&lt;br /&gt;Now import it to your new domain. There may be a problem while importing the backup to your new site, If your database backup file is more than 5 mb, then you probably need &lt;a href="http://www.ozerov.de/bigdump.php"&gt;BigDump&lt;/a&gt;. Its an Ajax uploader of databases. So when exporting your sql, mak sure to uncheck the Extended Insert option, it juss mess up BigDump.&lt;br /&gt;&lt;br /&gt;In BigDump, make sure to use UTF-8 (or the schema youre using) in his config, this will make you very happy latter.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_0udjNlBOwVI/TR2iSaTiEhI/AAAAAAAAA6w/phppr-ynYw4/s1600/backup.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 508px; height: 228px;" src="http://3.bp.blogspot.com/_0udjNlBOwVI/TR2iSaTiEhI/AAAAAAAAA6w/phppr-ynYw4/s400/backup.jpg" alt="" id="BLOGGER_PHOTO_ID_5556775952427651602" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;Exporting your database so bigdump can use it&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Step2: Domain URL&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;So far so good, you need to modify the sites/default/settings.php&lt;/span&gt;. Change the new database access, and  the base_url variable (read the instructions there, nothing fancy really). Make sure that you have the right permission of modifyng that file. Usually it will not come with write permission (or chmod 555) . Make it chmod 777 (change is permission to write) and start modifyng. Then change it back to 555 for security sake.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Step3: htaccess&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Did you change the permission for settings.php back to 555? Good, then there's a hidden file called .htaccess (notice the dot at the start) that you may need to modifyng. Search for this string  &lt;em&gt;# RewriteBase /&lt;/em&gt; and remove that # , so it is umcommented. If for some reason you are still at an subdomain you may need to chage it to # RewriteBase /subdomainname&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Step 4: Refresh Cache&lt;/span&gt;&lt;br /&gt;Now you need to go to http://www.yournewdomainname.com&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;/oldsubdirectory&lt;/span&gt;/admin_menu/flush-cache?destination=admin%2Fsettings%2Fsite-information. Notice the red part is your old subdomain. Maybe you will need to remove it, remember that is the name of your old subdirectory (if you used one).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Ste 5: Run Cron&lt;/span&gt;&lt;br /&gt;Now go to http://www..yournewdomainname.com&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;/oldsubdirectory&lt;/span&gt;/admin/reports/status/run-cron?destination=admin%2Fsettings%2Fsite-information and enter. You are going to run cron. Again maybe you are not going to need that &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;oldsubdirectory&lt;/span&gt; part but, just in case it is there.&lt;br /&gt;&lt;br /&gt;Then enjoy, Happy New Year from Jeeba!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-1296460094270607491?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/1296460094270607491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=1296460094270607491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/1296460094270607491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/1296460094270607491'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2010/12/drupal-from-localhost-to-your.html' title='Drupal: From localhost to your domainsite in five steps'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0udjNlBOwVI/TR2iSaTiEhI/AAAAAAAAA6w/phppr-ynYw4/s72-c/backup.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-1137752620513984743</id><published>2010-12-23T06:19:00.000-08:00</published><updated>2010-12-23T06:27:12.728-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='security scanner.exe'/><category scheme='http://www.blogger.com/atom/ns#' term='hackme'/><title type='text'>Yes Please, hack me</title><content type='html'>&lt;p&gt;So I was doing my usual web surfing, when i managed to run a "secure website". It amazingly scan my PC for troyans and stuff like that. The most beatiful part is when it says that Windows Defender has detected Spyware on my machine.&lt;/p&gt;&lt;p align="center"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0udjNlBOwVI/TRNarbKVdGI/AAAAAAAAA6o/TQ3hKqB5Pe0/s1600/hahahaha.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://4.bp.blogspot.com/_0udjNlBOwVI/TRNarbKVdGI/AAAAAAAAA6o/TQ3hKqB5Pe0/s400/hahahaha.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5553882467549934690" /&gt;&lt;/a&gt;&lt;strong&gt;&lt;span style="font-size:78%;"&gt;Windows Defender on my Ubuntu 10.04, using Opera 10. Feeling the sarcasm already?&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-1137752620513984743?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/1137752620513984743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=1137752620513984743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/1137752620513984743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/1137752620513984743'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2010/12/yes-please-hack-me.html' title='Yes Please, hack me'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0udjNlBOwVI/TRNarbKVdGI/AAAAAAAAA6o/TQ3hKqB5Pe0/s72-c/hahahaha.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-7455837926999356821</id><published>2010-12-22T16:48:00.000-08:00</published><updated>2010-12-22T18:59:01.791-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='singleton is evil'/><category scheme='http://www.blogger.com/atom/ns#' term='php vs java'/><category scheme='http://www.blogger.com/atom/ns#' term='hate oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='inyection dependancy'/><title type='text'>Its me or PHP is being Javanized?</title><content type='html'>I dont really like Java, not the languague per se, only her "WEB" stuff,  as a PHP developer, PHP has tought me the easy way to create web application. Dont get me wrong, I started programming in Assembler ( i kinda like it, it just make sense!), C, and then C++ with my structures and pointers and memallocs. I started developing enterprice code in JAVA, back then like 8 years ago, i used to do my interfaces in SWT and Swing, yes Desktop Applications. Then one day i decided to learn PHP, like a hobby, I learn it in 8 hours all the necesary stuff including configuring a basic WAMP server. It is so easy!.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;¿What about now?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Eight years ahead, my company decided to make a Web application in Java. Damm its so complex, and not in a good way. I mean, all that complexity is just innecesary, but its like fellow Java Developers cant see that complexitiy because they have been brain washed, yes ORM, yes XML for configuring this or that, centralize those files? ha you must be kidding say one of my coworkers, they think its natural to work that hard to spit a checkbox and a commandButton together, something that even when not using a framework its a piece of cake, what a echo can do in a second, i need like 4 classes, one compiler and 3 minutes restarting my server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;The promised futured aeons&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;And believe me, that complexity, it just keep growing and growing. I heard the reason for this maddness its it just to keep the promise that the maintenance phase of the application in his lifecycle will be easy. How can it be possible?, It just dont make sense!, how putting more complexity in a system is going to make it easier to maintain? What Java Developers needs to comprehend is that LESS IS MORE!, why cant they comprehend this. Maybe its isn't all their fault, after all, Oracle make a lot of investment so you can believe that their products are the best of the best, your boss eat all that cheesse without asking for a different flavor, you must then pay the consequences of a social design pattern, that i call affecionately, the oracle oriented &lt;a href="http://en.wikipedia.org/wiki/Portmanteau"&gt;lobbyming.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;So PHP is being Javanized, you say&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;What &lt;a href="http://drupal.org/node/547518"&gt;Drupal taught me&lt;/a&gt; is that you dont really need to be crazy about objects , its not the only way to be!.&lt;br /&gt;&lt;br /&gt;But after googling &lt;a href="http://www.google.com/search?q=portmandeu&amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;aq=t&amp;amp;rls=org.mozilla:es-ES:official&amp;amp;client=firefox-a#sclient=psy&amp;amp;hl=es&amp;amp;client=firefox-a&amp;amp;hs=AUG&amp;amp;rls=org.mozilla:es-ES%3Aofficial&amp;amp;source=hp&amp;amp;q=identity+maps+for+PHP&amp;amp;aq=f&amp;amp;aqi=&amp;amp;aql=&amp;amp;oq=&amp;amp;gs_rfai=&amp;amp;pbx=1&amp;amp;fp=da7bc480b08c561"&gt;identity maps for PHP&lt;/a&gt; on google,  i just know that we as PHP developers, are being invaded by the Java Way of Live. All the examples for doing identity maps, are just a biased copy of Java. Separating identity maps from data mappers, and creating a ton of more classes just so it can be like the way its implemented normaly in Java. Why cant it be all in just a single class, after all im using the two of them together all the time.&lt;br /&gt;&lt;br /&gt;But you can create a Facade Object and unite the two of them, a Java Saviour will say. Nooo hell no, I protest, just mix it all in the same class, make private functions, if you need, and create functions that call those functions that are called togetehr. After all you make a ton of &lt;a href="http://peripateticaxiom.blogspot.com/2008/06/tdd-mocks-and-design.html"&gt;futil getters and setter function&lt;/a&gt;, why not put some really useful functions inside it. STOP copying concepts  &lt;a href="http://www.yourdictionary.com/ad-litteram"&gt;at litteram&lt;/a&gt;, and make use of some creativity. Creativity will kill abstraction some day.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Singleton are Evil and other WTF&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;For example read this article, &lt;a href="http://www.virgentech.com/blog/2010/08/why-singletons-are-evil.html"&gt;singletons are evil&lt;/a&gt;, they really are making a storm in a glass of water, they can't test a database access singleton, so they want me to use &lt;a href="http://en.wikipedia.org/wiki/Dependency_injection"&gt;dependancy injection&lt;/a&gt; to "solve that problem"? Yes lets put more maneur on the problem, never mind all the instantiation I made before in my code, i will just refactor the hell out of it so i can put a new parameter on the constructor, for real. &lt;br /&gt;&lt;br /&gt;They are so blind with their &lt;span style="font-weight: bold;"&gt;dogmas&lt;/span&gt;, they cant see the real problem lays in another realm. Singletons are useful and not using it just because it cant past an unit test, its insanely crazy, we are not programming to pass the unit test, unit test are not out master but our tools.&lt;br /&gt;&lt;br /&gt;Maybe its time to change the way I test my singleton  i already gave an &lt;a href="http://www.virgentech.com/blog/2010/08/why-singletons-are-evil.html"&gt;alternative on the comments&lt;/a&gt;), or dont test it at all, its a singleton for god sake!. We tend to forgot that the goal is creating interesting and maintenable software, not appliyng every concept that they sell us, so our software have that "enterprise quality" that will make our brainwashed souls fell safe.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;And so it is&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;And this is only the tip the iceberg, i know PHP is not the best, I am  learning Python,just to know his wonders, but i will never freely choose  program in Java again for a Web Project.&lt;br /&gt;&lt;br /&gt;Just believe my words, in five years "enterprise" will be a pun for complex, boring and , spaguetti like programming, we just started with Struts, now.. Java?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-7455837926999356821?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/7455837926999356821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=7455837926999356821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/7455837926999356821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/7455837926999356821'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2010/12/its-me-or-php-is-being-javanized.html' title='Its me or PHP is being Javanized?'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-2516546652830130129</id><published>2010-12-08T17:12:00.000-08:00</published><updated>2010-12-13T11:49:03.874-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='desarrollo de videojuegos'/><title type='text'>Unite to the Game Development Group!</title><content type='html'>How you doing my fellow programmers and designers, i invite you to the newly created Game Development group. Its all about of Game Development (in spanish), in every platform imagined. We will try to be a common nexus between spanish speaking developers around the world. Currently Topics of the group are: &lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;show us your project&lt;/span&gt;, &lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;ideas for a game&lt;/span&gt;, &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;questions and answers of the community&lt;/span&gt;, and of course all new ideas for topics are welcome and encouraged.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groups.google.com/group/desarrollodevideojuegos"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Now go Ahead an suscribe to the group, you know you want it ;)&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://groups.google.com/intl/es/images/logos/groups_logo_sm.gif" alt="Grupos de Google" height="30" width="140" /&gt;&lt;br /&gt;&lt;form action="http://groups.google.com/group/desarrollodevideojuegos/boxsubscribe"&gt;Email: &lt;input name="email" type="text"&gt;&lt;br /&gt;&lt;input name="sub" value="Suscribe" type="submit"&gt;&lt;br /&gt;&lt;/form&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-2516546652830130129?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/2516546652830130129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=2516546652830130129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/2516546652830130129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/2516546652830130129'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2010/12/unete-al-grupo-de-desarrollo-de.html' title='Unite to the Game Development Group!'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-8220162235543104843</id><published>2010-11-30T14:27:00.000-08:00</published><updated>2010-12-13T11:50:18.753-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='backslash'/><category scheme='http://www.blogger.com/atom/ns#' term='page not going anywhere'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>JavaServer Faces Newbie NavigateError</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;So Im learning JavaServer Faces using netbeans 6.9, Tomcat 6.0 and Java 1.6.0_22; HotSpot(TM) 64-Bit Server VM 17.1-b03 (whatever it is) and i get caught with lots of errors, I kinda like PHP more than Java but work is work. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;The Problem&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Studying the navigation in Server Faces (you know the XML tags &lt;navigation-rule&gt; in faces-config.xml) i was having some troubles with a h:commandButton  &lt;h:commandbutton&gt;. After clicking that dammed supersubmit button that jsf kindly created for me (hate, hate,&lt;/h:commandbutton&gt;&lt;/navigation-rule&gt;&lt;/div&gt;&lt;div&gt;&lt;navigation-rule&gt;&lt;h:commandbutton&gt; hate those extra markup lines that JSF created automagically , what in god sake is &lt;span class="Apple-style-span" style="font-weight: bold; color: rgb(51, 51, 51);font-size:small;" &gt; type="text" value="Hola" name="helloForm:j_id_jsp_1546894878_4" &lt;/span&gt;suppose to mean&lt;span class="Apple-style-span" style="font-weight: bold; color: rgb(51, 51, 51);font-size:small;" &gt;?&lt;/span&gt;, is like developers where against designers, well i just want to kill some .. ARGGHHH, ok lets continue...)  &lt;/h:commandbutton&gt;&lt;/navigation-rule&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well after clicking that stupid submit button, it just doesn't take me to nowhere, and adding more insult to the injury, the widows seems to being charging. Well lets see what tomcat Log have to say:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://2.bp.blogspot.com/_0udjNlBOwVI/TPWB-v-EsnI/AAAAAAAAA6Q/vg4Su0BFy7Q/s400/dammjsf.jpg" style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 185px;" alt="" id="BLOGGER_PHOTO_ID_5545481431205327474" border="0" /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;b&gt;Yup, nonsense glibberish in bloddy programmer red, an this is like 1% of the total log&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;From a noobbie point of view, this output scares me to death. I wasnt suppose to "disrespect" JSF at all, but How in earth Im supposse to know what is the error that makes all that messed up crash log get sooo large!?&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;The Answer&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;A bloody backslash, yes a boddy backslash like in &lt;from-view-id&gt;&lt;/from-view-id&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;&lt;span class="Apple-style-span"&gt;/&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;welcomeJSF.jsp. It was ahrd for the framework developer to tell me that the address was at least bad formated? And the tutorials didnt say a word about this. geshh . In puting this so it can help another newbie killing himself with jsf. God have mercy on us (and i dont believe in god, for JSF sake)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-8220162235543104843?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/8220162235543104843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=8220162235543104843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/8220162235543104843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/8220162235543104843'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2010/11/javaserver-faces-newbie-navigateerror.html' title='JavaServer Faces Newbie NavigateError'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0udjNlBOwVI/TPWB-v-EsnI/AAAAAAAAA6Q/vg4Su0BFy7Q/s72-c/dammjsf.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-431992279855427480</id><published>2010-09-12T12:20:00.000-07:00</published><updated>2010-09-21T20:20:45.888-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='print_r'/><category scheme='http://www.blogger.com/atom/ns#' term='hook_user'/><category scheme='http://www.blogger.com/atom/ns#' term='firephp'/><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='var_dump'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal_set_message'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='validate'/><category scheme='http://www.blogger.com/atom/ns#' term='op'/><category scheme='http://www.blogger.com/atom/ns#' term='firebug'/><title type='text'>Quick tips on Drupal  hook user</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0udjNlBOwVI/TI0xzrrqs0I/AAAAAAAAA28/hbU63RQP8kU/s1600/firephp.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;So as you see, Im playing a lot with the hook_user function in Drupal. It has a lot of power, but unfortunately,theres not too much documentation to play with itl. I am going to post some random tips that i learn using the hook user function so this will be an article that would be updated frequently. The tips are for the &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;Drupal 6.X version.&lt;/span&gt; Lets begin!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;About the &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://api.drupal.org/api/function/hook_user/6"&gt;hook user&lt;/a&gt;&lt;span style="font-weight: bold;"&gt; function&lt;/span&gt;&lt;br /&gt;This is an useful hook function when you need to play around with the users in Drupal, particulary registering users, updating users, validating the info of user and the deletion of user. This function receive four parameters:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;$op: The operation to perform. Refer to the&lt;a href="http://api.drupal.org/api/function/hook_user/6"&gt; api&lt;/a&gt; to know all the variables&lt;/li&gt;&lt;li&gt;&amp;amp;$edit: The values returned from the login/register form. This is a reference to the variable, so be carufull changing values here&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&amp;amp;$account: The user object on which the operation is being performed. This variable is not always the current active user!, so the global $user is not always equals to $account. For example if you are the superuser and you are registering manually a user called Michael, the $account should be Michael and $user should be the superuser&lt;/li&gt;&lt;li&gt;$category The active category of user information being edited. This works only for updating user info.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Tip A: The account variable in $op = validate&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;I have some problems with this. I was trying to access the name of the account like this &lt;span style="font-weight: bold;"&gt;$account-&gt;name&lt;/span&gt;, but it gave me an error saying that the object dont have that field.&lt;br /&gt;&lt;br /&gt;When debbuging the variable, I could see the field name with the corresponding value.So what was the problem? Well it appears than when validating the form, the $account variable  is an &lt;a href="http://stackoverflow.com/questions/931407/what-is-stdclass-in-php"&gt;stdClass&lt;/a&gt; object, and with those object you cant use the -&gt; operator, you can only access their fields  using a sintaxis like associative arrays, so the correct sintaxis in this case is $account['name'] instead of $account-&gt;name. Have some fun with this&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Tip B: Help, i cant debug hook_user using Drupal for Firebug, or drupal_set_message&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The thing with hook_user and many hook in Drupal is that they are called over and over again across different pages.&lt;br /&gt;&lt;br /&gt;Drupal for Firebug works putting some hidden html to your footer, so if you try to use it , it will not work. I dont know exactly why this happen but, for example, using firep in the validate $op just wont work.&lt;br /&gt;&lt;br /&gt;drupal_set_message is an useful function to send messages to your current Drupal user. But I couldnt make it show a print_r($account) or a var_dump($account), for some strange reason , it just dont work.&lt;br /&gt;&lt;br /&gt;The best way to debug your code , appart from using xcode, or Zend debugger, or other professional debug tools, is using the &lt;a href="http://www.firephp.org/"&gt;firephp&lt;/a&gt; extesion of Firefox. Theres a magic option called &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;persist&lt;/span&gt; that save every data ouptputed to firephp, until you delete it manually.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_0udjNlBOwVI/TI0xzrrqs0I/AAAAAAAAA28/hbU63RQP8kU/s1600/firephp.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 417px; height: 182px;" src="http://4.bp.blogspot.com/_0udjNlBOwVI/TI0xzrrqs0I/AAAAAAAAA28/hbU63RQP8kU/s320/firephp.png" alt="" id="BLOGGER_PHOTO_ID_5516119882567693122" border="0" /&gt;&lt;/a&gt;The only problem with firephp is that you have to somehow, integrate it with Drupal. Its not so hard and this &lt;a href="http://sixrevisions.com/web-development/how-to-debug-php-using-firefox-with-firephp/"&gt;useful article&lt;/a&gt; will help you install it in a generic PHP program. But remember my word, that Persist Button IS your only friend in Drupal debugging, forget &lt;a href="http://drupal.org/project/devel"&gt;devel&lt;/a&gt; or &lt;a href="http://drupal.org/project/drupalforfirebug"&gt;Drupal for firebug modul&lt;/a&gt;e, they just dont have the power!&lt;br /&gt;&lt;br /&gt;UPDATE 21 September 2010: Actually Drupal for firebug is an awesome module. After writing this article, as some sort of poetic justice,  Firephp started to fail, an in exchange, Drupal for Firebug started to work!. So, i would recommend to use both, just in case, first plug-in Drupal for Firebug, and if it fails then launch Firephp and catch your bug.&lt;br /&gt;&lt;br /&gt;Also the &lt;a href="http://drupal.org/project/devel"&gt;devel module&lt;/a&gt; as some nice functions for development. And lets not forget the dblog module (formally watchdog, you can found him here admin/reports/dblog). If you see some blank pages maybe going here can help you solve your problems.&lt;br /&gt;&lt;br /&gt;Nobody says that being an PyroEntomologist was fun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-431992279855427480?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/431992279855427480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=431992279855427480' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/431992279855427480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/431992279855427480'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2010/09/quick-tips-on-drupal-hook-user.html' title='Quick tips on Drupal  hook user'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0udjNlBOwVI/TI0xzrrqs0I/AAAAAAAAA28/hbU63RQP8kU/s72-c/firephp.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-8142311298175882916</id><published>2010-09-08T20:48:00.000-07:00</published><updated>2010-09-08T21:53:29.559-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='login form'/><category scheme='http://www.blogger.com/atom/ns#' term='login'/><category scheme='http://www.blogger.com/atom/ns#' term='#redirect'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal_goto()'/><category scheme='http://www.blogger.com/atom/ns#' term='redirect'/><title type='text'>Redirect user after login in Drupal</title><content type='html'>Redirecting users in Drupal is not easy as it seems to be. In this 6.19 version of Drupal, there are some gotchas to have in mind to make a succesfull redirection&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;The Direct Path : Hooking form_alter&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Like the title say, what we need to do is create a hook for the &lt;a href="http://api.drupal.org/api/function/hook_form_alter/6"&gt;form_alter&lt;/a&gt; hook. This hook is usefull for modifyng the form before rendering it (and for a lot of other interesting stuff), and because Mr. login block and Ms. login page (sitemap.com/user)  are also &lt;span style="font-weight: bold;"&gt;forms&lt;/span&gt;, we are going to have fun with the hook(er) (bazinga? well, thats a sick joke). Here are the steps for ultimate redirection control:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a module: Create two files yeah.info and yeah.module (change yeah for whatever you wish but make sure to remember that key word) and put them inside sites/all/modules/yeah.&lt;/li&gt;&lt;li&gt;Fill yeah.info with this generic code:&lt;pre name="code" class="php"&gt;;&lt;br /&gt;$Id$&lt;br /&gt;name = Yeah Redirect&lt;br /&gt;description = "Redirect your users at login"&lt;br /&gt;core = 6.x&lt;br /&gt;package = "Yeah"&lt;/pre&gt;&lt;br /&gt;This is just a required file the module need to exist.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Fill yeah.module with this code &lt;pre name="code" class="php"&gt;&lt;br /&gt;function yeah_form_alter(&amp;amp;$form, $form_state, $form_id){&lt;br /&gt;if ($form_id == 'user_login' || $form_id == 'user_login_block') {&lt;br /&gt;$form['#redirect']=array('thepath/you/want.php');}&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Now,  let me explain how this works: &lt;ul&gt;&lt;li&gt;The first line tell you that you're hooking the hook_form_alter hook (sic). What does this means is that before any form is rendered this function is being called. Notice the three parameters, first one is the variable that hold the form, its an reference (&amp;amp; anyone?) so the changes you make to &amp;amp;form will exist outside this function. Dont worry too much about $form_state. The third one is the id of the form.&lt;/li&gt;&lt;li&gt;The second line is an if that we use to capture only the user_login page form (user_login) and the user_login block form.&lt;/li&gt;&lt;li&gt;If the form currently on form_alter is a login form, then we are going to modified it, giving the #redirect property the url that we want to go. If you need to pass parameters then use an array, the first one is the path, and the next ones are the parameters&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;This code should work for all the user login pages. But it will not work for user login blocks...&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What the..&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Yes, that code will not work for the login block of Drupal. Why? well because, redirect calls the function &lt;a href="http://drupal.org/node/580144#comment-3424824"&gt;drupal_goto&lt;/a&gt;($url) an that function is going to ignore you if $_REQUEST['destination'] and/or $_REQUEST['edit']['destination'] exist. Why? I dont have a clue, maybe someone in Drupal wants us to be slapped in the face as a price for using this awesome piece of framework ( no sarcasm here, really!, i luuuuuuuuuve Drupal, well except the drupal_goto function).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;The Solution&lt;/span&gt;&lt;/span&gt;&lt;pre name="code" class="php"&gt;unset($_REQUEST['destination'], $_REQUEST['edit']['destination']);&lt;/pre&gt; Insert this after form redirect and youre ready to go!.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Dude, its not working&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Well here are some hints if you need more help:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Make sure you activate the module . Duh!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Check that others noncore modules are not using drupal_goto. Drupal_goto is like a &lt;a href="http://php.net/manual/es/function.header.php"&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;header&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'Location:....)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; , it will redirect you to another page, and if there is more code to process after calling drupal_goto, it would not be use.&lt;/li&gt;&lt;li&gt;Clear your theme_cache. Even if you have the '&lt;span&gt;Rebuild the theme registry on every page load.&lt;/span&gt;' on, hell just clear all the cache just in case.&lt;/li&gt;&lt;/ol&gt;Maybe im missing something here but with this easy explanation i think i have covered all that is need to know for redirecting users at login state. Happy Hooking&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-8142311298175882916?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/8142311298175882916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=8142311298175882916' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/8142311298175882916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/8142311298175882916'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2010/09/redirect-user-after-login-in-drupal.html' title='Redirect user after login in Drupal'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-5922543090171757921</id><published>2010-08-28T23:25:00.000-07:00</published><updated>2010-08-28T23:54:29.584-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='problems'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='suggestion'/><category scheme='http://www.blogger.com/atom/ns#' term='subtheme'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='nightmare'/><category scheme='http://www.blogger.com/atom/ns#' term='tempalte'/><title type='text'>Drupal Subtheming nightmare with a happy ending</title><content type='html'>Im modifying the user login form of a normal Drupal installation using the &lt;a href="http://drupal.org/project/adaptivetheme"&gt;adaptative theme&lt;/a&gt;. so far so good, until i started to create some&lt;a href="http://drupal.org/node/190815"&gt; template suggestion files&lt;/a&gt; for my subtheme.&lt;br /&gt;&lt;br /&gt;The tpl in question is named &lt;span style="font-weight: bold;"&gt;block-user.tpl.php&lt;/span&gt;. So i create my .tpl file and put all the needed stuff inside it. Then I put it in the template directory of my subtheme and ..  it didnt work.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For now the file was in /sites/all/themes/adaptativetheme/subtheme/template/block-user.tpl&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The second thing I did to make it work was copying that file on the template directory of the adaptative theme ( the father of my subtheme), and it works!. But why it didnt work on my subtheme?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The copied file was in /sites/all/themes/adaptativetheme/&lt;span style="font-weight: bold;"&gt;adaptative&lt;/span&gt;/template/block-user.tpl and also in:&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;/sites/all/themes/adaptativetheme/&lt;span style="font-weight: bold;"&gt;subthemename&lt;/span&gt;/template/block-user.tpl&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;The Fix&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Apparently you have to had a copy of all the parent templates  in your template directory. So the parent .tpl file of block-user.tpl.php is block.tpl.php. Its a &lt;a href="http://drupal.org/node/190815"&gt;bug in Drupal6&lt;/a&gt;, live with it because it wont be fixed. Why it works on the theme instead of the subtheme, because the Adaptative theme has that file by default. So I copy that file on my subtheme.. to no avail.   &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Clearing the Cache&lt;/span&gt;&lt;br /&gt;I had the Rebuild the theme registry on every page load option on, so i wonder why it didnt work. I cleared all the cache ( Its an options that appears in the module  &lt;a href="http://drupal.org/project/admin_menu"&gt;Administration Menu&lt;/a&gt;, a must have module ), and Voila!, it worked in my subtheme!, so you must clear the cache when seeing funny stuff happening with your tpl files.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Optional&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Life Savier Info&lt;/span&gt;&lt;br /&gt;Also they must be in the same directory as the parents of your subtheme. So if your main theme saves all our .tpl files in the templateyeah carpet, you need to create the same carpet in your subtheme.&lt;br /&gt;&lt;br /&gt;Hope this little article help someone drupaling. Happy coding!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-5922543090171757921?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/5922543090171757921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=5922543090171757921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/5922543090171757921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/5922543090171757921'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2010/08/drupal-subtheming-nightmare-with-happy.html' title='Drupal Subtheming nightmare with a happy ending'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-3045951712722746720</id><published>2010-08-13T19:08:00.000-07:00</published><updated>2010-08-13T20:20:47.472-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='schema color'/><category scheme='http://www.blogger.com/atom/ns#' term='aptana'/><category scheme='http://www.blogger.com/atom/ns#' term='theme'/><category scheme='http://www.blogger.com/atom/ns#' term='color'/><category scheme='http://www.blogger.com/atom/ns#' term='variable highlight'/><title type='text'>Aptana 3 Color schema sucks (and the remedy)</title><content type='html'>So you installed the new &lt;a href="http://www.aptana.com/"&gt;Aptana 3 beta&lt;/a&gt;, but suddenly all your code its invisible to your eyes, including the cursor, yes, the cursor is, for some unknow reason, invisible to a normal human being.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0udjNlBOwVI/TGYAXpdzaEI/AAAAAAAAA1E/NQ3ucXQiDmc/s1600/13ago2010-+AptanaSucks.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 210px;" src="http://2.bp.blogspot.com/_0udjNlBOwVI/TGYAXpdzaEI/AAAAAAAAA1E/NQ3ucXQiDmc/s320/13ago2010-+AptanaSucks.jpg" alt="" id="BLOGGER_PHOTO_ID_5505088000774858818" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;And that's the reason, you shouldn't smoke crack cocaine when devising the new color schema of Aptana&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;But dont worry, after some googling i found how you can change this to a more acceptable color schema.&lt;br /&gt;&lt;br /&gt;1) Open your Aptana an go to the menu Windows-&gt;Preferences&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0udjNlBOwVI/TGYB_7JIFxI/AAAAAAAAA1U/ddrF7UvPA9w/s1600/menu.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 215px; height: 296px;" src="http://4.bp.blogspot.com/_0udjNlBOwVI/TGYB_7JIFxI/AAAAAAAAA1U/ddrF7UvPA9w/s320/menu.jpg" alt="" id="BLOGGER_PHOTO_ID_5505089792226367250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;2) Change the eyeburning theme to any other theme, god ,any other theme will do it fine. Just select Aptana-&gt;Theme and you will see something like the photo below:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0udjNlBOwVI/TGYCUSlSRoI/AAAAAAAAA1c/arl-NvfHZ0k/s1600/theme.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 311px;" src="http://4.bp.blogspot.com/_0udjNlBOwVI/TGYCUSlSRoI/AAAAAAAAA1c/arl-NvfHZ0k/s320/theme.jpg" alt="" id="BLOGGER_PHOTO_ID_5505090142115874434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;BONUS PACK: How about the variable highlight, it just messing up my retina!!!!. Well I finally found where is the option to change it so it will look like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0udjNlBOwVI/TGYIIy1gE_I/AAAAAAAAA1k/1K46bejuezs/s1600/before_after.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 299px; height: 400px;" src="http://4.bp.blogspot.com/_0udjNlBOwVI/TGYIIy1gE_I/AAAAAAAAA1k/1K46bejuezs/s400/before_after.jpg" alt="" id="BLOGGER_PHOTO_ID_5505096541685158898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well today is your luck day. Just follow this guide:&lt;br /&gt;&lt;br /&gt;1) Go again to Windows-&gt;Preferences, and then navigate to Aptana -&gt;PHP -&gt; Mark Ocurrences . TIP: If you want to dissable it all, just uncheck all the options here and forget abot the rest.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0udjNlBOwVI/TGYJECiGo8I/AAAAAAAAA1s/AbCBemCHKhI/s1600/ocurrences.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 350px;" src="http://3.bp.blogspot.com/_0udjNlBOwVI/TGYJECiGo8I/AAAAAAAAA1s/AbCBemCHKhI/s400/ocurrences.jpg" alt="" id="BLOGGER_PHOTO_ID_5505097559511049154" border="0" /&gt;&lt;/a&gt;2) Do you see the link called annotation up there?, just click it and you will see the next windows:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0udjNlBOwVI/TGYJhCw7B7I/AAAAAAAAA10/_3CY2Eq9u4c/s1600/annotation2.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 320px;" src="http://4.bp.blogspot.com/_0udjNlBOwVI/TGYJhCw7B7I/AAAAAAAAA10/_3CY2Eq9u4c/s400/annotation2.png" alt="" id="BLOGGER_PHOTO_ID_5505098057789409202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;3) Here you will have to modified two options &lt;span style="font-weight: bold;"&gt;PHP Read Ocurrences&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;PHP Write Ocurrences&lt;/span&gt;, does those name make sense to you? neither to me, but what the heck, Aptana rules but the color schema suck, but you can change it anyway so enjoy it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-3045951712722746720?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/3045951712722746720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=3045951712722746720' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/3045951712722746720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/3045951712722746720'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2010/08/aptana-3-color-schema-sucks-and-remedy.html' title='Aptana 3 Color schema sucks (and the remedy)'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0udjNlBOwVI/TGYAXpdzaEI/AAAAAAAAA1E/NQ3ucXQiDmc/s72-c/13ago2010-+AptanaSucks.jpg' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-8124763072356250946</id><published>2010-06-07T09:36:00.000-07:00</published><updated>2010-06-07T10:48:45.301-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='limit'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal module'/><category scheme='http://www.blogger.com/atom/ns#' term='ie'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>IE6 and Ubertcart</title><content type='html'>There's a problem with Ubercart and any modules that use a great quantity of CSS files in Drupal. It doesnt seem to work in IE (any version).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sympthoms&lt;/span&gt;&lt;br /&gt;You install Ubercart or any other big module in Drupal. you test it and seems fine in all the browsers , except IE (again, any version). Seems like some CSS files are missing.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0udjNlBOwVI/TA0rXPABP3I/AAAAAAAAAzI/nlgSoxcYRDo/s1600/wtf.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 192px;" src="http://1.bp.blogspot.com/_0udjNlBOwVI/TA0rXPABP3I/AAAAAAAAAzI/nlgSoxcYRDo/s320/wtf.jpg" alt="" id="BLOGGER_PHOTO_ID_5480083999743360882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;WTF happened to my CSS! yelling is another sympthom of this IE induced disease&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cause:&lt;/span&gt;&lt;br /&gt;IE6 was created to support&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/thread/ad1b6e88-bbfa-4cc4-9e95-3889b82a7c1d?prof=required"&gt; only 31 stylesheets&lt;/a&gt; if you use the link tag to insert them. So when you install ubercart, theres a big possibility that youre excedding that nonsense limit. Have a good day with that.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Remedy:&lt;/span&gt;&lt;br /&gt;There are two ways to work this in Drupal without feelin like youre kicked in the nuts with an iron spiked shoe:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Im too young to die way (Easy Way):&lt;/span&gt; Just use&lt;a href="http://drupal.org/project/unlimited_css"&gt; unlimited css &lt;/a&gt;module, install it an forget about it. This module will call all the CSS files via an &lt;a href="http://webdesign.about.com/cs/css/qt/tipcssatimport.htm"&gt;@import rule&lt;/a&gt; , you can have more thant 31 @import rules in IE, that why it work. Just as a side note, as a good web developer youre not supposed to use the @import rule because&lt;a href="http://www.stevesouders.com/blog/2009/04/09/dont-use-import/"&gt; its mean trouble&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Hurt me plenty way (Medium Way):&lt;/span&gt; Activate the Css File Optimizer in Drupal. Go to admin/settings/performance and you will find the option Optimize the Css Files (duh!). This will mix all the css files in your web page to just one file. I couldnt make it work in my server, this option need a beefy machine to run so make sure you have a &lt;span style="font-weight: bold;"&gt;really reaaaaally fresh&lt;/span&gt; backup of your site before activating this.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0udjNlBOwVI/TA0sO5VTztI/AAAAAAAAAzQ/v7AI0P5H_vY/s1600/optimizer.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 198px;" src="http://2.bp.blogspot.com/_0udjNlBOwVI/TA0sO5VTztI/AAAAAAAAAzQ/v7AI0P5H_vY/s320/optimizer.jpg" alt="" id="BLOGGER_PHOTO_ID_5480084955999751890" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;You can also activate the Optimize the Javascript Code option, jsut remember to make a backup&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;So at least in Drupal there are ways to deal with it. Hey dont blame&lt;/span&gt; IE for teaching you about web server performance and making you lost 4 hours of your life yelling like a crazy schoolgirl before a Jonas Brothers concert.&lt;br /&gt;&lt;br /&gt;Hate the &lt;a href="http://uncyclopedia.wikia.com/wiki/Computer_gnomes"&gt;Computers Gnomes,&lt;/a&gt; yeah thoses little rascals causing trouble again.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-8124763072356250946?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/8124763072356250946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=8124763072356250946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/8124763072356250946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/8124763072356250946'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2010/06/ie6-and-ubertcart.html' title='IE6 and Ubertcart'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0udjNlBOwVI/TA0rXPABP3I/AAAAAAAAAzI/nlgSoxcYRDo/s72-c/wtf.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-2301621132178425342</id><published>2010-06-06T12:21:00.000-07:00</published><updated>2010-06-06T14:15:19.729-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCAYT'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal module'/><category scheme='http://www.blogger.com/atom/ns#' term='spellchecker'/><category scheme='http://www.blogger.com/atom/ns#' term='ckeditor'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Change the Scayt language in Drupal CKEditor Module</title><content type='html'>This will be a short post about that dammed Spell Checker that comes active by default in the Ckeditor module of Drupal.  Well as to this day the best WYSIWYG Module in Drupal 6 (for me) is &lt;a href="http://drupal.org/project/ckeditor"&gt;Ckeditor&lt;/a&gt;. Its simple to install, fast as hell at least compared to Fckeditor, and easy to configure, except the SpellChecker plugin.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0udjNlBOwVI/TAwC5fACmBI/AAAAAAAAAzA/4tWTGLagwJw/s1600/scayt+language.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 116px;" src="http://2.bp.blogspot.com/_0udjNlBOwVI/TAwC5fACmBI/AAAAAAAAAzA/4tWTGLagwJw/s320/scayt+language.png" alt="" id="BLOGGER_PHOTO_ID_5479758033200519186" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;Yes Ckeditor has an SpellChecker, No its not easy to configure.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;By Default the SpellChecker plugin is active, and in english, so i couldnt find a way to deactivate it but at least I found the way to change the language.  Just search for the string&lt;span style="color: rgb(0, 0, 102);"&gt; &lt;span style="font-weight: bold;"&gt;'en_US'&lt;/span&gt;&lt;/span&gt; in the file &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;ckeditor.js&lt;/span&gt; and change it according to the idiom you want.For spanish is &lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;'es_ES'&lt;/span&gt;.   You will found this file in the real &lt;a href="http://drupal.org/project/ckeditor"&gt;ckeditor&lt;/a&gt; directory  , not in the module.&lt;br /&gt;&lt;br /&gt;That file is a &lt;a href="http://ajaxian.com/archives/how-to-minimize-your-javascript-and-css-files-for-faster-page-loads"&gt;minimized version&lt;/a&gt; of ckeditor. You can found the source in '_source' directory, just in case you wonder what does the real ckeditor do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-2301621132178425342?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/2301621132178425342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=2301621132178425342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/2301621132178425342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/2301621132178425342'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2010/06/change-scayt-language-in-drupal.html' title='Change the Scayt language in Drupal CKEditor Module'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0udjNlBOwVI/TAwC5fACmBI/AAAAAAAAAzA/4tWTGLagwJw/s72-c/scayt+language.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-995508238551605394</id><published>2010-06-04T10:45:00.000-07:00</published><updated>2010-06-04T11:30:09.387-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='paging'/><category scheme='http://www.blogger.com/atom/ns#' term='lightbox'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><category scheme='http://www.blogger.com/atom/ns#' term='lightbox2'/><title type='text'>Drupal Lightbox2 and Paging</title><content type='html'>So I had a strange problem with an &lt;a href="http://www.amarilysfloreria.com/"&gt;ecommerce site&lt;/a&gt; Im developing. The site shows in the front page some products. The  Owner told me to put a button with the  magnifying glass over there, and when clicked, make it appear a modal box that shows more info of the product.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0udjNlBOwVI/TAlBGqjeVhI/AAAAAAAAAyw/sE0JuiuvE-g/s1600/magnifying+glass.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 161px; height: 175px;" src="http://4.bp.blogspot.com/_0udjNlBOwVI/TAlBGqjeVhI/AAAAAAAAAyw/sE0JuiuvE-g/s320/magnifying+glass.jpg" alt="" id="BLOGGER_PHOTO_ID_5478982004431017490" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;The Magnifying Glass in all it splendor&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;So hands at work, i use the lightbox2 and views module to make something like the owners command. The frontpage must show 8 products and if we have more, use a pager to navigate between products.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0udjNlBOwVI/TAlBnupZbYI/AAAAAAAAAy4/LkAUWTDBtis/s1600/paging.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 167px;" src="http://3.bp.blogspot.com/_0udjNlBOwVI/TAlBnupZbYI/AAAAAAAAAy4/LkAUWTDBtis/s320/paging.jpg" alt="" id="BLOGGER_PHOTO_ID_5478982572465286530" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;This is the pager, just in case youre asking what is a pager.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;The problem? The view use paging so i show only the first eight products  in the first page but if we go to the second page, problems occurs. The lightbox show all the modal boxes with the information of the first page. Oh god i smell some bug induced headache soon&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;The Solution&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;So after an entire day of debuging I found the problem: Lightbox2 is not taking in account the page you are when it retrieve the data. Basically lightbox2 use the &lt;a href="http://api.jquery.com/load/"&gt;load()&lt;/a&gt; function of jquery to get the WHOLE page it need to extract the info. The url of the page is inserted by lightbox2 usign the template in the file &lt;span style="font-weight: bold;"&gt;lightbox2_handler_field_lightbox2.inc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You have to change the line 124 like this:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Before:&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="php"&gt;&lt;br /&gt;   // We don't actually use the link, but we need it there for lightbox to function.&lt;br /&gt;    if (empty($link)) {&lt;br /&gt;      // Get the path name.&lt;br /&gt;      $path = isset($_GET['q']) ? $_GET['q'] : '&lt;front&gt;';&lt;br /&gt;      //Created By Carlos&lt;br /&gt;    }&lt;br /&gt;&lt;/front&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;After:&lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="php"&gt;&lt;br /&gt;   // We don't actually use the link, but we need it there for lightbox to function.&lt;br /&gt;    if (empty($link)) {&lt;br /&gt;      // Get the path name.&lt;br /&gt;      $path = isset($_GET['q']) ? $_GET['q'] : '&lt;front&gt;';&lt;br /&gt;      //Created By Carlos&lt;br /&gt;      if(isset($_GET['page'])){&lt;br /&gt;        $path = $path .'?page='.$_GET['page'];&lt;br /&gt;      }&lt;br /&gt;      $link = url($path, array('absolute' =&gt; TRUE));&lt;br /&gt;    }&lt;br /&gt;&lt;/front&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I just get the GET value of the current page and if it have a variable called page, append ?page= and the number of the page to the path that will be inserted in the lightbox trigger. Question anyone?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-995508238551605394?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/995508238551605394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=995508238551605394' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/995508238551605394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/995508238551605394'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2010/06/drupal-lightbox2-and-paging.html' title='Drupal Lightbox2 and Paging'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0udjNlBOwVI/TAlBGqjeVhI/AAAAAAAAAyw/sE0JuiuvE-g/s72-c/magnifying+glass.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-6055290858886120816</id><published>2010-02-05T05:32:00.000-08:00</published><updated>2010-04-05T22:24:33.498-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new field'/><category scheme='http://www.blogger.com/atom/ns#' term='ubercart'/><category scheme='http://www.blogger.com/atom/ns#' term='fields'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='checkout panel'/><category scheme='http://www.blogger.com/atom/ns#' term='create a new field'/><category scheme='http://www.blogger.com/atom/ns#' term='field'/><title type='text'>Adding new fields to the Ubercart Checkout module</title><content type='html'>So, you are using &lt;a href="http://www.ubercart.org/"&gt;Ubercart&lt;/a&gt; and &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt;, but the checkout address fields isnt enough for you. Lets say, you need to add some more fields like a cellphone number or a  district field.  Well you have come to the right place, but before this, let me give you some advice.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Before the hack/slash&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;There is a module called &lt;a href="http://drupal.org/project/uc_extra_fields_pane"&gt;Extra Fields&lt;/a&gt;, that give you the ability to input some extra fields to your checkout page. But you can't insert your fields to the billing and delivery panel. It just create a new panel to put that extra info. Maybe with some CSS and JS you can move the extrafields to the biling and/or delivery panel. &lt;/li&gt;&lt;li&gt;There is a &lt;a href="http://drupal.org/project/uc_webform_pane"&gt;webform to ubercart checkout&lt;/a&gt; module, its in beta stage, if you need more thant text boxes maybe this is the module you are looking for.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Into the Abyss&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;This tutorial is not for beginners, but with a little know of copy and paste you can do the magic. User with a cpanel hosting can use the &lt;span style="font-weight: bold;"&gt;file manager&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;phpmyadmin&lt;/span&gt; to easily modified the required files and tables.&lt;br /&gt;&lt;br /&gt;Also remember that hacking your Drupal Files is not something that i recommend, but in some cases, its the only way to do things here. I didnt know too much about &lt;a href="http://api.drupal.org/api/group/hooks/6"&gt;hooks in Drupal&lt;/a&gt;, but for what can i see in the code, i think it isnt possible for this Ubercart version to create hooks to modify the delivery and billing panels.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Step o : Requisites:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Obviously you will need to install&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Ubercart 2.X  with all the &lt;a href="http://www.ubercart.org/docs/user/8075/installing_ubercart"&gt;required modules. &lt;/a&gt;I used &lt;a href="http://drupal.org/drupal-6.15"&gt;Drupal 6.15&lt;/a&gt; for this tutorial, but I think it will work well with any Drupal 6 version.&lt;br /&gt;&lt;br /&gt;Then, fill your Drupal+ Ubercart installation with some products and the info of your store. Make sure you install the checkout module of Ubercart.&lt;br /&gt;&lt;br /&gt;Next step is creating a backup of your files and your database. You are not going to advance to the next step until you make your lifesaver backup. Seriously dont go ahead without your backup.&lt;br /&gt;&lt;br /&gt;Also, before we going any further, theres something strange i need to explain first. The checkout panel contains two important panels, the delivery panel and the billing panel. Essencially those panels share the same fields, and, for some strange reason in ubercart, if you only need a field in one panel, you are going to create it in both panels and save that info in your database of both fields.You can hide one of them if you dont need it anyway.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;In this example I'm going to create a new  cellphone&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;field  for the billing and delivery address&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Step 1 : The database&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;First we need an identifier name for our new field. It should be a word in lower case. In my example I will just call it &lt;span style="color: rgb(51, 51, 153); font-weight: bold;"&gt;cellphone&lt;/span&gt;. Next thing is insert that variable in our database.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Use any DB manager (here im using phpMyAdmin) to update the table called &lt;span style="font-weight: bold;"&gt;variable&lt;/span&gt; and search for the row with the name &lt;span style="font-weight: bold;"&gt;uc_address_fields&lt;/span&gt;. This row contain the list of all the variables used in the checkout panel. Dont be scare, the text here is just a serialized php array. Now add a line containing something like this:&lt;span style="font-weight: bold;"&gt; s:9:"cellphone";s:9:"cellphone"&lt;/span&gt; (sic) somewhere between two semicolons, just like my image. Notice that you are going to repeat twice your new field. And for the curious  &lt;span style="font-weight: bold;"&gt;s:9&lt;/span&gt; means [s]tring of nine spaces. cellphone is a word with 9 letters. Just look how the other fields are stored here.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0udjNlBOwVI/S2woJDH9tuI/AAAAAAAAAwU/3iQ8jYNx7Ww/s1600-h/phpmyadmin.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 522px; height: 142px;" src="http://4.bp.blogspot.com/_0udjNlBOwVI/S2woJDH9tuI/AAAAAAAAAwU/3iQ8jYNx7Ww/s400/phpmyadmin.jpg" alt="" id="BLOGGER_PHOTO_ID_5434762986251990754" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;s:9:"cellphone";s:9:"cellphone";&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; 2. Add the fields billing_&lt;span style="color: rgb(204, 0, 0);"&gt;identifiername&lt;/span&gt; and delivery_&lt;span style="color: rgb(204, 0, 0);"&gt;identifiername&lt;/span&gt;. to the &lt;span style="font-weight: bold;"&gt;uc_orders &lt;/span&gt;&lt;span&gt;table&lt;/span&gt;. In this example im going to create billing_cellphone and delivery_cellphone. Its doesn't matters if you are going to use only one of them, you will need to create both.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0udjNlBOwVI/S2wqbZ2A5II/AAAAAAAAAwc/stfyq0RH5dE/s1600-h/phpmyadmin2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 422px; height: 133px;" src="http://4.bp.blogspot.com/_0udjNlBOwVI/S2wqbZ2A5II/AAAAAAAAAwc/stfyq0RH5dE/s400/phpmyadmin2.jpg" alt="" id="BLOGGER_PHOTO_ID_5434765500611617922" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;The new  fields on the uc_orders table&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;And thats its for the database. The next step &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;is modifiendo the uc_store.module file.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Step 2&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt; : Playing with ubercart/uc_store/uc_store.module file&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Here is where the copy&amp;amp;paste party begin:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Search for the function &lt;span style="font-weight: bold;"&gt;uc_store_address_fields_form()&lt;/span&gt; that should be around the line 702. Now you see that big array? just add  a field that identify your new field. I suggest using your &lt;span style="color: rgb(204, 0, 0);"&gt;identifiername &lt;span style="color: rgb(0, 0, 0);"&gt;for the array.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre name="code" class="php"&gt;&lt;br /&gt;$fields = array(&lt;br /&gt;'first_name' =&gt; array(t('First name'), TRUE),&lt;br /&gt;'last_name' =&gt; array(t('Last name'), TRUE),&lt;br /&gt;'phone' =&gt; array(t('Phone number'), TRUE),&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;'cellphone' =&gt; array(t('Cellphone number'), TRUE),&lt;/span&gt;&lt;br /&gt;'company' =&gt; array(t('Company'), TRUE),&lt;br /&gt;'street1' =&gt; array(t('Street address 1'), TRUE),&lt;br /&gt;'street2' =&gt; array(t('Street address 2'), TRUE),&lt;br /&gt;'city' =&gt; array(t('City'), TRUE),&lt;br /&gt;'zone' =&gt; array(t('State/Province'), TRUE),&lt;br /&gt;'country' =&gt; array(t('Country'), TRUE),&lt;br /&gt;'postal_code' =&gt; array(t('Postal code'), TRUE),&lt;br /&gt;'address' =&gt; array(t('Address'), FALSE),&lt;br /&gt;'street' =&gt; array(t('Street address'), FALSE),&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;What is that&lt;span style="color: rgb(204, 0, 0);"&gt; &lt;span style="font-weight: bold;"&gt;t()&lt;/span&gt;&lt;/span&gt; function surrounding the text? It just a drupal functions that allow that text to be translated. Just&lt;br /&gt;copy it as you see here.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;   2.- Now, next to that big array you just modified, there is a line under it,with a function called variable_get, it could be the line 728 but in any case it should be nearby. Add your identifier name inside single quotes&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;/span&gt; as a parameter of the   drupal_map_assoc function, like this:&lt;br /&gt;&lt;pre name="code" class="php"&gt;$current = variable_get('uc_address_fields', drupal_map_assoc(array('first_name', 'last_name', 'phone', 'company', 'street1', 'street2', 'city', 'zone', 'postal_code', 'country',&lt;span style="color: rgb(204, 0, 0);"&gt;'cellphone'&lt;/span&gt;)));&lt;br /&gt;&lt;/pre&gt;3. Now go to the function &lt;span style="font-weight: bold;"&gt;uc_get_field_name&lt;/span&gt; that should be near the line 1177 and you will see another array. Just copy and item of the array and paste it and change it using your &lt;span style="color: rgb(153, 0, 0);"&gt;identifier name&lt;/span&gt; like this:     'cellphone' =&gt; t('Cellphone number'),&lt;br /&gt;&lt;br /&gt;4.Next, go to the function &lt;span style="font-weight: bold;"&gt;uc_address_field_enabled&lt;/span&gt; near the line 1207 and you will find something like step two. Just add your &lt;span style="color: rgb(153, 0, 0);"&gt;identifier name &lt;span style="color: rgb(0, 0, 0);"&gt;as the last parameter of the drupal_map_assoc function.&lt;br /&gt;&lt;br /&gt;5. This is the most important step on store.module, coz this is where you tell the database to obtain the address values. Go to the function &lt;span style="font-weight: bold;"&gt;uc_get_addresses&lt;/span&gt; near the line 1442 and you will see two database queries one for Mysql and the other one for Postgres. Modified the sql that you use, should be like this using the mysql select:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="php"&gt;$result = db_query("SELECT DISTINCT ". $type ."_first_name AS first_name, "&lt;br /&gt;              . $type ."_last_name AS last_name, ". $type ."_phone AS phone, "&lt;br /&gt;              . $type ."_company AS company, ". $type ."_street1 AS street1, "&lt;br /&gt;              . $type ."_street2 AS street2, ". $type ."_city AS city, "&lt;br /&gt;              . $type ."_zone AS zone, ". $type ."_postal_code AS postal_code, "&lt;br /&gt;              . $type ."_country AS country, "&lt;br /&gt;              &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;. $type ."_cellphone AS cellphone &lt;/span&gt;FROM {uc_orders} WHERE uid = %d "&lt;br /&gt;              ."AND order_status IN ". uc_order_status_list('general', TRUE)&lt;br /&gt;              ." ORDER BY created DESC", $uid);&lt;/pre&gt;&lt;br /&gt;6. Now lets get back to line 336, here we are going to copy and paste one of those lines below, copy it and change it. With the cellphone example it should be like this:&lt;br /&gt;&lt;pre name="code" class="php"&gt;  $conf['i18n_variables'][] = 'uc_field_cellphone';  &lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Step 3&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt; : Playing with ubercart/uc_order/uc_order_order_pane.inc&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;This is easiest. There are two modifications, one for the delivery and one for the billing:&lt;br /&gt;&lt;br /&gt;1. For Delivery: Go to the function &lt;span style="font-weight: bold;"&gt;uc_order_pane_ship_to&lt;/span&gt;  and you will see a switch case. Look for the '&lt;span style="font-weight: bold;"&gt;edit_form&lt;/span&gt;' case in line 27, this is where  you have to copy&amp;amp;paste one of the if, and make 4 changes. Heres an example of before (phone) and after (cellphone).&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="php"&gt;&lt;span style="font-weight: bold;"&gt;    Before:&lt;/span&gt;&lt;br /&gt;   if (uc_address_field_enabled('phone')) {&lt;br /&gt;     $form['ship_to']['delivery_phone'] = uc_textfield(uc_get_field_name('phone'), $arg1-&gt;delivery_phone, FALSE, NULL, 32, 16);&lt;br /&gt;   }&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    After:&lt;/span&gt;&lt;br /&gt;   if (uc_address_field_enabled('&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;cellphone&lt;/span&gt;')) {&lt;br /&gt;     $form['ship_to']['delivery_&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;cellphone&lt;/span&gt;'] = uc_textfield(uc_get_field_name('&lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;cellphone&lt;/span&gt;'), $arg1-&gt;delivery_&lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;cellphone&lt;/span&gt;, FALSE, NULL, 32, 16);&lt;br /&gt;   }&lt;/pre&gt;Once you have done this, you can modified the line 24  (the view case) if you want that the info fo your field appears in the Orders options of ubercart, the page where you see the data of your order as an admin. This is an example with the line 24 modified for cellphone&lt;br /&gt;&lt;br /&gt; $output = uc_order_address($arg1, 'delivery') .'&lt;br /&gt;'. check_plain($arg1-&gt;delivery_phone) &lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;.'&lt;br /&gt;'. check_plain($arg1-&gt;delivery_cellphone);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. For Billing, just repeat this step but look out in the line 122. if you want the billing data to show in your Order page, just modified the line 112 like in the delivery example.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Step 4&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt; : Playing with  ubercart/uc_order/uc_order.module file&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;1. (Optional) Add our field as a &lt;a href="http://drupal.org/project/token"&gt;token&lt;/a&gt;. go to the line 407 inside the function uc_order_token_values. Here you should copy one of those lines, paste and modified it. Create one line for the billing and one for the delivery. In my example it should be like this (the red part is the new):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;      $values['order-shipping-phone'] = check_plain($order-&gt;delivery_phone);&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;      $values['order-shipping-cellphone'] = check_plain($order-&gt;delivery_cellphone);&lt;br /&gt;      $values['order-billing-cellphone'] = check_plain($order-&gt;billing_cellphone);&lt;br /&gt;&lt;/span&gt;      $values['order-shipping-method'] = is_null($ship_method) ? t('Standard delivery') : $ship_method;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. (Optional)  Give a description of that token. Go to the function uc_order_token_list, near line 441 copy an paste one of those lines. Heres an example for the billing an delivery description:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;    $tokens['order']['order-shipping-cellphone'] = t('The cellphone number for the shipping address.');&lt;/span&gt;&lt;br /&gt;    $tokens['order']['order-billing-address'] = t('The order billing address.');&lt;br /&gt;    $tokens['order']['order-billing-phone'] = t('The phone number for the billing address.');&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;    $tokens['order']['order-billing-cellphone'] = t('The cellphone number for the billing address.');&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3.The code that save your field in the db. Go to the function uc_order_new near line 1013 and search inside it for an sql with the insert command. Modified it so it insert data into the rows create in step1. Remenber one for the delivery and one for the billing field. The sql would look like ( the ... is a resume, dont take it literally!!!)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;db_query("INSERT INTO {uc_orders} (..., created, modified,&lt;span style="color: rgb(204, 0, 0);"&gt;billing_cellphone,delivery_cellphone&lt;/span&gt;) &lt;/span&gt;&lt;span style="font-size:78%;"&gt;VALUES " ."(..., %d,&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt; '', ''&lt;/span&gt;)",&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. The code that update your field in the db. go to the function uc_order_save near the line 1046 and look for the sql that update your data. Modified it so it update your field.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Step 5&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt; : Playing with  ubercart/uc_cart/uc_cart_checkout_pane.inc file&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;1. Modifing the checkout_pane_delivery hook. This &lt;a href="http://api.ubercart.org/api/function/hook_checkout_pane/2"&gt;hook&lt;/a&gt; is called to interact in the checkout module of Ubercart. Go to the function uc_checkout_pane_delivery near the line 224, copy and paste one of those if statement inside it and modified it according to your identifier word, like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt; if (uc_address_field_enabled('cellphone')) {&lt;br /&gt;        $contents['delivery_cellphone'] = uc_textfield(uc_get_field_name('cellphone'), $arg1-&gt;delivery_cellphone,uc_address_field_required('cellphone'), NULL, 32, 16);&lt;br /&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Go to the case 'process' near line 292  and copy and paste one of those $arg1, modified it accordly:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;      $arg1-&gt;delivery_phone = $arg2['delivery_phone'];&lt;br /&gt;    &lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;  $arg1-&gt;delivery_cellphone = $arg2['delivery_cellphone'];&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Reviewing your field (optional). Go to the case 'review' near line 293. This line is called to review the data of your field when a client make an order.I just copy and paste some text there but maybe you would need some more exotic validations here.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;      if (uc_address_field_enabled('cellphone') &amp;amp;&amp;amp; !empty($arg1-&gt;delivery_cellphone)) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;        $review[] = array('title' =&gt; t('Cellphone'), 'data' =&gt; check_plain($arg1-&gt;delivery_cellphone));&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;      }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;4,5,6 This is the same as 1,2,3 but is for the billing panel. Go to the function uc_checkout_pane_billing in line 371 and modified it if you wish to have an field in the billing pane.&lt;br /&gt;&lt;br /&gt;NOTE: you can choose here to do only a field in the delvery or the billing panel, or maybe both. Just follow instruction 1,2,3 for the delivery panel and/or 4,5,6 for the billing panel.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Step 6&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt; : Some js in ubercart/uc_cart/cart.js file&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Have you seen that checkbox that copy the billing field to the delivery field? Well you can modified it if you want to copy your new billing_field into your delivery_field.  Go to the line 129 and see some repetitive code of the fields. Heres the code i create for copying my new cellphone field.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;  $('#edit-panes-' + temp + '-phone').val(address.phone).trigger('change');&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;  $('#edit-panes-' + temp + '-cellphone').val(address.cellphone).trigger('change');&lt;/span&gt;&lt;br /&gt;  $('#edit-panes-' + temp + '-company').val(address.company).trigger('change');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thats it folks, its not easy but with this we are covering all the step to create a new checkout field in ubertcart. Enjoy&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-6055290858886120816?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/6055290858886120816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=6055290858886120816' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/6055290858886120816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/6055290858886120816'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2010/02/adding-new-fields-to-ubercart-checkout.html' title='Adding new fields to the Ubercart Checkout module'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0udjNlBOwVI/S2woJDH9tuI/AAAAAAAAAwU/3iQ8jYNx7Ww/s72-c/phpmyadmin.jpg' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-3825191907322597720</id><published>2009-12-01T20:05:00.000-08:00</published><updated>2009-12-01T20:20:13.172-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='contest'/><category scheme='http://www.blogger.com/atom/ns#' term='php classes'/><category scheme='http://www.blogger.com/atom/ns#' term='postgres'/><title type='text'>Create a Design for PHP Classes</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://files.phpclasses.org/graphics/elephpant_logo.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 180px; height: 59px;" src="http://files.phpclasses.org/graphics/elephpant_logo.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You have until 15 of december to create a http://www.phpclasses.org/design.html , using only CSS and PHP, not javascript, to improve the old (and ugly) design of &lt;a href="http://www.phpclasses.org/"&gt;PHP Classes&lt;/a&gt;. The prizes are 3000$ to your Paypal and fame as the saviour of PHP Classes. Well hope this work better than the Postgres Contest, that well sucked big time, they just dissapear withouth telling much more info than "Because the few design you send suck we are not going to continue with the contest", and yes i was a contester XD, an no, my design didnt suck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-3825191907322597720?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/3825191907322597720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=3825191907322597720' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/3825191907322597720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/3825191907322597720'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2009/12/create-design-for-php-classes.html' title='Create a Design for PHP Classes'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-3756942877110052581</id><published>2009-12-01T08:35:00.000-08:00</published><updated>2009-12-01T09:04:10.001-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wrong directory'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='admin menu'/><category scheme='http://www.blogger.com/atom/ns#' term='flush cache'/><title type='text'>Directoy Problems with Drupal</title><content type='html'>So im testing &lt;a href="http://drupal.org/"&gt;Drupal, the uber CMS&lt;/a&gt;. Its so great to have a tool like Drupal to create webpages. But well im new into this and i had an interesting problem.&lt;br /&gt;&lt;br /&gt;I create a site called Akami*, and made the mistake of creating it in a subdirectory called Amaki, notice the 'm' and the 'k'. In my localhost the page works as it should, but then i deployed it on a real server, in his REAL  subdirectory  "Akami", so i was having problems because all the routes where pointing at Amaki instead of Akami.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;The Solution:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Flush the cache. For this I recommend to install the &lt;a href="http://drupal.org/project/admin_menu"&gt;Admin Menu Module&lt;/a&gt;, it will make you life easy, and well if you use Drupal 6.14 (the last version) use the Alpha.3 version of the AdminMenu, or the latest alpha. Anyway in orden to recreate the menu you have to flush it. In this case you have to go to the url pointing that is pointing to the  Flush button in the admin menu:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0udjNlBOwVI/SxVKzrUJtWI/AAAAAAAAArU/bR6I6qYplJ4/s1600/flushit.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 209px;" src="http://3.bp.blogspot.com/_0udjNlBOwVI/SxVKzrUJtWI/AAAAAAAAArU/bR6I6qYplJ4/s400/flushit.png" alt="" id="BLOGGER_PHOTO_ID_5410312779016549730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And the go to that site, of course here amaki is wrong so you have to manually change the wrong name to the true name. In this case from amaki to akami.Then press the flush all caches and youre done. Hope this will be helpfull for someone.&lt;br /&gt;&lt;br /&gt;* The true site name is hidden for security reasons ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-3756942877110052581?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/3756942877110052581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=3756942877110052581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/3756942877110052581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/3756942877110052581'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2009/12/directoy-problems-with-drupal.html' title='Directoy Problems with Drupal'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0udjNlBOwVI/SxVKzrUJtWI/AAAAAAAAArU/bR6I6qYplJ4/s72-c/flushit.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-5790885610544830447</id><published>2009-11-09T22:37:00.001-08:00</published><updated>2009-11-10T05:16:05.737-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery-ui'/><category scheme='http://www.blogger.com/atom/ns#' term='tabs'/><category scheme='http://www.blogger.com/atom/ns#' term='custom css'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Custom Css Tips for Jquery Tabs</title><content type='html'>I love Jquery Tabs , it just make your life easier... well, only when you use his custom CSS.&lt;br /&gt;&lt;br /&gt;But how about integrating it with your custom CSS, instead of his restrictive-gun-in-head Themes? , of course we know how to create a Tab Menu in CSS, but integrate it with Jquery Tabs is not so easy. So after one day of debugging my own code i will give you some tips to create your custom css for jquery tabs.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tip 1:&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; Know the classes for the Navigation Tab Bar: &lt;/span&gt;There is only one class that you will need to know little grasshoper:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;ui-state-active:&lt;/span&gt; As the name implied, this class is added to the tab that is currently selected, dont mind the other classses, you will not need them, this is the silver bullet class for jquery tabs.&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0udjNlBOwVI/SvkT7jOIzyI/AAAAAAAAAps/n80y6CPwZxc/s1600-h/classes.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 417px; height: 289px;" src="http://2.bp.blogspot.com/_0udjNlBOwVI/SvkT7jOIzyI/AAAAAAAAAps/n80y6CPwZxc/s400/classes.png" alt="" id="BLOGGER_PHOTO_ID_5402371141795368738" border="0" /&gt;&lt;/a&gt;So we will need 4 css for know&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The Default Navigation Bar Css&lt;/li&gt;&lt;li&gt;The Css for the a  &lt;a&gt; tag inside tha navbar&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a&gt;The Css of the &lt;span style="font-weight: bold;"&gt;ui-state-active &lt;/span&gt;&lt;span&gt;bar&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a&gt;And the &lt;/a&gt;&lt;a&gt; a tag inside the active navbar&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;So the css for this navigation bar(1) will go like this:&lt;br /&gt;&lt;br /&gt;&lt;pre class="css" name="code"&gt;&lt;br /&gt;ul.grindyMenu li{&lt;br /&gt;background:white;&lt;br /&gt;color:#D09984;&lt;br /&gt;display:inline;&lt;br /&gt;list-style:none;&lt;br /&gt;padding:1px 15px 1px 15px;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Then we add the a tag css(2)&lt;br /&gt;&lt;br /&gt;&lt;pre class="css" name="code"&gt;&lt;br /&gt;ul.grindyMenu a{&lt;br /&gt;text-decoration:none;&lt;br /&gt;font-size:0.7em;&lt;br /&gt;font-weight:bolder;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;And for the active tab css(3), it will be like this :&lt;br /&gt;&lt;br /&gt;&lt;pre class="css" name="code"&gt;&lt;br /&gt;ul.grindyMenu li.ui-state-active{&lt;br /&gt;background:#D09984;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Finally the a tag inside the active tab (4):&lt;br /&gt;&lt;br /&gt;&lt;pre class="css" name="code"&gt;&lt;br /&gt;ul.grindyMenu li.ui-state-active a{&lt;br /&gt;color:white;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now there is a small catch, your css file should have those rules written in that order. Maybe here you will not need to follow that tip, but what if you need to create a rule for the &lt;span style="font-weight: bold;"&gt;ui-state-default&lt;/span&gt; class. Do you notice how the active and not active tabs, both have the&lt;span style="font-weight: bold;"&gt; ui-state-default&lt;/span&gt; class? If you declare &lt;span style="font-weight: bold;"&gt;ui-state-default&lt;/span&gt; after &lt;span style="font-weight: bold;"&gt;ui-sate-active&lt;/span&gt;, it will override it:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0udjNlBOwVI/SvkYI0b-OiI/AAAAAAAAAp0/w0IC0V82awQ/s1600-h/overdide.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 185px;" src="http://1.bp.blogspot.com/_0udjNlBOwVI/SvkYI0b-OiI/AAAAAAAAAp0/w0IC0V82awQ/s400/overdide.png" alt="" id="BLOGGER_PHOTO_ID_5402375767801608738" border="0" /&gt;&lt;/a&gt;&lt;a&gt;&lt;br /&gt;So make your life easier and put those rules in order, first the default class, and then the active class in your css file.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tip 2:&lt;/span&gt; Know the classes for the Panels, here also we wil only need one class:&lt;br /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;ui-tabs.hide:&lt;/span&gt; This is the most important class, this class make the non active panels to hide&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;pre class="css" name="code"&gt;&lt;br /&gt;.ui-tabs-hide{&lt;br /&gt;display:none;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And that's it. Put this class and everything will be allright. Happy coding!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-5790885610544830447?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/5790885610544830447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=5790885610544830447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/5790885610544830447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/5790885610544830447'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2009/11/custom-css-tips-for-jquery-tabs.html' title='Custom Css Tips for Jquery Tabs'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0udjNlBOwVI/SvkT7jOIzyI/AAAAAAAAAps/n80y6CPwZxc/s72-c/classes.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-8524478574762714560</id><published>2009-08-27T20:19:00.000-07:00</published><updated>2009-08-27T22:40:17.482-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynamic'/><category scheme='http://www.blogger.com/atom/ns#' term='extension'/><category scheme='http://www.blogger.com/atom/ns#' term='library'/><category scheme='http://www.blogger.com/atom/ns#' term='libpq.dll'/><category scheme='http://www.blogger.com/atom/ns#' term='wamp'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='load'/><category scheme='http://www.blogger.com/atom/ns#' term='unable'/><category scheme='http://www.blogger.com/atom/ns#' term='wamp2'/><category scheme='http://www.blogger.com/atom/ns#' term='php_pgsql.dll'/><title type='text'>Fixing WAMP 2.0 i and not so friendly extensions</title><content type='html'>WAMP2 is like a defacto standard for developing and testing PHP in a Windows enviroment. Particulary i used to use Wamp 2.0A in a WinXP SP2 platform. Also i use Postgres instead of Mysql, just because Pg owns Mysql big time. But there was a problem...&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0udjNlBOwVI/SpdYeq1wdgI/AAAAAAAAAlo/7imbwCYWYJg/s1600-h/postgres_extension.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 322px; height: 298px;" src="http://4.bp.blogspot.com/_0udjNlBOwVI/SpdYeq1wdgI/AAAAAAAAAlo/7imbwCYWYJg/s400/postgres_extension.jpg" alt="" id="BLOGGER_PHOTO_ID_5374861964209059330" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;Also it didnt work in other WAMP versions&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Like a year ago i wanted to use the next version of Wamp2... the B version. But I couldn't. Well i &lt;span style="font-weight: bold;"&gt;could&lt;/span&gt; install the Wamp server but there was an error when i wanted to activate the php_pgsql extension, an error like...&lt;br /&gt;&lt;h1&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0udjNlBOwVI/SpdiWoMd2BI/AAAAAAAAAl4/OoGeTYYxQiY/s1600-h/mutha.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 124px; height: 124px;" src="http://1.bp.blogspot.com/_0udjNlBOwVI/SpdiWoMd2BI/AAAAAAAAAl4/OoGeTYYxQiY/s320/mutha.jpg" alt="" id="BLOGGER_PHOTO_ID_5374872821176326162" border="0" /&gt;&lt;/a&gt;PHP Unable to Load &lt;span style="color: rgb(204, 0, 0);"&gt;the muthaphucking &lt;/span&gt;Dynamic Library 'c:\blah\blah\ext\php_pgsql.dll' - The specified module could not be found. &lt;/h1&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-size:100%;"&gt;Yup, something like that.&lt;/span&gt;&lt;/span&gt; So after a lot of search and falses promises in google, i found the solution not only for that postgres extension, but for all other extensions that doesnt want to be loaded dinamically.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt; &lt;span style="font-weight: bold;"&gt;The Solution:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Make sure that you are using the right php.ini file when you....&lt;br /&gt;&lt;br /&gt;Ah Ha..Just kidding, the fast and furious solution is to search for this file &lt;span style="font-weight: bold; color: rgb(51, 51, 0);"&gt;libpq.dll &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;in your wamp directory and then copy it to WINDOWS/system32 &lt;/span&gt;if youre using win XP(sorry for those using Vista, btw Vista sucks).&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0udjNlBOwVI/SpdpcX-7WhI/AAAAAAAAAmA/VjC6nFIAblU/s1600-h/dafile.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 186px; height: 54px;" src="http://2.bp.blogspot.com/_0udjNlBOwVI/SpdpcX-7WhI/AAAAAAAAAmA/VjC6nFIAblU/s320/dafile.png" alt="" id="BLOGGER_PHOTO_ID_5374880616485181970" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;Hate &amp;amp; Love this file&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-size:100%;"&gt;And its done, you can now use Postgres  with WAMP2 version I (yes version I, not 2.. long story).&lt;br /&gt;&lt;br /&gt;I dont know exactly why its works, but it works and that the only thing i want to know. And for fixing others extensions, well u got to look for the access library of that extension and put it on system32, and replace it, if it is the case. Hope it helps someone. =)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;I found it looking &lt;a href="http://codingforums.com/showthread.php?t=46823"&gt;here&lt;/a&gt;., but they fix mysql, so this is my sand grain for the Postgres Project.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-8524478574762714560?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/8524478574762714560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=8524478574762714560' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/8524478574762714560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/8524478574762714560'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2009/08/fixing-wamp-20-i-and-not-so-friendly.html' title='Fixing WAMP 2.0 i and not so friendly extensions'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0udjNlBOwVI/SpdYeq1wdgI/AAAAAAAAAlo/7imbwCYWYJg/s72-c/postgres_extension.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-5363014962801477714</id><published>2009-05-15T10:30:00.000-07:00</published><updated>2009-05-15T10:42:42.603-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='contest'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='postgres'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>PostgreSQL.org Website Design Contest</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.itaakash.com/logo/logo_postgres-791620.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 158px;" src="http://www.itaakash.com/logo/logo_postgres-791620.gif" alt="" border="0" /&gt;&lt;/a&gt;Yup my favorite database is making a &lt;a href="http://www.postgresql.org/about/news.1081"&gt;contest&lt;/a&gt; to redesign his Website. Of course im givin' it a try so you will see me with one of my design there. This is the first time I go to a contest like this but i will make my best there.&lt;br /&gt;&lt;br /&gt;Of course there's a 2000$ prize that make me like much more Postgres, but the initial love is there. The price is divided between 1000$ for the winner Design and 1000$ for makin that Design go online.&lt;br /&gt;&lt;br /&gt;My strategy is to create the CSS without hacks, and then use some jquery to make it web 2.0&lt;br /&gt;&lt;br /&gt;So if youre a Web Designer you can go ahead and make your best.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-5363014962801477714?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/5363014962801477714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=5363014962801477714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/5363014962801477714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/5363014962801477714'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2009/05/postgresqlorg-website-design-contest.html' title='PostgreSQL.org Website Design Contest'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-5582217103263798816</id><published>2009-03-08T18:37:00.000-07:00</published><updated>2010-11-17T12:53:50.614-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='timestamp'/><category scheme='http://www.blogger.com/atom/ns#' term='time_to_sec'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='get seconds'/><category scheme='http://www.blogger.com/atom/ns#' term='postgres'/><title type='text'>Getting seconds from a timestamp PG and My</title><content type='html'>&lt;span style="color: rgb(0, 0, 0);"&gt;UPDATE 17nov2010: I Change the URL of my &lt;a href="http://www.iasoftgroup.com/xeno"&gt;uberfancyfull game&lt;/a&gt;, give it a try.. although its in Alpha Stage.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://www.iasoftgroup.com/xeno"&gt;my game&lt;/a&gt; i need to do a lot of date and time calculations which i prefer to do on the database instead of doing it on PHP. But unfortunately (or fortunately?) i had to change my DB from a Postgres DB to a Mysql DB a while ago.. but i finally bought a hosting with Posgtres 8.3.X.  So i had been practicing in getting the same data stuff from the two databases.&lt;br /&gt;&lt;br /&gt;And here comes the interesting stuff. Do you ever needed to get the difference between 2 timestamps and get it on seconds? Well let me show you the way:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;MYSQL Way:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;SELECT TIME_TO_SEC(TIMEDIFF(example_time,now())) AS clock FROM movements&lt;br /&gt;&lt;br /&gt;Ok let go step by step(uh baby!!):&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;1) &lt;/span&gt;&lt;span style="color: rgb(51, 51, 153); font-weight: bold;"&gt; TIMEDIFF(example_time,now())&lt;/span&gt; This will get the difference between example_time and now().  As you know now() get the actual time in the server. So lets say example_time is '2009/10/10 23:10:10' and now() give us '2009/10/10 23:05:05' the result will be  '00:05:05'&lt;br /&gt;, Thats ok but we need it in seconds so.&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;2)&lt;/span&gt;&lt;span style="color: rgb(51, 51, 153); font-weight: bold;"&gt; TIME_TO_SEC(time) &lt;/span&gt;This function get a time value and return that number in secods.. so in our example it will give us 5*60 +5 = 395 seconds.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;POSTGRES Way:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;SELECT EXTRACT(EPOCH FROM example_time - now())::integer AS clock FROM movements;&lt;br /&gt;&lt;br /&gt;Thast totally different from Msql .. let me give you a brief explanation fo the sintax:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153);"&gt;&lt;span style="font-weight: bold;"&gt;1) EXTRACT(EPOCH FROM example_time - now())&lt;/span&gt; &lt;/span&gt;The EXTRACT function is a tricky one, it will extract some part of the timestamp invlolved here , in this case the rest of example_time minus now(). Putting EPOCH first make the EXTRACT function transforms the answer of example_time - now() into seconds . Be carefull with putting SECOND instead of EPOCH.. that will extract only the secods of the answer (from 1 to 59), so in our example with EPOCH we will get 395.45.. and with SECONDS we will get  5.45..&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 153); font-weight: bold;"&gt;2) EXTRACT(...)::integer&lt;/span&gt; This will transform our answer into integers so intead of 395.45.. we will get 395.And just btw.. this will not round our answer, it will get just the integer part of the result.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;A POSTGRES Frebbie anyone?:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;This is a Postgres Function I created to simulate the &lt;span style="color: rgb(0, 0, 0);"&gt;TIME_TO_SEC() funtion in mysql. USe it free of charge ;)&lt;/span&gt;&lt;span style="color: rgb(51, 51, 153); font-weight: bold;"&gt;:&lt;br /&gt;&lt;br /&gt;CREATE OR REPLACE FUNCTION "public"."time_to_sec" (first timestamp, second timestamptz) RETURNS integer AS&lt;br /&gt;$body$&lt;br /&gt;DECLARE&lt;br /&gt;segundos integer;&lt;br /&gt;BEGIN&lt;br /&gt;segundos = EXTRACT(EPOCH FROM first - second)::integer;&lt;br /&gt;return segundos;&lt;br /&gt;END;&lt;br /&gt;$body$&lt;br /&gt;LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-5582217103263798816?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/5582217103263798816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=5582217103263798816' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/5582217103263798816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/5582217103263798816'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2009/03/getting-seconds-from-timestamp-pg-and.html' title='Getting seconds from a timestamp PG and My'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-3958009709773938110</id><published>2009-02-15T02:21:00.000-08:00</published><updated>2009-02-15T02:56:14.120-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='selector'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='id'/><category scheme='http://www.blogger.com/atom/ns#' term='numeric'/><title type='text'>Thougth of a Numeric ID in Jquery</title><content type='html'>I have devoted some of my time to create a &lt;a href="http://carlos.ika-world.com/xeno/view/battle.php"&gt;Web Browser Game&lt;/a&gt;. This game has a Map (It is just a  table with a lot of CSS to make it look like an Real Battle Map)... Well i started to work on it an created each  tag with a numeric ID.. heres some code example:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&lt;br /&gt;&lt;table class="battle_map"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr id="0"&gt;&lt;br /&gt;&lt;td class="t1" id="0"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="t1" id="1"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="t1" id="2"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="t1" id="3"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="t1" id="4"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;But when I tried to select a ROW from the table by its ID like &lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;$('tr#0')&lt;/span&gt;, it doesnt work. So debuggin and debuggin I figured out that using a numeric Id in any TAG make jquery crazy. There are two solutions for fixing this behaviour:&lt;br /&gt;&lt;br /&gt;A) Use eq to get the element of your desire: Something like&lt;span style="color: rgb(51, 51, 255);"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 102, 255); font-weight: bold;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;$('tr').eq(1)&lt;/span&gt; &lt;/span&gt;will make the trick&lt;br /&gt;&lt;br /&gt;B) Dont use a numeric ID at all: I think this is the best solution, so instead  use something like: &lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="xhtml"&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="s0"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Hope it help somebody with the same problem&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-3958009709773938110?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/3958009709773938110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=3958009709773938110' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/3958009709773938110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/3958009709773938110'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2009/02/thougth-of-numeric-id-in-jquery.html' title='Thougth of a Numeric ID in Jquery'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-100823695919784727</id><published>2008-10-29T05:14:00.000-07:00</published><updated>2008-10-29T06:37:04.351-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tags'/><category scheme='http://www.blogger.com/atom/ns#' term='border'/><category scheme='http://www.blogger.com/atom/ns#' term='playing'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Double Border Stuff - Playing with CSS</title><content type='html'>Yesterday i was in a hurry to create some fast CSS, so a copy&amp;amp;paste frenzy just came in, and i discovered a maybe usefull way for putting double border. Lets look at it more carefully:&lt;br /&gt;&lt;br /&gt;Imagine you have a div:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="html"&gt;&lt;br /&gt;&lt;div id="Unique"&gt;Hi Im unique &lt;/div&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now lets put some css to make it pretty&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="css"&gt;&lt;br /&gt;div#Unique{&lt;br /&gt;   background:#0033CC;&lt;br /&gt;   border:10px outset #ccc;&lt;br /&gt;   color:white;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Ok, maybe not sooo pretty,anyway we will have something like this:&lt;br /&gt;&lt;br /&gt;&lt;div id="Unique" style="color:white;background:#0033CC; border:10px outset #EEE"&gt;Hi Im unique&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What if we put some more border options in here, something like:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="css"&gt;&lt;br /&gt;div#Unique{&lt;br /&gt;   background:#0033CC;&lt;br /&gt;   border:10px outset #ccc&lt;br /&gt;   border-top:15px double outset #ccc;&lt;br /&gt;   border-bottom:15px double #ccc;&lt;br /&gt;   color:white;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Walla!!!. Our DIV get a makeover and finish like this:&lt;br /&gt;&lt;br /&gt;&lt;div id="Unique2" style=" text-align:center;color:#FFFFFF;font-weight: bold;font-variant:small-caps;background:#0033CC;border:10px outset #ccc;border-top:20px double  #ccc;border-bottom:15px double #ccc; &lt;br /&gt; margin:10px;&lt;br /&gt; padding:0px 50px;"&gt;Hi Im hell more unique :P&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Notice that here this:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="css"&gt;&lt;br /&gt;div#Unique{&lt;br /&gt;   border:red;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;is equal to say:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="css"&gt;&lt;br /&gt;div#Unique{&lt;br /&gt;   border-left:red;&lt;br /&gt;   border-right:red;&lt;br /&gt;   border-top:red;&lt;br /&gt;   border-bottom:red;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So is nothing new but you can create a beatifull effect using only pure CSS.&lt;br /&gt;&lt;br /&gt;Better yet i was testing it and its seems like it work on Firefox 3, Opera 9.5 and believe it or not in IE 6.0!!!. That just some kick-ass CSS!!!. Well not really but it may be helfull. See ya next deculture ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-100823695919784727?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/100823695919784727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=100823695919784727' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/100823695919784727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/100823695919784727'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2008/10/double-border-stuff-playing-with-css.html' title='Double Border Stuff - Playing with CSS'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-2132157891889337973</id><published>2008-10-19T10:47:00.000-07:00</published><updated>2008-10-19T10:52:06.446-07:00</updated><title type='text'>How to create a Tag Cloud in Blogger</title><content type='html'>In my quest for a decent tag cloud system for my other &lt;a href="http://www.taurencreate.blogspot.com"&gt;blog&lt;/a&gt;, i have found this&lt;br /&gt;&lt;br /&gt;The Tag Cloud for Blogger create in this page/blog: &lt;a href="http://phy3blog.googlepages.com/Beta-Blogger-Label-Cloud.html"&gt; phydeaux3 &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have just tested it in my other blog and it just works!!!. I higli recommend it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-2132157891889337973?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/2132157891889337973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=2132157891889337973' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/2132157891889337973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/2132157891889337973'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2008/10/how-to-create-tag-cloud-in-blogger.html' title='How to create a Tag Cloud in Blogger'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-142546728534527055</id><published>2008-10-16T15:19:00.001-07:00</published><updated>2008-10-17T05:19:47.388-07:00</updated><title type='text'>1 Crazy Way to use json - json precharge</title><content type='html'>So youre a web developer doing some  boring stuff with forms, lets put us in this scenario: You have a Typical Web Form generated with PHP. Also in the form you have some mighty select boxes called &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;State&lt;/span&gt; and &lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;City&lt;/span&gt;, so every time you change the&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;span style="font-weight: bold;"&gt;State&lt;/span&gt;&lt;/span&gt;, the&lt;span style="color: rgb(51, 255, 51); font-weight: bold;"&gt; &lt;span style="color: rgb(0, 102, 0);"&gt;City&lt;/span&gt;&lt;/span&gt; select box change. So What?, you will say,that stuff is ajax for sure. But what happens with the inital load of info, i mean how do you fill the select boxes the first time you access the page?&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0udjNlBOwVI/SPfs4-kC6QI/AAAAAAAAASA/GvosatWiUMc/s1600-h/selebox.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_0udjNlBOwVI/SPfs4-kC6QI/AAAAAAAAASA/GvosatWiUMc/s320/selebox.jpg" alt="" id="BLOGGER_PHOTO_ID_5257931553589356802" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-weight: bold;"&gt;The Form in all his splendor&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Well there where three options... until now ;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;A) Old School Server Madness:&lt;/span&gt; Yeah the standard to choose... in 2001. In this scenario the form is created with PHP, and when the selectbox of &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;State&lt;/span&gt; change, you send a new almost identical page via GET or POST method with a fresh refill of&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt; Cities&lt;/span&gt; according to the state you send. This was the old way and i still see that methood  going around in some pages. So why not use that?&lt;br /&gt;&lt;br /&gt;Well fisrt is slow as hell and well.. AJAX  anyone?, but the biggest reason why you should'nt work like that is because the server  dont know if what you try to do when you send the POST/GET is getting new cities or sending the complete form filled, so you play with unnecesary hidden variables or check that all the fields are not empty,well just more work for such a simple thing&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;B)Server Precharge the Data,and Ajax afterward: &lt;/span&gt;This scenario is now the standard way to solve this problem, but not the brigthess. Here you fill the&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;first round of &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;cities &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;with PHP&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt; &lt;/span&gt; and when the select box change, you do it via AJAX&lt;span style="font-weight: bold;"&gt;, &lt;/span&gt;so you send the petition, the server create the city DOM (i mean the options tags with duh.. the options), and then Mr Javascript take charge and put the DOM into the selectbox. So what's wrong with this way? Well nothing is wrong but it can be better.Think again little grasshoper, why build the DOM from the server when you can build it on the client.Imagine if you free the server for all the charge of creating DOM, say goodbye to loops and whiles and if statements. If you know what MVC means this can a way to make things better. So why not send the data in a naked stance to the client and let them write his DOM. Well, let me introduce C guy.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;C)Ajax Semigod takes the (pre)charge:&lt;/span&gt; This is like the next step, like going from an ATARI 2600, to a BlueGene that kick Gasparov Ass. In this scenario (lots of scenarios in my blog) you send the form empty, and you use javascript to create the DOM based on naked data send from the server using eiher XML that is slow, or using json, that is fast. So json it is. Now when the page finish to load the first time, all the select boxes are empty,so you use ajax to fill them. Well here you get a bonus over the other methods, you put  some of the work of the server into the clients (da browsers). So the Server just have to send Data in json, in PHP you do something like this:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="php"&gt;&lt;br /&gt;&lt; ?php echo json_encode($array_of_cities) ?&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;and that's it, you get a jsonized var that you can send to the client.He will do the rest. But wait, isnt this alot of unnecesary calls to the server? I mean that can be done faster if the server draw the first selects boxes and when we need a fresh supplies of cities we ajax it until fullfitness?. Yes but you are creating a new deja vu here, the client and the server are doing the same thing. So was wondering a few days ago a better way todo it, so here it is the:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;D)Json Precharge Overdose:&lt;/span&gt; Well i guess there are alots of smartguys that have discover this method but , i never see  any reference to this so here it is. Its a fusion from B and C.&lt;br /&gt;The first load of the form, you send the page selectboxes unfilled but you also print the PHP cities data (naked data), and make it a global variable in javascript. How ydo you do that?&lt;br /&gt;&lt;br /&gt;Well in PHP you do something like this:&lt;br /&gt;&lt;pre name="code" class="php"&gt;&lt;br /&gt;&lt; ?php echo "var naked_data= eval('$array_of_cities') "?&gt;&lt;br /&gt;&lt;/pre&gt;And then when the page load, you create with javascript the options DOM for the city select box using the global variable printed with PHP. The next time you call for fresh data, you just ask for the same fucntion that get you the json and recreate the selectbox DOM again using javascript. If you think in a MVC way, you are just effectively separating  the view from the controller. So now you free the server forever of building the page DOM and you dont get unnecesary AJAX call to the server. But this method does have some problems:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The fact that youre using globals variablesin javascript can make your life a living hell in large projects. But not so if you use a javascript framework like jquery, or use object in javascript, so if you have some order in your code, this can help alot.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Using PHP to print javascript code, thats not good, but remember that youre not creating &lt;span style="font-weight: bold;"&gt;all &lt;/span&gt;the javascript in the page. You re just sending data from the server to the client. so the client can work with it. &lt;/li&gt;&lt;/ol&gt;So next post in my blog wil be putting this topractice usign jquery and php, stay tune&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-142546728534527055?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/142546728534527055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=142546728534527055' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/142546728534527055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/142546728534527055'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2008/10/1-way-to-use-json-in-crazy-way-json.html' title='1 Crazy Way to use json - json precharge'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0udjNlBOwVI/SPfs4-kC6QI/AAAAAAAAASA/GvosatWiUMc/s72-c/selebox.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-647206179764010431</id><published>2008-10-13T18:30:00.000-07:00</published><updated>2008-10-14T15:22:09.715-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='social bookmarking'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>What is &amp; Why Social Bookmarking</title><content type='html'>Lets say you have you Blog ready to be launch and be read by a lot of people, but nobody comes, so what do you do?&lt;br /&gt;&lt;br /&gt;Well you can tell your friends about your "wonderfull" blog, then you have now 10 people, well let's say 20 people (youre a very friendly guy, dont you?) that &lt;span style="font-style: italic;"&gt;knows&lt;/span&gt; about your blog, well thats just not enough, maybe you will spread the notice in all the contacts of your mail, until you get busted for spammer or maybe you think its a good idead to go on rampage in to the first chat room that you find googling, but guess what, nobody in that chat room give a dimme for your blog.&lt;br /&gt;&lt;br /&gt;This same question arise again and again in your head,asking yourself  what should i do to bring more people to my blog/webpage?, well, there an answer, welcome to the world of &lt;a href="http://en.wikipedia.org/wiki/Social_bookmarking"&gt;&lt;span style="font-weight: bold;"&gt;Social&lt;/span&gt; &lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Social_bookmarking"&gt;&lt;span style="font-weight: bold;"&gt;Bookmarking&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now, in this so called is social bizarre bookmarking  world, you are read by strangers that seek information that can have some relation with your blog. How does those strangers now  your blog have something related to what they are searching?, because of the &lt;span style="font-style: italic;"&gt;tags&lt;/span&gt;, little words that describe what is the subject of your blog. For example this Post have the &lt;span style="font-style: italic;"&gt;social bookmarking&lt;/span&gt; tag, so anyone looking for social bookmarking could find this post and all because of the migthy&lt;span style="font-style: italic;"&gt; tags&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So, that doesn't resolve our predicament, or maybe yes (&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0udjNlBOwVI/SPQJKZ4ZEjI/AAAAAAAAARE/zbIEHQyxK6k/s1600-h/muahahah.gif"&gt;&lt;img style="cursor: pointer; width: 20px; height: 20px;" src="http://1.bp.blogspot.com/_0udjNlBOwVI/SPQJKZ4ZEjI/AAAAAAAAARE/zbIEHQyxK6k/s200/muahahah.gif" alt="" id="BLOGGER_PHOTO_ID_5256836739398963762" border="0" /&gt;&lt;/a&gt;please, imagine Mr burns laughing hard),if that random dude, find the post useful ( or funny, hot, cool, whatever) he will feel the need to share it to the world, ergo, he &lt;span style="font-style: italic;"&gt;socialbookmark&lt;/span&gt; it, which means that he will post your blog in a page that shares the dude's personal bookmarks to the  world. And as a plus, people  can find your blog by the tags assgined toyour post.&lt;br /&gt;&lt;br /&gt;So anyone seeing that repository has a chance to see your post and visit it, and if he too find your post  worth for some socialbookmarking,  well tomake things shorter, you can become very famous, (and maybe your webpage will go down by the excesive amount of visitors, yup that happens a lot).&lt;br /&gt;&lt;br /&gt;Well actually &lt;a href="http://www.wakeuplater.com/marketing/is-digg-reddit-traffic-useless-45-days-later.aspx"&gt;some guys&lt;/a&gt; say that maybe those readers are not quality readers, well for starters i think any publicity is good, but keep in mind that socialbookmarking is a sword of double edge&lt;br /&gt;&lt;br /&gt;Well look at this video, it explain alot better than me, what socialbookmarking is&lt;br /&gt;&lt;br /&gt;&lt;object width="400" height="324"&gt;&lt;param name="movie" value="http://www.youtube.com/v/x66lV7GOcNU&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/x66lV7GOcNU&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Happy deculture ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-647206179764010431?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/647206179764010431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=647206179764010431' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/647206179764010431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/647206179764010431'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2008/10/what-is-why-social-bookmarking.html' title='What is &amp; Why Social Bookmarking'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0udjNlBOwVI/SPQJKZ4ZEjI/AAAAAAAAARE/zbIEHQyxK6k/s72-c/muahahah.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-8458697211076530344</id><published>2008-10-13T14:08:00.000-07:00</published><updated>2008-10-13T15:15:46.854-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gagdet'/><category scheme='http://www.blogger.com/atom/ns#' term='syntax highligther'/><title type='text'>Syntax Highlighter on Blogger - Color Madness</title><content type='html'>So, youre a uberbloggerweb designer in a mission to create the perfect css and now you want to share it in your blog so you can make your ego feel good. But oh surprise! you want your code to look better that this mess:&lt;br /&gt;&lt;br /&gt;&lt;div active="true" class="panelNode panelNode-css contextUID=47417"&gt;&lt;div class=""&gt;&lt;span style="font-size:78%;"&gt;#header #header-menu ul li {&lt;br /&gt;color:#FFFFFF;&lt;br /&gt;float:left;&lt;br /&gt;font-family:Verdana;&lt;br /&gt;font-size:11px;&lt;br /&gt;font-size-adjust:none;&lt;br /&gt;font-stretch:normal;&lt;br /&gt;font-style:normal;&lt;br /&gt;font-variant:normal;&lt;br /&gt;font-weight:bold;&lt;br /&gt;height:22px;&lt;br /&gt;line-height:22px;&lt;br /&gt;margin-right:6px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#header #header-menu ul {&lt;br /&gt;list-style-type:none;&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;maybe a little more like this (heaven incarnate css):&lt;br /&gt;&lt;div active="true" class="panelNode panelNode-css contextUID=47417"&gt;&lt;div class=""&gt;&lt;pre name="code" class="css"&gt;#header #header-menu ul li{&lt;br /&gt;color:#FFFFFF;&lt;br /&gt;float:left;&lt;br /&gt;font-family:Verdana;&lt;br /&gt;font-size:11px;&lt;br /&gt;font-size-adjust:none;&lt;br /&gt;font-stretch:normal;&lt;br /&gt;font-style:normal;&lt;br /&gt;font-variant:normal;&lt;br /&gt;font-weight:bold;&lt;br /&gt;height:22px;&lt;br /&gt;line-height:22px;&lt;br /&gt;margin-right:6px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#header #header-menu ul {&lt;br /&gt;list-style-type:none;&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;How do you do that? , Well wonder no more my egomaniac developer cuz im bringing ya... &lt;b&gt;&lt;a href="http://fazibear.blogspot.com/2007/09/blogger-syntax-higlighter.html"&gt;FaziBear Blogger Syntax Highlighter!&lt;/a&gt; &lt;/b&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span style="color: rgb(102, 102, 102);"&gt;Step1:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span&gt;Go to &lt;a href="http://fazibear.googlepages.com/blogger.html"&gt;Fazibear gadget page&lt;/a&gt;  and:&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0udjNlBOwVI/SPO8vBRHO5I/AAAAAAAAAQ0/3W9wV3Z6EZM/s1600-h/color+syntax.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_0udjNlBOwVI/SPO8vBRHO5I/AAAAAAAAAQ0/3W9wV3Z6EZM/s400/color+syntax.jpg" alt="" id="BLOGGER_PHOTO_ID_5256752706051586962" border="0" /&gt;&lt;/a&gt;(1) Click here and (2)Click there (oh god this is so easy).&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153); font-weight: bold;"&gt;&lt;span style="color: rgb(102, 102, 102);font-size:130%;" &gt;Step2:&lt;/span&gt; &lt;/span&gt;Create a new Post, put your &lt;span style="font-weight: bold;"&gt;code-to-be-colored&lt;/span&gt; on, go to Edit HTML,and  surround your code like this:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0udjNlBOwVI/SPPDWIQCTtI/AAAAAAAAAQ8/bmNNvfvn1eg/s1600-h/code1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_0udjNlBOwVI/SPPDWIQCTtI/AAAAAAAAAQ8/bmNNvfvn1eg/s400/code1.jpg" alt="" id="BLOGGER_PHOTO_ID_5256759975010782930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:78%;"&gt;Yes, it is an image, and yes you have to type it, you lazy developer&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;you can choose different flavors (replace &lt;span style="color: rgb(255, 0, 0);"&gt;c-sharp&lt;/span&gt; with the alias of your choice):&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table style="border-collapse: collapse; text-align: left; margin-left: auto; margin-right: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt;&lt;strong&gt;Language&lt;/strong&gt; &lt;/td&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; &lt;strong&gt;Aliases&lt;/strong&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; C++ &lt;/td&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; &lt;tt&gt;cpp&lt;/tt&gt;, &lt;tt&gt;c&lt;/tt&gt;, &lt;tt&gt;c++&lt;/tt&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; C# &lt;/td&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; &lt;tt&gt;c#&lt;/tt&gt;, &lt;tt&gt;c-sharp&lt;/tt&gt;, &lt;tt&gt;csharp&lt;/tt&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; CSS &lt;/td&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; &lt;tt&gt;css&lt;/tt&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; Delphi &lt;/td&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; &lt;tt&gt;delphi&lt;/tt&gt;, &lt;tt&gt;pascal&lt;/tt&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; Java &lt;/td&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; &lt;tt&gt;java&lt;/tt&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; Java Script &lt;/td&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; &lt;tt&gt;js&lt;/tt&gt;, &lt;tt&gt;jscript&lt;/tt&gt;, &lt;tt&gt;javascript&lt;/tt&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; PHP &lt;/td&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; &lt;tt&gt;php&lt;/tt&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; Python &lt;/td&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; &lt;tt&gt;py&lt;/tt&gt;, &lt;tt&gt;python&lt;/tt&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; Ruby &lt;/td&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; &lt;tt&gt;rb&lt;/tt&gt;, &lt;tt&gt;ruby&lt;/tt&gt;, &lt;tt&gt;rails&lt;/tt&gt;, &lt;tt&gt;ror&lt;/tt&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; Sql &lt;/td&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; &lt;tt&gt;sql&lt;/tt&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; VB &lt;/td&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; &lt;tt&gt;vb&lt;/tt&gt;, &lt;tt&gt;vb.net&lt;/tt&gt; &lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; XML/HTML &lt;/td&gt;&lt;td style="border: 1px solid rgb(170, 170, 170); padding: 5px;"&gt; &lt;tt&gt;xml&lt;/tt&gt;, &lt;tt&gt;html&lt;/tt&gt;, &lt;tt&gt;xhtml&lt;/tt&gt;, &lt;tt&gt;xslt&lt;/tt&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;more easy, impossible, just remember that this gagdet is only for Blogs on Blogger.&lt;br /&gt;&lt;br /&gt;Say thanks to the maker of this gagdet, the great Fuzzyb..  i mean &lt;a href="http://fazibear.blogspot.com/2007/09/blogger-syntax-higlighter.html"&gt;FazyBear&lt;/a&gt;&lt;br /&gt;He created the gagdet based on this &lt;a href="http://code.google.com/p/syntaxhighlighter/"&gt;Library&lt;/a&gt;. This library is all in javascript so you can use it if you use Wordpress. But i wont tell you how to do it on Wordpress ;)&lt;br /&gt;&lt;br /&gt;See ya next deculture&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-8458697211076530344?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/8458697211076530344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=8458697211076530344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/8458697211076530344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/8458697211076530344'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2008/10/syntax-highlighter-on-blogger.html' title='Syntax Highlighter on Blogger - Color Madness'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0udjNlBOwVI/SPO8vBRHO5I/AAAAAAAAAQ0/3W9wV3Z6EZM/s72-c/color+syntax.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-4769037751435582341</id><published>2008-10-11T21:34:00.000-07:00</published><updated>2008-10-13T13:13:49.740-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gadget'/><title type='text'>TwitterTalk -Make your own Twitter Avatar</title><content type='html'>&lt;span style="font-weight: bold;font-size:100%;" &gt;What the heck is this gagdet?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;Basically we put the last message of our twitter account into a talkballlon like a comic. We can put it in an image and make it "talk". Here, look at this example on my experimental blog &lt;a href="http://taurencreate.blogspot.com/"&gt;TaurenCreate&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_0udjNlBOwVI/SPGCtUED5wI/AAAAAAAAAQM/Gh0M0kYBxn0/s1600-h/twittertalkexample.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_0udjNlBOwVI/SPGCtUED5wI/AAAAAAAAAQM/Gh0M0kYBxn0/s320/twittertalkexample.png" alt="" id="BLOGGER_PHOTO_ID_5256125955109545730" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;font-size:78%;" &gt;Now see the badass tauren become alive with all your nonsense. Happy now?, No?, well Im sure Mr Tauren is happy now.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;br /&gt;[Awesome Dude]||[I hate you, you Tauren lover], so, How do i do it?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Well you will need some frigging knowledge in CSS and tweak some stuff inside your blog HTML, that's it, now  lets do it baby&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 153, 153);"&gt;Step 0:&lt;/span&gt;&lt;span style="color: rgb(153, 153, 153);font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;Create a Twitter Account an log in, well this is kinda obvious, so do it now  if you dont want to feel bad for not having one acount already ^^.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Step 1:&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 153, 153);font-size:100%;" &gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;Go to http://twitter.com/badges/blogger and do like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0udjNlBOwVI/SPGFYWUArdI/AAAAAAAAAQU/rxbds0RlyYY/s1600-h/twittercode.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 581px; height: 356px;" src="http://1.bp.blogspot.com/_0udjNlBOwVI/SPGFYWUArdI/AAAAAAAAAQU/rxbds0RlyYY/s400/twittercode.png" alt="" id="BLOGGER_PHOTO_ID_5256128893470944722" border="0" /&gt;&lt;/a&gt;               1) Select only one update, bitchslap u for thinking different than me&lt;br /&gt;        2)Select no Title and enjoy&lt;br /&gt;        3)Make a click in grab the &lt;span style="color: rgb(255, 0, 0);font-size:130%;" &gt;code&lt;/span&gt; and copy it, now comes the funny part&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Step 2:&lt;/span&gt;&lt;/span&gt; Go to Design-&gt;Page Element and...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_0udjNlBOwVI/SPGJ6I_yzFI/AAAAAAAAAQc/5GF46EtdLI0/s1600-h/bloogerinsert.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_0udjNlBOwVI/SPGJ6I_yzFI/AAAAAAAAAQc/5GF46EtdLI0/s400/bloogerinsert.png" alt="" id="BLOGGER_PHOTO_ID_5256133872058551378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1) Add a New Gagdet&lt;br /&gt;2) Select HTML/Javascript&lt;br /&gt;3) Paste the &lt;span style="color: rgb(255, 0, 0);font-size:130%;" &gt;code&lt;/span&gt; and save it.&lt;br /&gt;4) BE happy, we almost finish&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 192, 192);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Step 3:&lt;/span&gt;&lt;/span&gt; now the not so funny part, go to Design-&gt;HTML Edit and..&lt;br /&gt;a) Save your template for the love of god&lt;br /&gt;b) Put this CSS whenever you feel comfortable (maybe after the body tag, just maybe)&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;pre name="code" class="css"&gt;&lt;br /&gt;  /* Main - talkbox */&lt;br /&gt;  #twitter_div{&lt;br /&gt;     width:270px;&lt;br /&gt;     padding:10px;&lt;br /&gt;     list-style-type:none;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;   #talkbar {&lt;br /&gt;   width: 312px;&lt;br /&gt;   font: normal 12px Verdana;&lt;br /&gt;   color: #ffffff;&lt;br /&gt;   margin: 180px 0 20px 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#talkbar-top {&lt;br /&gt;   background: url(http://lh3.ggpht.com/designbyjeeba/SPDRDpyk6hI/AAAAAAAAAP4/SekxCACvl9U/talbox-top.png) no-repeat;&lt;br /&gt;           padding-top:16px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#talkbar-bottom {&lt;br /&gt;   background: url("http://lh3.ggpht.com/designbyjeeba/SPDgJvWkl6I/AAAAAAAAAQE/6NJp7-S9TCA/talbox-bottom.png") no-repeat left bottom;&lt;br /&gt;           padding-bottom:22px;&lt;br /&gt;}&lt;br /&gt;   #talkbox1 {&lt;br /&gt;           padding-left:10px;&lt;br /&gt;           width: 312px;&lt;br /&gt;   font: normal 12px Verdana;&lt;br /&gt;   color: #ffffff;&lt;br /&gt;           background:white;&lt;br /&gt;           background: url("http://lh4.ggpht.com/designbyjeeba/SPDRCwiw2YI/AAAAAAAAAPo/fW0GsA55cGg/talbox.png") repeat-y;&lt;br /&gt;           color:black;&lt;br /&gt;           margin-top:65px;&lt;br /&gt;   }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;c)Now search for the widget tag that contains the &lt;span style="color: rgb(255, 0, 0);"&gt;HTML&lt;/span&gt; code you just insert in Step2, and put it between this code (in this example the red part is the widget tag code you just create&lt;span style="font-size:78%;"&gt;).&lt;br /&gt;&lt;br /&gt;      &lt;!-- Talkbar --&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-size:100%;"&gt;d) Now comes the tricky CSS part that i have been warning you about, you have to paste the code of (c) into your blog HTML. Paste it near the position of your avatar image (maybe inside of the sidebar or inside a new div,the choice is yours) and modify my CSS at pleasure. This kind of talk-ballon should be put as a float or&lt;/span&gt;&lt;/span&gt; inside a floated tag. Using &lt;a href="https://addons.mozilla.org/es-ES/firefox/addon/1843"&gt;firebug&lt;/a&gt; can help a lot in the process.&lt;br /&gt;&lt;br /&gt;And its done, hug yourself for making this gadget work. Well dont forget to digg me if you like this&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-4769037751435582341?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/4769037751435582341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=4769037751435582341' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/4769037751435582341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/4769037751435582341'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2008/10/twittertalk-da-talking-avatar-xd.html' title='TwitterTalk -Make your own Twitter Avatar'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0udjNlBOwVI/SPGCtUED5wI/AAAAAAAAAQM/Gh0M0kYBxn0/s72-c/twittertalkexample.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9191485066716304771.post-5641765642449422943</id><published>2008-07-28T07:35:00.000-07:00</published><updated>2008-10-12T19:22:50.161-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Design By Jeeba</title><content type='html'>Hi and welcome to Design By Jeeba, this blog is about Web Development, Templates Widgets &amp;amp; Gadgets. I have &lt;a href="http://taurencreate.blogspot.com"&gt;another blog&lt;/a&gt; where i experiment with my crazy ideas.&lt;br /&gt;&lt;br /&gt;ola y Bienvenidos a Jeeba Design, aqui trato los temas de diseño web y pequeños tips y gadgets que me voy imaginando. Y como bono todo viene con ejemplos desarrollados. Actualmente tengo otra blog sobre &lt;a href="http://taurencreate.blogspot.com"&gt;Creacion de Juegos Web&lt;/a&gt;, que la utilizo como conejillo de indias jeje.Un saludo y hasta la siguiente ocasion&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9191485066716304771-5641765642449422943?l=designbyjeeba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://designbyjeeba.blogspot.com/feeds/5641765642449422943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9191485066716304771&amp;postID=5641765642449422943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/5641765642449422943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9191485066716304771/posts/default/5641765642449422943'/><link rel='alternate' type='text/html' href='http://designbyjeeba.blogspot.com/2008/07/design-by-jeeba.html' title='Design By Jeeba'/><author><name>Jeeba</name><uri>http://www.blogger.com/profile/02840151957865072152</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_0udjNlBOwVI/SO7NMTdt6aI/AAAAAAAAAL4/NCi-JP6QQzY/S220/msg06.jpg'/></author><thr:total>0</thr:total></entry></feed>
