Irfan’s Corner on the Web On Mac, Linux, Grid, Virtualization and Software Technology

17Mar/092

Impressive web-development features in Safari 4

Today I stumbled across some impressive web development features in Safari 4 (or are they WebKit features?).

When you right click and select "Inspect Element" the Web Inspector window opens.

SafariWebInspector1

The Web Inspector provides numerous features which facilitate web development. Some features I found useful:

  1. Live HTML and CSS Editing: In the Elements tab, you can browse the entire page source and edit elements as well as CSS styles and preview them in the browser.
  2. Web Page Profiling: Personally, I found the resources tab most useful. In a single view I found out that there are some images on my front page which take a considerable time to load.
  3. Script Debugging: In the scripts tab, you can execute scripts in the page in debug mode.

Before discovering this, I used CSSEdit's web browser. CSSEdit's X-ray mode allows me to edit HTML and CSS and preview on live pages. Anyone aware of some other great web development tools for the mac?

Tagged as: 2 Comments
16Mar/094

Cloud Airset?


When I joined Airset a couple of years ago, it was only a fancy ajax based web-based a calendar. I switched to iCal, and never paid much attention to it. Airset kept sending me email notifications of my calendar events, today when I logged into my Airset account to close it, I was surprised to see that Airset had completely changed!

Their initial focus on just being an online calendar has been changed to providing an entire WebOS environment. The environment supports not only calendaring, it also has document management, messaging, contact management etc. Alas, this is not new anymore, there are several WebOSs out there, and even some open source like eyeOS. So I'll still close my account.

Filed under: web2.0 4 Comments
23Nov/072

Semantic Web Workshop at HP Labs Bristol

Today I attended the Semantic Web Workshop at HP Labs Bristol. The HP Labs in Bristol, UK are HP's second largest research facility in the World, and one of the largest computing research facility in Europe. The Labs focuses on many different core technologies which include Quantum Information Processing, location based wireless services, semantic web, agent-based computing, privacy and identity management and mobile health care.

So what is "semantic web", most basically it is a set of technologies which aims at making information on the web (which is predominantly human oriented) machine readable. Allowing users to express ontologies and models to make machines and software do the reasoning instead of humans. Semantic applications could for example find patterns of symptoms for a specific disease or they can allow you to find the nearest doctor via a simple search on the internet. For Semantic Web to work, people need to define data about the data, "metadata", in order for machine to process it according to some model. This metadata is usually defined in Resource Description Language (RDF) or in the Web Ontology Language (OWL), which as is claimed by many as more expressive than the more popular RDF. Just as there is SQL to query a Database, there are query languages to query metadata which enables reasoning on the actual data. A popular Query language is SPARQL (pronounced Sparkle), and sure enough this language was designed in HP Labs Bristol. So the building pieces of semantic web are in place, but where are the applications?

For a layman progress on semantic web seems to be going very slow, infact most of the the Web2.0 has nothing to do with Semantic Web, which was seen as the next generation Web. However there are semantic web software all over the place at the backend. At the workshop it was revealed that companies such as Amazon and Google had deployed semantic web technologies and keeping their platform proprietary for competitive advantage. Semantic web technologies exist however they don't exist in such a framework which people can use.

One of the prime projects in HP Labs Bristol, is Jena. Jena is an open source semantic web framework, one of the first of its kind. At the workshop some few more were introduced: Talis, an easy to use framework to develop semantic web applications then there is an effort by Ingent Publishing Cooperation etc.

Many applications were presented in the workshop, which really showed off the capabilities of the Semantic Web. The focus of the Semantic Web community currently seems to be to create user friendly frameworks/development environments where users can develop semantic web applications. Just as there is DreamWeaver/Frontpage/Expression which helps us develop Web applications, similar frameworks are required for the next generation of Web applications.

Overall it was an informative event, especially for me who wasn't versed with Semantic web technologies before.

Me at front of Building 3, HP Labs Bristol
Me in front of Building 3, HP Labs, and beneath is the main building of the complex

17Jun/071

