Categories
World Wide Web

Site specific browsers or desktop enabling web applications

The concept of site specific browsers has been around for quite some time now. While on one side, people are moving desktop application functionality to the web so as to take advantage of the features that the WWW provides, there is another group trying to bring closer integration of web applications with the desktop.

This is expected until we reach a point where there is seamless integration of the Internet and the WWW with the gadgets (laptops, cell-phones, etc) that we use everyday and it is difficult to define what a client is and what a server is!

So what does site specific browser mean?
Well, at the simplest, it means running your web application in its own separate process. However as this concept evolves, this will be more interesting. Imagine having a separate process run your favorite web application with look and feel (using UserStyles) and functionality (using Greasemonkey) tweaked according to your needs. I am not sure how this is going to look, but I am imagining some support for tweaking a web application being built into the webapp – showing both properties that the web application developer has provided (ex: offlining with Google Gears) and properties that are customizable using tools like Userstyles and Greasemonkey. Also expect better support for mashupability and better integration with other desktop applications and processes.

So what applications/runtimes do we have as of today?
Mozilla is working on WebRunner. Meanwhile, Adobe has been betting huge on AIR. At this stage, it looks like WebRunner is doing a better job primarily because WebRunner is from Mozilla and is open-source, so you can expect features like extensibility and being based on open formats, while AIR is based on a proprietary runtime. Can you expect extensibility and customization of AIR based applications? Well, it is a bit too early to be comparing technologies when the idea is still new.

I feel the primary value add in site specific browsers is in the customization of the application and the increase in usability when compared to running it in a browser.

On a separate note, this reminds me of the blog entry that I made about the death of browsers or about desktop enabling web applications back in 2005!

Categories
World Wide Web

Eclifox – the publicity

Wow! Never imagined this would happen so soon.

Oct 16th:
Eclifox is currently in the front-page of ZDNet Japan.

The number of Google results for ‘eclifox’ is 12,200. Before Eclifox was released it was around 10.

There have been some good reviews and a lot of references to Eclifox in general.

Thanks to all those who have shown interest.

Oct 17th:
1:00 pm IST – 50,800
6:10 pm IST – 223,000

Oct 19th:
Eclifox in the Java Posse podcast.

Nov 28th:
Now that it is out of most feeds, the number of results is hovering around 700.

Categories
World Wide Web

Eclifox – bringing Eclipse to the browser

We finally made it! Eclifox is now an Alphaworks technology.

So what is Eclifox?
In order to understand what Eclifox is, look at the screenshot below:


What do you see?

If you think that this is the screenshot of the Eclipse IDE, you are only partially right. Look again. It is Eclipse running in the Firefox browser!

Here is a flash demo of Eclifox. (Run it in full-screen). The demo shows the usage of Python and Ruby plugins from Eclifox.

A bit of history:
About a year and a half back I came up with a thought. How would it be if we were able to provide web based access to Eclipse functionality? Initially it was not clear how we could achieve this, but the idea seemed promising. So we thought we would give it a try by giving this of to a bunch of interns.

In came a group of 6 students who not only had the passion to complete this, but also the zeal to learn the technology required to make it work.

Hats off to the following interns who made it a reality:

  • Adarsh Ramamurthy
  • Karthik Ananth
  • Mohd Amjed Chand
  • Prasanna V. Pandit
  • Srirang G. Doddihal
  • Vikas Patil

The above interns from SJCE put their heart and soul to this effort and developed the whole thing in less than 4 months time. Personally, I enjoyed the 6 months time I spent on guiding these students. We have a stunned a lot of people within IBM with this idea. No one expected an internship project to get so much praise (or even criticism!).

Thanks to Kiran who provided guidance throughout the course of this project. Also for spending umpteen hours in getting this on alphaWorks! Also thanks to several people who provided the support when it was required.

And now about the technologies used:
The basic idea is to include a plug-in in Eclipse that helps us interact with Eclipse to fetch UI definitions and also to simulate events on Eclipse. The technologies used are primarily Javascript (with XMLHttp) on the client side and Jetty as the server embedded in Eclipse. For more information read the alphaWorks page.

So try it out and let us know what you feel!

Categories
World Wide Web

ApacheCon US 2007 / OS Summit Asia 2007

Two of my colleagues and friends Vamsi & Shiva, who are committers on Apache Geronimo will be conducting training sessions at ApacheCon US 2007 / OS Summit Asia 2007.

