Links for 2008-09-21

  • ProgrammableWeb gets you the latest on what’s new and interesting with mashups, Web 2.0 APIs, and the Web as Platform. It’s a directory, a news source, a reference guide, a community.
  • Really useful flash application to create chart using Google Chart API. It is front-end for Google Chart API. Using it we can create many types of chart supported by Google Chart API without knowing the detail & technical specification of Google Chart API.
  • This article reviews some of the top open-source version control systems and tools that make setting up a version control system easy. This article discuss about CVS, SVN, Mercurial, Bazaar, Monotone, LibreSource, Git.
  • Good resource for Linux.
  • This article will share some best practices and examples for using the popular Javascript framework to create unobtrusive, accessible DOM scripting effects. The article will explore what constitutes best practices with regard to Javascript and, furthermore, why jQuery is a good choice of a framework to implement best practices.
    1. Why jQuery?
    2. Unobtrusive DOM Scripting?
    3. Understanding jQuery for Unobtrusive DOM Scripting
    4. Conclusion
    5. Further Reading

Gmail/Gdata Contacts & Group via Proxy

In last few days I got chance to see Gdata API. This is nice. I tried to retrieve Gmail Contacts via Proxy server in PHP code using Zend Gdata libriary. Actually Zend Gdata libriary do not have Contacts object like it has for other Google service like calendar, Youtube etc… But Google contacts can be accessed via Zend_Gdata classes easily on direct internet connection but It has some problem with Proxy connection. It can be solved by providing proxy connection parameters while creating Zend_Http_Client object like following:

$httpProxy = array(
       'adapter'      => 'Zend_Http_Client_Adapter_Proxy',
       'proxy_host'   => 'my.proxy.com',
       'proxy_port'   => 3128
);
$clientProxy = new Zend_Http_Client('https://raiyaraj.wordpress.com/', $httpProxy); 

//Client authentication
$client = Zend_Gdata_ClientLogin::getHttpClient($email, $passwd, 'cp', $clientProxy, 'My-ContactFetcher-0.1'); //cp for contacts

Above code help to do some client authentication via proxy server. But If we use $client object make request to retrieve feed data then it gives some errors saying ‘Can not connect to tcp://google.com:80’. Now it seems we have already provided http proxy detail to $clientProxy object, why it is giving error. But http proxy detail needs to provide again before making request to retrieve feed data. Code is like following

$client->setConfig($httpProxy);

Above $client object can be used to call following functions.

Google contacts can have group so to retrieve associated group of contact. First we need to retrieve all groups & its ids. Because only id of group is stored with contact. Following is code to retrieve all groups & its ids.

function getAllContactsGroups($client,$mail)
{
       $scope= "http://www.google.com/m8/feeds/groups/".urlencode($mail)."/";
       $gdata = new Zend_Gdata($client); 
       $query = new Zend_Gdata_Query($scope.'full');
       $query->setMaxResults(10);
       $feed = $gdata->retrieveAllEntriesForFeed($gdata->getFeed($query));
       $arrGroups = array();
       foreach ($feed as $entry){
		$arrGroups[$entry->id->text] =  $entry->title->text;
       }
       return $arrGroups;
} 

Following is code to retrieve all contacts. This code also finds its group id, that is retrieved with contact entry. At the end it prints contact name, its email & its group name.

function getAllContacts($client, $email)
{
	$arrContactGroups = getAllContactsGroups($client,$email);
	$gdata = new Zend_Gdata($client);
	$query = new Zend_Gdata_Query('http://www.google.com/m8/feeds/contacts/default/thin');
	$query->setMaxResults(10);
	$feed = $gdata->retrieveAllEntriesForFeed($gdata->getFeed($query));
	$i =1;
	$arrContacts =  array();
	foreach($feed as $entry){ 
	$name = $entry->title->text;
	$parts = $entry->getExtensionElements(); 
	$contactGroup = '';
		foreach($parts as $p){ 
			$element = $p->getDOM(); 
			switch($element->tagName){ 
			case 'email': 
				$email = $element->getAttribute('address'); 
				break; 
			case 'groupMembershipInfo': 
				$contactGroup = $element->getAttribute('href'); 
				break; 
			default: 
				continue;
			} 
		}
	echo $i++.") ".$name."=". $email ."=". $arrContactGroups[$contactGroup]."<br/>" ;	
	}
}

Links for 2008-09-14

Some good links about GData Zend Framework authentication problem

First experience with Google Chrome : Review

I came to know about Google Chrome. Then I checked its comic book. Comic book has convinced to download & try it.

