Archive for Mozilla Talks

First Day @ TOSS & FSOSS, Toronto

The first day of the Teaching Open Source Summit (TOSS) was great. I tried catching up with what other folks at the Free Software and Open Source (FSOSS) symposium were doing, but it was not what I thought it would be. Really, I had earlier thought I would be able to do both.  But I missed out on a couple of interesting workshops at the FSOSS.  However, TOSS was awesome. I met with great people – Greg from Red Hat, Frank from Mozilla, Karlie from Webpath, Mel, Dave, Fardad and Chris from Seneca, to mention a few.

There were a lot discussions on what has been happening in teaching open source around the globe. In addition, how Mozilla and Red Hat, as Open Source Software Companies, have been promoting Open Source Education was also discussed. At the end, we came up with a list of what we would like to have in TOS.

The Needs in TeachingOpenSource

The Needs in TeachingOpenSource

No doubt, it was a great experience. For once, I could see the difference between a College/Polytechnic/Univ. of Technology and the conventional academia. And now, I am asking myself some questions – Where do I belong?, Where do I want to be?, Can I find a linkage between the two? I will be brainstorming on these questions in the next few days or weeks. For now,  I look forward to another great day today – FSOSS Presentations.

Leave a Comment

Another talk on the Mozilla Community and Projects

The second talk on the Mozilla Community and Projects took place on September 25, 2009. Like the first one, we had it at the University of Cape Town. The first one was on October 1, 2008, and here is a link to my blog post on it. We had close to 30 attendees in this year’s talk, and I was glad to meet guys, who have also been ‘hacking’ the Mozilla framework. A guy told he submitted a patch to the Mozilla on opening a new tab close to the current tab (like IE 8). Another guy said he had used the framework in the past to develop an application.

I played a short video on my work (The TransferHTTP extension) during the presentation and got a pointer from one of the attendees. Coincidentally, I got the Mozilla Service Week T-Shirts from the Courier few hours before the presentation; so, I had more giveaways for the attendees. The presentation lasted an hour, and they found it interesting, as mentioned by some of them. Check out the pictures on the Google Picasa, and here is a link to the updated slides, which now contain getting started and benefits. The previous slides are still available; they can be found here.

During the Mozilla Community and Projects talk

During the Mozilla Community and Projects talk

http://bit.ly/16UqHt

Comments (2)

Projects Videos

I was thinking that it would be a great idea to make available videos of my projects. Below are two videos; the first video is an interaction between two instances of the Mozilla firefox, while the second video shows how the proxy functions. Some of the things demonstrated here are Web session transfer blocking and session handoff between two browsers. The proxy keeps log of SIP INVITE and SIP MESSAGE requests and actions taken on them based on user’s settings.

The TransferHTTP Clients Interaction (15MB)
The TransferHTTP Proxy (2.8MB)

Leave a Comment

The TransferHTTP Proxy Interface: Web Session Mobility Tracking and Pick-up

A lot of work has been done to implement the proxy for the proposed hybrid-based architectural scheme for HTTP Session Mobility. I blogged about the proxy some weeks ago. Here are the blog posts on the proxy [1, 2]. I referred to the services the proxy offers as control services. The services include Web forwarding and Web blocking. Today, I am pleased to introduce the proxy User Interface (UI). Below is a screenshot of the proxy UI.

The TransferHTTP Proxy Interface

The TransferHTTP Proxy Interface

The TransferHTTP proxy interface shows the SIP URIs of two Web browsers interacting with each other. In addition, It indicates the SIP Method in use, the time of the interaction, the status or action taken by the proxy and the referred URL.The interaction refers to a content sharing or session handoff between any two Web browsers. It could also be a multimedia session between the two Web browsers. The referred URL is the Web address the initiator of the content sharing or session handoff wants the other person to visit. The status or action taken by the proxy could be forbidden(i.e. blocked) or proxied (i.e. sent). When the status is “proxied,” it means that a message is sent to the intended destination as specified by the initiator or a message is forwarded to another Personal Computer (PC) as specified by the intended recipient.

