Wednesday, August 31, 2011

     
         Top 10 Apps missing in HP TouchPad

Without these Apps my experience is only limited to browsing web pages, though WebOS is really better multitasking device than iOS but without commonly used Apps it's only limited.

1. Native YouTube App  - You can't just use finger to do everything on 60% YouTube.com                    




  2. Netflix - I love to do multitasking, with Netflix running and ability to do other stuff























   3 Facebook - Most of the people always like to be connected all the time here



























  My Mistake Skype Video is working

   4  Skype - Ability to do voice and video chat, and without this I need to keep my Mac on.
























  5 Google Talk - Ability to do voice, video chat with Gmail contacts





















   6 Yahoo Messenger - I need at least text chat

























  7 Yelp - Yelp should have their App here





















  8  Dropbox - Convince Dropbox to make a native App




















  9  Hulu Plus





















  10  WebEx - I can join meeting right from my couch


Tuesday, August 23, 2011

What I like in Spring

What I like in Spring 
  1. Spring IOC - Its all about programming to Interfaces, Though some people argue its a over kill
  2. Spring Security - Protects URL's and Object Methods 
  3. Spring JPA - 
  4. Spring Data
  5. Spring Transactions
  6. Spring Scheduling
  7. Spring support for JAX-WS
  8. Spring AOP
  9. Spring Testing - Ability to test Transactional objects and rollback



What is like most in Spring 3.x
  1. Annotations - I hate XML, i don't have to switch files (xml and java) to finish my java class and bug free.
  2. @Async - love this, you can use this in many situations specially sending Emails. 
  3. @Timer - Simple and great Timer implementation,
  4. @Cacheable - Dead simple method cache implementation, other alternative is to use Spring Modules framework's which has little complex configuration


What I like about ORM vs JDBC

Remember not one tool is right for all the problems, for instance if you are building something simple as Twitter which has couple of tables, and you have never used ORM, then its waste of time to learn ORM and do things, on the other hand if you are building something complex, evolving application and need more time to spend on solving business problems and UX then you can't effort to spend extra time on just figuring out how to store and retrieve data into a DB.

And here are the few things I like about ORM
  1. Domain Model - Think data as Domain Object not as Tables and Relationships
  2. Standard Query Language - with JDBC we still get locked-in with proprietary SQL, whereas ORM provides great Query Language which is performance tuned for all supported DB's
  3. Less Code - less testing, less complexity, and less time 
  4. Concurrency and Locking - easily version data and protect data integrity in a concurrent environment
  5. Caching - Great support for standalone and distributed caching
  6. Re-Use - consider ORM as our old DAO layer, well written and fully tested so we can reuse for all future projects.
  7. Evolving - ORM's are still evolving and creating greater opportunities and innovations for Scalable, Distributed, Performance tuned applications, whereas JDBC was almost stagnate for quit some time.

And here are some ORM tools you want to consider for your next project, though they have some learning curve earlier.

My Experience with ORM
  Avexus - Aerospace maintenance Application with over 1300 tables.
  McKesson - Pharmaceutical Application with over 500 Tables
  Deployed Portal's with over 10 million active users in a clustered environment with JPA Hibernate, Solr, Distributed EhCache, Sticky Session

Part of my Job is to evaluate technologies and to pick the most suitable one depending on team skills, project scope and other factor's.

Though I personally prefer JPA 2 Hibernate Stack, and I also tested and used other frameworks and found Hibernate to be more stable then others. also another reason to stick with Hibernate is to use Hibernate Search, Hibernate Validator, EhCache support and Spring modules



I might also upload a sample project with all these technologies to github.

Wednesday, August 17, 2011

JQuery Mobile Split Screen 20-80 hack


Use JQuery Mobile's Grid Layout and just override "width" on "ui-block-a" and "ui-block-b" to split screen as per your need.

Tested on : iPad, iPhone, and PC


Below is fully functional page, you can download and open it in a browser to see the live demo. 

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=MacRoman">
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b2/jquery.mobile-1.0b2.min.css" />
        <script src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.0b2/jquery.mobile-1.0b2.min.js"></script>
    </head>
    <body>
        <div data-role="page" id="foo">
            <div data-role="header">
                <h1>Foo</h1>
            </div>
            <div data-role="content" >
                <div class="ui-grid-a">
                    <div class="ui-block-a" style="width:20%">
                        <div class="ui-bar ui-bar-e" style="padding-left:10%;float:left;width: 100%"> This occupies 20% </div>
                    </div>
                    <div class="ui-block-b" style="width:80%">
                        <div class="ui-bar ui-bar-b" style=" z-index: 10;position: absolute;width: 100%;padding-right: 10%">
                            This occupies 80%
                        </div>
                    </div>
                </div>
            </div>
            <div data-role="footer">
                <h4>Page Footer</h4>
            </div>
        </div>
    </body>
</html>