It took few seconds to download & install it. It don’t ask much question to install it. Even it has not asked to set it as default browser. I liked it. It don’t want to create its monopoly from day one.

Title-bar

Chrome is very sleek browser. It has utilized title bar area of window as a tab bar. I see first application which has used title-bar area to other than tab. I don’t know how much people like it but I like it. Chrome has broke very old concept of any application window by replacing tab bar with title-bar. I have seen first good implementation of tab bar in Opera browser (may be in version 5 or 6). Firefox made concept of tab browsing very popular. Now it is adopted by most of all popular browser. Now Chrome has try to tab-bar with new idea. Actually it has tried to utilized space used by title bar & tried to give more area for web page.In  Chrome opening new window & tab is faster & smooth.

Address-bar

Address-bar is good. It suggest good option automatically from history & from search engine (may be i am 100% right about it). It has no separate search bar like Firefox but address-bar will be used to search. It also has option for changing search engine. Chrome highlights domain part of URL. It is a good usability feature. It is available in firefox with some add-on.

Application Shortcut

Another good feature is application shortcut. You can type Gmail URL & select from menu to make it application shortcut. It is good you don see address bar as you don’t need it while accessing such application. But this application opens in separate window. That I don’t like. It should have open in main window without address-bar & it should have saved space in task bar. Same feature is also available with Firefox using Prism.

Crash Management/ Error Handing

Chrome crashes many time during my first few hours of use. But this crash was different from Firefox & IE. I have not lost anything. It just show message of special page saying just reload the page & reload made me happy as I got everything. It also crashed while installing Silverlite from top page of Microsoft. It Also crashed while closing one tab (I don’t remember exact details about it). It has at least crashed 8-10 times while writing this blog. But it is different experience. I simply call it error while rendering page or doing some other operation like installing something. I hate frequent crashing of Chrome but I would give full marks for error handling or crash management. But I feel that error shown by Chrome is bit higher. I hope update of chrome will be make Chrome more stable in few weeks. Till the time I would not like to write WordPress blog using Chrome.

Developer Option

Chrome shows HTML source in separate tab with color highlight. It also have javascript debug feature & javascript console. Javascript console is like firebug in Firefox. I liked it very much. Not because it has features but Chrome team understand the need of developer better at first go.

Javascript Console

Javascript Console

incognito window

Chrome has good & new safety feature called incognito window. This window will keep application/page running this window hidden from other window or tab. It also don’t record it in history. Good feature.

incognito

incognito window

Status bar, Find bar, Task manager, bookmark bar

Nice find bar shown when Ctrl + f pressed. Inteligent status-bar is shown only when you on hyperlink. Progress-bar is missing. Task manager is good concept. It can help to terminate some unwanted or hanged tab or window process. Shows some important information about loaded page. Bookmark bar can show or hide  by just pressing Ctrl + b.

Usability feature: Text Zoom

Text zoom is old feature. Using this only text of page are zoomed. Other than text is not zoomed. So page get lost its actual layout. This feature is in Firefox 2 & IE 6. But IE 7 & Firefox 3 has moved to some advance zoom feature in that all content of page is zoomed including images & content like flash also.  It is something like starching base canvas on that page is drawn.

Missing features

User interface customization is first missing feature in chrome. Nowadays user like to see layout browser as it comes out of box. Everyone wants personalized layout. So feature like themes can make make me happy. Also Layout customization is require to set particular user interface component like button address bar at personalized place. Such features is available with major competitor.

Second missing is add-ons or extension. Add-ons or extension is a way to extend the custom functionality which is not a standard. As lots of add-ons are available for firefox. This add-ons of Firefox made me the real fan of Firefox. This are must features for any extensive browser user.

Final verdict

May be google has planed to introduce missing features gradully in near future. Hope we will see it soon. But I would like to see first more stable version of Chrome. Overall first preview has put good impresion on me. I would like to try feature realease of Chrome before throwning away.

Some other good review links:

  1. http://jeremybuff.wordpress.com/2008/09/03/review-google-chrome-2/
  2. http://ostatic.com/172340-blog/hands-on-with-chrome-clean-and-crisp-but-needs-extensions
  3. http://www.usefulconcept.com/index.cfm/2008/9/2/Google-Chrome-Review
  4. http://ptech.allthingsd.com/20080902/first-test-of-googles-new-browser/

Google Chrome: New page in browser war

Google Chrome 

 

Google Chrome

Google has launched new web browser Chrome. It is based on Webkit engine. Webkit is mainly a used by mobile phone/device browser.

