Recent Forum Posts
From categories:
page 1 of 212next »
War of Browsers
itechitech 1221981922|%e %b %Y, %H:%M %Z|agohover
in discussion Tech Beads / Under the Sun » War of Browsers

Every web developer when developing a web application does give a thought about the browser in which it will be used (well, not really!! IE is the de facto browser used by most of the clients :(. Currently a positive step is been taken by various companies to evaluate other browsers as well). Browsers play a important role in web development. And with various browsers competing with each other for supremacy its the web developer and end users who are the beneficiaries. With the release of Google Chrome beta, I got curious to find more about these browsers and the new features they offer in their War with other browsers.

Internet Explorer (IE 8):
According to stats IE currently holds 75% of browser market share. That's mainly because most of the desktop users use Windows OS (OK, It's time to move to Linux. I have done it!! hope many will follow :) ) With IE 8 due to be released, it offers features like

InPrivate - Private browsing (your visits not stored in browser history ;))
Smart Screen Filter - It prevents you from visiting deceptive and malicious websites ( a lift-off from Firefox 3)
Search Suggestions - Gives smarter suggestions from your favorite search engines with visual previews.
and other features which utilize Windows Live services.

Firefox 3.1 :
Well Mozilla seems to be working really hard to get some piece of action in the browser world and is constantly competing with the likes of Microsoft, Opera and now Google. Firefox now currently holds about 19% of browser market. In fact, it is Firefox which is keeping the browser world hot and happening. It is forcing other browsers to come up with new features and technologies.

Addon support - there is a poweful library of addons and support (more info check my blog).
Javascript engine - With the evolution of Ajax and Object Oriented Javascript we will see lot of developers using it consistently and javascript engine plays a vital role in their development. Firefox 3.1 will have TraceMonkey Javascript platform which will speed up compiling and running the scripts. Mozilla's answer for Google chrome's V8 javascript engine, discussed later.
Firefox Privacy Mode - Firefox plans to release this with its new release.

Google chrome :
Google seems to have a knack to come up with new things which makes waves in the web world. We need to give this giant a standing ovation for spear heading many of the technologies and bringing new products. Google Chrome is an open source browser which is tipped to run web-applications much better.

Speed - currently its the fastest browser on planet(I am waiting for Firefox 3.1 which is tipped to perform better than chrome :) )
Simplicity - It is a simple browser with less UI features.
Searching - It provides an omnibox address bar which can be used to search items and type URL also.
Privacy - It also provides a privacy mode called Incognito mode which makes the browser not to track your foot prints on various sites
Javascript engine - Google has developed a Javascript engine of its own (though it used some components from Mozilla Firefox and Apple's webkit ) It is know as V8 engine which enables Chrome to run future web applications.
Multiprocess architecture - Chrome runs tabs as separate process when compared to Firefox and Opera. This prevents crashing of browser from rogue sites.
Chrome has lot to offer when it is released as a complete product. It is currently in beta stage.

I leave other browsers like Opera and Safari to be explored on interest (nothing much happening in that front except for bug busting and bug fixing :)). As I said earlier, these new things happening in browser world will directly or indirectly influence developing of web applications, if not at present but at least in near future.

P.S. : If you think I am little biased towards to Firefox - Yes!! I am a Firefox fan.

War of Browsers by itechitech, 1221981922|%e %b %Y, %H:%M %Z|agohover

Hey I also have been working on these lines. We used JProfiler to profile our application. Below are some
of the approaches that we used to improve the performance of the application

1. Usage of AJAX
2. Limiting the amount of data fetched.
3. Using JIBx for XML parsing.
This improved the performance to a great extent. Initially the application used some custom XML_JAVA
mapper. After replacing that mapper with JIBx we saw a gr8 improvement in response time. JIBx bindings are
created during compile time, which reduces the time taken by the mapper during runtime.
For more details refer: http://jibx.sourceforge.net/

Srini- Can you give more details on below points that you mentioned in your post:

Sourcing images/static content using hostname aliases
Using http 'if-modified' in AJAX calls.

Re: Improving website Performance - follow up by MithunKMithunK, 1217718068|%e %b %Y, %H:%M %Z|agohover

