<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Musings of a junior researcher</title>
    <link rel="alternate" type="text/html" href="http://blog.lib.umn.edu/elsay004/myblog/" />
    <link rel="self" type="application/atom+xml" href="http://blog.lib.umn.edu/elsay004/myblog/atom.xml" />
    <id>tag:blog.lib.umn.edu,2013-05-14:/elsay004/myblog//15269</id>
    <updated>2013-05-15T04:49:10Z</updated>
    <subtitle>The blog of Mohamed Sarwat</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Enterprise 4.31-en</generator>

<entry>
    <title>A quick look inside Sindbad</title>
    <link rel="alternate" type="text/html" href="http://blog.lib.umn.edu/elsay004/myblog/2012/10/a-look-inside-sindbad.html" />
    <id>tag:blog.lib.umn.edu,2012:/elsay004/myblog//15269.371925</id>

    <published>2012-10-18T04:53:49Z</published>
    <updated>2013-05-15T04:49:10Z</updated>

    <summary>Recently, members of the data management lab at the University of Minnesota demonstrated Sindbad; a location-aware social networking system. From a user perspective, Sindbad can be considered as the Location-Aware Facebook (or Google+). In that sense, Sindbad got all the...</summary>
    <author>
        <name>M. Sarwat</name>
        <uri>http://blog.lib.umn.edu/cgi-bin/mt-cp.cgi?__mode=view&amp;blog_id=15269&amp;id=33120</uri>
    </author>
    
    <category term="data" label="Data" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="database" label="Database" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="feed" label="Feed" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="geo" label="Geo" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="location" label="Location" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="message" label="Message" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="news" label="News" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="recommendation" label="Recommendation" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="recommender" label="Recommender" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sindbad" label="Sindbad" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="spatial" label="Spatial" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="system" label="System" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="systems" label="Systems" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.lib.umn.edu/elsay004/myblog/">
        <![CDATA[<p>Recently, members of the data management lab at the University of Minnesota demonstrated Sindbad; a location-aware social networking system. From a user perspective, Sindbad can be considered as the Location-Aware Facebook (or Google+). In that sense, Sindbad got all the functionality in a typical social networking service, except that the geo-location is dealt with as a first class citizen. Below is a video that manifests how users interact with Sindbad through a web application:</p>

<p><iframe align="center" width="560" height="340" src="http://www.youtube.com/embed/TpBkUGwYMrc" frameborder="0" allowfullscreen></iframe></p>

<p>Technically speaking, Sindbad incorporates the geo-spatial location into all aspects of the user social networking experience. For instance, Sindbad delivers location-aware messages (i.e., News Feed) to end-users. The importance of a location-aware news feed appears in the following scenario:<br />
Assume Bob visited Paris and had dinner in that amazing french restaurant. He posted a Facebook message featuring the following: "Restaurant XYZ is awesome". Alice, a friend of Bob, will see that message in her recent news feed at the time it was posted. Three months later, Alice traveled to Paris and was wondering where to have dinner. If she would just see Bob's message he posted when he was in Paris, it would have saved her day. Alice needed to see those messages that are relevant to her current geo-spatial location (Paris).<br />
Sindbad takes the spatial location of both the user, their friends, and the posted messages in order to provide location-aware news to the system users.</p>

<p>Moreover, Sindbad provides a location-aware recommendation service to its users. The Sindbad recommendation service takes into account both the user location and the item location in generating recommendations to the user. Sindbad users living in the same geographic region share the same preferences over restaurants, books, and even movies. Sindbad also recommends restaurant based on: (1) The history of user visits to different restaurants, and (2) the distance between the user current location and the restaurant. Sindbad also allow its users to rate and review items which helps in generating collaborative recommendation to other system users.</p>

<p>Sindbad has been demonstrated at the ACM International Conference on Management of Data, SIGMOD 2012. Here is the abstract:</p>

<div style="font-style: italic; background-color: #E6E6E6;">
<code>
This demo presents Sindbad; a location-based social networking system. Sindbad supports three new services beyond traditional social networking services, namely, location-aware news feed, location-aware recommender, and location-aware ranking. These new services not only consider social relevance for its users, but they also consider spatial relevance. Since location-aware social networking systems have to deal with large number of users, large number of messages, and user mobility, efficiency and scalability are important issues. To this end, Sindbad encapsulates its three main services inside the query processing engine of PostgreSQL. Usage and internal functionality of Sindbad, implemented with PostgreSQL and Google Maps API, are demonstrated through user (i.e., web/phone) and system analyzer GUI interfaces, respectively.
</code><br>
</div>
<br>
]]>
        
    </content>
</entry>