Java EE 5 App Development on Geronimo 2.0 simplified using Eclipse by Shiva Kumar
Attendees will learn how to develop, deploy, test and debug Java EE 5.0 applications on Apache Geronimo using Eclipse and WTP (Web Tools Platform). They will have hands-on lab exercises on (and hence be masterful at):

  1. Setting up the Eclipse IDE for Java EE 5.0 App Development on Geronimo v2.0, including starting/stopping of Geronimo server from within Eclipse.
  2. Developing a simple Java EE 5.0 application from scratch (consisting of a few JSPs, Servlets, Session Beans and JPA Entity Beans), and deploying and testing it on the Geronimo server.
  3. Adding MDBs and WebServices into the above application using Eclipse WTP v2.0 tools.
  4. Debugging Java EE applications using Eclipse.

Attendees will also compare their newly developed Java EE 5.0 application with an equivalent J2EE application, and left appreciative of some of the newest features brought by Java EE 5 (like Annotations) that greatly simplify enterprise application development.

ApacheCon link
OSSummit link

Securing Java EE Applications in Apache Geronimo by Vamsavardhana Reddy
The attendees will learn about the prerequisites for various security realms provided by Geronimo, the choice of data stores (Simple Text Files, LDAP, Database, Digital Certificates) they have for user credentials, how to create security realms to authenticate users using the data in these data stores, configure Web/EJB/EAR application security and enable advanced features like Principal wrapping, Single-Sign-On, Auditing and Lockout. After completing the training, the users will be in a position to decide what best suits their development/deployment needs, create security realms and create necessary deployment plans to secure their applications using the realms.

ApacheCon link
OSSummit link

Hurry up and register soon. There is a discount on the registration fee if you register before 22nd October 2007.

Categories
World Wide Web

Google Reader finally has search!

This was one feature that I was missing in Google Reader. So, while I tried the Google Custom Search when I really missed it, I was not quite happy with it, since it was showing up really old posts and there was no obvious way of viewing only 'relevant' posts or 'new' posts.

I have also tried a couple of GreaseMonkey scripts. But I was not happy with the user-interface integration.

So finally today, I open Google reader and see a tiny box on the top and wonder for a moment if it was some GreaseMonkey script running. Then I make a search and am convinced it is not! I also make a search in Google News to make sure it is true. And yeah, here is the confirmation. This is perhaps the most long awaited feature ever with regard to Google's applications.

The integration is just too good. Plus there is option to search only within specific tags or subscriptions. There is suggest in the drop down of tags and subscriptions. And guess what, there is also a way to reach the result page directly. Just create a keyword bookmark for: http://www.google.com/reader/view/#search/%s/ and give it a keyword like grs (Google Reader Search) and then use your browser address bar to perform a search directly in Google Reader, for example, 'grs eclipse'.

Suits me perfectly! Finally I feel like I am playing with an ATOM store rather than a simple feed reader.

Categories
World Wide Web

User adoption and its effect on technological evolution

The IPv6 specification has been around for about 9 years now. People understand the problems with IPv4. Yet the world is struggling to move to IPv6.

Ruby has been around for about 14 years now. It had enough time to evolve before it was widely adopted.

Java has been around for about 12 years. The adoption was quite fast. Now although newer versions of Java are being released, it is slowly losing its charm. There are some known problems, which would rather have not been there in the first place, but now it is too late or difficult to correct.

Browsers were meant to be used to browse documents containing hypertext. HTTP is a request/response application level protocol. People are now using both of these for things that they are not designed to do; browsers as application platforms (mashups from multiple sites) and HTTP for pushing data from the server aka Comet.

I can go on. But, do you see a pattern here? Or are these just random bits from history?

The point I am trying to make is that it is very difficult for technology to evolve once it has been widely adopted. In such cases, it is considered okay to bypass the working of the technology without breaking it by identifying loopholes!

So do we blame adoption before a technology matures? Or should there be a way that technology can mature and evolve without carrying its sins forward? Is it possible to mandate a 'big-bang' when specifications can move from one version to another or when there can be radical changes in technology without backward compatibility? How can this be achieved by ensuring that there is minimal side-effect? Does the answer lie in The Tipping Point?!

Seems like an interesting problem to solve.

Categories
World Wide Web

My paper on use of annotations in the crawling and indexing process of search engines

Just realized that my paper on User annotations to facilitate collaborative web crawling and indexing has finally been published.

Categories
World Wide Web

Screen real estate optimization in Firefox