Have been working more on these lines. I think the better place to go to get tips in YUI performance links. YSlow is a good starting point. There are a plethora of tools out there…
Starting from AOL pagetest, YSlow, Firebug. Yahoo's performance related pages talk about lot of browser behavior and also tricks to get the best out of it… I think folks should start looking there. And this is only if you are serious about improving your site's performance.

note: Have been out for some time. Lots of work… Now things should get back in track

Re: Improving website Performance - follow up by nacneznacnez, 1217223003|%e %b %Y, %H:%M %Z|agohover

For the past few days, we have been working on improving the performance of some of the new features in our product/web application. Some of them have really worked for us. Thought of sharing them:

1. Look for the optimum amount of data to be shown to the user: This is not a technical tip but has to do more with sensitivity to the usage of your site/application. There is a need to get only so much data which the user can see with convenience. For example in our application, we were showing around 25 rows on search results and the vertical scroll bar became pretty big. The side-menu occupied very small part of the browser real-estate. We then changed it to 10 rows and found the page to be more balanced. And that also reduced the amount of data we send across to the browser which increased responsiveness quite a bit. So do look to resize your pages as needed. Don't keep them too big.

2. Gzipping/Compressing your response: If you are sending a huge amount of data in your response consider gzipping the content. This reduces the time taken to push the content across to the browser and for internet sites this could do a lot of good to the responsiveness. When doing this keep two things in mind. One: You would be able to use this only if the target browser can handle gzipped content (most browsers do that now a days). Two: Gzipping needs horse (read CPU) power and you better have what is required.

3. Sourcing images/static content using hostname aliases: This is more of working around the limitation of the browser. The browser typically cannot make more than two parallel requests for such components with the same hostname. Hence if you create aliases to your host, that will increase the number of parallel requests the browser can make to get these components. Simple! Not so fast. Keep in mind that, this increases the number of DNS lookups and that adds to the overhead. So strike a balance. We plan to have 4 aliases in our application.

4. Bundling and Minifying JS and CSS files: You know that for included JS and CSS files, the browser makes separate requests. Again two things here: Bundling these files into one file reduces the number of requests - a good thing. But keep in mind that you should not lose out on the caching of the browser of these files. So if a set of JS (or CSS) files are common to many pages, bundle them separately and include it in your pages instead of putting them into the page specific bundles. The second thing is to minify or compress these files. The reason is same as compressing the response. JSMin is quite famous for JavaScript compression. YUI has a compressor which is based on Rhino and it has support both JS and CSS compression. We are planning to use this as we found better compression with this.

5. Use latest js libraries: If you are using JavaScript libraries, check out whether you are using the latest version. In most cases the latest version would be more performant (there could be exceptions), so would be good idea to move to the latest version. We are using jQuery and are planning to migrate from 1.2.1 to 1.2.3 version.

6. Remove unnecessary inline js and css: It is always a good idea to externalize the inline js and css into linked js and css files. The js and css files are cached by the browser. This reduces the amount of markup sent across in the response each time.

7. Use css instead of images for your page styling (like curves): Earlier whenever we wanted different kinds of styling like curves and dots, we used images. Now these can be done by css and rightly so. Using images for these effects will increase the number of requests for painting the page and hence reduce responsiveness. Many js libraries provide plug-ins for these nowadays.

8. Using http 'if-modified' in AJAX calls: AJAX is a great technology (that is cliche and probably everybody knows it, but still could not resist it). It has helped all of us to make very responsive applications (ok I am sorry). We can further improve this if we introduce the 'if-modified' http header in these calls. This ensures that if the data is already present in the client side (may be a JavaScript variable), the same is not sent across again unless it has changed. This is just extending the behavior of browsers to images, js files etc to ajax calls. Most JS libraries make this pretty easy.

9. Optmize JavaScript: In today's web applications, processing using JavaScript is pretty high. This is the same with our application as well. It is a good idea to optimize JavaScript towards this. Using a good js library like jquery solves most of the problems. At the same time, optimization must be kept in mind for other javascript code in our application. And that too across browsers.

The above are the techniques we have tried/ are trying in our application. These have helped us in making our application much more responsive. Apart from these techniques, I found the below tools very handy:

a) Firebug: This is one great tool that can be used with Firefox. I can't imagine JavaScript debugging without this. It is very powerful with css and html as well. It is almost a developer's dream come true. It is shame that it does not exist for IE (where it would have been even more useful).

b)Fidder/Charles: Both are http debugging proxies. Allows you to analyze request and responses including time, content.

There are a lot more features in these tools and they are worth investigating.

On the whole, we all wish to make our applications very responsive and with least amount of sweat. And these techniques and tools would surely help us.

Improving website Performance - some learnings by nacneznacnez, 1209290389|%e %b %Y, %H:%M %Z|agohover

Was involved in the past few days on javascript performance optimization. Found some good links on the same.
http://aymanh.com/9-javascript-tips-you-may-not-know - Best thing I liked in this is some good explanation of null and undefined in javascript. Helped me understand an issue.

http://www.bloggingdeveloper.com/post/7-Easy-to-Apply-Tips-to-Improve-Your-Web-Site-Performance.aspx- This one talks about the loading images form multiple domains as one of the points - very interested and something which we are planning to implement

Re: OSGI
nacneznacnez 1207124820|%e %b %Y, %H:%M %Z|agohover
in discussion Tech Beads / Under the Sun » OSGI

I read a bit about OSGi but could not understand it completely. Arun can you pass us the urls you used to read this up.

Re: OSGI by nacneznacnez, 1207124820|%e %b %Y, %H:%M %Z|agohover
Re: Javascript Libraries
sundarradnussundarradnus 1206983041|%e %b %Y, %H:%M %Z|agohover
in discussion Tech Beads / Under the Sun » Javascript Libraries

Check out the blog by John Resig (who is one of the developers of JQuery) - http://ejohn.org/
It has some interesting analysis on JavaScript.

Other JavaScript library is DOM Assistant

Re: Javascript Libraries by sundarradnussundarradnus, 1206983041|%e %b %Y, %H:%M %Z|agohover
Re: Javascript Libraries
nacneznacnez 1206969788|%e %b %Y, %H:%M %Z|agohover
in discussion Tech Beads / Under the Sun » Javascript Libraries

I have two ebooks :) though I am yet to read even one completely.

Yes animation stuff is also good in it.

Re: Javascript Libraries by nacneznacnez, 1206969788|%e %b %Y, %H:%M %Z|agohover
Re: Javascript Libraries
Pratik GargPratik Garg 1206966735|%e %b %Y, %H:%M %Z|agohover
in discussion Tech Beads / Under the Sun » Javascript Libraries

true man.. JQuery provides really usefull features libraries… n also they care of the implementations for different browsers… I have never used it in the live project but i did something on my own to give some effects (fading in / fading out ).. it was so easy….

nacnez is right, this is just the tip of iceberg.. there are so much possibilities that javascript libraries can provide… to make UI more interactive/Usable..

I have a good JQuery ebook too.. let me know if anybody wants it…

Re: Javascript Libraries by Pratik GargPratik Garg, 1206966735|%e %b %Y, %H:%M %Z|agohover
Javascript Libraries
nacneznacnez 1206958580|%e %b %Y, %H:%M %Z|agohover
in discussion Tech Beads / Under the Sun » Javascript Libraries

I had almost never coded in Javascript before a couple of weeks. For my project we wanted to do some functionality on the client side and I needed to work on javascript. And I did not use much of direct javascript. I used a library called jquery. jquery has been around for more than two years now. There are other javascript libraries as well but I have exposure to none other right now.

  • What jquery claims to be different is the way it uses CSS or Xpath selectors to work with the dom (both html and xml). Comes out pretty short and neat. I really liked that part. made things easy for me in many ways.
  • It has support for ajax as well. I used that as well. Can work with html, xml and json output all of which can be manipulated in jquery/javascript pretty nicely.
  • It has support for some ui components like sliders, capability to create curve edges to tables etc. I did not use directly. Other guys in the project have used.
  • Also there are a bunch of plug-ins which are quite useful.

All in all it was a learning experience. And I did not think before that javascript coding could be this much fun… I still have only touched the tip of the ice-berg, so the opinion can change :)

