Skip to content

Posts from the ‘Web Technologies’ Category

Simple comparison between Google and Amazon EC2

I have tried both Google App Engine and Amazon EC2 Cloud. Here is my take on these two. My opinion is based on my experiment with Free Tier of services allowed by these two service providers. In case of Google, I only used free quota and in case of Amazon I used only t1.micro instance.

It is possible that as the load and computation complexities increases, there may be significant advantage and disadvantage over another.

Overall, if you are ready to spend around 15-20 bucks per month, you will get significantly better hosting environment than the wholesale webhosting retailers.

Feel free to add your opinions…

Read more

Quick start up of Eclipse

Eclipse loads useful and useless  plug-ins during it’s start up. That makes us to wait looking at the flash screen for quite sometime. I found out this trick to make it quicker and faster during start up.

Open Window->Preferences, and expand General category. You will find subsection ‘Startup and Shutdown’. Expand it and uncheck all those plug-ins which you don’t use frequently or you think which are hogging your precious memory space. The next restart should show you some improvement. If not, change your computer….;)

 

image

Parsing XML with namespace

How to parse XML tags with namespace?

Look at the below example, I want to fetch <itunes:summary> info. How do I do it with Java or Groovy?

   1: <?xml version="1.0" encoding="utf-8"?> 

   2: <rss version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:media="http://search.yahoo.com/mrss" xmlns:dm="http://www.dailymotion.com/dmrss"> 

   3:    <channel> 

   4:    <title>Dailymotion - most recent videos</title> 

   5:    <link>http://www.dailymotion.com/1</link> 

   6:    <description><![CDATA[Most Recent Videos]]></description> 

   7:     <itunes:subtitle>Dailymotion - Most Recent Videos</itunes:subtitle> 

   8:     <itunes:summary>Most Recent Videos</itunes:summary> 

   9:    <itunes:owner> 

  10:       <itunes:name>Dailymotion</itunes:name> 

  11:       <itunes:email>rss@dailymotion.com</itunes:email> 

  12:    </itunes:owner> 

  13:    <language>en-US</language> 

  14:    <lastBuildDate>Thu, 10 Feb 2011 17:10:51 +0100</lastBuildDate> 

  15:       <image> 

  16:           <url>http://www.dailymotion.com/images/dailymotion.jpg</url> 

  17:           <title>Dailymotion - most recent videos</title> 

  18:           <link>http://www.dailymotion.com/1</link> 

  19:           <width>400</width> 

  20:           <height>144</height> 

  21:       </image> 

  22:         <dm:link rel="uql" href="http://www.dailymotion.com/rss/1" type="application/rss+xml"/> 

  23:         <dm:link rel="sort_by_featured" title="Featured Videos" href="http://www.dailymotion.com/rss/us/featured/1" type="application/rss+xml"/> 

  24:         <item>...</item> 

  25:     </channel> 

  26: </rss>  

Unable to compile Resources directory

If you are using Snecha GXT UI libraries for GWT app and encounter ‘unable to compile Resource’ module or ‘Unable to find entry point for Resource’ module’

Check these things

  1. ‘resource’ directory is under web application root (war directory under Eclipse  project structure)
  2. Check if you have added com.extjs.gxt.samples.resources.Resources.gwt.xml under GWT->Compile->Add Entry Modules list. If so, remove the module entry and recompile.

Developing a search based application

Known as SBA, Search-based Applications employ semantic technologies to aggregate, normalize and classify unstructured, semi-structuredand/or structured content across multiple repositories, and employ natural language technologies for accessing the aggregated information.

To give you an idea, let us say restaurant directory that consolidates source data including database content (restaurant listings in the directory database), Web content (photos, details like opening hours, prices, menus, payment options, etc.), and user-generated content (opinions, ratings, reviews, blogs, etc., also gathered from the Web), with sentiment analysis applied on the aggregated content. It also incorporates geospatial data for mapping. The result is an ultra-rich directory that synthesizes a massive amount of information into a coherent, at-a-glance consumer dashboard.

Read more

Google App Engine – Is it enterprise ready?

I stumbled across Google App Engine recently and I was intrigued by their claim that it could be a hassle free execution environment.

I knows these days ‘Cloud-computing’ is the buzz around. It’s nice to see that Java is also a front runner in that area.

So I created by App Engine account, downloaded Google Web Toolkit plugin for Eclipse and started reading about what Google App Engine can do.

As I read through the topics and the implementation principles adopted by Google, I felt like this is what I was trying to do years ago. What I didn’t know at that time was IT field took 10 years to make it sort of popular or standard. Better late than never.

My first try went successfully. I was able to configure my domain (sub domain) to my app and I could access it from the outside world.

I am pleased that ‘Hello World’ went through with out any hassle. Then I started thinking, actually why do I need Google App?

Google’s selling point is that the data storage and other Admin services are no more a hassle for application developers. It’s a fail-safe execution environment is a bonus. That’s right. Google App is sort of an EJB container which provides not only traditional Persistence, Transaction services, it also provides integration of globally accepted and popular services such as Mail, User Management, File Storage with my Applications readily. All I have to do is use their library and call the service. Rest is done by Google.

Any new language, platform, framework or libraries makes first ‘Hello World’ super fast and successful. But the devil always lies in the details. When one dives into the pool then only they would know, how cold the water feels. Being in a Enterprise scale package implementation field for past 10 years, my obvious evaluation criteria would be

“Is Google App really enterprise ready?”

“Will it make enough sense for an IT Manager to even look at Google App Engine as an alternative Development, Staging or Production environment?”

Here is what I found:

  • 1. Porting your existing Web App to Google App environment seeks quite a significant time and effort if the Web App is constructed with a mix of traditional J2EE standards and proprietary libraries. Almost all Enterprise Applications fall in this category. Ex: Enovia MatrixOne, Peoplesoft, SAP etc.
  • 2. The data storage has to be looked from different perspective. Almost it sounds alien for few DBAs. Hardwired Google persistence libraries into the code will make it harder to port Applications to different environment.
  • 3. Google will start charging money to host, store and execute data beyond certain limit.
  • 4. Enterprise IT policies will prevent organisations to assign Google as their owner of data warehouses. Google Terms of use may not be pleasing to all IT managers.
  • 5. User services and Mail Services are either tied to Google or Google Apps.
  • 6. UPDATED: Google doesn’t provide Role based security model for data. Almost all the enterprise applications need role based, group based data access model.
  • Although it’s a good move from Google to foray into managed cloud computing business, it has to go long way in making it as preferred platform for Enterprise Applications.

    Google App Engine may be well suited for general web user applications such as Social Networking, Forums, Entertainment, News etc.

    I welcome all comments…