Skip to main content

Posts

Showing posts from 2011

Spring Roo is amazing

Developer spend 75% of their time working on boiler-plate code. Spring Roo do amazing job of doing that for you and gets you started really-2 fast. After that you can follow the application curve if writing the business logic. Why Roo? Define the class and its relation it will generate the DB using hibernate  you can generate the controller's ( and UI) from the same classes with CURD operation supported test code is also gets generated  code generated is clean and easy to modify dependency resolution happens through maven once you are done projects are eclipse ready easy to get rid of metadata for production  Other tools: I came across Grails but i needed a framework which will generate the java so roo was the better choice for me Video helped me get started:  http://s3.springsource.com/MRKT/roo/2010-01-Five_Minutes_Roo.mov

Netbeans or Eclipse which one to choose

There are so many articles on the web discussing this, what I am going to do is just briefly explain the pros and cons of each which will help you choose better. Description Netbeans Eclipse Plugins It helps you extend the reach of your IDE to newer technologies without changing the IDE Good Good Code Refactor Reflects the change made in all the references Decent Good Getting Started The time it takes to get going on with your application Good Decent Enterprise Support Usage in big companies, spending effort in eclipse Decent Good Debugging Easy in which you can find a problem Decent Good UI Looks old Decent Good Spell Check Not Pres...

First CXF-RS service with Tomcat web-container

Looking to get started on CXF-RS, well that was what i was looking for and there are load of articles doing however none of them provide sufficient bullet points to make me understand how the control is following are how to debug the application if something is not working. Well that's what i am going to write here. Following are components you need to get started with first CXF-RS: Tomcat Eclipse (or some equivalent IDE) Spring Create a dynamic web project in the eclipse (this is nothing but a simple web project which can deployed and can run when deployed in the web container like Tomcat). Keep your eye on the bold terms featuring in the files... Start will writing the web.xml descriptor file. contextConfigLocation WEB-INF/ deploy-context.xml org.springframework.web.context.ContextLoaderListener CXFServlet CXF Servlet org.apache.cxf.transport.servlet.CXFServlet 1 ...

Get Rid of scrollbars on Scroller

If you are working on flex mobile project. You would be facing the feature of scrollbars appearing whenever you scroll through the list or widget with-in the scroller component. If these has become a problem for you and you need to get rid of the feature follow the steps mentioned here: Right a new script extending from the scroller  Observe vertical and horizontal scrollbars tags which are auto generated  modify them and insert the property alpha=0  Include this skin in your scroller and you are done 

New in Dolphin - Java 7

With Dolphin java introduced cool new features like: 1. Strings in “switch” block      switch(s) {           case “Apple”:           // do something;           case “Orange”:           // do something;           default :      }      2. <> (Diamond) operator – Type inference for generic instance creation E.g List > list = new ArrayList>(); vis-à-vis List > list = new ArrayList <> (); Empty diamond braces is required and it's not a typo :).      3. Single Catch for multiple Exceptions with "|" operator           try {     ...

Convert XML to ArrayCollection

If you have an XML and want to use it in the spark's list component, than you need to first convert it into ArrayCollection and that's what we are doing in this example: Lets assume you have following XML: varstrXML:XML = <blog>         < item>               <title>Blog by Subodh Gupta                < author>Subodh Guptaauthor >        < /item> </blog> ; var xml:XML = new XML(strXML); var xmlDoc:XMLDocument = new XMLDocument(xml); var decoder:SimpleXMLDecoder = new SimpleXMLDecoder(true); var resultObj:Object = decoder.decodeXML(xmlDoc); var ac:ArrayCollection ; if(resultObj. blog .hasOwnProperty(" item ")) {       if(resultObj. blog . item is ArrayCollection)       {       ac = resultObj.root.element; } } that's it you are done. ...

Divide and Conquer by Java Threads

Suppose you have task which collects the data the from various sources and creates a Object containing all this information e.g. information is distributes over various databases, websites and some you need to calculate based on that data. The single threaded application works fine with small amount of data however as data starts growing single threads shows its limitation. There is a interesting property of threads which comes to our rescue. Thread maintains the private copy of object on which it operates called as w orking copy in which it keeps the local modification which are made to the object. While main memory contains the master copy of every object. After all threads stop executing all the working copies are merged into the master copy. This becomes the curse in case of multiple objects modify the same field in the object because merging back creates the confusion and results in a unpredictable behavior. However if each thread works on the different field of the object me...

Cool solution for Cross domain

Just follow these steps to make it work: Compose your response as an JSON let say responseObject variable represent this JSON string/object Wrap the JSON response as an argument to a method call e.g. helloMethod (responseObject); where helloMethod is the method name Define this method( helloMethod ) which handles this response in the client side Lets take complete working sample: assume JSON Object as str = {"user":{"fname":"subodh","lname":"gupta","type":"blog","category":"tech"}} handleUser(str); function handleUser(str){ alert(str.user.fname);} just to complete the solution look at call below: jQuery.getJSON("http://subodh.blog.com/servlet?user=subodh&responseType=JSON", function(str) {     alert(str.user.fname); }); Look at this link for details jQuery.getJSON . http://subodh.blog.com/servlet?user=subodh&responseType=JSON this could be replaced by your serv...

Problem/Limitation in using flXHR

I had a cross domain issue and after browsing for a while i came across flXHR which seemed to be promising solution and hence i went ahead with it. It's a flash based cross domain solution which is based on a crossdomain.xml config file (which lists the list of sites from where you can access the services). For more details on flXHR click here. I thought I have the great solution in hand and work with it before I encountered thee major of limitation of flXHR:  The location of crossdomain.xml can be specified in configuration of flproxy via loadPolicyURL attribute. Which is supposedly the path flXHR will take to resolve the permission of your domain to access service hosted at that domain. However this is where the problem comes it will not only consider the crossdomain.xml at given location but it will also make a query at the root of the site and hunt gain for crossdomain.xml to see the permission for the client domain to access the service e.g. if you specify loadPolicyURL=ww...

Prototype and jQuery together…

How to make prototype.js and jquery.js work together….? Answer is in fact very simple and indeed jquery did it all for you already following is the code snippet on how to do it: <script src=”.../prototype.js></script> <script src=”.../jquery.js></script> <script>jQuery.noConflict();</script> and replace your $ of jQuery with jQuery that it guys you are good to go :)