<entry>
    <title>Finding Popular Places using Trajectories</title>
    <link rel="alternate" type="text/html" href="http://blog.lib.umn.edu/elsay004/myblog/2012/05/finding-popular-places-using-trajectories.html" />
    <id>tag:blog.lib.umn.edu,2012:/elsay004/myblog//15269.355712</id>

    <published>2012-05-12T01:46:24Z</published>
    <updated>2012-05-13T19:42:21Z</updated>

    <summary> Recently, I have read the following paper: finding popular places published in the 18th international conference on Algorithms and computation (ISAAC 2007). I have presented the paper with Abhigna adusumilli and Rahul Saladi in the advanced computational geometry seminar....</summary>
    <author>
        <name>M. Sarwat</name>
        <uri>http://blog.lib.umn.edu/cgi-bin/mt-cp.cgi?__mode=view&amp;blog_id=15269&amp;id=33120</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blog.lib.umn.edu/elsay004/myblog/">
        <![CDATA[<p><br />
<script type="text/javascript" src="http://latex.codecogs.com/latexit.js"></script></p>

<p>Recently, I have read the following paper: <a href=http://dl.acm.org/citation.cfm?id=1781660> finding popular places</a> published in the 18th international conference on Algorithms and computation (ISAAC 2007). I have presented the paper with Abhigna adusumilli and Rahul Saladi in the advanced computational geometry seminar. The paper is quite interesting as the ubiquity of mobile devices (e.g., Smart Phones, GPS) made it easy to track humans (objects) movement. Storing users (objects) visits to different places  can be leveraged to come up with new insights on how users move from one place to another. In the paper, the authors propose techniques to find the popular places by analyzing a set of given trajectories for <font lang="latex">n</font> different entities and <font lang="latex">\tau</font> time steps. A popular place is the one that is visited by at least <font lang="latex">K</font> different entities. To this end, the users defines two different models to addressing the problem (1) Discrete Model and (2) Continuous Model, as follows: </p>

<p>Discrete Model: A popular place is defined as the unit square that is visited by k different entities. An entity <font lang="latex">i</font> visits a unit square <font lang="latex">\sigma</font> if at some point <font lang="latex">t \in \tau</font>, <font lang="latex">i</font> is within the spatial extents of <font lang="latex">\sigma</font>.</p>

<p>Continuos Model: A popular place is defined as the unit square that is intersected by the trajectory of <font lang="latex">k</font> different entities. </p>

<p>The problem of finding the most popular place in the discrete model is defined as follows:<br />
Input: A set of <font lang="latex">n</font> entities moving the 2D space for <font lang="latex">\tau</font> time steps, forming a set of <font lang="latex">\tau</font><font lang="latex">n</font> points in space.<br />
Output: The axis aligned unit square<font lang="latex">\sigma</font> that is visited by the highest number of entities.</p>

<p>Finding the most popular place in the discrete model can be solved by employing a colored range counting algorithm. That can be achieved by exhaustively applying the colored range counting query of each unit square around each point in <font lang="latex">\tau</font><font lang="latex">n</font> points. That results into 2-approximation algorithm to solve the problem, which requires <font lang="latex">O(\tau^2n^2log^2\tau n)</font> time and space.</p>

<p>The authors proposes an initial algorithm to solve the problem which relies of sweeping a vertical strip over the given <font lang="latex">\tau n</font> points. A start event happens when a point <font lang="latex">p</font>, belonging to entity <font lang="latex">\Lambda</font>, enters the sweep strip. An end event happens when a point <font lang="latex">p</font>, belonging to entity <font lang="latex">\Lambda</font>, is about to leave the sweep strip. For each event, we check the rectangle <font lang="latex">R_p</font> of width <font lang="latex">1</font> and height <font lang="latex">2</font>, in which point <font lang="latex">p</font> represents the midpoint of the right side of <font lang="latex">R_p</font>. The algorithm sweeps a unit square over <font lang="latex">R_p</font> while keeping of the number of entities in the sweep square to get the most popular unit square. The algorithm requires <font lang="latex">O(\tau n log \tau n)</font> time per event as the number of points in <font lang="latex">R_p</font> is <font lang="latex">O(\tau n)</font>. That means that the naive algorithm requires <font lang="latex">O(\tau^2 n^2 log \tau n)</font> time to find the most popular unit square.</p>

<p>The authors presented a new technique to get the most popular place in the discrete model. They build a set of y-intervals <font lang="latex">I_\Lambda</font> of length one for each entity <font lang="latex">\Lambda</font>. Each interval <font lang="latex">I</font> represents a y-interval for a point <font lang="latex">p</font> <font lang="latex">(x_p, y_p)</font> such that <font lang="latex">I</font> is equal to <font lang="latex">[y_p-1/2, y_p+1/2]</font>. The most popular unit square is the one for which the center belongs to as many Intervals as possible (each interval belongs to a different entity).</p>

<p>To this end, the proposed technique relies on the following data structure to maintain the set of intervals for each event (point) during the sweep: (1) <font lang="latex">B_\Lambda</font>. (2) <font lang="latex">T_\Lambda</font>, described as follows:</p>

<p><font lang="latex">B_\Lambda</font>: It is a balanced binary search tree storing all points in entity <font lang="latex">\Lambda</font> ordered with respect to their y-coordinates. <font lang="latex">B_\Lambda</font> can be queried and maintained in <font lang="latex">O(log\tau)</font> time and space using Red-Black Trees such that <font lang="latex">\tau</font> is the number of points in entity <font lang="latex">\Lambda</font>.</p>

<p><font lang="latex">T_\Lambda</font>: It is a tree that stores all intervals <font lang="latex">I_\Lambda</font>. To this end, it stored all endpoints of all intervals in <font lang="latex">I_\Lambda</font>. The authors proved that maintaining <font lang="latex">T_\Lambda</font> requires <font lang="latex">O(log \tau)</font> time and <font lang="latex">O(\tau)</font> space.</p>

<p>Throughout the sweep, the set of all <font lang="latex">B_\Lambda</font> trees <font lang="latex">\cal{B}</font><font lang="latex">^{ent}</font> and the set  of <font lang="latex">T_\Lambda</font> trees <font lang="latex">\cal{T}^</font><font lang="latex">{ent}</font> can be maintained in <font lang="latex">O(\tau n log \tau)</font> time and <font lang="latex">O(\tau n)</font> space. Then, the authors explained how a single data structure <font lang="latex">T_{int}</font> can be maintained for all entities during the sweep. <font lang="latex">T_{int}</font> is a tree structure that stores all the intervals belonging to all entities. <font lang="latex">T_{int}</font> stores the start and end points in <font lang="latex">\cal{I}</font> such that <font lang="latex">\cal{I}</font>=<font lang="latex">\cup I_\Lambda</font>.<br />
The main algorithm finds the leaf node in <font lang="latex">T_{int}</font> that stabs the highest number of intervals. As the intervals for a single entity are disjoint, the algorithm guarantees that the intervals stabbed by a leaf node belong to different entities. The authors proved that finding the most popular place using <font lang="latex">T_{int}</font> can be reported in <font lang="latex">O(\tau nlog\tau n)</font> time using <font lang="latex">O(\tau n)</font> space.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Spatial Location matters in Recommender Systems</title>
    <link rel="alternate" type="text/html" href="http://blog.lib.umn.edu/elsay004/myblog/2012/04/spatial-location-matters-in-recommender-systems.html" />
    <id>tag:blog.lib.umn.edu,2012:/elsay004/myblog//15269.350895</id>

    <published>2012-04-12T21:49:36Z</published>
    <updated>2012-04-15T00:40:49Z</updated>

    <summary>Recently, I have presented a paper at ICDE 2012. The paper title is: &quot;LARS: A Location-Aware Recommender System&quot;. The paper is a joint work with Justin Levandoski, Ahmed Eldawy, and Mohamed Mokbel. The main idea of the paper is to...</summary>
    <author>
        <name>M. Sarwat</name>
        <uri>http://blog.lib.umn.edu/cgi-bin/mt-cp.cgi?__mode=view&amp;blog_id=15269&amp;id=33120</uri>
    </author>
    
    <category term="data" label="Data" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="efficient" label="Efficient" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="icde" label="ICDE" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="item" label="Item" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="location" label="Location" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="preference" label="Preference" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ratings" label="Ratings" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="recommender" label="Recommender" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="scalable" label="Scalable" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sigmod" label="SIGMOD" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="spatial" label="Spatial" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="travel" label="Travel" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="user" label="User" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.lib.umn.edu/elsay004/myblog/">
        <![CDATA[<p>Recently, I have presented a paper at ICDE 2012. The paper title is: "LARS: A Location-Aware Recommender System". The paper is a joint work with Justin Levandoski, Ahmed Eldawy, and Mohamed Mokbel. The main idea of the paper is to promote the spatial locations of both the users and the items, as first class citizens in existing recommender systems. Here is the abstract:</p>

<div style="font-style: italic; background-color: #E6E6E6;">
<code>
This paper proposes LARS, a location-aware recommender system that uses location based ratings to produce recommendations. Traditional recommender systems do not consider spatial properties of users nor items; LARS, on the other hand, supports a taxonomy of three novel classes of location-based ratings, namely, spatial ratings for non-spatial items, non-spatial ratings for spatial items, and spatial ratings for spatial items. LARS exploits user rating locations through user partitioning, a technique that influences recommendations with ratings spatially close to querying users in a manner that maximizes system scalability while not sacrificing recommendation quality. LARS exploits item locations using travel penalty, a technique that favors recommendation candidates closer in travel distance to querying users in a way that avoids exhaustive access to all spatial items. LARS can apply these techniques separately, or together, depending on the type of location-based rating available. Experimental evidence using large-scale real-world data from both the Foursquare location-based social network and the MovieLens movie recommendation system reveals that LARS is efficient, scalable, and capable of producing recommendations twice as accurate compared to existing recommendation approaches.
</code><br>
</div>
<br>

<p>I am really proud of the work in that paper and I wish the findings in that paper are useful in pratice. We will be demonstrating the research ideas presented in the paper in SIGMOD 2012, using a Location-base social networking system (called Sindbad) developed at University of Minnesota.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Recommender Systems and Databases</title>
    <link rel="alternate" type="text/html" href="http://blog.lib.umn.edu/elsay004/myblog/2012/03/recstore-an-extensible-and-adaptive-framework-for-online-recommender-queries-inside-the-database-eng.html" />
    <id>tag:blog.lib.umn.edu,2012:/elsay004/myblog//15269.346282</id>

    <published>2012-03-15T06:14:58Z</published>
    <updated>2012-04-12T22:41:22Z</updated>

    <summary>My paper &quot;RecStore: An Extensible and Adaptive Framework for Online Recommender Queries inside the Database Engine&quot; has been recently accepted to the International Conference on Extending Database Technology. The paper is a joint work with Justin J. Levandoski, Mohamed F....</summary>
    <author>
        <name>M. Sarwat</name>
        <uri>http://blog.lib.umn.edu/cgi-bin/mt-cp.cgi?__mode=view&amp;blog_id=15269&amp;id=33120</uri>
    </author>
    
    <category term="adaptive" label="Adaptive" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="collaborativefiltering" label="Collaborative Filtering" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="data" label="Data" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="database" label="Database" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="efficient" label="Efficient" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="extensible" label="Extensible" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="model" label="Model" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="online" label="Online" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="performance" label="Performance" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="postgresql" label="PostgreSQL" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="recommender" label="Recommender" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="relational" label="Relational" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sql" label="SQL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.lib.umn.edu/elsay004/myblog/">
        <![CDATA[<p>My paper "RecStore: An Extensible and Adaptive Framework for Online Recommender Queries inside the Database Engine" has been recently accepted to the International Conference on Extending Database Technology. The paper is a joint work with Justin J. Levandoski, Mohamed F. Mokbel, and Micheal D. Ekstrand. Here is the paper abstract:</p>

<div style="font-style: italic; background-color: #E6E6E6;">
<code>
Most non-trivial recommendation methods (e.g., collaborative filtering) consist of (1) a computationally intense offline phase that computes a recommender model based on users' opinions of items, and (2) an online phase consisting of SQL-based queries that use the model (generated offline) to derive user preferences and provide recommendations for interesting items. Current application usage trends require a completely online recommender process, meaning the recommender model must update in real time as new opinions enter the system. To tackle this problem, we propose RecStore, a DBMS storage engine module capable of efficient online model maintenance. Externally, models managed by RecStore behave as relational tables, thus existing SQL-based recommender queries remain unchanged while gaining online model support. RecStore maintains internal statistics and data structures aimed at providing efficient incremental updates to the recommender model, while employing an adaptive strategy for internal maintenance and load shedding to realize a tuneable tradeoff for more efficient updates or query processing based on system workloads. RecStore is also extensible, supporting a declarative syntax for defining recommender models. The efficacy of RecStore is demonstrated by providing the implementation details of five state-of-the-art collaborative filtering models. Performance benefits are demonstrated through extensive experimental evaluation of a prototype of RecStore, built inside the storage engine of PostgreSQL, using a real-life recommender system workload.
</code><br>
</div>
<br>
I will be presenting the paper at EDBT 2012 in Berlin Germany on March 27th, 2012. will be glad to receive your comments]]>
        
    </content>
</entry>

<entry>
    <title>Simulating the Users Check-Ins at GeoSpatial Locations</title>
    <link rel="alternate" type="text/html" href="http://blog.lib.umn.edu/elsay004/myblog/2012/01/-usrbinenv-python-simulate.html" />
    <id>tag:blog.lib.umn.edu,2012:/elsay004/myblog//15269.329526</id>

    <published>2012-01-15T06:05:03Z</published>
    <updated>2012-04-12T22:32:01Z</updated>

    <summary>Here, I present the result of simulating the check-in process in a location-based social network. To this end, I have written a python script using SimPy, a Python-based simulation tool, the script is given below: #!/usr/bin/env python &quot;&quot;&quot; Simulate the...</summary>
    <author>
        <name>M. Sarwat</name>
        <uri>http://blog.lib.umn.edu/cgi-bin/mt-cp.cgi?__mode=view&amp;blog_id=15269&amp;id=33120</uri>
    </author>
    
    <category term="data" label="Data" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="experiments" label="Experiments" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mobility" label="Mobility" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="python" label="Python" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="simulation" label="Simulation" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="social" label="Social" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="spatial" label="Spatial" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.lib.umn.edu/elsay004/myblog/">
        <![CDATA[<p>Here, I present the result of simulating the check-in process in a location-based social network. To this end, I have written a python script using <a href="http://simpy.sourceforge.net/">SimPy</a>, a Python-based simulation tool, the script is given below:</p>

<div style="font-family: Courier, 'Courier New', monospace; background-color: #E6E6E6;">
<code>
#!/usr/bin/env python
""" Simulate the Users visits to spatial locations in a social network  
"""
from __future__ import generators   # not needed for Python 2.3+
from SimPy.Simulation 
import * from random 
import gauss,shuffle,randint,choice,seed,random,Random,expovariate

<p>class Generator(Process):<br />
 """ generates a set of users """<br />
 def __init__(self, maxNumberOfUsers):<br />
     Process.__init__(self)<br />
     self.name = "generator"<br />
     self.maxNumberOfUsers = maxNumberOfUsers </p>

<p> def execute(self):<br />
     users = []<br />
     userscopy = []	<br />
     for i in range(self.maxNumberOfUsers):<br />
         j = User(i)<br />
	 users.append(j)<br />
	 userscopy.append(j)</p>

<p>     for user in users:<br />
	  shuffle(userscopy)<br />
	  numoffriends = gauss(numoffriends_mean,numoffriends_sd) 	<br />
	  for k in range(int(numoffriends)):<br />
		if userscopy[k] != user:<br />
			user.addfriend(userscopy[k])  <br />
	 <br />
     for user in users: 		<br />
         activate(user,user.execute())<br />
         yield hold,self,1.0<br />
     self.trace("WARNING generator finished -- ran out of Users")</p>

<p> def trace(self,message):<br />
     if GTRACING: print "%7.4f \t%s"%(self.time(), message)</p>

<p><br />
class User(Process):<br />
    def __init__(self,i):<br />
        Process.__init__(self)<br />
        self.i = i<br />
        self.name = "User"+`i`<br />
	self.friends = []<br />
	self.visits = []</p>

<p>    def getID(self):<br />
	 return self.i</p>

<p>    def addfriend(self,friend):<br />
	self.friends.append(friend)</p>

<p>    def getvisits(self):<br />
	return self.visits</p>

<p>    def getfriendsvisits(self):<br />
	allvisits = []<br />
	for f in self.friends:<br />
		allvisits.extend(f.getvisits())<br />
	return allvisits</p>

<p>    def getrandomfriendsvisit(self,allvisits):<br />
	randomvisit = ""<br />
	if len(allvisits) == 0:<br />
		randomvisit = randint(0,maxnumvisits)<br />
	else:<br />
		self.trace("list is not empty")<br />
		randomvisit = choice(allvisits)<br />
	return randomvisit	</p>

<p>    def execute(self):<br />
        global busyStartTime,totalBusyVisits,totalBusyTime<br />
        global Nfree,busyEndTime,Jrv<br />
        self.trace("User "+`self.i`+" started")<br />
        while now()<= simulationtime:<br />
		visitedlocation = ""<br />
                Y = random()<br />
		if Y <= correlation:<br />
			allvisits = self.getfriendsvisits()<br />
			visitedlocation = self.getrandomfriendsvisit(allvisits)<br />
			self.trace("Choosing a friend visit "+`visitedlocation`)<br />
		else:<br />
			visitedlocation = randint(0,maxnumvisits)<br />
			self.trace("Choosing a random visit "+`visitedlocation`)<br />
                <br />
                visitshist[visitedlocation]+=1	<br />
		self.visits.append(visitedlocation)<br />
      		"""visitsrate = gauss(visitsrate_mean,visitsrate_sd)"""<br />
		visitsrate = visitsrate_mean<br />
                yield hold,self,1/visitsrate</p>

<p>    def trace(self,message):<br />
         if TRACING: print "%7.4f \t%s %s "%(now(), message , self.name)</p>

<p><br />
""" Begin Main"""<br />
simulationtime = 1000<br />
correlation = 0.5<br />
maxnumvisits = 1023<br />
visitshist = []<br />
for i in range(maxnumvisits+1):<br />
	visitshist.append(0)<br />
numoffriends_mean = 100<br />
numoffriends_sd = 30<br />
maxNumberOfUsers = 10000<br />
visitsrate_mean = 8.0<br />
visitsrate_sd = 0.2<br />
TRACING  = 0 <br />
GTRACING =0 </p>

<p>g = Generator(maxNumberOfUsers)<br />
activate(g,g.execute())<br />
simulate(until=simulationtime)</p>

<p>visitshist.sort()<br />
print visitshist<br />
print "Simulation ended"</p>

<p></code><br></p>

</div>

<p>In the simulation, we have six main independent (inputs); explained below as follows:
(1) Number of spatial locations (NSL): it represents the total number of spatial locations that any user can visit at any time. (2) Average User Popularity (AUP): it represents the average number of friends per user (i.e., following a Gaussian distribution) for the population of all users in the social network. (3) Number of Users (NU): it represents the total number of users in the social network. (4) Average Visit Rate (AVR): it represents the average rate (i.e., following a Gaussian distribution) at which each user visits (check-ins) at any random spatial location. It is measured in number of visits per day. (5) Mobility-Friendship Correlation ratio (MFC): it is a value from 0 to 1 that determines the amount of correlation between being friends and visiting the same places. (6) Simulation time (ST): It represents the total time (i.e., number of days) over which we run the simulation.</p>

<p>Given the aforementioned independent variables, four dependent variables are measured: (1) Number of Visits (NV [i]): It represents the number of visits per a single spatial location. In other words, each spatial location i (i.e., such that i takes the value from 1 to Number of Spatial Locations (NSL)) has number of visits (users check-ins) NV[i]. (2) Minimum Location Visits (Min): it represents the number of visits (check-ins) in the spatial location that has the lowest number of user visits. (3) Maximum Location Visits (Max): it represents the number of visits (check-ins) in the spatial location that has the highest number of visits. (4) Location Visits Range (Range): It represents the absolute value of the dierence between the Maximum Location Visits (Max) and the Minimum Location Visits (Min).</p>

<p>In the simulation, three main independent variables are taken into account: (1) Average User Popularity(AUP), (2) Average Visit Rate (AV R), and (3) Mobility-Friendship Correlation ratio (MFC). Each of the three independent variables are varied, while keeping the other variables constant. We have run three main simulation experiments, measuring the eect of each independent variable as follows:</p>

<p>Experiment 1 (Effect of varying Average User Popularity (AUP)): In this experiment, we assign the constant values of 0.5 and 0.6667 to Mobility-Friendship Correlation ratio (MFC) and Average Visit Rate (AV R), respectively. We then measure the effect of Average User Popularity (AUP) taking the values of 140, 80, 160, 320, 640, 1280, 2560 on the Number of Visits (NV [i]) for each spatial location i such that 1  i  NSL. I have also measured the effect of AUP on both Minimum Location Visits (Min) and Maximum Location Visits (Max). The following figure shows the values of both Minimum Location Visits (Min) and Maximum Location Visits (Max when varying AUP. From the gure, we can see that the Min is slightly decreasing and Max is substantially increasing. This trend is explained by the fact that the popularity of the users that visits a certain place increases the probability that the friends of this user and the friend of his friends and all the
way through the social graph) will visit the same place.</p>
 

<p><img alt="popularity.png" src="http://blog.lib.umn.edu/elsay004/myblog/popularity.png" width="450" height="251" class="mt-image-none" style="" /></p>

<p>Experiment 2 (Effect of varying Average Visit Rate (AVR)): In this experiment, we assign the values of 0.5 and 100 to Mobility-Friendship Correlation ratio (MFC) and Average User Popularity (AUP), respectively. Therefore, we measure the effect of Average Visit Rate (AV R) taking values of 0.5, 1.0, 2.0, 4.0, 8.0 on the same dependent variables measured in Experiment 1 (i.e., NV [i], Min, and Max).
The following figure shows the values of both Minimum Location Visits (Min) and Maximum Location Visits (Max) when varying AVR. In the figure, It turns out that Min and Max are increasing approximately the same proportion which is intuitive as the total number of visits in each place increases in the same simulation time period.</p>

<p><img alt="visitrate.png" src="http://blog.lib.umn.edu/elsay004/myblog/visitrate.png" width="450" height="251" class="mt-image-none" style="" /></p> 

<p><br />
<p>Experiment 3 (Effect of varying Mobility-Friendship Correlation ratio (MFC)): In this experiment, we assign the values of 0.5 and 100 to Average Visit Rate (AV R) and Average User Popularity (AUP), receptively. Then, we measure the eect of varying Mobility-Friendship Correlation ratio (MFC) taking the values of 0.0, 0.2, 0.4, 0.8, 1.0 on the same dependent variables measured in both Experiment 1 and Experiment 2 (i.e., NV [i], Min, and Max). The following figure shows both Minimum Location Visits (Min) and Maximum Location Visits (Max) when varying MFC. The impact is quite intuitive; Max is substantially increasing when increasing MFC as some place are getting more and more attention (visits). Also, Min is slightly decreasing as some places were not initially visited by most of the users, which lead to less people interested to visit those place as their friends did not visit these places before. The results of applying this experiment show how the effect of Friendship-to-Mobility correlation could be manipulated to influence the users to visiting specific places.</p></p>

<p><img alt="correlation.png" src="http://blog.lib.umn.edu/elsay004/myblog/correlation.png" width="450" height="251" class="mt-image-none" style="" /></p>]]>
        <![CDATA[<p><br />
</p>]]>
    </content>
</entry>

<entry>
    <title>Friendship and Mobility</title>
    <link rel="alternate" type="text/html" href="http://blog.lib.umn.edu/elsay004/myblog/2011/11/friendship-and-mobility.html" />
    <id>tag:blog.lib.umn.edu,2011:/elsay004/myblog//15269.321892</id>

    <published>2011-11-14T03:41:07Z</published>
    <updated>2011-11-14T08:22:46Z</updated>

    <summary>A couple of weeks ago, I have read this paper: &quot;Friendship and Mobility: User Movement In Location-Based Social Networks&quot;. The paper is published in the proceedings of the 17th ACM SIGKDD Conference on Knowledge Discovery and Data Mining. The paper...</summary>
    <author>
        <name>M. Sarwat</name>
        <uri>http://blog.lib.umn.edu/cgi-bin/mt-cp.cgi?__mode=view&amp;blog_id=15269&amp;id=33120</uri>
    </author>
    
    <category term="analysis" label="Analysis" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="data" label="Data" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="kdd" label="KDD" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mobility" label="Mobility" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="social" label="Social" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="spatial" label="Spatial" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="temporal" label="Temporal" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.lib.umn.edu/elsay004/myblog/">
        <![CDATA[<p>A couple of weeks ago, I have read this paper: <a href="http://cs.stanford.edu/people/jure/pubs/mobile-kdd11.pdf">"Friendship and Mobility: User Movement In Location-Based Social Networks"</a>. The paper is published in the proceedings of the 17th ACM SIGKDD Conference on Knowledge Discovery and Data Mining. The paper is mainly concerned with answering the following questions: (a) Do users' friendship affects their mobility ? (b) Do users' mobility make them create new friendship? (c) Do users visit specific places at particular times? Do they visit some places more frequently than others? </p>

<p><img alt="mobfr.png" src="http://blog.lib.umn.edu/elsay004/myblog/mobfr.png" width="400" height="250" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>

<p>The Contribution of the paper is two-fold: (1) First, the authors have applied extensive data analysis on three data sets; two data sets from location-based social networking websites (i.e., <a href="http://gowalla.com/">Gowalla</a> and <a href="http://brightkite.com/">BrightKite</a>).  The third data set is from a cell phone service provider in a European country the authors decided not to disclose its name (2) Secondly, the authors derived a user mobility model taking into account three sub-models: (a) Model of spatial locations that a user regularly visits, (b) A model of temporal movement between these locations, and (c) A model of movement that is influenced by the social network ties. </p>

<p><img alt="Traj.png" src="http://blog.lib.umn.edu/elsay004/myblog/Traj.png" width="400" height="250" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>

<p>The authors figured out that distant friends have higher influence on a user than his nearby friends. This is explained by the fact that a user most probably travels (move long distance) to see friends. On the other hand, a user not necessarily visits a friend when s/he moves small distances (e.g., commute to work). Another finding was that users with highly similar trajectories are most probably to be friends.<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Playing with Foursquare Data</title>
    <link rel="alternate" type="text/html" href="http://blog.lib.umn.edu/elsay004/myblog/2011/11/playing-with-data.html" />
    <id>tag:blog.lib.umn.edu,2011:/elsay004/myblog//15269.321751</id>

    <published>2011-11-13T10:53:08Z</published>
    <updated>2013-05-15T06:06:20Z</updated>

    <summary>Recently, I have been interested in analyzing social networking data. Mainly, I have been playing with Foursquare data. To those who don&apos;t know what Foursquare is, it is a mobile location-based social network application. Foursquare users are associated with a...</summary>
    <author>
        <name>M. Sarwat</name>
        <uri>http://blog.lib.umn.edu/cgi-bin/mt-cp.cgi?__mode=view&amp;blog_id=15269&amp;id=33120</uri>
    </author>
    
    <category term="analysis" label="Analysis" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="data" label="Data" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="foursquare" label="Foursquare" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pearson" label="Pearson" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="statistics" label="Statistics" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.lib.umn.edu/elsay004/myblog/">
        <![CDATA[<p>Recently, I have been interested in analyzing social networking data. Mainly, I have been playing with Foursquare  data. To those who don't know what Foursquare is, it is a mobile location-based social network application. <a href="https://foursquare.com/">Foursquare</a> users are associated with a home city, and alert friends when visiting a venue (e.g., restaurant) by "checking-in" on their mobile phones. During a "check-in", users can also leave "tips", which are free text notes describing what that they liked about the venue. Any other user can add the "tip" to her "to-do list" if interested in visiting the venue. Once a user visits a venue in the "to-do list" , she marks it as "done". Also, users who check into a venue the most are considered the "mayor" of that venue.</p>

<p>I found out that we can come up with cool findings if we statistically analyze Foursquare data. The data was fetched through APIs provided by Foursquare, which are pretty similar to Facebook APIs (but not exactly the same).  Collecting the data is not a piece of cake though; as you may know, all social networking applications start to lock their data as it gets more user base. Anyways, one can always find his way to such data, it is not a big deal after all.</p>

<p>Given such data, I thought of posing this question: "Do Foursquare users visit the same places as their friends?". For instance, if Bob is a Foursquare user, the question is whether he checks-in at the same spatial locations (restaurants, theaters...) as his Foursquare friends. To this end, I have applied a simple statistical analysis on 2186 Foursquare users in the twin cities area. For each user, all her friends were retrieved and all the places she visited. The average number of friends for each user is 44 and the average number of visits per user is 14. The users were then classified into three categories (1) popular, (2) moderate, and (3) unpopular, based upon the number of friends they have. For instance, if the user has 200 friends or more, he is a popular user. If the user has 70 to 200 friends, he is a moderate user, and if he has less than 70 friends, he is unpopular. Different class is assigned for each user (1) active, (2) moderate, (3) inactive, based upon his number of visits. For example, if the user has more than 90 visits he is an active user, 40 to 90 visits he is a moderate user, and less than 40 visits he is an inactive user. The histograms for the user activity as well as user popularity are given in the following figures.</p>

<p><br />
<img alt="hist.png" src="http://blog.lib.umn.edu/elsay004/myblog/hist.png" width="380" height="161" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>

<p><br />
In order to answer the aforementioned question, we define a parameter called "CoVisits Ratio" for each user is as follows: Let U be the set of user's visits and n be the total number of friends of the user. Fi is the set of visits of friend i, and V is the set of unique visits among the user and all his friends.</p>

<p><img alt="Equ.png" src="http://blog.lib.umn.edu/elsay004/myblog/Equ.png" width="159" height="170" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>

<p>The average CoVisits ratio for each user category (active, moderate, inactive) and also for the other three user categories (popular, moderate, unpopular) was calculated. In the following two figures, the red bars represents the CoVisits ratio for the user with his friends and the blue bar represents the CoVisits ration for the user with random users (who are not his friends). These random users were selected to be exactly the same as the user's friends (with same activity level) As depicted in both figures, in the case of moderate activity and moderate popularity, users seems to visits place that their friends visit more than those places visited by strangers (non-friends).</p>

<p><img alt="cov.png" src="http://blog.lib.umn.edu/elsay004/myblog/cov.png" width="380" height="161" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>

<p><br />
The correlation between being friends and the number of co-visits between two users was measured, and the result is shown in figure 3. The X-axis represents the total number of co-visits between any pair of users and the y-axis represents the total number of users pairs. The blue bar represents the total number of user pairs which are friends and the red bar represents the total number of users pairs that are not friends. Notice that the values for (X1 to X3) are trimmed from the graph as they are very large compared to other values. In addition, a correlation test was applied between two variables for each pair of users: (1) Being friends (1) or not friends (0), and (2) Number of Covisits between this pair of users. A Pearson and Spearman correlation methods were applied (using R statistical analysis tool) on both variables and the correlation coefficient was 0.1113512 and 0.08696049, respectively and the 95% confidence interval is [ 0.1100980 , 0.1126042 ]. That means that there is a positive correlation between being friends and visiting the same places, but the correlation is not high.</p>

<p><br />
<img alt="corr.png" src="http://blog.lib.umn.edu/elsay004/myblog/corr.png" width="380" height="161" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>

<p><br />
The analysis showed that there is a small positive correlation between being friends and visiting the same spatial locations. I believe the results could be extended to answer a more general question which is "Do friends in online social networking websites are also friends in real life (i.e., hang out together in real life) ?". Even though the question was raised before in many articles (Kari Henley 2009, T. J. Borchard 2011, etc...), I still believe figuring out an answer to this question using spatial co-visits could be a good future research direction.<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Conference Peer Review Process!</title>
    <link rel="alternate" type="text/html" href="http://blog.lib.umn.edu/elsay004/myblog/2011/11/conference-peer-review-process.html" />
    <id>tag:blog.lib.umn.edu,2011:/elsay004/myblog//15269.321750</id>

    <published>2011-11-13T10:51:34Z</published>
    <updated>2011-11-13T11:27:07Z</updated>

    <summary>I was thinking about how the database research community is accepting new ideas. I usually (or should I say always) have hard times trying to come up with this sort of persuasive argument in my papers. Actually, I try to...</summary>
    <author>
        <name>M. Sarwat</name>
        <uri>http://blog.lib.umn.edu/cgi-bin/mt-cp.cgi?__mode=view&amp;blog_id=15269&amp;id=33120</uri>
    </author>
    
    <category term="conference" label="Conference" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="data" label="Data" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="icde" label="ICDE" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="keynote" label="Keynote" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="naughton" label="Naughton" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="review" label="review" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="systems" label="Systems" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.lib.umn.edu/elsay004/myblog/">
        <![CDATA[<p>I was thinking about how the database research community is accepting new ideas. I usually (or should I say always) have hard times trying to come up with this sort of persuasive argument in my papers. Actually, I try to put myself in the reviewer's shoes, but it seems that these kinds of shoes are hard to get. Let me give you a simple example, which I believe, will make my point clear. Once upon a time (Fairy Tale style :D), I submitted a paper to a conference and it was rejected (very typical) and that is not the problem. My normal behavior is to get read the reviewers' comments, fix the paper accordingly, and submit it again to the next conference on my calendar. For the second submission, I am expecting at least to get better reviews than those received upon the first submission. However, I figured out that the reviewers of the second conference almost hated the modifications I made to the paper as a response to the first conference reviewers' comments. That actually drives me crazy, it is like you are cooking a meal and you are consulting two friends to taste the food. Your first friend figured out that it needs more salt, and your second friend sees that it is too salty and the meal needs to be redone. What I am trying to say here is that the review process seems to be too subjective. I appreciate the community is getting bigger and bigger and the reviewers do not have the time to give more insightful reviews. So, does this mean we might sacrifice the reviews quality ? Definitely, not. The review process is crucial for our field to evolve and keep attracting more people to get in. So, the solution should remain in figuring how to enhance the review process in order to make it more objective. I attended ICDE 2010 keynote speech given by Jeffrey Naughton, who focused on the review process and how to make it better. Actually, he came up with a couple of creative ideas that I liked a lot. For instance, he suggested to offer an award for the best reviewers which will encourage the reviewers to do their best. He also suggested to publish the reviews online so that community can see the reviews, and this way the reviewer may feel embarrassed to submit a bad review. The one that I like the most is to reveal the identity of the reviewer to the paper's authors, which will also put some stress on the reviewer to write high quality review. The aforementioned ideas are good, and I believe the community can come up with better ideas if all people agree that there is an issue that needs to be solved so that we would maintain the prestige of our community that it earned in the past..</p>]]>
        
    </content>
</entry>

<entry>
    <title>Best Research Paper Award</title>
    <link rel="alternate" type="text/html" href="http://blog.lib.umn.edu/elsay004/myblog/2011/11/best-research-paper-award.html" />
    <id>tag:blog.lib.umn.edu,2011:/elsay004/myblog//15269.321749</id>

    <published>2011-11-13T10:50:19Z</published>
    <updated>2011-11-13T11:24:04Z</updated>

    <summary>I recently received the Best Paper Award in 12th international symposium on spatial and temporal databases. I believe the closest word to describe my feeling is &quot;Ecstasy&quot;, though not enough. I felt it would be good if I could share...</summary>
    <author>
        <name>M. Sarwat</name>
        <uri>http://blog.lib.umn.edu/cgi-bin/mt-cp.cgi?__mode=view&amp;blog_id=15269&amp;id=33120</uri>
    </author>
    
    <category term="award" label="Award" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="data" label="Data" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="flash" label="Flash" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="index" label="Index" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="research" label="Research" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="system" label="System" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="systems" label="Systems" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.lib.umn.edu/elsay004/myblog/">
        <![CDATA[<p>I recently received the Best Paper Award in 12th international symposium on spatial and temporal databases. I believe the closest word to describe my feeling is "Ecstasy", though not enough. I felt it would be good if I could share my experience with you and give you some tips:</p>

<p>1) Don't get discouraged with paper rejections, it will get in eventually. That paper was rejected twice before being accepted and received the Best Research Paper Award.</p>

<p>2) Trust your advisor; he is way more experienced than you are. That does not mean that you should be  a pushover and follow your advisor blindly. Your advisor definitely wants you also to have an argument and to support your argument in a good way.</p>

<p>3) Never eat alone: collaborate with smart people to get your work done. Don't you ever say "I am the smartest person on earth, I can do everything on my own". Believe it or not, when you say so, you are screwed.</p>

<p>4) Whenever you are looking for a research problem to solve, find a REAL problem and try to solve it the SIMPLEST way. Complicated solutions usually don't fly.</p>

<p>5) Think Big: When you are solving a problem, think how the world would be different after solving such a problem. Don't just think: "I want my paper to be published so that I can graduate".</p>

<p>That is all I have in my mind now. wish it is useful...</p>]]>
        
    </content>
</entry>

<entry>
    <title>Two Years in Minnesota</title>
    <link rel="alternate" type="text/html" href="http://blog.lib.umn.edu/elsay004/myblog/2011/11/two-years-in-minnesota.html" />
    <id>tag:blog.lib.umn.edu,2011:/elsay004/myblog//15269.321730</id>

    <published>2011-11-13T03:16:45Z</published>
    <updated>2011-11-13T11:25:34Z</updated>

    <summary>This Month marks my two years anniversary in Minnesota, I would like to share with you what I have achieved during them: 1) received my master&apos;s degree in computer science at University of Minnesota. 2) Passed my PhD qualifying exams...</summary>
    <author>
        <name>M. Sarwat</name>
        <uri>http://blog.lib.umn.edu/cgi-bin/mt-cp.cgi?__mode=view&amp;blog_id=15269&amp;id=33120</uri>
    </author>
    
    <category term="award" label="Award" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="computerscience" label="Computer Science" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="microsoft" label="Microsoft" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="minnesota" label="Minnesota" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="nec" label="NEC" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="paper" label="paper" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="phd" label="PhD" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.lib.umn.edu/elsay004/myblog/">
        <![CDATA[<p>This Month marks my two years anniversary in Minnesota, I would like to share with you what I have achieved during them:</p>

<p>1) received my master's degree in computer science at University of Minnesota.<br />
2) Passed my PhD qualifying exams and became a PhD candidate.<br />
3) learned what the word "Winter" really means.<br />
4) got the Best Paper Award in SSTD 2011.<br />
5) interned at Microsoft Research Redmond.<br />
6) interned at NEC Labs america in the bay area.<br />
7) got to know the best friends I have ever had.</p>

<p>I believe that's all. I am so exited to write the events coming up the next few years.</p>]]>
        
    </content>
</entry>

</feed>