So here is a collection of hacks that I have made in my Firefox browser to optimize the usage of real estate and still have control over my browser

  • Install the TinyMenu extension to replace your menu with a single menu item.
  • Now that you have space in your main menu-bar, move all your navigation toolbar items to the main menu-bar and then hide the navigation bar. Also hide the toolbar. You can do this by right-clicking on one of the toolbars and unchecking all of them!
  • Right click the Main menu bar, choose Customize. Remove the Home and other icons that you hardly use.
  • Remove the 'Go' button next to the address bar, remove the magnifying glass, remove Back/Forward/Reload/Stop buttons when disabled as shown here.
  • Install the Searchbar Autosizer extension to make your search bar extremely small and then to expand when you type characters in the search box.
  • Auto-hide the tab bar.
  • Use Fuller screen to remove the menu-bar and status bar when not required!
  • Preview your tabs and search for one using Firefox Showcase extension.
  • Clean up your menu's using Menu editor extension.
  • Keyboar shortcuts are extremely important to increase your productivity. Reconfigure your shortcuts using Keyconfig extension.
  • Also you can add these new key combinations in Keyconfig to cycle through your tabs:

Move one tab left (Ctrl+Left)

if(gBrowser.mTabContainer.selectedIndex == 0)
gBrowser.mTabContainer.selectedIndex = gBrowser.mTabContainer.childNodes.length - 1;
else
gBrowser.mTabContainer.advanceSelectedTab(-1);

Move one tab right (Ctrl+Right)

if(gBrowser.mTabContainer.selectedIndex == gBrowser.mTabContainer.childNodes.length - 1)
gBrowser.mTabContainer.selectedIndex = 0;
else
gBrowser.mTabContainer.advanceSelectedTab(1);

And once you do this, you will definitely want to take backup of your profile. Use FEBE and you are done!

Categories
World Wide Web

Have I stopped blogging?

“Have you stopped blogging?”, people ask me. I don't have a definite answer. True, it has been a long time since I blogged. Although I have been quite active in my online activity as is apparent here I somehow couldn't blog about anything for the last 3 months!

During the course of the 3 months since my last blog entry, I came across quite a lot of things, which I found interesting and would have normally blogged about. However, I got into this vicious circle where I thought that it is not worth blogging about it, after such a long gap and that added to the time, and now it became more and more difficult to blog about something.

Ok, so what's keeping me interested?

  • Lotus connections, specially the idea of Activities. This has been an eye-opener regarding the way I organize information in my system/s.
  • The emergence of a new web pattern of “server pushing information” to the browser, commonly referred to as Comet.
  • ProjectZero, which is IBM's answer to rapid and 'Zero' obstacle development of Web oriented applications.
  • TiddlyWiki – I wonder why I did not come across this before! It is absolutely fabulous and the idea of a single page self-contained wiki is just too good to believe and sometimes scary. 🙂

Also, of late, I started getting interested in analysis of web activities.

A day of effort, and some hacking of the Firefox history and a tool called RapidMiner helped me get some insights into my browsing habits, which I had never thought about before. I noticed a pattern in the way I come across new topics. Also I learnt about the way I get to certain frequently accessed sites and what I can do to get to certain information quicker than ever before. Finally, I realized that the new del.icio.us Firefox extension has helped me improve my browsing habits and made my bookmarks more valuable.

It is really interesting to see what other 'inferences' are possible with the data that is already available! Considering the fact that data today is available in a wide-variety of open-formats and the data also being openly available, it is possible to fetch all this data, feed it to some analyzer and get some interesting insights and use that to make your web journey more fruitful. The Flickr Cluster experiments are just tip of the iceberg!

Some projects/tools related to this are APML, ManyEyes.

Ok, I have written about a wide variety of topics that I am currently finding interesting.

So, finally, back to the question I started off with. Have I stopped blogging? The answer definitely has got to be a 'No'!

Categories
World Wide Web

Search results and relevancy

Search engines suggest alternative keywords when you mistype keywords.

I was looking for a Wikipedia article on Liskov substitution principle. I came across this when I was reading about Design By Contract elsewhere and the article had 'mistyped' the phrase as Lyskov substitution principle.

I first entered it in my Firefox Wikipedia search engine plugin and got no results. My next target was Google and this is what I got:

Not knowing that I had mistyped the phrase, I did not click on the suggestion. I was in fact surprised that Wikipedia does not have an article on this!

Then I searched in Yahoo and this is what I got:

Wow! I had indeed mistyped the phrase and Yahoo turned out to be intelligent in guessing what I was interested in.

Google's approach is like: 'I guess you have made a mistake, but I am not sure, here is the result for what you typed. However, I think you are looking for this.' Yahoo's approach is: 'I guess you have made a mistake and this is what I think you are looking for, if you are interested in search results for only what you typed, click here.'

I am not sure which approach is better, but I definitely like Yahoo's approach because it saves me a page load and a click.