2011
07.06

That dreadful ORA-12154 error

I lost hours trying to resolve this:

“ORA-12154: TNS:could not resolve the connect identifier specified”

It requires lots of determination not to swear and rant about the possible causes of this message but in my case (Windows 7 64bits), it turns out that Toad doesn’t like to be installed in a folder with ‘()’s like ‘C:\Program Files (x86)’

I installed in C:\Toad\ and the problem is resolved.

Of course to reach there I had to resolve some other issues (for the same error message) like:
– Installing 32bits version of Oracle Client (10.2.0.1)
– Instant client didn’t work for me.

Hope it helps.

Author: (8)

2011
07.06

Finish UI first

If you are one of those unlucky guys who have to live in both worlds, design/develop the front end, and the server side functionality and test, and … you got me… I find it quite effective to start and finish a fully functional UI first than start coding the back end.
* By fully I mean the 80%-20% fully.
* Even if you write some mock-up code to mimic your biz logic related objects, it’s OK, and takes generally less time than you think to throw away the prototype and replace it with the real stuff.
* This might be a personal trait/flaw, but having something visual in front of me helps me to understand the problem better.

Author: (8)

2010
02.24

dijit startup()

Here is something that I keep forgetting all the time.
Lifecycle methodstartup()is called for widgets in template, but not for your programmatically created widgets. So for them, you have to call it manually after creating the widget.

Author: (8)

2009
12.29

There is an (in)famous error message in DWR which usually troubles newcomers. When you do a remote call, you get:

ERROR [DefaultConverterManager] No converter found for 'java.lang.Class'

It basically tells you that you have some member of type Class in the return type of your remote method, or in one of his child members’ fields.
It’s up to the author of that class to convert that field or not. But if you do not intend to convert Class field, and you’re sure that none of your parameter types or return values do contain a Class field, check for a enum in one of these. Having an enum raises (naturally) the same exception, and it’s easily overlooked. If so just add an enum converter and it’s done:

<convert converter="enum" match="your.full.package.EnumName"/>

PS: I assume this is also valid not just for return types but also parameters which tries to set a class name from javascript

Author: (8)

2009
12.11

Multiple Internet Explorer versions side by side

I found this cool collection which install every single IE version (I mean it, there is even Internet Explorer 1.0), and you can use them simultaneously to test your web apps easily.

http://finalbuilds.edskes.net/iecollection.htm

Author: (8)

2009
12.10

How to target non IE browsers

Internet Explorer allows us to target its different versions with conditional comments:

<!--[if IE 6]>
Special instructions for IE 6 here
<![endif]-->

But how to target non-IE browsers is a little bit more tricky:

<!--[if !IE]><!-->
<h1>You are NOT using Internet Explorer</h1>
<!--<![endif]-->

Mind the two extra <!-- That’s all!..

Source: http://www.cssplay.co.uk/menu/conditional.html

Author: (8)

2009
12.09

Getting rid of the update.locale is missing exception in Firebug

On Linux, you often get on random basis an annoying exception saying that update.local is missing bla bla.

Just touch this file in the proper directory

$sudo touch /usr/lib/{location_of_firefox}/update.locale

{loc_of_firefox} on my machine (Fedora) and on Ubuntu is:

/usr/lib/firefox-3.5.5

on Gentoo:

/usr/lib/mozilla-firefox

Author: (8)

2009
11.12

Css: How to center a variable width content

Centering a fixed width div is relatively easy

div#Foo {
   margin: 0 auto;
   left: 0;
   right: 0;
   width: 500px;
   position: absolute;
}

Just place this in positioned box and that’s all.

But if the thing is gonna be variable width, it’s a little bit more complicated.

* Put your content in a floated div, and give it a left: -50%, make it relative:

{
   position: relative;
   float: left;
   left: -50%;
}

* Put this div in another floated div, and this time with:

{
   position: relative;
   float: left;
   left: 50%;
}

Voila!

source: http://www.tightcss.com/centering/center_variable_width.htm

Author: (8)