Tuesday, December 20, 2005
Zetigiest 2005
The Google Zetigiest 2005 is now available at http://www.google.com/press/zeitgeist2005.html
Tuesday, December 13, 2005
JSR 168 vs IBM Portlet API
If you are wondering what is the difference between JSR 168 spec vs IBM Portlet API, I would recommend you to click here
Friday, December 09, 2005
Yahoo Answers -- some feature suggestions
Yahoo yesterday released Yahoo Answers! As one might expect its nothing but web 2.0 version of Forums! I think the following features will be make it even better...
1. Display top 5 photos with name for people whose answer were rated best in the past minute (this will motivate people to answer)
2. Provide ability for the user to rate questions and allow users to view consolidated ratings on questions
And posted a question saying "What new feature can be added to Yahoo Answers to make it better?" The following are the responses:
1. Spell checker
2. Questions should not appear in the front-page
Will Yahoo consider these?
Technorati Tags: technology,internet,software
1. Display top 5 photos with name for people whose answer were rated best in the past minute (this will motivate people to answer)
2. Provide ability for the user to rate questions and allow users to view consolidated ratings on questions
And posted a question saying "What new feature can be added to Yahoo Answers to make it better?" The following are the responses:
1. Spell checker
2. Questions should not appear in the front-page
Will Yahoo consider these?
Technorati Tags: technology,internet,software
Tuesday, November 29, 2005
e-mail - feature request
These are the features I see would be a nice add-on to any web based email systems...
1. Automatically create Zip file of a attached set of files and send just the zip file..
2. Support for on the fly uncompress for zip files and allow user to download the files that he might want...
3. Create notes on a given email and save it with the sent folder (so that the sender could refer back.. notes should not be sent to the recipient)
4. Ofcourse finally recall a sent email..
I am sure there can be more stuff to this list...
1. Automatically create Zip file of a attached set of files and send just the zip file..
2. Support for on the fly uncompress for zip files and allow user to download the files that he might want...
3. Create notes on a given email and save it with the sent folder (so that the sender could refer back.. notes should not be sent to the recipient)
4. Ofcourse finally recall a sent email..
I am sure there can be more stuff to this list...
Wednesday, November 23, 2005
Coding4Fun from Microsoft!
Microsoft has released a beginner version called Visual Studio Express Edition and is free for an year! These editions are available for C#, J#, VB.NET and even SQL Server bundled with .NET Framework 2.0.
Also, there is a website dedicated to coding enthusiasts http://msdn.microsoft.com/coding4fun/
Its realy cool for to try on Microsoft .NET Products for free!
Also, there is a website dedicated to coding enthusiasts http://msdn.microsoft.com/coding4fun/
Its realy cool for to try on Microsoft .NET Products for free!
Sunday, November 20, 2005
iPod : whats next?
Now with the arrival of Video iPod the question now becomes: whats next? I would assume the future iPod will be able to run custom applications and will have networking support (possibly your cell phone?).
Lets wait and watch!
Lets wait and watch!
Monday, October 03, 2005
AJAX beased Messengers are here!
Here we go http://www3.meebo.com/. Meebo provides online Web interface based messenger service for GTalk, AJAX, Yahoo and MSN. The era of AJAX applications making web browser as hosting platform (or a high level component) is seeing yet another application.
Saturday, September 24, 2005
"Rita" today on MSN, Google!
I tried "Rita" on Google and MSN today and the search results are on the image. While I posted a blog on Katrina search results it was two days after the strom but this time the strom is still on and looks like MSN provides results relevant to the hurrincane while Google provides relevant results only in the news headlines.
Thursday, September 15, 2005
Atlas - Microsoft's answer to AJAX framewok
Atlas is Microsoft's answer to AJAX based end-to-end web client/server scripting framework to be shipped with ASP.NET 2.0. Provides a lot of components which developers can use to build rich client interfaces efficiently.
Related Links:
http://weblogs.asp.net/scottgu/archive/2005/06/28/416185.aspx
http://beta.asp.net/default.aspx?tabindex=7&tabid=47
http://msdn.microsoft.com/events/pdc/#three
http://spaces.msn.com/members/ajaymistry/Blog/cns!1pQ1XJoc8DzgOX5hnBk8iS4Q!417.entry
Related Links:
http://weblogs.asp.net/scottgu/archive/2005/06/28/416185.aspx
http://beta.asp.net/default.aspx?tabindex=7&tabid=47
http://msdn.microsoft.com/events/pdc/#three
http://spaces.msn.com/members/ajaymistry/Blog/cns!1pQ1XJoc8DzgOX5hnBk8iS4Q!417.entry
Wednesday, September 14, 2005
Google releases Blog Search
Finally, Google today released much awaited blog search http://blogsearch.google.com
Thanks Google!
Thanks Google!
Tuesday, September 13, 2005
Email recall - feature requests
Are emails like toothpast? Once you send out you can't take back? Y should it be? I request all web based email providers to provide email recall feature. If I send an email by mistake I must be able to recall it?
No more "/3" for start.com
Microsoft released http://www.start.com so you dont have to do anymore "/3" stuff to get in. To me its Microsoft's version of Google's personalized page but released much before Google Personalized home page as beta and had been staying as start.com/1.. start.com/3 etc. In other words its Microsoft's version of of keep it simple interface with powerful Ajax engine.
Wednesday, August 31, 2005
Katrina - Yahoo, MSN, Google?
I did a search today in yahoo and google on "katrina". It was interesting to examine the results. I found Yahoo and MSN results were more relevant to hurricane katrina and initially there was no results in Google relevant to the hurrican "katrina". Few hours hours later some results poped up. But its already 3rd day (if not more) for the "katrina hurrican" story.
I think if search engines try to optimize, carwl and present relevant results for top keywords it would be highly helpful. Kudoos for MSN and Yahoo in this aspect!
I think if search engines try to optimize, carwl and present relevant results for top keywords it would be highly helpful. Kudoos for MSN and Yahoo in this aspect!
Wednesday, August 24, 2005
Google Talk!
Its the talk of the town today! As usual Google with its simple yet powerful UI has drawn attention of millions of users. Also it uninstalls your GMail notifier since it supports notifications. I would have loved to see the IM integrated to the Sidebar. Also it would have been better if they had supported emoticons though I agree that it might break the keep it simple rule!
Download and talk from Your http://www.google.com/talk
Download and talk from Your http://www.google.com/talk
Tuesday, August 23, 2005
Google Desktop 2 with Sidebar! Why an app? Why not a webapp?
Google today released Google Desktop 2 with Sidebar. The sidebar looks pretty helpful and handly tool. I read some reviews stating that it takes quite a screen real-estate, but dont worry it has an auto-hide feature which will allow you to have ample space on your screen. I would like to see MSN messenger with a nice interface with all these features.
I am also wondering why Google built this as a desktop application. Why not build an rich web client interface (ajax) and utilize the Windows -> Display Properties -> Customize Desktop and place it as a web item and place it in the sidebar. I am hoping Windows should be storing this stuff somewhere so a typical installation for this interface (web based) should have written those values and locked the web item to the side of the screen. But this idea only works for Windows XP/2003, still that would work since Google desktop only supports XP and 2003. May be they did it because they have a better reason!
I am also wondering why Google built this as a desktop application. Why not build an rich web client interface (ajax) and utilize the Windows -> Display Properties -> Customize Desktop and place it as a web item and place it in the sidebar. I am hoping Windows should be storing this stuff somewhere so a typical installation for this interface (web based) should have written those values and locked the web item to the side of the screen. But this idea only works for Windows XP/2003, still that would work since Google desktop only supports XP and 2003. May be they did it because they have a better reason!
Friday, August 19, 2005
Blogger for Word
Posting a blog entry has gotten even easier. Now you could post an entry just from your Microsoft Word. Download this Word add-in and start to blog from your word http://buzz.blogger.com/bloggerforword.html
Tuesday, August 16, 2005
Video on your iPod?
I was awaiting for the new 5G iPod series to arrive but just figured out that I don't need one. Just visit cnet.com setp-by-step instructions for video on iPod setup http://reviews.cnet.com/4520-10163_7-6279061-1.html?tag=bnav, its pretty cool.
Thursday, August 04, 2005
Accessing CSV file as a Database using ODBC-JDBC
Microsoft provides a ODBC driver for CSV/TXT files so that they can be accessed/manipulated from applications using ODBC. The same can be accessed in the Java world using the JDBC type 1 driver, which essentially is a JDBC-ODBC Bridge. There is a detailed tutorial here:
http://www.devarticles.com/c/a/Java/Using-CSV-Files-as-Databases-and-Interacting-with-Them-Using-Java/
However there is a bug with Microsoft ODBC Text Setup utility. The Text driver creates a file called System.ini which stores the column names with the corresponding datatype and length, header details etc. But the utility (atleast the one provided with Windows XP) doesnt write the datatype and length to the file. This however can be manually changed and System.ini is usually present in the directory in which you specify the CSV file.
For the example in the tutorial the change for System.ini will be:
[statebirds.txt]
ColNameHeader=True
Format=CSVDelimited
MaxScanRows=1
CharacterSet=OEM
Col1=STATE Text Width 255
Col2=STATEBIRD Text Width 255
http://www.devarticles.com/c/a/Java/Using-CSV-Files-as-Databases-and-Interacting-with-Them-Using-Java/
However there is a bug with Microsoft ODBC Text Setup utility. The Text driver creates a file called System.ini which stores the column names with the corresponding datatype and length, header details etc. But the utility (atleast the one provided with Windows XP) doesnt write the datatype and length to the file. This however can be manually changed and System.ini is usually present in the directory in which you specify the CSV file.
For the example in the tutorial the change for System.ini will be:
[statebirds.txt]
ColNameHeader=True
Format=CSVDelimited
MaxScanRows=1
CharacterSet=OEM
Col1=STATE Text Width 255
Col2=STATEBIRD Text Width 255
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcjetschema_ini_file.asp
Wednesday, August 03, 2005
Yahoo Mail doesnt work with IE 7.0 beta 1
If you install IE 7.0 Beta and try opening Y! Mail it would complain please upgrade to IE 6.0!
Tuesday, August 02, 2005
Yahoo releases Shopping Web Services
Yahoo released Shopping Web Services API thus enabling users to build applications easily. The API provides access to productSearch, catalogLisiting and merchantSearch services. The services are very primitive while comparing to eBay's API.
Wednesday, July 27, 2005
Visit the Vista!
Microsoft released Vista beta. Have a click here to have a peek at the screenshots!
Tuesday, July 26, 2005
Konfabulator is now Yahooulator ;)
Yahoo today announced that it has bought Konfabulator so that it can provide Yidgets ;)
Have a click at http://www.konfabulator.com/! Good news is its totally free now!
Have a click at http://www.konfabulator.com/! Good news is its totally free now!
Monday, July 25, 2005
Microsoft releases MSN Virtual Earth
MSN today released its much awaited Virtual Earth! Have a click here
In my overall view virtual earth is cool with features like scratch pad, closeable pads, locate me, etc. The aerial view is also cool...
Also Google released its Hybrid version similar to aerial view but the view looks kinda clumsy, may be its released it in a hurry
In my overall view virtual earth is cool with features like scratch pad, closeable pads, locate me, etc. The aerial view is also cool...
Also Google released its Hybrid version similar to aerial view but the view looks kinda clumsy, may be its released it in a hurry
Tuesday, July 19, 2005
Ajax Frameworks
In one of my earlier post few months back I had mentioned we might see AJAX farmeworks soon. Here they are..
http://www.backbase.com/index.php
http://developer.tibco.com/
Also I stumbled upon a open source framework released by Sabre Airline named Rico. Thanks for http://www.jonathanboutelle.com/mt/archives/ajax_ria/index.html
http://www.backbase.com/index.php
http://developer.tibco.com/
Also I stumbled upon a open source framework released by Sabre Airline named Rico. Thanks for http://www.jonathanboutelle.com/mt/archives/ajax_ria/index.html
Sunday, July 17, 2005
Tech Podcast
I stumbled upon this Technology Podcast website. Its definitely worth a bookmark http://podtech.net/
Saturday, July 09, 2005
Extending Apache Struts
There is no dobut that Apache Struts is one of the most widely used and heavily tested web application development MVC framework. While the features it provides are almost sufficient for most of the web applications, its architecture also provides the flexibility for extensions. I investigated on various possible extensions that can be accomplished using this framework:
1. Extension using plugin. In this type of extension a custom class will have to implement org.apache.struts.action.PlugIn interface which has the init and destroy which are invoked during application startup and shutdown respectively. Such class will also have to be specified in struts-config.xml as aelement.
2. The struts configuration classes can also be extended. The classes are in the package org.apache.struts.config are in-memory representations of the struts-config.xml
3. The ActionServlet itself can be extended by extending org.apache.struts.action.ActionServlet and one or more methods can be overridden. Such extension also requires change in the webapp deployment descriptor (web.xml):
customaction
com.domain.framework.CustomServlet
4. Though ActionServlet can be extended its not the most prefered way for extension since most of the request processing behaviour is done by RequestProcessor. RequestProcessor class is based on Template Method Design pattern where a sequence of methods are called from the Process method. The RequestProcessor class can be extended for a CustomRequestProcessor and necessary methods can be overridden with desired functionality, the prefered method for overriding ins processPreprocess(). A real-time example of this can be found on one of my earlier posts here. In this extension appropriate class name of the extended processor must be specified using theelement in the struts-config.xml
5. Extending Base Action class. This type of extension is highly helpful to provide common functionality required by all (or set of) Action classes of an application. In this type, the Action class is extended and methods that are required in common by most classes are specified and this class is extended by the rest of regular Action classes instead of the regular Action class. Helper methods for logging, user-lookup, basic validations can be included in such classes.
1. Extension using plugin. In this type of extension a custom class will have to implement org.apache.struts.action.PlugIn interface which has the init and destroy which are invoked during application startup and shutdown respectively. Such class will also have to be specified in struts-config.xml as a
2. The struts configuration classes can also be extended. The classes are in the package org.apache.struts.config are in-memory representations of the struts-config.xml
3. The ActionServlet itself can be extended by extending org.apache.struts.action.ActionServlet and one or more methods can be overridden. Such extension also requires change in the webapp deployment descriptor (web.xml):
4. Though ActionServlet can be extended its not the most prefered way for extension since most of the request processing behaviour is done by RequestProcessor. RequestProcessor class is based on Template Method Design pattern where a sequence of methods are called from the Process method. The RequestProcessor class can be extended for a CustomRequestProcessor and necessary methods can be overridden with desired functionality, the prefered method for overriding ins processPreprocess(). A real-time example of this can be found on one of my earlier posts here. In this extension appropriate class name of the extended processor must be specified using the
5. Extending Base Action class. This type of extension is highly helpful to provide common functionality required by all (or set of) Action classes of an application. In this type, the Action class is extended and methods that are required in common by most classes are specified and this class is extended by the rest of regular Action classes instead of the regular Action class. Helper methods for logging, user-lookup, basic validations can be included in such classes.
Tuesday, June 14, 2005
Healthcare for PCs?
Microsoft is planning to provide live PC "healthcare" under the flagship of "Windows OneCare Live". Click here to view more details!
Friday, June 10, 2005
google for rent
I stumbled upon this excellent website http://www.housingmaps.com/ built by using google maps, craigslist utilizing technology from google and data from craigslist. The idea is just fascinating and its great!
Thanks to Abi for letting me know this!
Thanks to Abi for letting me know this!
Wednesday, June 08, 2005
Tabbed Browsing on IE 6.0
Microsoft today released tabbed browsing support for IE 6.0 with its MSN toolbar. The tabbed browsing user experience is not great since the monitor flickers betweens tabs. To download click here
Wednesday, June 01, 2005
World Clock on your desktop!
If you like to have different times on your desktop Microsoft has the World Time Zone for you. Click here to download.
Friday, May 20, 2005
New Google home page is here!
Click here to have a peek. Offers personalization with gmail,news,quotes and much more. As always simple but powerful!
Wednesday, May 18, 2005
JAR file and CLASSPATH
if you are using the following command to run a jar file and want to provide a classpath to the running jar file... the following command will NOT work..
java -classpath C:\test\classes -jar test.jar
The answer is..
CLASSPATH=C:\test\classes
java -XBootclasspath/a:%CLASSPATH% -jar test.jar
java -classpath C:\test\classes -jar test.jar
The answer is..
CLASSPATH=C:\test\classes
java -XBootclasspath/a:%CLASSPATH% -jar test.jar
Sunday, May 08, 2005
Cool Desktop
Decorate your desktop with the coolest widgets! The konfabulator is here! It has lot of cool widgets for your desktop including cpu monitor, wirless signal strength, photo viewer and even a local traffic monitor. Its really cool and is a must have for your desktop. It runs both on MAC OS X and Windows XP
Google Ultimate Finder
Today I stumbled upon this website. Its really cool and it provides an easy interface to all hidden features of Google!
Friday, May 06, 2005
Google releases Web Accelerator
Google released a Web Accelerator (ofcourse beta). Its definitely helpful. Have a click here.
Thursday, April 28, 2005
Login to Longhorn
With the release for Mac OS X Tiger scheduled for Friday Microsoft has recently released some infomation about their Longhorn!
I don't think Windows users are in a hurry to upgrade their OS. Microsoft is always known for building vaprowares but I am sure we don't want shell out bucks to upgrade to the newer OS. The press release also notes that Longhorn can run in slower machines in XP like mode. If that is the case I would just install XP and live with that. Why bother at all for the new OS?
If Microsoft can give recommeded system requirements for Longhorn then it would definitely be a huge welcome.
I don't think Windows users are in a hurry to upgrade their OS. Microsoft is always known for building vaprowares but I am sure we don't want shell out bucks to upgrade to the newer OS. The press release also notes that Longhorn can run in slower machines in XP like mode. If that is the case I would just install XP and live with that. Why bother at all for the new OS?
If Microsoft can give recommeded system requirements for Longhorn then it would definitely be a huge welcome.
Wednesday, April 20, 2005
Compare files/directories
Today I was hunting down some strange problem and would have to find some nice tool to do directory comparision. ExamDiff Pro did an excellent job. I would highly recommend this for binary directory comparision.
You could also use KDiff3 since its a freeware!
You could also use KDiff3 since its a freeware!
Tuesday, April 19, 2005
Thursday, April 14, 2005
WebSphere Portal Server 5.1
I was fighting with a application enviorment migration from WPS 5.0/ to WPS5.1/RAD6.0. I found some interesting facts that I thought worth scribbling it here. First of all RAD 6.0.0.0 doesnt have support for Portal/Portlet development. The good news is that IBM has released an update for this in its newst RAD 6.0.0.1, so just update the RAD enviroment always to the newst and greatest!
If you have a Portlet application there are few tricks you must adopt to migrate the same to the newer enviorment. First create a blank Portlet application using RAD 6.0. Then manually copy all your source files from the old project to new project. Then make sure all dependencies are configured as of the old project. While copying portlet.xml and web.xml make sure you overwrite the new files with your old files. DO NOT overwrite portlet.tld, you must use the new portlet.tld. Also while copying lib directories DONOT overwrite with old JAR files.
If you follow these steps then migration to newer enviorment must be a peace of cake. I recommend atleast 1.5 GB RAM for running RAD 6.0 and WPS 5.1 (or even WAS 6.0)!
If you have a Portlet application there are few tricks you must adopt to migrate the same to the newer enviorment. First create a blank Portlet application using RAD 6.0. Then manually copy all your source files from the old project to new project. Then make sure all dependencies are configured as of the old project. While copying portlet.xml and web.xml make sure you overwrite the new files with your old files. DO NOT overwrite portlet.tld, you must use the new portlet.tld. Also while copying lib directories DONOT overwrite with old JAR files.
If you follow these steps then migration to newer enviorment must be a peace of cake. I recommend atleast 1.5 GB RAM for running RAD 6.0 and WPS 5.1 (or even WAS 6.0)!
Tuesday, April 05, 2005
Sunday, April 03, 2005
How to setup a web/ftp server @ home? (Dynamic DNS?)
Have you wondered what is Dynamic DNS service is?
Generally we know how DNS (Domain Name Server) works . Any major website is usually associated with a static ip address. The name is mapped to a single ip address and it wont change frequently, most servers have static ip address. In order to obtain a static ip address for your home you may have to pay additional charge to your ISP.
At home we normally have a high-speed (or dial-up) connnection with dynamic ip adress. By dynamic we mean that each time you connect to your ISP you will be given a different address. Since there is on single ip address it would be impossible to host a web server and ensure availability of the system. The dynamic DNS service provided by no-ip.com, dns2go.com, etc. In dynamic DNS service works by installing a client application on your home computer and monitors your ip address continously. If your ip address changes the client maps your domain name with your "current" (home) ip address. So any browser trying to resolve your domain will find you! As simple as it can be!
Generally we know how DNS (Domain Name Server) works . Any major website is usually associated with a static ip address. The name is mapped to a single ip address and it wont change frequently, most servers have static ip address. In order to obtain a static ip address for your home you may have to pay additional charge to your ISP.
At home we normally have a high-speed (or dial-up) connnection with dynamic ip adress. By dynamic we mean that each time you connect to your ISP you will be given a different address. Since there is on single ip address it would be impossible to host a web server and ensure availability of the system. The dynamic DNS service provided by no-ip.com, dns2go.com, etc. In dynamic DNS service works by installing a client application on your home computer and monitors your ip address continously. If your ip address changes the client maps your domain name with your "current" (home) ip address. So any browser trying to resolve your domain will find you! As simple as it can be!
Wednesday, March 30, 2005
A tip to get rid of ads!
One thing everyone of us would agree is that the pop-ups/ads are annoying. Its even more annoying if there are too many ads on your favourite web portal. There is a hack to it!
Lets say you like http:///www.sify.com/ but you dont like to see their annoying ads. The idea is to find their ad-server. Major portal have separate ad servers which they use to display their ads. For example sify has ads.sify.com as their ad server. If we are able to block our browser request to these ad servers there will be no ads to the browser!
So what I did was to simply edit the C:\windows\system32\drivers\etc\hosts file using notepad and add the following entry:
127.0.0.1 ads.sify.com
Now, ads.sify.com is mapped to loopback address so your browser would fail making a request and you wont see an ad. To find out the ad server you want to block visit the portal right-click on an image and you can find the domain!
Lets say you like http:///www.sify.com/ but you dont like to see their annoying ads. The idea is to find their ad-server. Major portal have separate ad servers which they use to display their ads. For example sify has ads.sify.com as their ad server. If we are able to block our browser request to these ad servers there will be no ads to the browser!
So what I did was to simply edit the C:\windows\system32\drivers\etc\hosts file using notepad and add the following entry:
127.0.0.1 ads.sify.com
Now, ads.sify.com is mapped to loopback address so your browser would fail making a request and you wont see an ad. To find out the ad server you want to block visit the portal right-click on an image and you can find the domain!
Thursday, March 24, 2005
AOL, Yahoo, MSN and Google -- few years later - some predictions?
We all know that Yahoo, AOL, MSN and Google are competing with each other in providing individual web based services including IM, e-mail, calendar, maps, search, video conferencing, virtual meetings, collaborative video etc. The services they provide are targeted towards individual web users (including tech savvy and novice users). A novice computer user needs all these services with a word processor and a spreadsheet program. It would be no surprise if these companies are already investigating to build an online office suite.
Presently, these companies are letting us get accustomed to these services to help them test their products. There is nothing free in this world and once these services are completely developed, we will be made to pay. Some people call this foot-in-the-door marketing.
In about 3-5 years from now, a visit to one of these portals will require authentication which itself can be a retinal scan. They will provide ample storage space and tools to seamlessly share your documents/pictures/music/movie and folders. The other cool features could be high-resolution video conferencing, virtual meetings, collaborative applications etc. With the spread of high-speed networks and innovation in client/server-side technologies the performance of these portals will enhance tremendously and give an desktop like user experience.
Technology is the key to achieve the above mentioned user experience. Technically speaking user-experience is an aspect of client-side computing. In the recent past there had been great innovations in server-side and middleware technologies, but little has be done to improve client-side. But its very clear that presently the industry is focused on Avalon XAML, Ajax and similar technologies which utilize the client to achieve greater user experience. These technologies are in their initial stages and would take couple of years to get matured. I am sure thre are going to be some common frameworks built for Ajax and there by writing DHTML code by hand would become a thing of the past. Lets wait and see how things shape up in reality!
Presently, these companies are letting us get accustomed to these services to help them test their products. There is nothing free in this world and once these services are completely developed, we will be made to pay. Some people call this foot-in-the-door marketing.
In about 3-5 years from now, a visit to one of these portals will require authentication which itself can be a retinal scan. They will provide ample storage space and tools to seamlessly share your documents/pictures/music/movie and folders. The other cool features could be high-resolution video conferencing, virtual meetings, collaborative applications etc. With the spread of high-speed networks and innovation in client/server-side technologies the performance of these portals will enhance tremendously and give an desktop like user experience.
Technology is the key to achieve the above mentioned user experience. Technically speaking user-experience is an aspect of client-side computing. In the recent past there had been great innovations in server-side and middleware technologies, but little has be done to improve client-side. But its very clear that presently the industry is focused on Avalon XAML, Ajax and similar technologies which utilize the client to achieve greater user experience. These technologies are in their initial stages and would take couple of years to get matured. I am sure thre are going to be some common frameworks built for Ajax and there by writing DHTML code by hand would become a thing of the past. Lets wait and see how things shape up in reality!
Wednesday, March 23, 2005
greasemonkey -- firefox extension
greasymonkey is a cool firefox extension making your FireFox browser more smarter! The extension lets you add "user scripts" (DHTML scripts) by which you can bring more dynamic features to your website. The extension now ships with two such scripts one of which would recognize valid links and make them hyperlinks in a page. The other script "ununderline" would remove underlines from pages and italize them so that they dont anymore look like hyperlinks!
IBM releases spam fighter!
Yesterday, IBM released FairUCE (which stands for "Fair use of Unsolicited Commercial Email") which filters spam by verifying sender identity instead of filtering content. The difference between this and existing technologies in fighting spam is that FairUCE doesnt look at the content of the mail but looks at who sends it and their reputation. It doesnt stop by filtering the email but also tries to attack the spammers by sending the spam back to smmers! Quite agressive!
IBM reports that the technology is not end-user ready but admin's can paly with it. It available for download from alphaWorks!.
IBM reports that the technology is not end-user ready but admin's can paly with it. It available for download from alphaWorks!.
Monday, March 21, 2005
Networking - made easy!
If you have a small windows network at home/small office then you might want to have a click here. Network Magic from PureNetworks is a cool tool to maintain your home network.
Friday, March 18, 2005
Shift of approach in developing web applications
By now I am sure that you must have visited Google maps, if not have a click here. To me it was a fascinating experience to lookup for maps using Google. As a web developer I wondered how one could be make the user experience so interactive that it seemed almost like an application installed in my desktop. The ease with which you could move around the map just amazed me. My quest for the secret behind this experience made me do few “google” for the technology behind this, which revealed something called Ajax (Asynchronous JavaScript + XML ). Ajax is a concept that incorporates XHTML/CSS, DOM, XML and XSLT, XmlHttpRequest and JavaScript.
We all know how the web works. The client makes the request and the server processes the request and sends its response back. So there is a significant time for the response to reach the client (which includes time for request to reach server+processing_time+time for response to reach client). Ajax is an engine written usually in JavaScript that resides in the client side and is responsible for rendering the user interface by separating it from the client/server communication. It does both of them in an asynchronous fashion and hence the user will never have to wonder if the globe is spinning! The idea is redirect every user action which would make a HTTP request to the Ajax engine instead. The engine sees if it can handle the request without sending it across and if it can’t it then makes request asynchronously using XML to the server without stalling user’s interaction with application.
The websites that implement Ajax are from Google. They are orkut, Google Suggest, Gmail. I played with Google Suggest to find out how they have built. I am presenting what I learnt:
The Ajax engine as discussed is implemented as a JavaScript file called ac.js. The source can be obtained from here. The code is obfuscated and so reading it is not obvious. The requirement for Google Suggest is straightforward and so looks the implementation. As the user types something, suggestions have to be obtained from server and are to be presented to the user. The Ajax engine (JavaScript) handles the onkeydown event of the search textbox and grabs the content of the textbox and sends a request for suggestion to the server using:
http://www.google.com/complete/search?hl=en&js=true&qu=google
This request would return a result like this:
sendRPCDone(frameElement, "google", new Array("google", "google.com", "google toolbar", "google maps", "google scholar", "google mail", "google images", "google tool bar", "google map", "google uk"), new Array("155,000,000 results", "1 result", "3,170,000 results", "6,890,000 results", "2,210,000 results", "20,600,000 results", "21,500,000 results", "3,460,000 results", "10,500,000 results", "16,300,000 results"), new Array(""));
What has happend is that the server has processed the request and has sent a response back to the client. Here the Ajax engine (function qc(ac)) is responsible for sending the request and handling the response. Once the response is received it refreshs the view.
Its just amazing to see how some primitive time tested technologies if used in a certain combination could make the line between the thin and thick client so thin!
Reference:
1. http://www.adaptivepath.com/publications/essays/
2. http://www.google.com/webhp?complete=1&hl=en
We all know how the web works. The client makes the request and the server processes the request and sends its response back. So there is a significant time for the response to reach the client (which includes time for request to reach server+processing_time+time for response to reach client). Ajax is an engine written usually in JavaScript that resides in the client side and is responsible for rendering the user interface by separating it from the client/server communication. It does both of them in an asynchronous fashion and hence the user will never have to wonder if the globe is spinning! The idea is redirect every user action which would make a HTTP request to the Ajax engine instead. The engine sees if it can handle the request without sending it across and if it can’t it then makes request asynchronously using XML to the server without stalling user’s interaction with application.
The websites that implement Ajax are from Google. They are orkut, Google Suggest, Gmail. I played with Google Suggest to find out how they have built. I am presenting what I learnt:
The Ajax engine as discussed is implemented as a JavaScript file called ac.js. The source can be obtained from here. The code is obfuscated and so reading it is not obvious. The requirement for Google Suggest is straightforward and so looks the implementation. As the user types something, suggestions have to be obtained from server and are to be presented to the user. The Ajax engine (JavaScript) handles the onkeydown event of the search textbox and grabs the content of the textbox and sends a request for suggestion to the server using:
http://www.google.com/complete/search?hl=en&js=true&qu=google
This request would return a result like this:
sendRPCDone(frameElement, "google", new Array("google", "google.com", "google toolbar", "google maps", "google scholar", "google mail", "google images", "google tool bar", "google map", "google uk"), new Array("155,000,000 results", "1 result", "3,170,000 results", "6,890,000 results", "2,210,000 results", "20,600,000 results", "21,500,000 results", "3,460,000 results", "10,500,000 results", "16,300,000 results"), new Array(""));
What has happend is that the server has processed the request and has sent a response back to the client. Here the Ajax engine (function qc(ac)) is responsible for sending the request and handling the response. Once the response is received it refreshs the view.
Its just amazing to see how some primitive time tested technologies if used in a certain combination could make the line between the thin and thick client so thin!
Reference:
1. http://www.adaptivepath.com/publications/essays/
2. http://www.google.com/webhp?complete=1&hl=en
Tuesday, March 15, 2005
HTTP Monitor for IE
As a web developer one would always want to use monitor the request made by the client at some point probably for debugging or testing for performance etc. I found this tool and is pretty good. The only restriction I found is that it only supports Internet Explorer.
Wednesday, March 09, 2005
A peek at EJB3
We all are tired of building the EJBs the way in which we are building today. Construct Home/Remote Interface, extend xxBean etc. Here comes EJB3 to make your life simpler and make Java code in the way it was intended to be built. It uses simple POJO programming model to achieve object/relational persistence by making all the artifacts necessary to build the beans being put in place as annotations within the class. Its based on Hibernate it seems
Monday, March 07, 2005
Google Weather is right here!
Google Weather...
http://www.google.com/
weather bronx,ny
or
weather 10463
The graphics are really cool...
http://www.google.com/
weather bronx,ny
or
weather 10463
The graphics are really cool...
Google Desktop Search -- Improved!
Google released its new version of desktop search which now gives the ability to search inside PDF, DOC, XLS etc. Also its possible to write our own plugin... now you could write a plugin and search any format you want.. sounds cool..
Click here
Click here
Saturday, March 05, 2005
Web Developers/Designers - How to validate a HTML page for standards?
In common-sense (not business-sense, ofcourse in business world its making quick and dirty work) a good web page is one which complies with w3c html spec. In order to validate your webpage against w3c spec click here
I tried testing microsoft.com, java.sun.com, google.com,yahoo.com against the validator... Ofcourse, none of them passed the test! If you can show me page which complies I would be more than happy to note that.
I tried testing microsoft.com, java.sun.com, google.com,yahoo.com against the validator... Ofcourse, none of them passed the test! If you can show me page which complies I would be more than happy to note that.
Open Source for Windows
OSSwin is one of the best online resource for free Windows based software I have ever stumbled upon... Its worth bookmarking http://osswin.sourceforge.net
Being PCAware
I am sure you must have heard a lot of these jargon spyware,virus,malware,adware etc. I am sure many of us doesn't know what these exactly mean...
Adware:
Spyware is a jargon used for denoting advertisement supported software. Once if it finds the way into your system in the form of AcitveX control or so-called "shareware/freeware" software it continuously opens annoying popup windows.
If you would like to protect yourself from these then install only trusted applications and ActiveX controls. When you are busy browsing you will see notifications with "Install" warning, make sure you know what you are installing.
Spyware:
Spyware is essentially a form of adware which not only brings up pop-up ads but also continuously monitors and sends your PC activity to some remote server and effectively hijacking your privacy.
Trojan Horses:
Trojan Horses are the most vulnerable programs which opens-up your computers to bad hackers who effectively take control of your PC (ofcourse they would make sure your machine is rendered unusable).
Malware:
Malware is the term used to denote spyware, adware, trojan horses, worms, hijack scripts, bad JavaScript, bad webserver scripts etc
Dialers:
These are relatively new form of threat. Once spyware/torjan horses gets installed in a computer it can create dialers or change phone number of your dialers to high premium rate numbers and resulting in high phone bills.
Phishing:
In Phishing, fraudulent websites are designed to deceit users to extract sensitive information including credit card, social security numbers etc. In order to attract traffic to their websites they use spoofed emails and indirect weblinks. So beware!
Pharming:
Pharming is another "flavor" of phishing to deceit users they steal the identity of popular institutions like banks, online retailers, etc.
How to protect your self?
Click Here
Adware:
Spyware is a jargon used for denoting advertisement supported software. Once if it finds the way into your system in the form of AcitveX control or so-called "shareware/freeware" software it continuously opens annoying popup windows.
If you would like to protect yourself from these then install only trusted applications and ActiveX controls. When you are busy browsing you will see notifications with "Install" warning, make sure you know what you are installing.
Spyware:
Spyware is essentially a form of adware which not only brings up pop-up ads but also continuously monitors and sends your PC activity to some remote server and effectively hijacking your privacy.
Trojan Horses:
Trojan Horses are the most vulnerable programs which opens-up your computers to bad hackers who effectively take control of your PC (ofcourse they would make sure your machine is rendered unusable).
Malware:
Malware is the term used to denote spyware, adware, trojan horses, worms, hijack scripts, bad JavaScript, bad webserver scripts etc
Dialers:
These are relatively new form of threat. Once spyware/torjan horses gets installed in a computer it can create dialers or change phone number of your dialers to high premium rate numbers and resulting in high phone bills.
Phishing:
In Phishing, fraudulent websites are designed to deceit users to extract sensitive information including credit card, social security numbers etc. In order to attract traffic to their websites they use spoofed emails and indirect weblinks. So beware!
Pharming:
Pharming is another "flavor" of phishing to deceit users they steal the identity of popular institutions like banks, online retailers, etc.
How to protect your self?
Click Here
Friday, March 04, 2005
Netscape 8 Beta
Netscape 8 looks really cool.. No more that "slow" browsing... Some highlights are..
* Ability to check all your personal mails (Gmail,Hotmail,Lycos,Y!) in single click
* Optional auto-login to websites
* IE Engine/Netscape engine for page rendering
* etc.
are some of cool features that I like...
* Ability to check all your personal mails (Gmail,Hotmail,Lycos,Y!) in single click
* Optional auto-login to websites
* IE Engine/Netscape engine for page rendering
* etc.
are some of cool features that I like...
Thursday, March 03, 2005
Wednesday, March 02, 2005
Google Toolbar Beta 3
Google Toolbar Beta 3 is available download.
I just love the Auto Link feature. It just rocks!
Download it here
I just love the Auto Link feature. It just rocks!
Download it here
Tuesday, March 01, 2005
Unicode (or non ISO-8859-1) encoding and text fields in "mulitpart/form-data" form
Today, I was hunting for a bug where the form enctype="multipart/form-data" (typically used for "uploading" files from browser). I had couple of text fields in this form. With little research I found that the IE always encodes a "multipart/form-data" as ISO-8859-1 even though your pageEncoding may be UTF-8 (or anything else) for that matter.
There is a Struts bug posted here and it has some workarounds (not staright-forward though).
The definite way to make it work is to extend ActionServlet. Click here for a tutorial on extending action servlet.
And the overriding this method:
protected void process(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
try{
request.setCharacterEncoding("utf-8");
}catch(Exception ex){
}
super.process(request,response);
}
This should do the job
There is a Struts bug posted here and it has some workarounds (not staright-forward though).
The definite way to make it work is to extend ActionServlet. Click here for a tutorial on extending action servlet.
And the overriding this method:
protected void process(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
try{
request.setCharacterEncoding("utf-8");
}catch(Exception ex){
}
super.process(request,response);
}
This should do the job
Friday, February 25, 2005
IBM "encourages" PHP for Web software
Today zdnet reports that IBM backs PHP for Web software development. The article also suggests that this move by IBM is based on Java's inability to easily access IBM back-end but wont move out from supporting Java for large enteprise applications through its WebSphere product line.
Thursday, February 24, 2005
Access Your PcAnywhere for Free!
I tried this service http://www.mywebexpc.com/ and its great! You could access your PC from Anywhere for FREE! Its worthy trying!
Wednesday, February 16, 2005
Concurrency Control and Application Performance
Concurrency Control is one of the most common phrases used in the world of resource sharing. In WebSphere its for sharing data resources. There are two major schemes used in concurrency contorl: pessimistic and optimistic. The pessimistic approach locks the resources early in the transaction i.e. at the start of a transaction. So the resource will almost be locked for the period of this transaction. For long transactions this approach is not generally desirable. In optimistic approach the resource is locked only at the final phase of the transaction. In this approach during the commital phase check is made to see if the data hasn't changed since the begining of the transaction. If no change is made then lock is acquired and transaction is commited or else the transcation is rolled back. To read more about Concurrency scheme in IBM WebSphere click here.
The locked resource cannot be accessed by other contending requests hence affects the avalabiltiy of the resource. Since the lock period is long in the pessimistic approach it would greatly affect the speed of the application interms of user experience. It is a good idea to set investigate and change the access intents in a method level fashion and not just leave in the default PessimisticUpdate intent.
The locked resource cannot be accessed by other contending requests hence affects the avalabiltiy of the resource. Since the lock period is long in the pessimistic approach it would greatly affect the speed of the application interms of user experience. It is a good idea to set investigate and change the access intents in a method level fashion and not just leave in the default PessimisticUpdate intent.
Websphere 5.1 - Access Intent
Today I was fighting with a bug while migrating an webapp from WAS 5.0 to 5.1. One of the EJB had a finder method which had a join query. So whenever this particular method is called during runtime it would throw this exception:
com.ibm.ws.ejbpersistence.utilpm.PersistenceManagerException: PMGR1001E: No such DataAccessSpec :FindMeetingTemplatesByPropId. The backend datastore does not support the SQLStatement needed by this AccessIntent: access intent: (pessimistic update-weakestLockAtLoad)(collections: transaction/25) (resource manager prefetch: 0).
After investigation its found that its due to the Default Access Intent which is PessimisticUpdate-WeakestLockAtLoad. For join queries in Oracle backend this Update access intent wont work. Generally this access intent must be used for UPDATE...WHERE.. queries. To fix this in EJB Deployment Descriptor :
1. Goto Access
2. In Access Intent for Entities 2.x (Method Level) -> Add wsPessimesticRead intent with the method that is faulting.
3. Restart your server and thats it.. the bug is fixed!
I also think its a good idea to know about Concurrency Control.
com.ibm.ws.ejbpersistence.utilpm.PersistenceManagerException: PMGR1001E: No such DataAccessSpec :FindMeetingTemplatesByPropId. The backend datastore does not support the SQLStatement needed by this AccessIntent: access intent: (pessimistic update-weakestLockAtLoad)(collections: transaction/25) (resource manager prefetch: 0).
After investigation its found that its due to the Default Access Intent which is PessimisticUpdate-WeakestLockAtLoad. For join queries in Oracle backend this Update access intent wont work. Generally this access intent must be used for UPDATE...WHERE.. queries. To fix this in EJB Deployment Descriptor :
1. Goto Access
2. In Access Intent for Entities 2.x (Method Level) -> Add wsPessimesticRead intent with the method that is faulting.
3. Restart your server and thats it.. the bug is fixed!
I also think its a good idea to know about Concurrency Control.
Monday, February 14, 2005
Handling east asian (Japanese, Chinese,Hindi,Tamil etc) languages input from browser
If you are working on an internationalization project and need to get input from the browser in mutliple languages and have problems with that, then you may need to read further.
The most common encoding used for east asian languages is UTF-8. When a page is rendered from the server side it is easy to set the pageEncoding to UTF-8 and send using
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
But for the input text from the browser the type of encoding used cannot be unfortunately set by the server. But we may have to generally assume it to be UTF-8. So before doing request.getParameter("field") we must setEncoding to UTF-8 using
request.setCharacterEncoding("UTF-8")
Here the assumption is that the browser is using UTF-8 and so do we. It should work fine for Wester European langauges even if the encoding used is ISO-8859-1 or US-ASCII.
You could also explicitly change your browser's encoding to UTF-8 in IE by View -> Encoding -> UTF-8
The most common encoding used for east asian languages is UTF-8. When a page is rendered from the server side it is easy to set the pageEncoding to UTF-8 and send using
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
But for the input text from the browser the type of encoding used cannot be unfortunately set by the server. But we may have to generally assume it to be UTF-8. So before doing request.getParameter("field") we must setEncoding to UTF-8 using
request.setCharacterEncoding("UTF-8")
Here the assumption is that the browser is using UTF-8 and so do we. It should work fine for Wester European langauges even if the encoding used is ISO-8859-1 or US-ASCII.
You could also explicitly change your browser's encoding to UTF-8 in IE by View -> Encoding -> UTF-8
Sunday, February 13, 2005
Microreboot
Couple of days before I mentioned I came across the concept of ROC (Recovery Oriented Computing). Today, I came across one of its research paper about Microreboot technique that can be employed for enterprise applications at a component level. They have taken JBoss J2EE application server and have implemented and tested this concept. Their idea is that most of the problems are resolved on a restart (or reboot in other terms) of the application server or the physical machine itself. But such reboots are fairly costly interms of downtime so the idea of microreboot is to boot individual components of the application (for example EJBs or WAR files in J2EE). By such microreboot all exisiting references of a component including resources including threads are destroyed and recreated. The Classloader of individual components themeselves are not destroyed in such a reboot, so static variables wont be re-intialized.
EJBs they cant be rebooted individually because they may maintain references to other EJBs that can span across containers. Thus, whenever EJBs are microrebooted the entire group of EJBs will be microrebooted. To determine this group the information is obtained from deployment-descriptors.
Their results show that there is significant improvement in recovery time while perseving the functional distruption, application state and cluster load dynamics. In order for to have microreboot the application must be carsh-only.
At this point I dont know the cost of making an application crash-only. Depending on the cost of writing cash-only software we can determine how effective this idea would be for businesses! I would want to explore that in the future.
Refere: Microreboot - A Technique for Cheap Recovery
EJBs they cant be rebooted individually because they may maintain references to other EJBs that can span across containers. Thus, whenever EJBs are microrebooted the entire group of EJBs will be microrebooted. To determine this group the information is obtained from deployment-descriptors.
Their results show that there is significant improvement in recovery time while perseving the functional distruption, application state and cluster load dynamics. In order for to have microreboot the application must be carsh-only.
At this point I dont know the cost of making an application crash-only. Depending on the cost of writing cash-only software we can determine how effective this idea would be for businesses! I would want to explore that in the future.
Refere: Microreboot - A Technique for Cheap Recovery
Thursday, February 10, 2005
Wednesday, February 09, 2005
High Availability or Fast Recovery?
I came across an interesting research topic Recovery-Oriented Computing at UC Berkely. The research project that is investigating novel techniques for building highly-dependable Internet services. Generally the trend is to provide High Availability for Web based applications using Clustering and Load-balancing. The idea of ROC suggests faster reocvery instead of fail-safe. Business could favour this idea mainly depending on cost of failure and the cost(also time) for recovery. If the time for recovery can be minized in such a way that could fit cost of failure business model this concept could be a great success!
I remember this saying "History repeats itself". If we see ROC or Binary XML both are like revisiting the past with a different perspective. People were using Recovery mechansims before the buzz of HA and same with binary xml which is now a tailored solution for network traffic!
I remember this saying "History repeats itself". If we see ROC or Binary XML both are like revisiting the past with a different perspective. People were using Recovery mechansims before the buzz of HA and same with binary xml which is now a tailored solution for network traffic!
Tuesday, February 08, 2005
Fast XML -- Binary XML ??
There is always a concern on the speed and size of XML though people undoubtedly hail XML's interoperatbility. But with these concerns now there is a new and emerging concept called Binary XML (Refer : Fast Infoset Project). If Binary XML develops there is a possibility that interoperability may not be possible. There are also effort to create standardized Binary XML format, possibility of which remains to be seen. I feel that the interoperability is the greatest advantage of XML and must be preserved at any cost. Lets see how the show turns up!
Monday, February 07, 2005
Desktop Search - Copernic
I find this Copernic Desktop Search better than Google and MSN! Finding music, videos, photos, PDF, DOC, XLS etc is easy. But must be configured properly so that it wont peg your CPU all the time.
Environment varible size in Windows
How to get around the problem of environment variable size in Windows?
Sometimes we may need to set PATH variable (or anyother variable) but the content may be "large" (max 255 characters in some flavours of Microsoft Windows). In order to over come this we can use subst command.
subst is a command to assign a Virtual drive for the given path. For example
subst m: C:\myproject\classes
The set CLASSPATH=m:;C:\otherproject\classes;C:\vendor1\classes;
C:\vendor2\classes;.... ..... .... ... ........
Thanks to Bagath for this input!
Sometimes we may need to set PATH variable (or anyother variable) but the content may be "large" (max 255 characters in some flavours of Microsoft Windows). In order to over come this we can use subst command.
subst is a command to assign a Virtual drive for the given path. For example
subst m: C:\myproject\classes
The set CLASSPATH=m:;C:\otherproject\classes;C:\vendor1\classes;
C:\vendor2\classes;.... ..... .... ... ........
Thanks to Bagath for this input!
Thursday, February 03, 2005
UTF8 Encoded data
Today I faced the problem of storing Japanese characters in ResourceBundles (Struts framework/Java). The Japanese characters are in UTF-8 encoding (which is ofcourse variable-length encoding scheme) are 3 bytes. So they cant be obviously stored in TXT files which uses some Latin based encoding schemes (which consider characters are 2 bytes). So only way to store them is store them as encoded utf data. To convert to utf encoded format I used the tool native2ascii which comes with JDK.
Before Conversion
今すぐ予約
After conversion using native2ascii
\u4eca\u3059\u3050\u4e88\u7d04
Before Conversion
今すぐ予約
After conversion using native2ascii
\u4eca\u3059\u3050\u4e88\u7d04
Monday, January 31, 2005
Tomcat 5.5.7 Released
Apache Jakarta Tomcat 5.5.7 Stable Release
To me 5.5.x looks like a overhaul to previous version and should be more stable Tomcat 5.0.
Apache Jakarta Tomcat 5.5.7 Stable Release
To me 5.5.x looks like a overhaul to previous version and should be more stable Tomcat 5.0.
Subscribe to:
Posts (Atom)