<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Othman</title>
	<atom:link href="http://othmanelmoulatblog.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://othmanelmoulatblog.wordpress.com</link>
	<description>on programming, Science &#38; Mathematics</description>
	<lastBuildDate>Fri, 24 Feb 2012 00:40:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='othmanelmoulatblog.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Othman</title>
		<link>http://othmanelmoulatblog.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://othmanelmoulatblog.wordpress.com/osd.xml" title="Othman" />
	<atom:link rel='hub' href='http://othmanelmoulatblog.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Turing&#8217;s Titanic Machine?</title>
		<link>http://othmanelmoulatblog.wordpress.com/2012/02/23/turings-titanic-machine/</link>
		<comments>http://othmanelmoulatblog.wordpress.com/2012/02/23/turings-titanic-machine/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 16:00:40 +0000</pubDate>
		<dc:creator>othman</dc:creator>
				<category><![CDATA[Computer science]]></category>
		<category><![CDATA[ACM.org]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[Turing machine]]></category>

		<guid isPermaLink="false">http://othmanelmoulatblog.wordpress.com/?p=726</guid>
		<description><![CDATA[Turing&#8217;s Titanic Machine? March 2012 &#124; Communications of the ACM.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=726&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2 style="text-align:center;"><a href="http://cacm.acm.org/magazines/2012/3/146259-turings-titanic-machine/fulltext#.T0ZiM8Z0gw0.wordpress"><img class="alignleft" title="Credit: Gerard Dubois" src="http://cacm.acm.org/system/assets/0000/7188/021612_CACMpg75_Turings-Titanic.large.jpg?1329493405&amp;1329493404" alt="" width="250" height="250" /> <strong>Turing&#8217;s Titanic Machine?</strong></a></h2>
<p style="text-align:center;"><a href="http://cacm.acm.org/magazines/2012/3/146259-turings-titanic-machine/fulltext#.T0ZiM8Z0gw0.wordpress">March 2012 | Communications of the ACM</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/othmanelmoulatblog.wordpress.com/726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/othmanelmoulatblog.wordpress.com/726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/othmanelmoulatblog.wordpress.com/726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/othmanelmoulatblog.wordpress.com/726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/othmanelmoulatblog.wordpress.com/726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/othmanelmoulatblog.wordpress.com/726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/othmanelmoulatblog.wordpress.com/726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/othmanelmoulatblog.wordpress.com/726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/othmanelmoulatblog.wordpress.com/726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/othmanelmoulatblog.wordpress.com/726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/othmanelmoulatblog.wordpress.com/726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/othmanelmoulatblog.wordpress.com/726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/othmanelmoulatblog.wordpress.com/726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/othmanelmoulatblog.wordpress.com/726/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=726&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://othmanelmoulatblog.wordpress.com/2012/02/23/turings-titanic-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a64d3d9e8dc4989e7fb3ed3662e5dead?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">othmanelmoulat</media:title>
		</media:content>

		<media:content url="http://cacm.acm.org/system/assets/0000/7188/021612_CACMpg75_Turings-Titanic.large.jpg?1329493405&#38;1329493404" medium="image">
			<media:title type="html">Credit: Gerard Dubois</media:title>
		</media:content>
	</item>
		<item>
		<title>What is MITx?</title>
		<link>http://othmanelmoulatblog.wordpress.com/2011/12/31/what-is-mitx-mit-news-office/</link>
		<comments>http://othmanelmoulatblog.wordpress.com/2011/12/31/what-is-mitx-mit-news-office/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 00:20:07 +0000</pubDate>
		<dc:creator>othman</dc:creator>
				<category><![CDATA[E-learning]]></category>

		<guid isPermaLink="false">http://othmanelmoulatblog.wordpress.com/?p=718</guid>
		<description><![CDATA[What is MITx?  MIT News Office.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=718&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2 style="text-align:center;"><a href="http://web.mit.edu/newsoffice/2011/mitx-faq-1219.html#.Tv5VGO0BO3w.wordpress"><img class="alignleft" title="MIT" src="http://img.mit.edu/newsoffice/images/article_images/20111216122430-0.jpg" alt="" width="368" height="276" />What is MITx? </a></h2>
<p style="text-align:center;"><a href="http://web.mit.edu/newsoffice/2011/mitx-faq-1219.html#.Tv5VGO0BO3w.wordpress"> MIT News Office</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/othmanelmoulatblog.wordpress.com/718/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/othmanelmoulatblog.wordpress.com/718/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/othmanelmoulatblog.wordpress.com/718/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/othmanelmoulatblog.wordpress.com/718/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/othmanelmoulatblog.wordpress.com/718/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/othmanelmoulatblog.wordpress.com/718/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/othmanelmoulatblog.wordpress.com/718/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/othmanelmoulatblog.wordpress.com/718/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/othmanelmoulatblog.wordpress.com/718/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/othmanelmoulatblog.wordpress.com/718/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/othmanelmoulatblog.wordpress.com/718/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/othmanelmoulatblog.wordpress.com/718/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/othmanelmoulatblog.wordpress.com/718/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/othmanelmoulatblog.wordpress.com/718/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=718&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://othmanelmoulatblog.wordpress.com/2011/12/31/what-is-mitx-mit-news-office/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a64d3d9e8dc4989e7fb3ed3662e5dead?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">othmanelmoulat</media:title>
		</media:content>

		<media:content url="http://img.mit.edu/newsoffice/images/article_images/20111216122430-0.jpg" medium="image">
			<media:title type="html">MIT</media:title>
		</media:content>
	</item>
		<item>
		<title>The Most Ancient Marketing</title>
		<link>http://othmanelmoulatblog.wordpress.com/2011/11/25/the-most-ancient-marketing-december-2011-communications-of-the-acm/</link>
		<comments>http://othmanelmoulatblog.wordpress.com/2011/11/25/the-most-ancient-marketing-december-2011-communications-of-the-acm/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 11:12:17 +0000</pubDate>
		<dc:creator>othman</dc:creator>
				<category><![CDATA[apple]]></category>

		<guid isPermaLink="false">http://othmanelmoulatblog.wordpress.com/?p=711</guid>
		<description><![CDATA[The Most Ancient Marketing &#124; December 2011 &#124; Communications of the ACM. The Most Ancient Marketing Jaron Lanier Communications of the ACM Vol. 54 No. 12, Pages 22-23 10.1145/2043174.2043204 Credit: Gluekit / Photograph by AP Photo / Paul Sakuma Before Apple, Steve Jobs famously went to India with his college friend Dan Kottke. While I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=711&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://cacm.acm.org/magazines/2011/12/142552-the-most-ancient-marketing/fulltext#.Ts93nHh7Dck.wordpress">The Most Ancient Marketing | December 2011 | Communications of the ACM</a>.</p>
<h1>The Most Ancient Marketing</h1>
<p class="byline">Jaron Lanier</p>
<p class="metadata">Communications of the ACM<br />
Vol. 54 No. 12, Pages 22-23<br />
10.1145/2043174.2043204</p>
<div class="ArticleImage" style="width:250px;"><img class="pic" title="Steve Jobs, illustration" src="http://cacm.acm.org/system/assets/0000/6571/111811_CACMpg23_The-Most-Ancient.large.jpg?1321557446&amp;1321557445" alt="[article image]" /> <span class="credit">Credit: Gluekit / Photograph by AP Photo / Paul Sakuma</span></div>
<p><a name="body-1"></a></p>
<p>Before Apple, Steve Jobs famously went to India with his college friend Dan Kottke. While I never had occasion to talk to Jobs about it, I did hear many a tale from Kottke, and I have a theory I wish I had a chance to try out on Jobs.</p>
<p>Jobs loved the Beatles and referred to them fairly often, so I&#8217;ll use some Beatles references. When John Lennon was a boy, he once recalled seeing Elvis in a movie and suddenly thought to himself, &#8220;I want that job!&#8221; The theory is that Jobs saw gurus in India, focal points of love and respect, surrounded by devotees, and he similarly thought to himself, &#8220;I want that job!&#8221;</p>
<p>This observation is not meant as a criticism, and certainly not as an insult. It simply provides an explanatory framework for what made Jobs a unique figure.</p>
<p>For instance, he liberally used the guru&#8217;s tactic of treating certain devotees badly from time to time as a way of making them more devoted. I heard members of the original Macintosh team confess that they succumbed. They were tangibly stunned by it, repeatedly. They recognized it happening in real time, and yet they consented. Jobs would scold and humiliate people and somehow elicit an ever more intense determination to attempt to win his approval, or more precisely, his pleasure.</p>
<hr align="center" width="50%" />
<blockquote>
<p align="center"><em>Jobs imported the marketing techniques of India&#8217;s gurus to the business of computation.</em></p>
</blockquote>
<hr align="center" width="50%" />
<p>The process is described in an essay by Alan Watts on how to be a guru that was well known around the time Apple was first taking off. The successful guru is neither universally nor arbitrarily scornful to followers, but there should be enough randomness to keep them guessing and off guard. When praise comes, it should be utterly piercing and luminous, so as to make the recipient feel as though they&#8217;ve never known love before that moment.</p>
<p>Apple&#8217;s relationship with its customers often followed a similar course. There would be a pandemic of bleating about a problem, such as a phone that lost calls when touched a certain way, and somehow the strife seemed to further cement customer devotion instead of driving them away. What other tech company has experienced such a thing? Jobs imported the marketing techniques of India&#8217;s gurus to the business of computation.</p>
<p>Another way in which Jobs emulated the practices of gurus is in the psychology of pseudo-asceticism.</p>
<p>Consider the way he used physical spaces. Jobs always created personal and work spaces that were spare like an ashram, but it is the white Apple store interior that most recalls the ashram. White conveys purity, a holy place beyond reproach. At the same time, the white space must be highly structured and formal. There must be a tangible aura of discipline and adherence to the master&#8217;s plan.</p>
<p>The glass exteriors and staircases of elite Apple stores go further. They are temples, and I imagine they might someday be repurposed for use along those lines. (Maybe, some decades from now, our home 3D printers will just pop out the latest gadgets, leaving stores empty.)</p>
<p>There is yet another Beatles reference to bring up: It was Yoko Ono who first painted a New York City artist&#8217;s loft white. Conceptual avant-garde art invites people to project whatever they will project into it, and yet the artist offering a white space, or the silence of John Cage&#8217;s &#8220;4&#8217;33&#8243;&#8221; still becomes well known. This is the template followed by Apple marketing.</p>
<p>A dual message is conveyed. The white void is empty, awaiting you and almost anything you project into it. The exception is the surrounding institution—the business—which is not something to be projected away.</p>
<p>While that setup might seem to only benefit the establishment offering the white space, there is actually a benefit to the visitor who projects what they will into it. It&#8217;s like a good parent or lover who will listen endlessly without complaint but also sets boundaries. Narcissism can then be indulged without the terror of being out of touch or out of control. This formula is a magnet for human longings.</p>
<p>It&#8217;s all about you, iThis and iThat, but we will hold you, so you won&#8217;t screw yourself up. Of course, that&#8217;s not really a possible bargain. To the degree you buy into the ashram, you do give up a certain degree of yourself. Maybe that&#8217;s not a bad thing. It&#8217;s like how Apple customers experience culture in general through the lens of Apple curation whenever they use a tablet. Maybe it&#8217;s the right mix for some people. But one ought to be aware.</p>
<p>It&#8217;s tempting to ridicule this aspect of Job&#8217;s legacy, but everything people do is infused with some degree of duplicity. This is doubly true of marketing.</p>
<p>Putting the duplicity up front might be best. Back to the Beatles: Lennon&#8217;s &#8220;Sexy Sadie&#8221; ridiculed the guru shtick, while McCartney&#8217;s &#8220;Fool on the Hill&#8221; praised it, and they were singing about the same guru. These two songs could well be applied to the appeal of Apple under Jobs. Yes, he manipulated people and was often not a nice guy, and yet he also did either elicit or anticipate the passions of his devotees, over and over. (No one can say what the mix of eliciting versus anticipating really was.)</p>
<p>Jobs didn&#8217;t just use pseudo-asceticism for marketing. He wielded purist fanaticism so as to have power in the world of nerds. This is how it came to be that Jobs is so often remembered as an &#8220;inventor,&#8221; though he rarely was one. His genius was not technical, but he was a genius at manipulating technical minds.</p>
<p>An example is Jobs&#8217; obsession with engineering beautiful fonts into personal computers. While plenty of people wanted this (Don Knuth comes to mind), it wasn&#8217;t easy to make such a luxury into a high-priority item in the engineering culture that drove early PC companies. But Jobs often mentioned his pride at having done it.</p>
<p>It is perhaps surprising that so few figures in tech companies have been able to push engineers around enough to enforce principles of elegance and simplicity, as understood by non-engineers. Apple&#8217;s commercial success has created a better atmosphere for such things in all the companies. But how did Jobs do it in the first place?</p>
<p>My impression, based on a number of interactions I witnessed over many years, is that Jobs traded one form of obsessive, principled nerdiness against another. It was useless for a typical designer or marketing person to plead with engineers during the early years of personal computers. Engineers had airtight criteria and data, and that trumped mere opinions and intuitions. But Jobs didn&#8217;t plead. He declared even more rigid and exacting criteria.</p>
<p>Jobs won the arms race of control freakery. He remains the only figure in a non-engineering role I have ever seen win this race against engineers outright.</p>
<div id="article-authorinfo">
<h3 class="known-headings">Author</h3>
<p><strong>Jaron Lanier</strong> is Partner Architect, Microsoft Research, and Innovator in Residence, USC Annenberg School.</p>
</div>
<div id="article-permission">
<hr class="Separator" />
<p><a name="permission"></a>Copyright held by author.</p>
</div>
<p>The Digital Library is published by the Association for Computing Machinery. Copyright © 2011 ACM, Inc.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/othmanelmoulatblog.wordpress.com/711/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/othmanelmoulatblog.wordpress.com/711/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/othmanelmoulatblog.wordpress.com/711/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/othmanelmoulatblog.wordpress.com/711/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/othmanelmoulatblog.wordpress.com/711/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/othmanelmoulatblog.wordpress.com/711/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/othmanelmoulatblog.wordpress.com/711/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/othmanelmoulatblog.wordpress.com/711/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/othmanelmoulatblog.wordpress.com/711/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/othmanelmoulatblog.wordpress.com/711/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/othmanelmoulatblog.wordpress.com/711/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/othmanelmoulatblog.wordpress.com/711/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/othmanelmoulatblog.wordpress.com/711/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/othmanelmoulatblog.wordpress.com/711/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=711&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://othmanelmoulatblog.wordpress.com/2011/11/25/the-most-ancient-marketing-december-2011-communications-of-the-acm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a64d3d9e8dc4989e7fb3ed3662e5dead?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">othmanelmoulat</media:title>
		</media:content>

		<media:content url="http://cacm.acm.org/system/assets/0000/6571/111811_CACMpg23_The-Most-Ancient.large.jpg?1321557446&#38;1321557445" medium="image">
			<media:title type="html">Steve Jobs, illustration</media:title>
		</media:content>
	</item>
		<item>
		<title>Google&#8217;s Web Content Blocking Report</title>
		<link>http://othmanelmoulatblog.wordpress.com/2011/11/04/googles-web-content-blocking-report/</link>
		<comments>http://othmanelmoulatblog.wordpress.com/2011/11/04/googles-web-content-blocking-report/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 20:44:26 +0000</pubDate>
		<dc:creator>othman</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://othmanelmoulatblog.wordpress.com/?p=694</guid>
		<description><![CDATA[Credit : Technology Review Magazine Google reveals how often ­governments ask it to banish things from its services and how often it complies. Full  Article : Going Offline google.com/transparencyreport.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=694&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://othmanelmoulatblog.files.wordpress.com/2011/11/transparency_cw2_x900_2.jpg"><img class="aligncenter size-full wp-image-695" title="transparency_CW2_x900_2" src="http://othmanelmoulatblog.files.wordpress.com/2011/11/transparency_cw2_x900_2.jpg?w=640" alt=""   /></a></p>
<p style="text-align:center;"><strong>Credit : Technology Review Magazine</strong></p>
<p style="text-align:center;">
<p>Google reveals how often ­governments ask it to banish things from its services and how often it complies.<br />
Full  Article : <a href="http://www.technologyreview.com/read_article.aspx?id=38854&amp;ch=web&amp;mod=MagOur&amp;a=f" target="_blank">Going Offline</a><br />
<a href="http://www.google.com/transparencyreport/" target="_blank">google.com/transparencyreport.</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/othmanelmoulatblog.wordpress.com/694/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/othmanelmoulatblog.wordpress.com/694/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/othmanelmoulatblog.wordpress.com/694/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/othmanelmoulatblog.wordpress.com/694/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/othmanelmoulatblog.wordpress.com/694/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/othmanelmoulatblog.wordpress.com/694/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/othmanelmoulatblog.wordpress.com/694/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/othmanelmoulatblog.wordpress.com/694/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/othmanelmoulatblog.wordpress.com/694/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/othmanelmoulatblog.wordpress.com/694/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/othmanelmoulatblog.wordpress.com/694/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/othmanelmoulatblog.wordpress.com/694/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/othmanelmoulatblog.wordpress.com/694/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/othmanelmoulatblog.wordpress.com/694/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=694&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://othmanelmoulatblog.wordpress.com/2011/11/04/googles-web-content-blocking-report/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a64d3d9e8dc4989e7fb3ed3662e5dead?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">othmanelmoulat</media:title>
		</media:content>

		<media:content url="http://othmanelmoulatblog.files.wordpress.com/2011/11/transparency_cw2_x900_2.jpg" medium="image">
			<media:title type="html">transparency_CW2_x900_2</media:title>
		</media:content>
	</item>
		<item>
		<title>What Did Steve Jobs Do for Computer Science?</title>
		<link>http://othmanelmoulatblog.wordpress.com/2011/11/03/what-did-steve-jobs-do-for-computer-science-news-communications-of-the-acm/</link>
		<comments>http://othmanelmoulatblog.wordpress.com/2011/11/03/what-did-steve-jobs-do-for-computer-science-news-communications-of-the-acm/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 22:08:41 +0000</pubDate>
		<dc:creator>othman</dc:creator>
				<category><![CDATA[apple]]></category>

		<guid isPermaLink="false">http://othmanelmoulatblog.wordpress.com/?p=692</guid>
		<description><![CDATA[What Did Steve Jobs Do for Computer Science?   News &#124; Communications of the ACM.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=692&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2 style="text-align:center;"><a href="http://cacm.acm.org/news/136161-what-did-steve-jobs-do-for-computer-science/fulltext#.TrMQo1bAIXg.wordpress"><img class="alignleft" title="Credit: Courtesy of mbaknol.com" src="http://cacm.acm.org/system/assets/0000/6295/101311_mbaknol_steve_jobs.large.jpg?1318531162&amp;1318531161" alt="" width="250" height="250" />What Did Steve Jobs Do for Computer Science?</a></h2>
<p style="text-align:center;"><a href="http://cacm.acm.org/news/136161-what-did-steve-jobs-do-for-computer-science/fulltext#.TrMQo1bAIXg.wordpress">  News | Communications of the ACM</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/othmanelmoulatblog.wordpress.com/692/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/othmanelmoulatblog.wordpress.com/692/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/othmanelmoulatblog.wordpress.com/692/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/othmanelmoulatblog.wordpress.com/692/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/othmanelmoulatblog.wordpress.com/692/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/othmanelmoulatblog.wordpress.com/692/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/othmanelmoulatblog.wordpress.com/692/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/othmanelmoulatblog.wordpress.com/692/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/othmanelmoulatblog.wordpress.com/692/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/othmanelmoulatblog.wordpress.com/692/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/othmanelmoulatblog.wordpress.com/692/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/othmanelmoulatblog.wordpress.com/692/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/othmanelmoulatblog.wordpress.com/692/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/othmanelmoulatblog.wordpress.com/692/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=692&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://othmanelmoulatblog.wordpress.com/2011/11/03/what-did-steve-jobs-do-for-computer-science-news-communications-of-the-acm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a64d3d9e8dc4989e7fb3ed3662e5dead?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">othmanelmoulat</media:title>
		</media:content>

		<media:content url="http://cacm.acm.org/system/assets/0000/6295/101311_mbaknol_steve_jobs.large.jpg?1318531162&#38;1318531161" medium="image">
			<media:title type="html">Credit: Courtesy of mbaknol.com</media:title>
		</media:content>
	</item>
		<item>
		<title>Google ClientLogin Utility in Java</title>
		<link>http://othmanelmoulatblog.wordpress.com/2011/09/02/clientlogin-wrapper-using-google-apis-client-library-for-java/</link>
		<comments>http://othmanelmoulatblog.wordpress.com/2011/09/02/clientlogin-wrapper-using-google-apis-client-library-for-java/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 09:18:52 +0000</pubDate>
		<dc:creator>othman</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://othmanelmoulatblog.wordpress.com/?p=649</guid>
		<description><![CDATA[Authentication and Authorization for Google APIs is a common feature in today&#8217;s applications requiring integration and information exchange with Google services. while most of this Google authentication process is tailored for web applications, it is also available for desktop and installed applications. for Desktop applications Google recommends using an authentication method called ClientLogin. ClientLogin method [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=649&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Authentication and Authorization for Google APIs is a common feature in today&#8217;s applications requiring integration and information exchange with Google services. while most of this Google authentication process is tailored for web applications, it is also available for desktop and installed applications. for Desktop applications Google recommends using an authentication method called <a href="http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html" target="_blank">ClientLogin</a>.</p>
<p><strong>ClientLogin method Caution:</strong><br />
Google no more recommands using ClientLogin method for Authorization. here is a quote from google documentation:</p>
<blockquote><p>ClientLogin is a Google proprietary authorization API, available as an alternative to OAuth for most Google APIs. You should avoid using ClientLogin if possible. If you already have applications that use ClientLogin, you should migrate to OAuth or the hybrid protocol.</p></blockquote>
<p>Thus, ClientLogin is for use only when there is a high level of trust between the application and the owner of the protected data. It is mostly commonly recommend for cases where the application owns the protected data. If users of your application are worried about supplying their passwords for security and privacy reasons then ClientLogin authorization method is not suited for this situation.</p>
<p><strong>How ClientLogin authorization works?</strong><br />
The ClientLogin method works mainly by sending HTTP Post requests to Google service using specific parameters as described in <a href="http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html" target="_blank">Google documentation</a>. In this article we will use a different approach to implement ClientLogin authorization process. We will use <a href="http://code.google.com/p/google-api-java-client/" target="_blank">Google APIs Client Library for Java</a>, which is a powerful java library for accessing Google&#8217;s HTTP-based API&#8217;s on the web. The most important class in this library is , Obviously, <a href="http://code.google.com/p/google-api-java-client/source/browse/google-api-client/src/main/java/com/google/api/client/googleapis/auth/clientlogin/ClientLogin.java" target="_blank">the ClientLogin class</a>.</p>
<p><strong>Anatomy of the ClientLogin class:</strong><br />
ClientLogin class provides a single method <em>authenticate()</em> which handles the details of authentication process. it also provides an important internal class <strong>ErrorInfo</strong> which could be used to handle authentication errors and captcha challenge logic.<br />
In this post we present a clean wrapper class for ClientLogin which handles the complete ClientLogin authorization process including authentication errors parsing and captcha challenge handling.</p>
<p><strong>google-api-java-client Maven Dependencies:</strong><br />
we chose to use maven for building our project example. Maven provides dependencies for the <strong>Google APIs Client Library for Java</strong>. just add the following maven dependencies to your pom.xml file:</p>
<p><pre class="brush: xml; auto-links: true; gutter: false; wrap-lines: false;">
 &lt;dependency&gt;
      &lt;groupId&gt;com.google.api.client&lt;/groupId&gt;
      &lt;artifactId&gt;google-api-client-googleapis-auth-clientlogin&lt;/artifactId&gt;
      &lt;version&gt;1.2.3-alpha&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
    &lt;groupId&gt;com.google.api.client&lt;/groupId&gt;
    &lt;artifactId&gt;google-api-client-javanet&lt;/artifactId&gt;
    &lt;version&gt;1.2.3-alpha&lt;/version&gt;
  &lt;/dependency&gt;
</pre></p>
<p>after that use maven:install to install the required jars to be included in our project classpath.</p>
<p><strong>GoogleClientLogin wrapper class:</strong><br />
Our wrapper class obviously contains a reference to ClientLogin . it provides public methods implementing the important functions of the authentication process.<br />
 GoogleClientLogin has a constructor that takes a String representing the Google service you&#8217;re requesting authorization for ( for example  &#8220;cl&#8221; for Google Calendar). The constructor looks like this:<br />
<pre class="brush: java; auto-links: true; gutter: false; wrap-lines: false;">
/**
	 * @param service
	 */
	public GoogleClientLogin(String service) {
		super();
		this.service = service;
		authenticator = new ClientLogin();
		transport = GoogleTransport.create();
		authenticator.authTokenType = service;
	}
</pre></p>
<p>The main method is <em>authenticate(username,password)</em> that takes two arguments representing the username and password input by user:<br />
<pre class="brush: java; auto-links: true; gutter: false; wrap-lines: false;">
/**
	 * @param username
	 * @param password
	 * @throws ClientLoginException
	 */
	public void authenticate(String username, String password)
			throws ClientLoginException {

		try {

			// authenticate with ClientLogin
			authenticator.username = username;
			authenticator.password = password;
			Response response = authenticator.authenticate();
			this.authToken = response.auth;

		} catch (HttpResponseException e) {
			parseError(e);

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
</pre><br />
this method sets ClientLogin variables (username and password) then calls ClientLogin.authenticate() which returns a Response instance. if the ClientLogin.authenticate() call is successful we store the Authentication token &#8216;Response.auth&#8217;. The advantage of the <em>authenticate(username,password)</em> wrapper method is its intelligent handling of authentication errors.</p>
<p> <strong>Parsing Authentication errors:</strong><br />
We distinguish two Error categories that could be thrown during the call to Clientlogin.authenticate(): a-unrecoverable Errors for which we use a ClientLoginException class<br />
b-a recoverable error thrown when Google service requires a captcha challenge. for this later we use a separate Exception class CaptchaRequiredException which extends the first ClientLoginException class.<br />
Clientlogin.authenticate() throws a HttpResponseException if the authentication response has an error code. we provide a helper method for parsing this exception class as follows:<br />
<pre class="brush: java; auto-links: true; gutter: false; wrap-lines: false;">
/**
	 * @param e
	 * @throws ClientLoginException
	 */
	private void parseError(HttpResponseException e)
			throws ClientLoginException {
		try {

			ClientLogin.ErrorInfo errorInfo = e.response.parseAs(ClientLogin.ErrorInfo.class);
			errorMessage = errorMsg.get(errorInfo.error);
			if (errorInfo.error.equals(CaptchaRequired)) {
				captchaToken = errorInfo.captchaToken;
				captchaUrl = errorInfo.captchaUrl;
				throw new CaptchaRequiredException(errorMessage, e);

			} else
				throw new ClientLoginException(errorMessage, e);
		} catch (IOException e1) {
			
			throw new ClientLoginException(e1);
		}
	}
</pre><br />
we Call  HttpResponseException.response.parseAs(ClientLogin.ErrorInfo.class) to parse the response. if the error code is &#8220;CaptchaRequired&#8221; we store <em>errorInfo.captchaToken</em> and <em>errorInfo.captchaUrl</em> then throw CaptchaRequiredException. for the rest of Error codes we just throw ClientLoginException.</p>
<p> <strong>Authentication with CAPTCHA Challenge:</strong><br />
in the case of a CAPTCHA challenge we provide a second <em>authenticate()</em> method which provides an extra argument &#8216;captchaAnswer&#8217; representing the captcha key entered by user during a CAPTCHA challenge:<br />
<pre class="brush: java; auto-links: true; gutter: false; wrap-lines: false;">
/**
	 * @param username
	 * @param password
	 * @param captchaAnswer
	 * @throws ClientLoginException
	 */
	public void authenticate(String username, String password,
			String captchaAnswer) throws ClientLoginException {
		authenticator.username = username;
		authenticator.password = password;
		authenticator.captchaToken = this.captchaToken;
		authenticator.captchaAnswer = captchaAnswer;
		try {
			Response response = authenticator.authenticate();			
			this.authToken = response.auth;
		} catch (HttpResponseException e) {
			parseError(e);
		} catch (IOException e) {
			throw new ClientLoginException(e);
		}
	}
</pre><br />
before calling authenticator.authenticate() this method sets two extra fields <em>authenticator.captchaToken</em> and <em>authenticator.captchaAnswer</em>. Error handling for this method is the same as the main <em>authenticate(username,password)</em> method.<br />
Finally we provide a method to retrieve the CAPTCHA image that will be displayed to user:<br />
<pre class="brush: java; auto-links: false; gutter: false; wrap-lines: false;">
/**
	 * @return the captchaImage
	 */
	public BufferedImage getCaptchaImage() {

		BufferedImage image = null;
		try {
			URL url = new URL(&quot;https://www.google.com/accounts/&quot;+ getCaptchaUrl());
			image = ImageIO.read(url);
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}

		return image;
	}
</pre><br />
You can view the complete GoogleClientLogin class source file <a href="http://code.google.com/p/google-apis-utils/source/browse/trunk/Google-API-Utils/src/main/java/com/google/clientlogin/GoogleClientLogin.java" target="_blank">here</a>.</p>
<p><strong>Testing GoogleClientLogin wrapper class:</strong><br />
<a href="http://code.google.com/p/google-apis-utils/source/browse/trunk/Google-API-Utils/src/main/java/com/google/clientlogin/example/ClientLoginDialog.java" target="_blank">GoogleClientLoginDialog</a> is a swing Dialog which presents an example of how to use <a href="http://code.google.com/p/google-apis-utils/source/browse/trunk/Google-API-Utils/src/main/java/com/google/clientlogin/GoogleClientLogin.java" target="_blank">GoogleClientLogin</a> wrapper class. It provides a feature to force Google service to send a CAPTCHA challenge. we implement this test using a thread that keeps sending random passwords until Google responds with a CAPTCHA challenge:<br />
<pre class="brush: java; auto-links: true; gutter: false; wrap-lines: false;">
 private class ForceCaptchaRunnable implements Runnable{

		public void run() {
			Random r = new Random();
			boolean isCaptcha = false;
			while (!isCaptcha) {
				try {
					client.authenticate(textField.getText().trim(),
							passwordField.getText().trim()+ r.nextInt(100));
					showMessage(&quot;Auth Token: &quot;+client.getAuthToken());
				} catch (CaptchaRequiredException e1) {
					
					isCaptcha = true;
					showCaptcha(true);
					
				} catch (ClientLoginException e1) {
					
				}
			}
			
		}
		
	}
</pre><br />
<a href="http://othmanelmoulatblog.files.wordpress.com/2011/09/clientlogindialog.png"><img src="http://othmanelmoulatblog.files.wordpress.com/2011/09/clientlogindialog.png?w=640" alt="" title="clientloginDialog"   class="aligncenter size-full wp-image-678" /></a></p>
<p>You can view and download the complete source code of this sample project at Google code project:  <a href="http://code.google.com/p/google-apis-utils/" target="_blank">google-apis-utils </a>.</p>
<hr />
<strong>Resources:</strong><br />
Google code project: <a href="http://code.google.com/p/google-apis-utils/" target="_blank">google-apis-utils</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/othmanelmoulatblog.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/othmanelmoulatblog.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/othmanelmoulatblog.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/othmanelmoulatblog.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/othmanelmoulatblog.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/othmanelmoulatblog.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/othmanelmoulatblog.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/othmanelmoulatblog.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/othmanelmoulatblog.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/othmanelmoulatblog.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/othmanelmoulatblog.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/othmanelmoulatblog.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/othmanelmoulatblog.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/othmanelmoulatblog.wordpress.com/649/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=649&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://othmanelmoulatblog.wordpress.com/2011/09/02/clientlogin-wrapper-using-google-apis-client-library-for-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a64d3d9e8dc4989e7fb3ed3662e5dead?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">othmanelmoulat</media:title>
		</media:content>

		<media:content url="http://othmanelmoulatblog.files.wordpress.com/2011/09/clientlogindialog.png" medium="image">
			<media:title type="html">clientloginDialog</media:title>
		</media:content>
	</item>
		<item>
		<title>Google Cloud Connect offline installer</title>
		<link>http://othmanelmoulatblog.wordpress.com/2011/07/12/google-cloud-connect-offline-installer/</link>
		<comments>http://othmanelmoulatblog.wordpress.com/2011/07/12/google-cloud-connect-offline-installer/#comments</comments>
		<pubDate>Tue, 12 Jul 2011 15:34:49 +0000</pubDate>
		<dc:creator>othman</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Google cloud]]></category>
		<category><![CDATA[MS office plugin]]></category>

		<guid isPermaLink="false">http://othmanelmoulatblog.wordpress.com/?p=585</guid>
		<description><![CDATA[I always face problems installing plugins from Google. it seems their installers download is blocked if we are behind a firewall or because Google uses a proxy that blocks unauthenticated content ; or maybe for other internet connectivity reasons. I recently failed to install the Google Cloud Connect for MS office plugin . The download [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=585&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I always face problems installing plugins from Google. it seems their installers download is blocked if we are behind a firewall or because Google uses a proxy that blocks unauthenticated content ; or maybe for other internet connectivity reasons.<br />
I recently failed to install the <a href="http://tools.google.com/dlpage/cloudconnect" target="_blank">Google Cloud Connect for MS office plugin</a> . The download fails without reporting any Error number.<br />
A workaround is to directly download the plugin installer from the below link :</p>
<p><pre class="brush: xml; auto-links: true; gutter: false; wrap-lines: false;">
https://dl-ssl.google.com/dl/appsconnect/googleconnectinstallerenterprise.msi
</pre></p>
<p></br></br></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/othmanelmoulatblog.wordpress.com/585/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/othmanelmoulatblog.wordpress.com/585/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/othmanelmoulatblog.wordpress.com/585/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/othmanelmoulatblog.wordpress.com/585/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/othmanelmoulatblog.wordpress.com/585/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/othmanelmoulatblog.wordpress.com/585/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/othmanelmoulatblog.wordpress.com/585/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/othmanelmoulatblog.wordpress.com/585/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/othmanelmoulatblog.wordpress.com/585/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/othmanelmoulatblog.wordpress.com/585/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/othmanelmoulatblog.wordpress.com/585/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/othmanelmoulatblog.wordpress.com/585/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/othmanelmoulatblog.wordpress.com/585/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/othmanelmoulatblog.wordpress.com/585/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=585&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://othmanelmoulatblog.wordpress.com/2011/07/12/google-cloud-connect-offline-installer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a64d3d9e8dc4989e7fb3ed3662e5dead?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">othmanelmoulat</media:title>
		</media:content>
	</item>
		<item>
		<title>OpenStudy : a Big Idea or just another Q&amp;A system ?</title>
		<link>http://othmanelmoulatblog.wordpress.com/2011/06/05/openstudy-a-big-idea-or-just-another-qa-system/</link>
		<comments>http://othmanelmoulatblog.wordpress.com/2011/06/05/openstudy-a-big-idea-or-just-another-qa-system/#comments</comments>
		<pubDate>Sun, 05 Jun 2011 05:36:01 +0000</pubDate>
		<dc:creator>othman</dc:creator>
				<category><![CDATA[E-learning]]></category>
		<category><![CDATA[Theory]]></category>
		<category><![CDATA[open social learning]]></category>
		<category><![CDATA[OpenStudy]]></category>
		<category><![CDATA[StackExchange]]></category>

		<guid isPermaLink="false">http://othmanelmoulatblog.wordpress.com/?p=558</guid>
		<description><![CDATA[I Recently read a blog entry at CACM: Our Big Idea: Open Social Learning .  The article mentions a project OpenStudy.com which is a a start-up company spun off by Georgia Tech and Emory University. Its Web site is the latest effort to create a social platform for independent learners who want to help each [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=558&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I Recently read a blog entry at CACM: <a href="http://cacm.acm.org/blogs/blog-cacm/109290-our-big-idea-open-social-learning/fulltext" target="_blank">Our Big Idea: Open Social Learning</a> .  The article mentions a project <a href="http://openstudy.com/" target="_blank">OpenStudy.com</a> which is a a start-up company spun off by <a class="zem_slink" title="Georgia Institute of Technology" href="http://www.gatech.edu/" rel="homepage">Georgia Tech</a> and Emory University. Its Web site is the latest effort to create a social platform for independent learners who want to help each other study the huge trove of educational materials published free online by universities like <a class="zem_slink" title="Massachusetts Institute of Technology" href="http://web.mit.edu/" rel="homepage">MIT</a>. Another way to describe this Project is as a <a href="http://preetharam.wordpress.com/2011/05/11/open-social-learning-aka-massively-multiplayer-online-learning/" target="_blank">Open Social Learning aka Massively Multiplayer Online Learning</a></p>
<p>The Idea sounds Great But is it really innovative? .  as it stands now , openStudy is merely another Q&amp;A website . There exists new modern Q&amp;A systems like the popular <a href="http://stackexchange.com/" target="_blank">Stack Exchange </a>web sites network which is</p>
<blockquote><p>a<strong> fast-growing network of <a href="http://stackexchange.com/sites" target="_blank">51 question and answer sites</a></strong> on diverse topics from software programming to cooking to photography and gaming.</p></blockquote>
<p>many students , researchers and scientists use now extensively the <a class="zem_slink" title="Stack Exchange Network" href="http://stackexchange.com/" rel="homepage">Stack Exchange network</a> sites to conduct open study collaboration on various scientific topics like mathematics , physics , programming and many other STEM topics.</p>
<p>In your opinion what makes <a class="zem_slink" title="OpenStudy" href="http://www.openstudy.com" rel="homepage">OpenStudy</a> really a Big Idea as their founders describe it? will it really take its promise to revolutionize the STEM learning process in the world and become the Facebook of schools? what is your evaluation of the <a href="http://openstudy.com/" target="_blank">OpenStudy </a>project ?<a href="http://stackexchange.com/" target="_blank"><br />
</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/othmanelmoulatblog.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/othmanelmoulatblog.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/othmanelmoulatblog.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/othmanelmoulatblog.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/othmanelmoulatblog.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/othmanelmoulatblog.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/othmanelmoulatblog.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/othmanelmoulatblog.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/othmanelmoulatblog.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/othmanelmoulatblog.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/othmanelmoulatblog.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/othmanelmoulatblog.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/othmanelmoulatblog.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/othmanelmoulatblog.wordpress.com/558/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=558&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://othmanelmoulatblog.wordpress.com/2011/06/05/openstudy-a-big-idea-or-just-another-qa-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a64d3d9e8dc4989e7fb3ed3662e5dead?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">othmanelmoulat</media:title>
		</media:content>
	</item>
		<item>
		<title>Overcomming MS&#8217;s Local Machine Zone Lockdown in GWT</title>
		<link>http://othmanelmoulatblog.wordpress.com/2011/02/14/overcomming-mss-local-machine-zone-lockdown-in-gwt/</link>
		<comments>http://othmanelmoulatblog.wordpress.com/2011/02/14/overcomming-mss-local-machine-zone-lockdown-in-gwt/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 02:10:34 +0000</pubDate>
		<dc:creator>othman</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://othmanelmoulatblog.wordpress.com/?p=462</guid>
		<description><![CDATA[GWT developers will notice an annoying problem running the basic default GWT app locally in web mode in IE every time i try this I get a red warning message: &#8220;Your web browser must have JavaScript enabled in order for this application to display correctly&#8221;. I had to allow the active content  in order to see [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=462&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>GWT developers will notice an annoying problem running the basic default GWT app locally in web mode in IE every time i try this I get a red warning message: <span style="color:#ff0000;">&#8220;Your web browser must have JavaScript enabled in order for this application to display correctly&#8221;. </span> I had to allow the active content  in order to see the web app screen. running in GWT dev mode seems not to raise this warning message. So what&#8217;s this all about? it seems IE doesn&#8217;t like people opening JavaScript-laced web pages from the local drive for security concern. there is a detailed article <a href="http://www.phdcc.com/xpsp2.htm" target="_blank">here</a> that speaks about this issue  of Microsoft blocking local domain for web applications .</p>
<p>The article above speaks about a new concept introduced by Microsoft called <a href="http://msdn.microsoft.com/en-us/library/ms537628.aspx" target="_blank">Mark of the web</a>. i tried the method of Mark of the web by adding these two lines at the begining of my GWT html file :<br />
<pre class="brush: xml;"> 
&lt;!-- saved from url=(0014)about:internet --&gt;
&lt;!-- saved from url=(0016)http://localhost --&gt; </pre></p>
<p>but when i add these two lines and then compile GWT app and open the html file with IE the web app doesn&#8217;t show even though the warning message is gone . The reason probably is that -by default- a GWT app is loaded within an iframe, i.e. as another HTML page (*.cache.html), which doesn&#8217;t contain the MotW (Mark of the web).<br />
to overcome this problem we can try using the &#8220;xs&#8221; or &#8220;xsiframe&#8221; linker, i.e. add one of these lines to our *.gwt.xml:<br />
<pre class="brush: xml;">
&lt;add-linker name=&quot;xs&quot; /&gt;
&lt;add-linker name=&quot;xsiframe&quot; /&gt;
</pre><br />
Those linkers use *.cache.js&#8221; files, so the MotW in our host page should be enough. adding the linker to GWT xml module file makes IE warning message go away and I can run the GWT web app locally with IE.<br />
but The &#8220;xs&#8221; linker has one drawback : it prevents us from using GWT DevMode . another annoyance that we can overcome by using two *.gwt.xml module files: one for web mode testing with &#8216;xs&#8217; linker and the other without the linker for testing in GWT DevMode.</p>
<p>This may give you an Idea about the coding acrobatics one should go through to overcome the weired Microsoft decision to block totally the Machine local zone for web applications!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/othmanelmoulatblog.wordpress.com/462/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/othmanelmoulatblog.wordpress.com/462/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/othmanelmoulatblog.wordpress.com/462/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/othmanelmoulatblog.wordpress.com/462/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/othmanelmoulatblog.wordpress.com/462/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/othmanelmoulatblog.wordpress.com/462/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/othmanelmoulatblog.wordpress.com/462/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/othmanelmoulatblog.wordpress.com/462/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/othmanelmoulatblog.wordpress.com/462/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/othmanelmoulatblog.wordpress.com/462/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/othmanelmoulatblog.wordpress.com/462/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/othmanelmoulatblog.wordpress.com/462/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/othmanelmoulatblog.wordpress.com/462/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/othmanelmoulatblog.wordpress.com/462/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=462&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://othmanelmoulatblog.wordpress.com/2011/02/14/overcomming-mss-local-machine-zone-lockdown-in-gwt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a64d3d9e8dc4989e7fb3ed3662e5dead?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">othmanelmoulat</media:title>
		</media:content>
	</item>
		<item>
		<title>GWT KeyPressHandler getCharCode issues</title>
		<link>http://othmanelmoulatblog.wordpress.com/2011/01/16/be-careful-with-gwt-keypressevent-getcharcode/</link>
		<comments>http://othmanelmoulatblog.wordpress.com/2011/01/16/be-careful-with-gwt-keypressevent-getcharcode/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 20:09:44 +0000</pubDate>
		<dc:creator>othman</dc:creator>
				<category><![CDATA[GWT]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://othmanelmoulat.blogetery.com/?p=441</guid>
		<description><![CDATA[Like hundreds of GWT developers I stepped into the annoying GWT KeyPressEvent.getCharCode() bug problem described here To turn around this bug i tried using: the purpose is to access the native event to get the unprocessed code. However if you try the you will knock your head against browser-specific inconsistencies. For example the getCharCode() from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=441&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Like hundreds of GWT developers I stepped into the annoying GWT KeyPressEvent.getCharCode() bug problem   described <a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=3753" target="_blank">here </a><br />
To turn around this bug i tried using:<br />
 <pre class="brush: java; toolbar: true; wrap-lines: false;">
event.getNativeEvent().getKeyCode()
</pre><br />
the purpose is to access the native event to get the unprocessed code. However if you try the <pre class="brush: java; toolbar: true; wrap-lines: false;">event.getNativeEvent().getKeyCode()</pre> you will knock your head against browser-specific inconsistencies. For example the getCharCode() from NativeEvent works for me in FireFox 3 but it doesn&#8217;t work in Chrome . in Chrome if i press &#8220;ENTER&#8221; key <pre class="brush: plain;"> event.getNativeEvent().getKeyCode()=10</pre> But <pre class="brush: plain;"> KeyCodes.KEY_ENTER=13</pre><br />
in FF3 the two values are equal (&#8217;13&#8242;).<br />
It appears that a <a href="http://code.google.com/p/google-web-toolkit/source/detail?r=7692" target="_blank">fix</a>  for KeyPressHandler was completed and reviewed for this issue . but it is not clear when we could expect it to be released. The fix appears fairly complex, with different browser-specific implementations.<br />
 it turns out that this change set is actually exactly what causes the current behavior in Firefox. See <a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=5003#c1" target="_blank">the rationale </a> and <a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=5558#c6" target="_blank"> a workaround/fix </a>  (i.e. only use getNativeEvent() when getCharCode returns 0).<br />
the  <a href="http://code.google.com/p/google-web-toolkit/issues/detail?id=5558#c6" target="_blank"> workaround </a> above works but we need to replace &#8217;13&#8242; with &#8217;10&#8242; in the fix code portion below :</p>
<p><pre class="brush: java; toolbar: true; wrap-lines: false;">
} else if (charCode == 13) {

    doOnEnterKeyPressed();
  }</pre><br />
using &#8217;10&#8242; instead of &#8217;13&#8242; in the else if conditional:</p>
<p><pre class="brush: java; toolbar: true; wrap-lines: false;">
} else if (charCode == 10) {

    doOnEnterKeyPressed();
  }</pre><br />
with this new change code works both in chrome and FF3.</p>
<p>Hope this could be helpful for anyone experiencing these GWT keyPress getCharCode() problems.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/othmanelmoulatblog.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/othmanelmoulatblog.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/othmanelmoulatblog.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/othmanelmoulatblog.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/othmanelmoulatblog.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/othmanelmoulatblog.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/othmanelmoulatblog.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/othmanelmoulatblog.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/othmanelmoulatblog.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/othmanelmoulatblog.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/othmanelmoulatblog.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/othmanelmoulatblog.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/othmanelmoulatblog.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/othmanelmoulatblog.wordpress.com/441/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=othmanelmoulatblog.wordpress.com&amp;blog=19974376&amp;post=441&amp;subd=othmanelmoulatblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://othmanelmoulatblog.wordpress.com/2011/01/16/be-careful-with-gwt-keypressevent-getcharcode/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a64d3d9e8dc4989e7fb3ed3662e5dead?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">othmanelmoulat</media:title>
		</media:content>
	</item>
	</channel>
</rss>