Another great concept I got familiar with was closures. I have sort of got a hang of it. but not completely yet.

Folks, if you find something interesting around javascript libraries do post on. DOJO, Prototype could be good candidates.

Javascript Libraries by nacneznacnez, 1206958580|%e %b %Y, %H:%M %Z|agohover
Re: JMX TEchnology
nacneznacnez 1206437145|%e %b %Y, %H:%M %Z|agohover
in discussion Tech Beads / Under the Sun » JMX TEchnology

JMX is a very prevalent technology. Lot of the app server health and performance monitoring is made possible by JMX. I have seen weblogic and websphere both providing jmx hooks through which lot of monitoring applications like wily introscope, mercury sitescope, tivoli performance viewer and possibly others do the monitoring. You can even make your application components JMX enabled. It would be good if you can fish in more details on this. always wanted to learn more about it.

Re: JMX TEchnology by nacneznacnez, 1206437145|%e %b %Y, %H:%M %Z|agohover
Re: SVN Versioning! - Another is Perforce
nacneznacnez 1206428891|%e %b %Y, %H:%M %Z|agohover
in discussion Tech Beads / Under the Sun » SVN Versioning!

I am just getting introduced to another one of the SCMs - Perforce. It does have the concept of merging files (basically multiple check out). But you have to explicitly select for edit. Branching is also there. What my project folks have further done is to integrate Perforce with Bugzilla. So when you check-in you need a bug-id to check-in. Cool thing for traceability purposes. The merging is also pretty good- conflict resolution is pretty easy.
The comment checking stuff is pretty cool… :)
The one thing is that the it is not that free especially for projects it will cost

Re: SVN Versioning! - Another is Perforce by nacneznacnez, 1206428891|%e %b %Y, %H:%M %Z|agohover

Mithun,
This should go in a separate thread. Can you make a separate thread for it and add this stuff and remove the stuff from here. Thanks buddy.

By the way, a one-liner on these insideApps features would help to understand it better. Also is it open source/free or licensed/money based. Mercury sitescope I remember has alerts as well. I am not sure of other features though.

Re: Performance monitoring tool-insideApps by nacneznacnez, 1206427931|%e %b %Y, %H:%M %Z|agohover

What kind of page flow are you talking about? Navigation is already handled right? Not sure whether I follow you. Give more details

Re: Java Server Faces Experience by nacneznacnez, 1206427449|%e %b %Y, %H:%M %Z|agohover
JMX TEchnology
MithunKMithunK 1205903173|%e %b %Y, %H:%M %Z|agohover
in discussion Tech Beads / Under the Sun » JMX TEchnology

I was going through JRules architecture and found that it uses JMX technology in its rule execution server.
And it was not the first time that I was seeing JMX being used, but I never bothered to understand what is this JMX all about. In this post I am putting my understanding of JMX which I got from going through some articles on net.
The Java Management Extensions (JMX) technology is a standard part of the Java Platform,
Standard Edition (Java SE platform). JMX provides a dynamic way for managing resources such as applications, services and
devices. JMX is usually used to monitor and control the resources as they are created, installed and implemented. The JMX specification defines the architecture, design patterns, APIs, and services in the Java programming language for management and monitoring of applications and networks.
Below are the main components involved in the usage of JMX:
MBean/Managed Bean: These are the java objects which are used to instrument the resources.
MBean Server: This is the management server in which all the MBeans will be deployed and running.
JMX Agent: A JMX agent consists of a MBEan Server. This component is accessed by the management application/client application to get the information about the
resources that it is monitoring.

I am still going through more articles on JMX and will be posting more details on this. I also want you guys to share your experiences on JMX if you have used JMX in any of your projects.

JMX TEchnology by MithunKMithunK, 1205903173|%e %b %Y, %H:%M %Z|agohover
SVN Versioning!
Pratik GargPratik Garg 1205682339|%e %b %Y, %H:%M %Z|agohover
in discussion Tech Beads / Under the Sun » SVN Versioning!

Here i something gud in my current project.. SVN + Tortoise SVN .. I donno how many of us know about them but i have found them far better than other version file systems( to say PVCS or VSS)… Why?? Lets see…