Google Reader Hacks

Google Reader is one of my favorite feed aggregators. Its the first thing I check after checking my mail every morning, and every evening.Over time I've come to love its keyboard shortcuts which really make browsing feeds so much easier and less time consuming, so in this post I will share my top Google Reader hacks:

  1. Feed Item browsing shortcuts

The keyboard shortcuts J and K, can be used to browse feed items, while viewing a feed, you can tag it by pressing T, and by pressing V you can view the original item in a popup, S is for staring and shift-S for sharing. Another highly useful keyboard shortcut is U, with which you can view feed items in full screen mode.

2. Browsing Feed Subscriptions

This is my favorite part, you can use old school keyboard shortcuts like shift-p/n to move to the next or previous subscription, however, I have some favorite feeds which I always read first, hence manually traversing is a time-consuming operation. However Google Reader has something to offer here aswell: By pressing 'g followed by u' you can see all your subscriptions in a popup panel, this popup panel implements a incremental search feature, which is extremely time saving when looking for a specific feed.

snap6.jpg

The full list

After pressing W we get this:

snp.jpg

I haven't covered all of Google Reader's shortcuts exhaustively, you can view them by pressing '?'.

Filed under: google, internet, web2.0 1 Comment
24Feb/073

Adobe Flex 2 is a Real Winner!