Currently, the proxy blocks requests from sip:blocked-sender@127.0.0.1 and sip:blocked-sender@testdomain.com. On the other hand, it forwards requests meant for sip:receiver@127.0.0.1/sip:receiver@testdomain.com to sip:forward-receiver@127.0.0.1/sip:forward-receiver@testdomain.com. All other requests are proxied to their intended destinations. Requests, here, refer to SIP MESSAGE and SIP INVITE methods from a Web browser that has the TransferHTTP extension installed.While content sharing and session handoff in the extension use the SIP MESSAGE method to transfer session, make a call in the extension uses the SIP INVITE method to set up a multimedia session.

The Web address of the proxy is http://137.158.126.21:8080/session-blocking-app/. I am currently working on the Web session pick-up feature.With the pick-up feature, a registered user would be able to view all interactions and could reload URL(s) on his PC. The feature comes handy when a user wants to reload a URL that was sent to him in the past. In addition, the feature will be useful when a request is sent to a PC, but the PC is off at that time. With the proxy being able to report all delivery errors, a user would be able to pick-up a session transfer request from a number of requests when he switches on his PC and logs in to the proxy.

Leave a Comment

The Web Forwarding and Blocking Service

Here is a link to my presentation at the last CoE-Telkom Industry Seminar, which took place here at the University of Cape Town. It was at the presentation that I was asked about the Google Wave, which I blogged on some days ago.

Leave a Comment

A Comparison of The Google Wave and TransferHTTP

Below is an excerpt of my recent paper. I was asked about The Google Wave during an Industry seminar here at the UCT. I checked it out and found it related to my work [1, 2], so I decided to write a paper on it. I never knew that Google was also thinking in the same direction – improving the online experience through user-generated services or converged services.

The Excerpt:

Table 1 shows the comparison of our work with the Google Wave. Google Wave, which is currently under development, is a new tool for communication and collaboration on the web. It uses an open protocol [1, 2], so anyone can build their own wave system. The Google Wave API allows developers to use and enhance Google Wave through two primary types of development, namely Extensions and Embed.

Comparison of the Google Wave with TransferHTTP

Comparison of Google Wave and TransferHTTP

The extensions (also called the Robots API) can be developed using the Java Client Library, Python Client Library, or Gadgets API, while the embed, which is embedded into a Web application, is always written in JavaScript.
The Google Wave and TransferHTTP provide the same services, though over different architectures. While Google Wave API is used to develop applications that reside on a Web server, TransferHTTP APIs are used to develop applications that reside at the client end. For example, the Click-to-dial in Google wave [3] requires the server to set up a call session, while in TransferHTTP, the client sets up the call session. In Google Wave, the robot in the Web server is responsible for the signalling, while in TransferHTTP, the SIP stack in the Web browser does the signalling.
The Extensible Messaging and Presence Protocol (XMPP) stack [4] in the Google Wave resides at the server, and its APIs are written for third-parties to help them develop converged applications. The Google team has separated the signalling (HTTP and XMPP) in a bid to maintain the current Web architecture. Hence, it could be referred to as a server-based architectural framework for service creation. In our work, a SIP stack is integrated into a Web browser to provide similar services. It was found out that the integration of a SIP stack into a Web browser does not impede its performance [5], thereby making our work a viable approach to create converged services. We provide a hybrid-based architectural framework in which services could be rendered from the client using our API. In addition, a number of services could be rendered from the proxy. These services could be called control services based on what they do. While the proxy services could be developed using the Mobicents SIP Servlets and JAIN SLEE APIs, the client services could be developed using our TransferHTTP extension API.
In summary, irrespective of the technologies or programming languages used in the Google Wave and TransferHTTP, the difference between them is that the Google Wave only has a stack (an XMPP stack) in its server, thereby making it a server-based architectural framework for service creation, while TransferHTTP has a stack (a SIP stack) both in its client and proxy, thereby making it a hybrid-based architectural framework for service creation.