## Its open source..
## Setting it up is very very easy ..
[http://blogs.vertigosoftware.com/teamsystem/archive/2006/01/16/Setting_up_a_Subversion_Server_under_Windows.aspx]
## Many times we struggle up in finding the right plugin for the IDE which we are using.. if we end up finding nothing .. then we have an unending list of pains while using that versioning system.. Here i am using this with the Visual Studios ..without as a pluigin..n it feels like breeze using it..
## TortoiseSVN— this is the client to access the server.. adding/updating/deleting is just fun.. VSS/PVCS literally pisses you off when it comes to the operations like bulk additon or deletion of files in different folders..here Tortoise comes to the rescue
##You don't have to checkout a file before working on that.. all file are in NON Readonly mode.. which means N users can work on the file simultaneously..
##While checkin in if the file has been modified it merges them ,if it is unable to do that because of the overlapping sections. it gives you conflict errors..
## To see the diff/resolve conflicts you can use either the default app or others…(I am using BeyondCompare)..
##You can specify the way user should give the comments while checkin the file.. if he doesn't gives checkin fails..Curse for LAZY programmers.. :-)
## Patching/Branching are some of the other features…

Actually you have to give it a shot to see more of it.. N lets discuss if something is not happening as it should ..

SVN Versioning! by Pratik GargPratik Garg, 1205682339|%e %b %Y, %H:%M %Z|agohover

One more good tool which will help in performance tuning J2EE applications- insideApps from determyne.

http://www.theserverside.com/news/thread.tss?thread_id=48623

One good thing which I liked in this is it supports to define SLAs and generates alerts for any violations against the SLA.

The other features include:

End-to-End Business Transaction Monitoring including hops between HTTP server, multiple J2EE containers and databases.
Service Level Agreement [SLA]
Baseline support
Helps in overcoming the traditional "LAST MILE" problem.
Root Cause Analysis Engine [RCA]
Quick turnaround in resolving the issues
High valued transaction monitoring - Monitor transaction
specific to a customer or an operation
Inbuilt alert engine
Discover the application and topology dynamically based on request routes
Applications Dashboard
If you guys want to have a look at this tool, you can access the demo at the link http://76.191.185.136/iaconsole/

[Credential: insideapps/insideapps]

Performance monitoring tool-insideApps by MithunKMithunK, 1205393442|%e %b %Y, %H:%M %Z|agohover

how do u implement page flow in jsf. Any pointers?

Re: Java Server Faces Experience by ledzepu2ledzepu2, 1205168835|%e %b %Y, %H:%M %Z|agohover
OSGI
ledzepu2ledzepu2 1205168722|%e %b %Y, %H:%M %Z|agohover
in discussion Tech Beads / Under the Sun » OSGI

Hi ,

2 -3 days back i started reading about OSGi framework . The brief Hello World kind of article(javaworld) interested me about the capabilities of the framework.
This framework is already used heavily in the eclipse run time(Equinox is osgi framework used there). Even most of the app servers are in line to package themselves as osgi bundles.
OSGi framework compartmentalizes a functionality into units called bundles. The osgi container allows us to interact with the bundles without having to restart the container.
The framework also acts like a repository of bundles which can be discovered and bound to.
OSGi it seems is a move towards building a SOA based ecosystem.
Even SpringSource has lanuched a new project called 'Spring Dynamic Modules' which has been launched along with 2.5 release.
Spring also aims to expose all its services as OSGi bundles.

Please post anything else that you find about OSGi. I will keep posting more as i find out more abt OSGi.

OSGI by ledzepu2ledzepu2, 1205168722|%e %b %Y, %H:%M %Z|agohover
Re: New language called Cobra
nacneznacnez 1204821027|%e %b %Y, %H:%M %Z|agohover
in discussion Tech Beads / Under the Sun » New language called Cobra

That does sound very interesting. Is there any specific run-time on which Cobra runs. I could not get that info directly in the link (may be if I dig it would be there). Being lazy, I thought I will ask you Prabal. Let me know.

Re: New language called Cobra by nacneznacnez, 1204821027|%e %b %Y, %H:%M %Z|agohover
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License