<?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>/ Reza</title>
	<atom:link href="http://rezahok.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://rezahok.wordpress.com</link>
	<description>my two cents based on experience</description>
	<lastBuildDate>Mon, 14 Nov 2011 13:26:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='rezahok.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>/ Reza</title>
		<link>http://rezahok.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://rezahok.wordpress.com/osd.xml" title="/ Reza" />
	<atom:link rel='hub' href='http://rezahok.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Things to do before asking a Question ?</title>
		<link>http://rezahok.wordpress.com/2011/06/08/things-to-do-before-asking-a-question/</link>
		<comments>http://rezahok.wordpress.com/2011/06/08/things-to-do-before-asking-a-question/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 19:59:09 +0000</pubDate>
		<dc:creator>Reza</dc:creator>
		
		<guid isPermaLink="false">http://rezahok.wordpress.com/?p=294</guid>
		<description><![CDATA[How often have you found yourself describing a problem, and even before you can finish your question, you go &#8220;Ahaaa.. I know what the problem is&#8221;. This is mainly because when you think out loud, you formulate your question better, and in simpler terms so that someone else can understand your problem, but in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=294&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://rezahok.files.wordpress.com/2011/06/mrdummy.jpg"><img class="alignright size-full wp-image-295" title="MrDummy" src="http://rezahok.files.wordpress.com/2011/06/mrdummy.jpg?w=380" alt=""   /></a>How often have you found yourself describing a problem, and even before you can finish your question, you go &#8220;Ahaaa.. I know what the problem is&#8221;. This is mainly because when you think out loud, you formulate your question better, and in simpler terms so that someone else can understand your problem, but in the process you understand your own problem better as well, and come up with a solution.</p>
<p>Introducing Mr.Dummy who has volunteered to hear out all your questions. So next time you have a question, here are four steps to do :</p>
<ol>
<li>Describe your problem to Mr.Dummy in simple English.</li>
<li>Draw a visual representation of your problem for Mr.Dummy to understand.</li>
<li>Google/Bing your problem [Possibilities are high that someone already had the same question]</li>
<li>By now, you should have your answer, if not, you will atleast have a better Question !</li>
</ol>
<div><a href="http://rezahok.files.wordpress.com/2011/06/mrdummy.jpg"><br />
</a></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rezahok.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rezahok.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rezahok.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rezahok.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rezahok.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rezahok.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rezahok.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rezahok.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rezahok.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rezahok.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rezahok.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rezahok.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rezahok.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rezahok.wordpress.com/294/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=294&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rezahok.wordpress.com/2011/06/08/things-to-do-before-asking-a-question/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e5a0eade927f250405ce1b6997f73472?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rezahok</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2011/06/mrdummy.jpg" medium="image">
			<media:title type="html">MrDummy</media:title>
		</media:content>
	</item>
		<item>
		<title>A glimpse into the future &#8211; Windows 8</title>
		<link>http://rezahok.wordpress.com/2011/06/02/a-glimpse-into-the-future-windows-8/</link>
		<comments>http://rezahok.wordpress.com/2011/06/02/a-glimpse-into-the-future-windows-8/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 12:41:34 +0000</pubDate>
		<dc:creator>Reza</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Windows 8]]></category>

		<guid isPermaLink="false">http://rezahok.wordpress.com/?p=287</guid>
		<description><![CDATA[Life as we know it in a PC, is about to change. Introducing Windows 8, a step forward into the future. Enjoy !<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=287&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Life as we know it in a PC, is about to change. Introducing Windows 8, a step forward into the future. Enjoy !</p>
<p><span style="text-align:center; display: block;"><a href="http://rezahok.wordpress.com/2011/06/02/a-glimpse-into-the-future-windows-8/"><img src="http://img.youtube.com/vi/p92QfWOw88I/2.jpg" alt="" /></a></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rezahok.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rezahok.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rezahok.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rezahok.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rezahok.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rezahok.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rezahok.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rezahok.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rezahok.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rezahok.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rezahok.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rezahok.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rezahok.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rezahok.wordpress.com/287/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=287&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rezahok.wordpress.com/2011/06/02/a-glimpse-into-the-future-windows-8/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e5a0eade927f250405ce1b6997f73472?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rezahok</media:title>
		</media:content>
	</item>
		<item>
		<title>Python &#8211; The world of exotic flow control !</title>
		<link>http://rezahok.wordpress.com/2009/09/22/python-the-world-of-exotic-flow-control/</link>
		<comments>http://rezahok.wordpress.com/2009/09/22/python-the-world-of-exotic-flow-control/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 23:06:54 +0000</pubDate>
		<dc:creator>Reza</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://rezahok.wordpress.com/?p=246</guid>
		<description><![CDATA[Among a lot of interesting stuff in python the concept of Generators took me by surprise, so I will give an try to share the excitement with the rest of you out there who haven&#8217;t used it yet. Before I delve into this nice concept, I welcome you to the world of exotic flow control, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=246&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Among a lot of interesting stuff in python the concept of Generators took me by surprise, so I will give an try to share the excitement with the rest of you out there who haven&#8217;t used it yet. Before I delve into this nice concept, I welcome you to the world of exotic flow control, truly Python has a charm of its own.</p>
<p>Imagine we have a set of numbers representing the fibonacci series in a list and then we traverse the list to get the numbers.</p>
<p><img class="alignnone size-full wp-image-254" title="list" src="http://rezahok.files.wordpress.com/2009/09/list.png?w=380" alt="list"   /></p>
<p>The data in the list is pre-generated using a formula, or manually entered by the user. This list can be  really big, and then we have memory considerations. In cases where we really do not know how many of this elements we need to use, but still we have to pre-generate all of it just in case we need it. In such a scenario Pythons Generator comes to the rescue.<span id="more-246"></span></p>
<p>Here is a test function which is a generator, as it uses the yield keyword. We will run through the code step by step to understand how it works.</p>
<p><img class="alignnone size-full wp-image-270" title="yield" src="http://rezahok.files.wordpress.com/2009/09/yield1.png?w=380" alt="yield"   /></p>
<p><img class="alignnone size-full wp-image-271" title="generator_test" src="http://rezahok.files.wordpress.com/2009/09/generator_test.png?w=380" alt="generator_test"   /></p>
<p>The output of the code would be as follows :</p>
<blockquote><p>Hello stranger<br />
1<br />
Whats up?<br />
2<br />
Python rocks<br />
3</p></blockquote>
<p>When we call the test function it doesn&#8217;t get executed  instead, the Python interpreter gives a `generator object&#8217;.  Calling a.next results the function beginning its execution &#8211; it prints &#8216;Hello Stranger&#8217; and comes to a dead stop at the `yield&#8217; statement, returning the value 1 to the caller. The function has gone back to its caller, but its `local state&#8217; has been fully preserved. Another invocation of a.next results in the function restarting from where it had stopped earlier &#8211; it prints `Whats up&#8217; and stops after returning the value 2 to the caller. Yet another invocation of a.next prints `Python rocks&#8217; and returns 3 to the caller. If it is called again a exception will be raised, as the execution of the function has reached the end.</p>
<p>Going back to our first example of traversing a list for fibonacci numbers, we can achieved the same thing using a Generator function where the instead of the list we have a fibonacci function as the Generator. The Generator uses the <strong>yield </strong>keyword instead of a &#8220;return&#8221; , but &#8220;remembers&#8221; the exact point of execution where it returned. Next time the generator is called, it picks up where it left before, both in terms of function flow and in terms of variable values. Hence when needed and the function is called again the next number is calculated, thus no pre-storing of values are needed.  A code snippet to show the <strong>yield</strong> in action :</p>
<p><img title="fibonacci" src="http://rezahok.files.wordpress.com/2009/09/fibonacci.png?w=314&#038;h=133" alt="fibonacci" width="314" height="133" /></p>
<p><img class="alignnone size-full wp-image-252" title="run_fibonacci" src="http://rezahok.files.wordpress.com/2009/09/run_fibonacci.png?w=380" alt="run_fibonacci"   /></p>
<p>So, now we can actually treat a function, as a list containing numbers, which does not need to be pre-generated rather can be calculated on the fly when the function is called. Each time the function is called, the next value is calculated. Very Interesting, isn&#8217;t it ?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rezahok.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rezahok.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rezahok.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rezahok.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rezahok.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rezahok.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rezahok.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rezahok.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rezahok.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rezahok.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rezahok.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rezahok.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rezahok.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rezahok.wordpress.com/246/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=246&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rezahok.wordpress.com/2009/09/22/python-the-world-of-exotic-flow-control/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e5a0eade927f250405ce1b6997f73472?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rezahok</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2009/09/list.png" medium="image">
			<media:title type="html">list</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2009/09/yield1.png" medium="image">
			<media:title type="html">yield</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2009/09/generator_test.png" medium="image">
			<media:title type="html">generator_test</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2009/09/fibonacci.png" medium="image">
			<media:title type="html">fibonacci</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2009/09/run_fibonacci.png" medium="image">
			<media:title type="html">run_fibonacci</media:title>
		</media:content>
	</item>
		<item>
		<title>A simple Distributed Hash Table (DHT)</title>
		<link>http://rezahok.wordpress.com/2009/09/21/a-simple-distributed-hash-table-dht/</link>
		<comments>http://rezahok.wordpress.com/2009/09/21/a-simple-distributed-hash-table-dht/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 14:08:58 +0000</pubDate>
		<dc:creator>Reza</dc:creator>
				<category><![CDATA[DHT]]></category>
		<category><![CDATA[Distributed Systems]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://rezahok.wordpress.com/?p=205</guid>
		<description><![CDATA[A simple Distributed Hash Table (DHT) can be used for storing key value pairs in a distributed storage. The DHT design that will be discussed in this post is simple but entirely sufficient to serve the purpose of a distributed hash table. Given a static network of nodes with perfect up time, you can start [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=205&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A simple Distributed Hash Table (DHT) can be used for storing key value pairs in a distributed storage. The DHT design that will be discussed in this post is simple but entirely sufficient to serve the purpose of a distributed hash table. Given a static network of nodes with perfect up time, you can start with any node and key and find the node responsible for that key.</p>
<p style="text-align:center;"><img class="size-full wp-image-214 aligncenter" title="DHTRing" src="http://rezahok.files.wordpress.com/2009/09/dhtring2.jpg?w=380" alt="DHTRing"   /></p>
<p style="text-align:left;">In a real DHT implementation, each node would be running on a different machine and all calls to them would be needed to be communicated over some socket protocol. However for now, we will only simulate the DHT to help us understand how it works. A complete real DHT implementation will be discussed in the next post.</p>
<p style="text-align:left;">Each node is itself a standard hash table. All we need to do, to store or retrieve a value from the hash table is <span id="more-205"></span>find the appropriate node in the network, then store it in that nodes hash table.</p>
<p style="text-align:left;"><strong>Network Overlay<br />
</strong></p>
<p style="text-align:left;">Each node points to another node called its successor. The last node points to the first node and forming the network overlay. For now we will not discuss how to maintain this overlay, rather concentrate on store and lookup assuming we have the overlay. Nevertheless, it is very simple to simulate the overlay, you can use a simple Circular Linked List, where each node points to a successor node forming the circular list.</p>
<p style="text-align:left;"><strong>Choosing Node ID</strong></p>
<p style="text-align:left;">By hashing the Nodes IP, using a consistent hash function like SHA-1, a <em>m</em> bit identifier is generated which is set as the Node Id . Similarly the value is hashed to generate a <em>m</em> bit identifier to be used as the key. Any key has to be of the same range of the Node Id so that they can be compared.</p>
<p style="text-align:left;"><strong>Store</strong></p>
<p style="text-align:left;">The start is the node which will perform the store request. It will simply check whether the key is in between its Node ID and its Successors Node ID, if so then it just has to decide whether it key is closer to its Node ID or Successor Node ID. If it is closer it will store it in its Hash Table. If the successor&#8217;s Node ID is closer, it will tell the successor node to store the value. But if the key doesn&#8217;t fall in the range, then it requests its successor to perform the search. This goes on until the actual node to store the value in is found. This is done using the closest_node and find_node functions.</p>
<p>The closest_node function, given the node and its successor node and the key, returns the node which is closer to the key.</p>
<p><img class="size-full wp-image-226 alignnone" title="closest_node" src="http://rezahok.files.wordpress.com/2009/09/closest_node.jpg?w=380" alt="closest_node"   /></p>
<p>The find_node function searches to see if the key is between the start node and its successor node, if not moves on to the next node, and does the check again. When found, it calls the closest_node function to find out which node is closer to the key and returns that node.</p>
<p><img class="alignnone size-full wp-image-228" title="find_node" src="http://rezahok.files.wordpress.com/2009/09/find_node1.jpg?w=380" alt="find_node"   /></p>
<p style="text-align:left;">The store function is used to store a value at a appropriate node. It uses the find_node function to find the appropriate node to store the value and then stores it there.</p>
<p style="text-align:left;"><img class="alignnone size-full wp-image-229" title="Store" src="http://rezahok.files.wordpress.com/2009/09/store1.jpg?w=380" alt="Store"   /></p>
<p style="text-align:left;"><strong>Lookup</strong></p>
<p style="text-align:left;">It uses the find_node function to find which node holds the value and then gets the value from it.</p>
<p style="text-align:left;"><img class="alignnone size-full wp-image-231" title="Lookup" src="http://rezahok.files.wordpress.com/2009/09/lookup1.jpg?w=380" alt="Lookup"   /></p>
<p style="text-align:left;"><strong>Analysis</strong></p>
<ul>
<li><strong>Storage or Lookup complexity -</strong> Storage or lookup takes O(n) messages.  We can modify the current DHT implementation into a Chord Implementation. Instead of each Node having only one successor, it can keep a list of successors (finger table). Then the storage or lookup can be done using O(log n) messages.</li>
<li><strong>Range Queries </strong>- In this simple DHT we cannot perform range queries efficiently. We can implement Prefix Hash Tree (PHT) or Range Search Tree (RST) that supports range queries over DHT.</li>
<li><strong>Value Storage -</strong> Each node maintains a standard Hash Table to store in values. In the current implementation if two values come with the same key to be stored, then the previous value will be over written and is lost. But this is not a common situation as usually key itself is produced by hashing, and thus the different values will not have the same key. But nevertheless this needs to be considered if the key is not made sure to be unique for different values. To be able to store different values which might have the same key, we need to use a chained hash table instead of the standard hash table which can only store one value. In a chained has table each key points to a list of values.</li>
</ul>
<p><strong>Conclusion</strong></p>
<p>I tried to touch the core basics of a DHT and show how to implement one. DHT&#8217;s are very useful means to distributed load among servers. It has a lot of other application domains. This implementation given in this post is however not much useful as it is just a basic simulation of how things work under the hood. In the coming post I will write a real DHT implementation in Python which will run in different nodes, and will try to hook it  up with a sample application.  Watch out for that.</p>
<p>The full Python implementation of the simulated DHT presented in this post can be downloaded from <a href="http://www.isk.kth.se/~smrhoque/DHT-Simulation.zip">here</a></p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:868px;width:1px;height:1px;"><img src="/Users/erezhoq/AppData/Local/Temp/moz-screenshot.jpg" alt="" /></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rezahok.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rezahok.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rezahok.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rezahok.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rezahok.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rezahok.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rezahok.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rezahok.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rezahok.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rezahok.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rezahok.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rezahok.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rezahok.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rezahok.wordpress.com/205/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=205&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rezahok.wordpress.com/2009/09/21/a-simple-distributed-hash-table-dht/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e5a0eade927f250405ce1b6997f73472?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rezahok</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2009/09/dhtring2.jpg" medium="image">
			<media:title type="html">DHTRing</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2009/09/closest_node.jpg" medium="image">
			<media:title type="html">closest_node</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2009/09/find_node1.jpg" medium="image">
			<media:title type="html">find_node</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2009/09/store1.jpg" medium="image">
			<media:title type="html">Store</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2009/09/lookup1.jpg" medium="image">
			<media:title type="html">Lookup</media:title>
		</media:content>
	</item>
		<item>
		<title>Reading Quran in whole new way !</title>
		<link>http://rezahok.wordpress.com/2009/07/11/reading-quran-in-whole-new-way/</link>
		<comments>http://rezahok.wordpress.com/2009/07/11/reading-quran-in-whole-new-way/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 18:05:16 +0000</pubDate>
		<dc:creator>Reza</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">http://rezahok.wordpress.com/?p=175</guid>
		<description><![CDATA[Everyday we read so many forward mails, wouldn&#8217;t it be cool if we at least read one verse from the Holy Quran instead. In pursuit to understand Islam better we enable online access to the Holy Quran, in the most simplistic form, we are introducing the new website www.Quranic-verses.com. The site is targeted to show [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=175&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="mceTemp mceIEcenter" style="text-align:left;">
<p style="text-align:left;">Everyday we read so many forward mails, wouldn&#8217;t it be cool if we at least read one verse from the Holy Quran instead. In pursuit to understand Islam better we enable online access to the Holy Quran, in the most simplistic form, we are introducing the new website <a href="http://www.quranic-verses.com/" target="_blank">www.Quranic-verses.com</a>. The site is targeted to show random verses from the Holy Quran. You can sequentially read the verses which are chained together. In addition is has the following features :</p>
<ul style="text-align:left;">
<li>It enables  you to post a verse directly into Facebook</li>
<li>See Salat/Namaz/Prayer timings</li>
<li>Receive daily Quranic verses via e-mail</li>
<li>Use a <a href="http://www.google.com/ig/directory?type=gadgets&amp;url=www.quranic-verses.com/qverses.xml" target="_blank">iGoogle gadget</a> to read the verses</li>
<li>Follow us on <a href="http://www.twitter.com/QuranicVerse" target="_blank">Twitter</a> to receive verses as tweets daily</li>
<li>Find out Qibla Direction</li>
</ul>
<p>Here is a screen shot of the web page.</p>
<div id="attachment_191" class="wp-caption alignnone" style="width: 388px"><a href="http://www.quranic-verses.com"><img class="size-large wp-image-191  " title="Quranic Verses" src="http://rezahok.files.wordpress.com/2009/07/qv_version2-0_screenshot.jpg?w=378&#038;h=189" alt="Quranic Verses" width="378" height="189" /></a><p class="wp-caption-text">Quranic Verses</p></div>
</div>
<p style="text-align:left;">Hope this site will help all of us to read and understand the  Holy Quran, in the midst of our busy lives.</p>
<p style="text-align:left;">
<p style="text-align:left;">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rezahok.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rezahok.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rezahok.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rezahok.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rezahok.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rezahok.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rezahok.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rezahok.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rezahok.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rezahok.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rezahok.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rezahok.wordpress.com/175/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rezahok.wordpress.com/175/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rezahok.wordpress.com/175/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=175&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rezahok.wordpress.com/2009/07/11/reading-quran-in-whole-new-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e5a0eade927f250405ce1b6997f73472?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rezahok</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2009/07/qv_version2-0_screenshot.jpg?w=1024" medium="image">
			<media:title type="html">Quranic Verses</media:title>
		</media:content>
	</item>
		<item>
		<title>Accessing websites which are allowed only in some countries !</title>
		<link>http://rezahok.wordpress.com/2009/04/12/accessing-websites-which-are-allowed-only-in-some-countries/</link>
		<comments>http://rezahok.wordpress.com/2009/04/12/accessing-websites-which-are-allowed-only-in-some-countries/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 19:48:43 +0000</pubDate>
		<dc:creator>Reza</dc:creator>
				<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">http://rezahok.wordpress.com/?p=161</guid>
		<description><![CDATA[Have you come across websites which are restricted to be used by only the users of a certain country. Wasn&#8217;t the Internet supposed to be for everyone ? What happened ? Instead of throwing some words at them, here is a work around to access those sites from anywhere in the world.  In this post [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=161&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Have you come across websites which are restricted to be used by only the users of a certain country. Wasn&#8217;t the Internet supposed to be for everyone ? What happened ?</p>
<p>Instead of throwing some words at them, here is a work around to access those sites from anywhere in the world.  In this post lets take Hulu.com as an example.  Hulu.com allows users from USA only to access their web pages and stream video from it. To be able to crack it we need to first understand how it works and how it restricts other users.</p>
<p>When you request the page, the Server receives your request, checks IP from where the request is coming (which is your PC). <img class="aligncenter size-full wp-image-142" title="pc_server" src="http://rezahok.files.wordpress.com/2009/04/pc_server.jpg?w=380" alt="pc_server"   /></p>
<p>And from the IP it is easy to figure out which country it came from.  So simply if its not coming from inside USA they deny access to the contents.</p>
<p>If we just could fake our IP and make it <span id="more-161"></span>an IP which belongs to USA then the server would be fooled and would server us with the content.  Seems like do able. What we need to do is we simply use a proxy Server.  How does this solve our problem ? We will have a proxy server in USA, and then we will set our machine to use this proxy server so that all traffic goes through this server.</p>
<p><img class="aligncenter size-full wp-image-143" title="pc_proxy_server" src="http://rezahok.files.wordpress.com/2009/04/pc_proxy_server.jpg?w=380" alt="pc_proxy_server"   /></p>
<p>Now when we request for Hulu.com the traffic is going through the Proxy Server which is in USA, so the IP relayed from the Proxy Server will fool the Hulu Server and thus Hulu.com will think the request originated from inside USA and will thus serve its pages and contents to the Proxy Server. And the ProxyServer will in trun relay it to us. Wualaaaaaaaa&#8230; there we have it all working.</p>
<p><span style="text-decoration:underline;">How to set your machine to use Proxy Server ?</span></p>
<p>If you are using Mozilla I would recommend you to install the <a href="http://foxyproxy.mozdev.org/downloads.html">FoxyProxy</a>. Then search for free proxy Servers in google or you can find a list here as well.</p>
<p>Open FoxyProxy and set the ProxyServer&#8217;s ip and port.</p>
<p><img class="aligncenter size-full wp-image-165" title="foxyproxy" src="http://rezahok.files.wordpress.com/2009/04/foxyproxy.jpg?w=380" alt="foxyproxy"   /></p>
<p>Choose the option so that all requests are routed through this proxy.</p>
<p><img class="aligncenter size-full wp-image-166" title="foxyproxy_setting" src="http://rezahok.files.wordpress.com/2009/04/foxyproxy_setting.jpg?w=380" alt="foxyproxy_setting"   /></p>
<p>Now you are all good to go. Just simply type Hulu.com in the browser and enjoy the site and its contents.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rezahok.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rezahok.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rezahok.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rezahok.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rezahok.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rezahok.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rezahok.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rezahok.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rezahok.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rezahok.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rezahok.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rezahok.wordpress.com/161/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rezahok.wordpress.com/161/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rezahok.wordpress.com/161/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=161&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rezahok.wordpress.com/2009/04/12/accessing-websites-which-are-allowed-only-in-some-countries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e5a0eade927f250405ce1b6997f73472?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rezahok</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2009/04/pc_server.jpg" medium="image">
			<media:title type="html">pc_server</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2009/04/pc_proxy_server.jpg" medium="image">
			<media:title type="html">pc_proxy_server</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2009/04/foxyproxy.jpg" medium="image">
			<media:title type="html">foxyproxy</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2009/04/foxyproxy_setting.jpg" medium="image">
			<media:title type="html">foxyproxy_setting</media:title>
		</media:content>
	</item>
		<item>
		<title>Search Engine Optimization Tricks</title>
		<link>http://rezahok.wordpress.com/2008/10/14/search-engine-optimization-tricks/</link>
		<comments>http://rezahok.wordpress.com/2008/10/14/search-engine-optimization-tricks/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 02:40:36 +0000</pubDate>
		<dc:creator>Reza</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://rezahok.wordpress.com/?p=87</guid>
		<description><![CDATA[Googling will find you thousands of articles on search engine optimization(SEO), I am just adding one more post on it with the simple basic ideas you can keep in mind while making your web pages so that search engines can rank you higher in their organic search result. Search engine crawlers index each page, so [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=87&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Googling will find you thousands of articles on search engine optimization(SEO), I am just adding one more post on it with the simple basic ideas you can keep in mind while making your web pages so that search engines can rank you higher in their organic search result. Search engine crawlers index each page, so the idea is simple make your page as friendly as possible for them to read data out of it. And knowing how the crawlers index your page will give you a better understanding of what to do in order to help them. Here are a few standard tips <span id="more-87"></span>for making your page SEO friendly:</p>
<ol>
<li><strong>Important Tags<br />
</strong> Important text of tags which are given importance are : &lt;TITLE&gt;, &lt;META&gt; and the domain name. Make sure the keywords used in this tags and domain are relevant to the main content of your web page. Repeating keywords in small text &lt;font size=1&gt; or &lt;h6&gt; maybe tempting, but today&#8217;s crawlers are clever to understand if you are spamming or overusing a keyword. And if they find you spamming by using too many &lt;META&gt; tags or using too many keywords in title, they will penalize you in the ranking.</li>
<li><strong>Invisible or Semi-Visible Text<br />
</strong>Have important keywords with text color similar to the background color.<strong><br />
</strong></li>
<li><strong>Doorway Pages<br />
</strong>A page that is optimized to score well on one or more search engines for specific keywords or phrases and is linked to one of the main pages within your website. So when a user comes to that page he does not see that optimized page as it is redirected by META refresh command or by javascript code to the user friendly page.</li>
<li><strong>Using comments in HTML<br />
</strong>Having keywords in comments was a common trick, but most of today&#8217;s intelligent crawlers ignore comments.</li>
<li><strong>Alphabetical Title Order</strong><br />
This is interesting as if a search engine finds two title to be of the same rank it will choose the one which is in alphabetic order to be of more importance. So if possible have a title which ascends alphabetically . Like &#8220;A Climate Change&#8221; is preferred over &#8220;Climate change&#8221;. The reason is the ascii value of A is lower that C which is the first word of the second title.</li>
<li><strong>Phantom Pixel<br />
</strong>Use a transparent 1px image and use its alt tag for keywords. As the alt tag keywords are considered by the crawler.</li>
<li><strong>Redirect Pages<br />
</strong>Do not have broken links, instead redirect them. Reason is if a page is indexed by a search engine crawler already and that link is broken, the user will end up on your page which is not present, so redirect them to the new link. Use a simple javascript code to redirect document.location=&#8217;http://www.newdomain.com&#8217;</li>
<li><strong>Cloaking</strong><br />
A crawler wants a text oriented page, where as a user is more happy with graphically rich content page. Since the crawler sees everything as text, so images and video contents are not considered while ranking. One solution to make both parties happy is to have a graphically rich content page and an extra text oriented page highly optimized for crawler.  When a crawler request a page, serve the text oriented page and other wise server the normal rich content page. To know if the request is from a crawler you need to have all the listing of the crawler IPs, which is found but often updated, so you need to keep your list of various crawler IPs updated as well.</li>
<li><strong>CSS to Hide Text and Links</strong><br />
Write your links and keywords and put an image or a flash movie on top.</li>
<li><strong>Have good ranked pages link to your page<br />
</strong>If you can have a link from a high rank page to yours, your page rank will increase as well. So if possible pay or by other means have a link of your page, in a high ranked page<strong>.</strong></li>
</ol>
<p>But the bottom line is make sure you have relevant text on your page as much as possible, as that is the only thing the crawlers can read and via which they will rank your page. So remember &#8220;Content is KIng&#8221;.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rezahok.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rezahok.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rezahok.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rezahok.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rezahok.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rezahok.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rezahok.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rezahok.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rezahok.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rezahok.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rezahok.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rezahok.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rezahok.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rezahok.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=87&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rezahok.wordpress.com/2008/10/14/search-engine-optimization-tricks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e5a0eade927f250405ce1b6997f73472?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rezahok</media:title>
		</media:content>
	</item>
		<item>
		<title>Wuala &#8211; A online storage system</title>
		<link>http://rezahok.wordpress.com/2008/09/19/wuala-a-online-storage-sytem/</link>
		<comments>http://rezahok.wordpress.com/2008/09/19/wuala-a-online-storage-sytem/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 22:33:44 +0000</pubDate>
		<dc:creator>Reza</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[online storage]]></category>
		<category><![CDATA[wuala]]></category>

		<guid isPermaLink="false">http://rezahok.wordpress.com/?p=49</guid>
		<description><![CDATA[I have stumbled on a very nice product which I want to share in this post. It is a online storage system named Wuala. It is a desktop client via which you can upload files to be stored online. Initially you get 1GB of online space for free. As users we always want more space, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=49&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have stumbled on a very nice product which I want to share in this post. It is a online storage system named Wuala. It is a desktop client via which you can upload files to be stored online.</p>
<p>Initially you get 1GB of online space for free. As users we always want more space, so either you can buy more space online or interestingly you can trade some of your local disc space for online space. It has a very user friendly and sleek interface. Security is a key feature of this online storage system. All of the files which are uploaded are automatically encrypted before the actual upload which makes your content very secure. A sample screen shot of my wuala client:</p>
<p><a href="http://rezahok.files.wordpress.com/2008/09/wuala_screenshot.png"><img class="aligncenter size-large wp-image-80" title="wuala_screenshot" src="http://rezahok.files.wordpress.com/2008/09/wuala_screenshot.png?w=400&#038;h=250" alt="" width="400" height="250" /></a></p>
<p style="text-align:center;"><a href="http://rezahok.files.wordpress.com/2008/09/wuala_my_files.jpg"><br />
</a></p>
<p>Now with such a online storage system all your important files and pictures can be stored reliably, no more crying for lost data when your system crashes.</p>
<p>Technically it is a fascinating product as it is distributed file storage system which is based on peer to peer systems. If anyone is interested to know more about the technology behind the product I recommend watching this video <a title="Talk on Wuala" href="http://www.youtube.com/watch?v=3xKZ4KGkQY8" target="_blank">http://www.youtube.com/watch?v=3xKZ4KGkQY8</a></p>
<p>Not only file storage, it has a social side to it as well where you can have friends added and share folders with them.</p>
<p>So now without any further do go and explore <a title="Wuala" href="http://wua.la/" target="_blank"><img class="alignnone size-full wp-image-62" title="wuala_logo3" src="http://rezahok.files.wordpress.com/2008/09/wuala_logo3.png?w=380" alt=""   /></a> for yourself. Happy online storing and sharing !!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rezahok.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rezahok.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rezahok.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rezahok.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rezahok.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rezahok.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rezahok.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rezahok.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rezahok.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rezahok.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rezahok.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rezahok.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rezahok.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rezahok.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=49&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rezahok.wordpress.com/2008/09/19/wuala-a-online-storage-sytem/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e5a0eade927f250405ce1b6997f73472?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rezahok</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2008/09/wuala_screenshot.png?w=400" medium="image">
			<media:title type="html">wuala_screenshot</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2008/09/wuala_logo3.png" medium="image">
			<media:title type="html">wuala_logo3</media:title>
		</media:content>
	</item>
		<item>
		<title>Agent Mobility &#8211; Software walking around the network !</title>
		<link>http://rezahok.wordpress.com/2008/01/14/agent-mobility-software-walking-around-the-network/</link>
		<comments>http://rezahok.wordpress.com/2008/01/14/agent-mobility-software-walking-around-the-network/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 20:55:45 +0000</pubDate>
		<dc:creator>Reza</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://rezahok.wordpress.com/2008/01/14/agent-mobility-software-walking-around-the-network/</guid>
		<description><![CDATA[I will start by talking about remote method invocation before I move down to agent mobility. Remote Method Invocation (RMI) is a common way nowadays via which we can have services or objects residing on remote machines and can call those functions from a local machine. It’s pretty interesting how it is done. Over here [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=42&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I will start by talking about remote method invocation before I move down to agent mobility. Remote Method Invocation (RMI) is a common way nowadays via which we can have services or objects residing on remote machines and can call those functions from a local machine.</p>
<p><span style="font-size:11pt;font-family:Arial;">It’s pretty interesting how it is done. Over here we will not go into the details of how it works, but here is a picture that might help you visualize what is g</span><span style="font-size:11pt;font-family:Arial;">oing on.</span></p>
<p><span style="font-size:11pt;font-family:Arial;"></span></p>
<div style="text-align:center;"><a href="http://rezahok.files.wordpress.com/2008/01/rmi.jpg" title="rmi.jpg"><img src="http://rezahok.files.wordpress.com/2008/01/rmi.jpg?w=380" alt="rmi.jpg" /></a><a href="http://rezahok.files.wordpress.com/2008/01/rmi.jpg" title="rmi.jpg"> </a></div>
<p><span style="font-size:11pt;font-family:Arial;">The coding complexity is not huge but what is happening under the hood is a bit tricky to understand. So lets get this straight using RMI we can actually call a function of an object which is not residing in the same machine my code is running.</span></p>
<p><span style="font-size:11pt;font-family:Arial;">Now what if instead of our software being able to call a function on the remote object we could have our object himself travel over the network. Sounds interesting, then fasten your seat belt and read on how it is done.</span><span id="more-42"></span></p>
<p><span style="font-size:11pt;font-family:Arial;">This is a pretty interesting concept called Object or Agent mobility. We can send in an object over the network which will wake up on another machine and then it can do some specified task, and then come back. Pretty interesting isn’t it. Here is a picture to visualize it.</span></p>
<p><a href="http://rezahok.files.wordpress.com/2008/01/agentmobility.jpg" title="agentmobility.jpg"></a></p>
<div style="text-align:center;"><a href="http://rezahok.files.wordpress.com/2008/01/agentmobility.jpg" title="agentmobility.jpg"><img src="http://rezahok.files.wordpress.com/2008/01/agentmobility.jpg?w=380" alt="agentmobility.jpg" /></a></div>
<p><span style="font-size:11pt;font-family:Arial;">So now what we have here is instead of calling a function of a remote object we are sending our own object to go to another remote machine and do some processing over there and then come back with results. If we can make our objects intelligent and they have mobility then we can do wonders.</span></p>
<p>An example and usage of this agent mobility is distributed search, where we can have multiple agents with different AI in them traveling to different servers and extracting information and then coming back from where they started. All the results of the agents can be deduced to a meaningful search result. For a moment think wild and I am sure you will come up with dozen of other useful things you can do, since now you know something like this can be done. And top of it is it not cool that your software is actually roaming around the network.</p>
<p>The implementation portion is not rocket science at all so here is a bit of idea how it is done. The implementation is two folded.</p>
<p>1- How to transfer objects from one machine to another.<br />
2 &#8211; How to receive and send back the object</p>
<p>The first question is simple to answer. We need to learn how to transfer objects via networks. In Java for both TCP and UDP transfer we have functions to pass a serialized object. So this can be used to throw our object to the remote machine.</p>
<p>For the second question, we should make our server aware of the fact that they will and can receive such objects, so on receiving such an object it will know which function of the object to call to start the object and the object should in turn know which function of the server to call to be able to go back home. As the Sever should have some mechanism to throw back an object, the server will get the home address (home ip) of the object from its data and then throw him back functions. Therefore in short there should be a specified interface an agent should follow so that based on that interface the remote machine can call up some functions of the agent. And also the server should have a defined interface so that the agent can call the remote machines function. For a bit of more clarification here are interfaces that may get you started off.</p>
<p><b>Interface Mobile Agents</b></p>
<p><a href="http://rezahok.files.wordpress.com/2008/01/imobileagent.jpg" title="imobileagent.jpg"></a></p>
<div style="text-align:center;"><a href="http://rezahok.files.wordpress.com/2008/01/imobileagent.jpg" title="imobileagent.jpg"><img src="http://rezahok.files.wordpress.com/2008/01/imobileagent.jpg?w=380" alt="imobileagent.jpg" /></a></div>
<p><b>Interface of Agent Receiving Server</b></p>
<p align="center"><a href="http://rezahok.files.wordpress.com/2008/01/iagentserver.jpg" title="iagentserver.jpg"><img src="http://rezahok.files.wordpress.com/2008/01/iagentserver.jpg?w=380" alt="iagentserver.jpg" /></a></p>
<p>Apart from the implementations of this interfaces you will need another class or function which will create, initialize the object and throw it to a server and wait to receive the object back, when it is thrown back by the server.</p>
<p>Please note, the server should be listening on a specified port all the time and will receive the objects. On getting an object it will call the objects <b><i>agentArrived(&#8230;) </i></b>function. When the object decides it wants to go back to home it will call the servers<i><b> agentSendBackToHome (&#8230;) </b></i>function. The agent might or can travel to another server instead of going home and that can be achieved by calling the servers <i><b>agentMigrate(..)</b></i> function.</p>
<p>I hope this post sheds a bit of light on agent mobility. And now its time to play around with this and make interesting stuff. Have fun !</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rezahok.wordpress.com/42/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rezahok.wordpress.com/42/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rezahok.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rezahok.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rezahok.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rezahok.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rezahok.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rezahok.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rezahok.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rezahok.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rezahok.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rezahok.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rezahok.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rezahok.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rezahok.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rezahok.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=42&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rezahok.wordpress.com/2008/01/14/agent-mobility-software-walking-around-the-network/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e5a0eade927f250405ce1b6997f73472?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rezahok</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2008/01/rmi.jpg" medium="image">
			<media:title type="html">rmi.jpg</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2008/01/agentmobility.jpg" medium="image">
			<media:title type="html">agentmobility.jpg</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2008/01/imobileagent.jpg" medium="image">
			<media:title type="html">imobileagent.jpg</media:title>
		</media:content>

		<media:content url="http://rezahok.files.wordpress.com/2008/01/iagentserver.jpg" medium="image">
			<media:title type="html">iagentserver.jpg</media:title>
		</media:content>
	</item>
		<item>
		<title>Agent Oriented Programming</title>
		<link>http://rezahok.wordpress.com/2008/01/06/agent-oriented-programming/</link>
		<comments>http://rezahok.wordpress.com/2008/01/06/agent-oriented-programming/#comments</comments>
		<pubDate>Sun, 06 Jan 2008 23:39:44 +0000</pubDate>
		<dc:creator>Reza</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://rezahok.wordpress.com/2008/01/06/agent-oriented-programming/</guid>
		<description><![CDATA[We all have heard about conventional Object Oriented programming (OOP). Objects are our everyday tools when it comes to making software. A typical programmer’s way of thinking is to take a problem and break it into some objects which can accomplish a task to satisfy the over all goal. For each object to be able [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=41&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-size:11pt;font-family:Arial;">We all have heard about conventional Object Oriented programming (OOP). Objects are our everyday tools when it comes to making software. A typical programmer’s way of thinking is to take a problem and break it into some objects which can accomplish a task to satisfy the over all goal. For each object to be able to handle all the cases the programmer has to think of them and code the object accordingly so that it will handle all the possible scenarios.</span></p>
<p><span style="font-size:11pt;font-family:Arial;">Pause for a moment and think wild, what if we could some how make the object become more intelligent </span><span id="more-41"></span><span style="font-size:11pt;font-family:Arial;">so that single piece of code will be able to think and handle all the scenarios, or maybe to be more realistic, we can say it will be able handle unexpected scenarios. Its like it will have a behaviour and can work its way around in autonomous environment. Not only can they think on their own but can communicate with other agents in their vicinity and collaborate to achieve a goal. It would be great wouldn’t it ? Sure it would. But to give it some intelligence and make agents communicate with each other, makes it even harder on the programmer’s perspective. I let the reader speculate on the door of possibilities it will open up, if it can be done to that extend.</span></p>
<p><span style="font-size:11pt;font-family:Arial;">The good news is, people have already started working on this and they call those intelligent objects “Agents” and further the name “Agent Oriented Programming”. I would suggest every one to have a peek into this concepts.   </span></p>
<p><span style="font-size:11pt;font-family:Arial;">For Java people good news is there are a lot of agent development frameworks have already been developed to aid the development process of Agent Oriented programming in order  to build intelligent systems. To name such frameworks <a href="http://jade.tilab.com/">JADE</a> is one  of them.</span></p>
<p><span style="font-size:11pt;font-family:Arial;">This is “end of dumb object era“ and beginning of a new era for “intelligent objects<span> </span>named Agents. </span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rezahok.wordpress.com/41/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rezahok.wordpress.com/41/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rezahok.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rezahok.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rezahok.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rezahok.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rezahok.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rezahok.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rezahok.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rezahok.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rezahok.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rezahok.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rezahok.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rezahok.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rezahok.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rezahok.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rezahok.wordpress.com&amp;blog=1510306&amp;post=41&amp;subd=rezahok&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rezahok.wordpress.com/2008/01/06/agent-oriented-programming/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e5a0eade927f250405ce1b6997f73472?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rezahok</media:title>
		</media:content>
	</item>
	</channel>
</rss>