References:

  1. The Wave Protocol, http://www.waveprotocol.org, July 5, 2009.
  2. The Google Wave Project, http://wave.google.com, July 5, 2009.
  3. The Google Wave Click-to-dial, http://googlewavedev.blogspot.com/2009/06/twiliobot-bringing-phone-conversations.html, July 31, 2009.
  4. P. Saint-Andre, Ed., “Extensible Messaging and Presence Protocol (XMPP): Core,” IETF RFC 3920, October 2004.
  5. Michael Adeyeye (2008), A SIP Integrated Web Browser for HTTP Session Mobility and Multimedia Services, Unpublished Master’s thesis, University of Cape Town, South Africa.

Comments (1)

An interesting article about Firefox by Mitchell

I bet you will like this intriguing article about the Mozilla Firefox. It was written by the Chair of the Mozilla Foundation Mitchell Baker.

http://blog.lizardwrangler.com/2009/06/24/firefox-in-context/

Leave a Comment

A new feature in the TransferHTTP client – Stream to Call Service

The TransferHTTP 1.4 Web browser extension will soon be released. There is a likelihood that it will run in Firefox 3.x. I would like to have some testers to help test the extension before being released. However, the new feature in the client is “Stream to Call.” With Stream to Call, a caller could stream a media to a callee in place of a call. It is required that a call session is setup first before a Stream to Call option is chosen, as shown in Figure 1. Figure 2 shows the SIP signalling involved in streaming a media to another web browser.

The Stream to Call Option in TransferHTTP extension

The SIP Signalling of the Stream to Call Service

Figure 2. The SIP Signalling of the Stream to Call Service

In order to distinguish the client services from the proxy services, the URL http://transferhttp.mozdev.org will contain only the TransferHTTP extension files (installer and documentation), while the URL http://transferhttp.berlios.de will contain only the TransferHTTP control services.

Leave a Comment

Building FF 3.0.x on Ubuntu 8.x

Building FF 3.0.4 on Ubuntu 8.04 was with no hassle. I made no change to the .mozconfig file; rather, I was asked to upgrade library “cairo” from 1.5.x to 1.6.x (or any higher version). I couldn’t do so from the Synaptic Manager; so, I had to download and install cairo_1.6.0.orig.tar.gz.
Lest I forget, when building FF, you need to be very patient. It takes very long time to make shared library “libgklayout.so.” Your PC might appear hung or the build process might seem unsuccessful. All you need is give the process some time depending on your PC configuration.

Leave a Comment

Building FF 2.0.0.x on Ubuntu 8.x

I finally built FF 2.0.0.18 on Ubuntu 8.04 – the Hardy Heron. I knew it would not be a piece of cake building FF 2.0.0.x on Ubuntu 8.x. The problem started with getting the build requirements (i.e. apt dependent packages). I knew from the outset that I was going to get tons of build errors, which would be related to the display or rendering of images. The libraries responsible for these errors would be libcairo and pango. I had to downgrade the versions of these libraries. “sudo aptitude” could not help because the needed versions were no longer available in the nearest Ubuntu software repository. I separately downloaded and installed the packages – libcairo_1.5.4.orig.tar.gz and pango-1.20.5.tar.gz.

While installing those packages resolved quite a number of problems, I still encountered many build errors, such as “could not read symbols: Memory exhausted,” and “final_link_failed.” The former was fixed using “sudo make -f client.mk build,” and the latter was resolved by adding “ac_cv_visibility_pragma=no” to my .mozconfig file. When I was trying to fix libcairo/pango problem, I also added some options – “ac_add_options disable–canvas” and “ac_add_options –enable-system-cairo” – to my .mozconfig file.

Here are the contents of my .mozconfig file.

. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@
ac_cv_visibility_pragma=no
ac_add_options –disable-javaxpcom
ac_add_options –disable-optimize
ac_add_options –enable-debug
ac_add_options –disable-static
ac_add_options –enable-shared
ac_add_options –disable-tests
ac_add_options –disable-canvas
ac_add_options –enable-system-cairo
ac_add_options –enable-extensions=default

References:

These fixes are the only ones I could recall now, but I did more than what I have mentioned here. I look forward to building FF 3.0.0.x on Ubuntu 8.x. I already know that building FF 3.0.0.x requires libcairo2; so, I do need to upgrade some of the installed packages.

Leave a Comment

Older Posts »