Google claims that it has been tested with billions of already crawled pages by Google. So it seems it has passed good amount of automated testing.

Google has published introduction of browser in comic format on following URL. It is interesting.
http://www.google.com/googlebooks/chrome/

Here big question is: Can Chrome capture the big market share of Internet Explorer? Firefox tried to do it with many good features, but I believe majority of traffic of most site comes from Internet Explore. I think you will not find much literature about Internet Explorer beating Firefox, but you can find reverse easily.

So now it is not only about features but also about marketing, Strong Goggle is behind Chrome. We need to see how Google do the marketing of Chrome. Will it capture the market share of Internet Explorer or Firefox. Similar things happed in operating system market. People says Linux has captured the market of Unix or its proprietary variant not the market share of Microsoft Windows.

Google Chrome

Google Chrome

Firefox comes with tab browsing concept.

Chrome will come with multi process & multi threading concept.

Internet Explorer do not come with any concept, but it comes with Windows.

iPhone 3G Limitations

ARE YOU planning for iPhone… THINK TWICE BEFORE MAKING A DECISION… The short comings of iPhone are endless…

iPhone 3G

iPhone 3G

  1. No video calling,
  2. No AD2P on the Bluetooth,
  3. CAN’T share ANY (mp3, images,videos….) files via bluetooth,
  4. Can’t use as a wireless modem, (you pay ridiculous data charges to activate internet on your phone, but cannot connect it to your PC and browse when you are at home)
  5. No copy and paste,(cannot copy a part of a…. say…. email & send it….have to type it out yourself)
  6. No 3.2 or 5 megapixel camera,(the 2MP camera it carries is worst camera i’ve ever seen….. photos look like they have come out of a VGA camera)
  7. No video recording with camera,
  8. No front camera,
  9. No camera flash.
  10. No JAVA support
  11. No physical keyboard (BELIEVE me! this alone is a dealbreaker…touch keyboard as good as it looks…once you use it then only you come to know about the importance of having a hard keypad)
  12. No 3G network yet in India ..so why pay for expensive 3G phone if you cant use its 3G services … so, for India , iPhone 2.0 is no better than its first version
  13. No removable battery. (You cannot change battery. Have to send it to apple outlet.. Come on now!!!!…This is not an iPod. Its a bloody phone. You cannot live without phone for 2-3 days)
  14. No haptic feedback and
  15. Cannot send MMS,
  16. Can’t use as external storage device (16 GB of utter waste..next time you go to your friend’s house & find some interesting songs, movies, etc…sorry you cannot connect your ’16 GB’ phone and share it!!!! Apple apparently has a solution.. ” BUY MUSIC & MOVIES FROM iTUNES STORE “….. Give me a break will you APPLE!!!)
  17. Fo FM radio,
  18. Can’t use your mp3 files as ringtones,(This is heights man!!!)
  19. Cannot insert any other SIM card
  20. Completely tied to iTunes… Connect to your friend’s iTunes & you risk erasing everything on your phone.

List goes on & on & on

We are used to these features. Most of our phones already have these features. & we cannot do with out them. I mean can you imagine paying so much for a phone with which you cannot transfer files via bluetooth. What age is this …STONE AGE???

Some features may be activated by jailbreak.. But why the hell should you risk losing your warranty after paying so much.

And want to add third party softwares??.. YOU HAVE TO BUY THEM FROM iTUNES STORE ONLY!!! . (Shell out more money). Apple is a bloody control freak. Dont surrender your freedom to it.

Its good for highend market like US (who have no idea what mobile freedom/choice is), which is in stone age compared to asian/european markets. When they want to buy a phone, they have to go to network operators and buy only those phones that are available on that network & stick to that company till their contract expires. You want to change carriers? Not before paying damages, & buying another phone on the other network again.

On the contrary, We have so much freedom. We go to handset shops & buy which ever phone we like. Then go to carriers.. checkout the plans & buy SIM.. Dont like the plan or rival carrier came up with a better plan???? EASY .. just remove & replace the SIM.

Apple are trying to IMPOSE THEIR MODEL ON US riding on the hype iPhone has created in the US (yes it was a flop in Europe …thats why Apple never talks about its sales in Europe).

Let me clear one thing though.. iphone is the best looking phone (its touch interface is nothing like you have ever seen ), & best browsing experience out there no doubt ….. (& others are fast catching up..check out the android demo at Google IO 2008)….
BUT AFTER A FEW DAYS IT ALL COMES DOWN TO FUNCTIONALITY…

WAIT FOR HTC DREAM!! (powered by android). Still not convinced by then…by all means go for iPhone…