[digg=http://digg.com/tech_news/3_Reasons_why_Flex2_is_a_winner]Since the last week I've been getting my feet wet with Flex 2, a programmatic way to create Flash applications. And I'm thoroughly impressed by it! It's a promising Web 2.0 technology which has to potential to take your web experience to the next level. Flex 2 applications, because they are made in flash, are faster than equivalent AJAX applications while providing a richer, more desktop like, GUI. For example I'm not impressed by Google Docs, which is very slow compared to a desktop application but have a look at Gliffy, a promising MS Visio alternative of which I've been making increasing use of in the last few days. As is the custom nowadays, these are my top reasons why I think Flex 2 is a winner:

  • Its EASY: Flex2 application have a very simple model: The application, including the GUI, are defined in standards compliant XML format (MXML), the application logic is defined in ActionScript 3.0, a language which is similar to Javascript but object oriented. You can relate this to AJAX applications, where the GUI is defined in HTML and the application logic is in Javascript, however Flex2 applications contain gui controls which are not found in HTML, and with the help of the Flex2 Builder, which is an IDE based on Eclipse, building Flex 2 applications is very easy and you can create a more richer interface experience.
  • Its Extensible: Flex2 doesn't do everything, for example it can not connect to data services directly, rather you have to set up a data provider source which provides data in XML format for Flex2 applications to use. Flex2 supports various mechanism to communicate with other frameworks, it supports RPC for example, and it is very simple to link php with Flex2, so one can get a powerful backend in php, with an appealing GUI in Flex2.
  • There are no cross-platform/browser issues: AJAX would be the best model if all browsers supported the same javascript or everyone would be using the same browser and you could never disable javascript. There are varying levels of support for DHTML and JavaScript in different browsers on different platform. With Flex2 applications you don't have this problem. You can get the latest Flash player from a single source, supporting a single API. The Flash Player runs on multiple platforms, which means (borrowing the standard Java phrase): Write once, run everywhere.

However there are some drawbacks to Flex2 aswell, Flex2 Builder is proprietary and not cheap (Its way more cheaper than it previously used to be), where as majority of AJAX frameworks are open source. However you can still develop Flex2 application for free by making use of the free Flex2 SDK

Having raved about Flex2, I dont think deploying flex2 for all types of web application is a good idea. I love to use AJAX enabled web application such as Google Maps and GMail, however I hate to use AJAX based desktop-type applications such as Google Docs. I think Flex2 is viable only for the development of desktop like applications for the web.

Filed under: internet, web2.0 3 Comments
24Feb/070

Google Apps will never replace MS Office

[digg=http://digg.com/tech_news/Google_Apps_will_never_replace_Ms_Office]

At least for me! And with MS Office I mean any desktop office software ie. OpenOffice.org
Why do I say this? Precisely because I find Google Apps to be completely useless for me. I tried to compile an article on it to check its functionality, I find numerous problems:

  • Docs is just like some formatting toolbar with a huge text box, and it is extremely dificult to navigate in lengthy documents, whereas desktop office software you can easily switch between pages, this limits productivity.
  • I mostly write articles/papers which are peer reviewed by my friends who highlight and comment on portions of text. You can't do that in Google Apps, although you can add comments, but they are inserted inline to the text, which can be confusing. In MS Office comments, and changes are shown in a sidebar. I also see that footnotes are missing.
  • Google Apps is slow compared to desktop software. There are numerous other web application such as Gliffy, which is a charting and diagramming software in Flex, which for me can replace MS Visio easily, and the response is good aswell.
  • Because its webbased there are numerous distractions, one may get an instant message notification, a new mail, check a slashdot/reddit/digg out etc, and what happens when the internet when the internet is disconnected, or my google account gets hacked, Google Apps I believe will be a hot target for h/crackers.
  • Google Docs is awful for formatting, like the one required for research publications. I tried formatting according to IEEE 2 column format, and it was hell!

Google Apps as it stands now is far from replacing anything. Its excellent for blog posts like this and short articles or 'to-do' lists, however its not a serious danger to any of the desktop office software, and they are to remain for a loooong time.


27Nov/068

Has AJAX killed Java Applets?

Java introduced the notion of Browser based applications, in the form of Java applets, which included nuances of feature rich desktop applications within a browser! It was a huge success and widely popular during the dot com bubble, but now I rarely hear about new nifty applets? Web Start gained some traction but the furor over it has died down. Rather another technology has taken the reigns now: AJAX, asynchronous Javascript and "XML". AJAX is the marriage of server side scripting languages such as perl or php and client side scripting language such as Javascript perhaps a little flash, imbued into HTML and some little XML or some other mechanism to transfer information, we get a powerful framework to create desktop-like applications on the browser! AJAX has taken computing by storm. The wave of AJAX based startups, acquisitions and mergers has already begun! Are we heading towards another bubble or is this one for real?

AJAX applications are a definite improvement over previous flickering page based applications, and what more, these applications are NOT memory savvy as Java applets used to be, and no runtime environment is required to run such applications, just a compatible, updated browser is enough. Nowadays many more innovative AJAX applications are being built than Java applets, and people are accepting AJAX more readily than ever. This year for the first time I heard people doing AJAX based undergraduate degree projects in Pakistan, there is talk in my research lab of developing AJAX based intefaces to some of the distributed applications developed here. Not long ago, browser based application used to be the exclusive domain of Flash and Java Applets.

So what was wrong with Applets? I don't need to list any reasons, you can check out this poll which was conducted in Java.net, the official Java forums, and complaints ranged from: Too hard to deploy to to slow in loading!

So we can safely say that AJAX has killed Java applets, a significant portion of standard Java.

From Google Trends we can see how much interest people have in the three technologies, Java Applets, Webstart and AJAX, and compare the news reference volume certainly AJAX has ruled the headlines in recent months and years.

viz.png

As wireless connectivity expands and gets increasingly cheaper, more and more mobile devices will get connected, once this happens the future of J2ME would look bleak. I personally have started using AJAX based services like Airset.com, which provides an intuitive calendar solution that helps you also to remain in touch with your friends and family. The built- in calendar program which came with the PDA, was developed in J2ME and it lacked a lot functionality, and I found it a bit clunky to use. Another drawback of J2ME applications which you won't find in AJAX applications is the mutual incompatibilities between mobile devices. Like I can purchase a game from the internet designed for Symbian mobiles, but when I try to run it in a cellphone using symbian it won't run! After a little bit of investigation it turns out that the game supports Nokia symbian mobiles, and some certain sets NOT Motorola ones, like wise try running a J2ME game for the Motorola E680i on a Nokia N92 it wont work!

The greatest impediment to AJAX of course is the lack of connectivity, once connectivity is seamless and universal, than people will stop using native applications like the one developed in J2ME and start using AJAX ones.

One complaint I have about AJAX services is that many of them run poorly on cellphone/PDAs, this is certainly not a problem with AJAX itself, because services such as Gmail and Airset.com, prove that AJAX can run on supported browsers on mobile devices if the service is well developed.

14Oct/068

My Top 10 Firefox Extensions

One of the best things I like about Firefox and hate about Internet Explorer (pre 7) was that it is a very simple browse, offers the bare minimum functionality needed to browser the Web. The recently released Internet Explorer 7 also has a very clean interface which resembles that of Firefox a great deal.

However sometimes I wish that they have included a certain feature into the browser, these wishes are mostly answered by the Firefox extensions. Designing Firefox around an extensible plug and play architecture was the best design decision in my opinion ever taken. The ease with which you can extend the browsers capabilities by just installing extensions which are normally tens of KBs big, allows Firefox to be ahead of its rivals.

Thousands of extensions have been developed, and it is time consuming to browse to the repository and find a 'must have' extension. That's why I've written this post to help you out, by highlighting those extension which have had a positive impact in my 'Firefox experience'.

The list is not numbered according to usefulness or any other measure.

1. Google Toolbar

Although a Google search box in included in Firefox by default, the Google Toolbar allows you to do more, a lot more, it gives information about the current page, spell checking for posts, allows searches in different categories ie. Maps, Froogle, etc.. And it allows a Gmail mail to be composed by a single click! It basically acts as a one-stop portal to most of Google's services.
2. SessionSaver

The SessionSaver extension allows the user to close the browser and automatically open at the same state next time. Extremely useful in many cases. I could run into blogs with interesting content, start reading them, and when I have some work todo I simply close the browser, and restart my exploration of the blogs when next time I launch Firefox; and in case you dont want people to know what you were last surfing, you can always disable it!

3. Viamatic foXpose

Often if you have too many tabs open, it gets difficult to navigate around to a required tab. foXpose is very use-full extension where a button on the status bar is clicked and thumbnail views views of current opened sites appear. Just like shown in the following image:

snapshot1.png

4. Permatabs

Another useful extension, which saves a lot of time. There are basically some sites, which I always visit, like webbased mail services, news sites, some blogs, slashdot, digg etc.. With permatabs I open all the required websites in tabs, and make them a 'permatab' which means that they will be there forever afterwards, even when Firefox or the machine is restarted.

5. FlashGot

Numerous popular download managers in Windows don't support Firefox yet, FlashGot has the answer. It allows the interoperability of Firefox with numerous external download managers. Firefox's own download mechanism is not at all suitable for downloading massive files, thus this extension provides a remedy.
6. Clusty Toolbar

This cool Firefox extension allows me to find information really quickly. When browsing a page, I may encounter something about which I'm not aware of, clusty toolbar allows me to perform a search, and cluster results from multiple search engines, and make a

7. ScrapBook

ScrapBook as the name implies allows you to have a scrap book, where you can collect clippings of snippets from websites, and categorise them and store them to the disk.

8. Del.icio.us Toolbar

Del.icio.us is perhaps the largest repository of user contributed bookmarks. When looking up a subject I nowadays increasingly go to del.icio.us and perform a tag search, and find related content immediately. The toolbar also allows me to tag websites while I'm surfing them.

9. SwitchProxy

SwitchProxy allows me to switch between normal Internet surfing and anonymous proxy surfing, or switch from proxy to proxy, this extension is esp. helpful to me because as of early this year the Pakistan government has banned the entire BlogSpot/Blogger domain, and if I come across a cool post via Slashdot or Digg, I switch proxy so that I can read it.

10. Performancing

Performancing is a blogger's extension! It allows a blogger to immediately blog from firefox without going to any specific URL, Popular blog services such as Wordpress, Blogger and others are supported.

So I hope that you discovered some new Firefox extension, and will install them to spice up your Firefox experience. I would like to here from you of other cool Firefox extensions