flXHR and JQuery IE 7 crash

I am using the cross domain flXHR solution with jQuery well initially it was a headache to implement but once done it was on auto pilot seems liked a gem until recently when i got the blocker of IE7 crash on windows XP. The problem seems to be caused by swfobject.js and putting it before jquery declaration will solve the problem:             <script type="text/javascript" src="/flXHR/swfobject.js"/>             <script type="text/javascript" src="/flXHR/flXHR.js"/>

flXHR Error:15, securityError, A security sandbox error occured with the flXHR request.

Error: 15 Type: securityError Description: A security sandbox error occured with the flXHR request. Source Object Id: [your object id] I am trying to deploy my application on Tomcat and was continuously facing the issue. The solution to this problem is placing your crossdomain.xml in /webapps/ROOT. Just for reference attaching the sample crossdomain.xml on which I was working trying to workout my PoC:   <?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <site-control permitted-cross-domain-policies="master-only"/> <allow-access-from domain="*" secure="false"/> <allow-http-request-headers-from domain="*" headers="*" secure="false"/> </cross-domain-policy> Hope this will help.

Comparison between Firefox 4 and IE 9

Guys, I have installed the latest version of both the browsers as a developer my comparison are tabled below. This is what I have experienced and doesn't base on any statics: IE 9 FF4 JS running time IE is definitely better than earlier IE's FF is much faster than any browser I am using right now (which includes Safari 5, chrome 10) and is comparable to chrome 10 on win 7. Look and Feel IE looks much better and lesser cluttered FF doesn't look bad Toolbar usage buttons like refresh and Go etc... IE embeds them in the address bar and I find it quite confusing and harder to use (you can customize and move refresh button to the front of address bar but for me result was no different in usage) FF doesn't Change from previous versions Notifications (Save a file. block script etc.) Notification bar pops up from the bottom of the page which takes time to get used too FF doesn't Change from previous versions Address Bar Provides united Addr...

java.net.SocketException: Connection reset

I am able to fix the problem via setting the following params on the HTTPClient class... client.getParams().setParameter("http.socket.timeout", new Integer(0)); client.getParams().setParameter("http.connection.stalecheck", new Boolean(true)); java.net.SocketException: Connection reset at java.net.SocketInputStream.read(Unknown Source) at java.io.BufferedInputStream.fill(Unknown Source) at java.io.BufferedInputStream.read(Unknown Source) at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:77) at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:105) at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1115) at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1832) at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1590) at org.apache.commons.httpclient.HttpMethodBase.execute(...

Interview at Progress Software

I have given a lot of interviews before however, this one was special. Let me start from the beginning. I got a call from Progress Software and was scheduled for the first telephonic discussion. Next day, I got a call from HR and she asked me questions on Java and a few basic puzzles.  After clearing the previous round, I got scheduled for the second telephonic interview. This interview covered Java, design-related problems and algorithms. After a week, I got a call from the HR for the onsite interviews in Hyderabad. This is the first time I googled about Progress Software. I said yes for the onsite interviews. Journey to onsite started not as planned after my flight got delayed. Because of fog-related delay in Delhi, I reached the PSI (Progress Software India) office couple of hours late.  HR introduced me to the first interviewer. The interviewer explained the first round. It was a coding round (I am not a big fan of coding rounds), the problem was ...

Java API for Print, Browse, Shutdown from Simple Java Program on Windows OS

I have been working on a app which takes the commands from database and execute on a windows machine (XP,Vista & 7). Commands include browse(given a link), print (given a location) and shutdown the machine. I have utilized the Java Desktop API for solving this problem i have used  this post . All you need is following three snippets: 1. Get Desktop instance: Desktop desktop = null; if (Desktop.isDesktopSupported()) { desktop = Desktop.getDesktop(); 2. For Browse/Open file:          File file = new File("url");          desktop.open(file); 3. For Print file:            File file = new File("url");          desktop.print(file); 3. For Shutdown file:  Process child = Runtime.getRuntime().exec("shutdown -s");